×
嵌入式 > 技术百科 > 详情

单片机中1S延时程序的编写

发布时间:2020-06-06 发布时间:
|
       大家在用单片机搞电路设计时经常会用到延时,有些地方不用考虑太精确的延时时间,但有些场合却必须对延时时间“斤斤计较”!今天就和大家讨论一下关于延时程序的编写。

     在单片机延时程序中应考虑所使用晶振的频率,在51系列的单片机中,我们常用的是11.0592MHz和12.0000MHz的晶振,在AVR单片机上常用的有8.000MHz和4.000MH的晶振,而MSP430系列单片机中却采用两个时钟输入。

     这里以51单片机为例,介绍单片机延时程序的编写。我们通常采用122.0000MHz的晶振,那么一个机器周期就是1us,我们看下面这个程序(注意程序的注释):

DELAY: MOV R5,#8      ;1个机器周期。1+[1+(1+2*255)*244+2*244]*8+2*8  us

D1:      MOV R6,#244   ;1个机器周期。1+(1+2*255)*244+2*244  us

D2:      MOV R7,#255   ;1个机器周期。1+2*255  us

           DJNZ R7,$        ;2个机器周期。

           DJNZ R6,D2      ;2个机器周期。

           DJNZ R5,D1      ;2个机器周期。

           RET                 ;2个机器周期。

上面这个程序的延时时间为:

1+[1+(1+2*255)*244+2*244]*8+2*8+2  us=1001401us=1.001403us。

     当然,此类延时程序也可以采用定时中断进行编写,详细程序请大家自己编写。希望大家能在单片机设计中大步发展!

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ZigBee技术语音图像无线监控系统的设计与实现