单片机用中断和定时怎么延时

问问题描述

单片机用中断和定时怎么延时,求高手给解答

答精选答案

最佳答案

1.软件延时

利用多个指令的执行来延时,累加每个指令的运行时间,来计算出延时的总时间。一般写成一个延时函数。

如,以下是10ms软件延时。

delay_10ms() {

int c = 1000; // 调整常数,以达到要求的延时,但很难!

while(c !=0) {

c--;

}

}

以上函数被调用一次,就延时10ms,多次调用可以达到任意更大的时间要求。

但是,在延时时,就其它什么事也做不了了,就是干等啊!

2.硬件延时

利用定时器/计数器芯片,或用微控制器内部的定时器/计数器,实际上,它就是对晶振的分频(分频系数可编程设置),得到一个精确的低频的周期信号,用这个周期信号(比如10ms)去触发中断,每10ms调用一次定时中断服务程序。在定时中断服务程序中加入计数变量,就可以得到任意的定时了。

在10ms没有到时,微控制器可以运行其它程序,10ms到时再自动进去中断服务程序以处理定时任务,不会像软件延时阻塞了。

3.操作系统中,都有个硬件延时,和定时中断,可以看ucos ii中的源码,节拍时钟,和汇编语言实现的定时中断。

4.硬件延时,要占用一个定时器/计数器硬件资源。

本文来自作者[消防员的日常生活]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/jingxuan/2205341.html

赞 (0)

发表回复

本站作者后才能评论

评论列表(4条)

  • 消防员的日常生活
    消防员的日常生活 2026年10月06日

    我是公众科技网的签约作者“消防员的日常生活”!

  • 消防员的日常生活
    消防员的日常生活 2026年10月06日

    希望本篇文章《单片机用中断和定时怎么延时》能对你有所帮助!

  • 消防员的日常生活
    消防员的日常生活 2026年10月06日

    本站[公众科技网]内容主要涵盖:教育咨询,知识百科

  • 消防员的日常生活
    消防员的日常生活 2026年10月06日

    本文概览:1.软件延时利用多个指令的执行来延时,累加每个指令的运行时间,来计算出延时的总时间。一般写成一个延时函数。如,以下是10ms软件延时。delay_10ms() {int c = 1000; // 调整常数,以达到要求的延时,但很难!while(c !=0) {c--;}}以上函数被调用一次,就延时10ms,多次调用可以达到任意更大的时间要求。但是,在延时时,就其它什么事也做不了了,就是干等啊!2.硬件延时利用定时器/计数器芯片,或用微控制器内部的定时器/计数器,实际上,它就是对晶振的分频(分频系数可编程设

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们