延时程序。STM单片机!
在C语言中按键程序是不是都一定要加延时程序????又或者说延时程序可以用在什么地方??延时程序的作用是什么?STM单片机!!!!...
在C语言中按键程序是不是都一定要加延时程序????又或者说延时程序可以用在什么地方??延时程序的作用是什么?STM单片机!!!!
展开
1个回答
展开全部
延时程序的作用就是等待,以适应某些低速器件的要求,有时也可以作为纯粹的计时
如向液晶屏1602送数据,液晶屏是低速器件,单片机是高速器件,单片机每送完一个数据,过一小会儿液晶屏才能处理完,才能继续给它发数据,这期间单片机就要等它忙完,程序可以查询它是否忙,也可以不查询而给一个充足的延时后就认为它忙完了,继续给它送数据 如果它处理需500US,我们给它1mS延时,肯定够了
还有如果测频率,我们要计单位时间内的脉冲个数,如果我们不用定时器,也可以用汇编语言写一个精确的延时函数,脉冲计数器打开后,延时500ms或1000ms,关闭计数器,读计数器的值,就可计算出频率
还有LED闪烁指示工作状态,人眼能观察的闪烁频率是很低的,这时我们就让程序执行:
开LED--延时--关LED--延时--开LED.....
不延时的话我们直接反复开关LED,看到的是LED一直在亮,但亮度不高
总之,需要延时的场合太多了,有的是US级的,有的是ms级的
很短的延时可用1至2个NOP语句代替,精确延时一般用定时器
如向液晶屏1602送数据,液晶屏是低速器件,单片机是高速器件,单片机每送完一个数据,过一小会儿液晶屏才能处理完,才能继续给它发数据,这期间单片机就要等它忙完,程序可以查询它是否忙,也可以不查询而给一个充足的延时后就认为它忙完了,继续给它送数据 如果它处理需500US,我们给它1mS延时,肯定够了
还有如果测频率,我们要计单位时间内的脉冲个数,如果我们不用定时器,也可以用汇编语言写一个精确的延时函数,脉冲计数器打开后,延时500ms或1000ms,关闭计数器,读计数器的值,就可计算出频率
还有LED闪烁指示工作状态,人眼能观察的闪烁频率是很低的,这时我们就让程序执行:
开LED--延时--关LED--延时--开LED.....
不延时的话我们直接反复开关LED,看到的是LED一直在亮,但亮度不高
总之,需要延时的场合太多了,有的是US级的,有的是ms级的
很短的延时可用1至2个NOP语句代替,精确延时一般用定时器
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询