为什么在单片机中要用到延时程序

为什么在单片机中要用到延时程序,第1张

延时目的:mcu本身只做计算,工作时需要外部设备辅助,延时就是让外设和单片机时序同步、等待外设响应结束;

举例:(单片机:老板;外设:员工;)

老板让员工去买东西:买东西是需要时间,

假设只要1min,但是这1min做不了

其他事,只能干等着!

假设需要30min,可以趁着30min开个会,也可以干等着!

所以,单片机可以按需延时。

延时的作用就是让数据正确处理。CPU速度来能多快取得I0口状态就多快取,而是CPU程序按指定时间间隔取值。比如CPU速度为1微妙可以处理一条语句,你刚取完当前10口状态,如果没有延时处理,在循环处理过程中立即又去取当前10口状态作为下一个Bit位的数据。

两者之间才间隔CPU的1微妙,这样不就出错了吗?因为协议约定为104.166...微妙,所以要得到正确的数据需要让取下一个10状态的处理过程等待104.166...微妙后再开始取值才正确,这时用延时就合适了。

扩展资料:

延时函数编写分析

clock()函数返回程序从开始执行到函数执行时所经过的时间,一般经过

1ms / CLOCK_PER_SEC ,clock()函数的返回值会增加1 。。

CLOCK_PER_SEC 为time.h文件中定义的宏,每个编译器都不一样。。 

TC中这样定义: #define CLOCKS_PER_SEC 18.2

VC/BCC中这样定义: #define CLOCKS_PER_SEC 1000.0

现在分析函数的执行过程,函数传过来的是秒数,但是函数需要clock函数来延时,所以需要把秒数转化成 sec*CLOCL_PER_SEC,才能和clock函数返回值作比较。。

延时函数是所有单片机程序中不可缺少的,单片机的速度相对很多器件来说已经很高了,必须加延时才能匹配,如液晶屏1602,送一个字符或命令后,必须有ms级延时,才能送下一个字符

数码管扫描显示,每点亮一个数码管也要延时保持一会儿,还有一些短的延时,如模拟SPIJ时钟,只用2 个空 *** 作语句就解决了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11272559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存