登录|立即注册|使用QQ帐号登录
论坛 > 51单片机
发帖|
看2007|回0|收藏
楼主 ID:574921 只看他
2020-5-13 22:31
延时程序的设计方法
作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:
如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒
机器周期 微秒
MOV R6,#20 2个机器周期  2
D1: MOV R7,#248 2个机器周期  2       2+2×248=498 20×
DJNZ R7,$ 2个机器周期  2×248             498
DJNZ R6,D1 2个机器周期   2×20=40         10002
因此,上面的延时程序时间为10.002ms。
由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:
DELAY: MOV R5,#20
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
附件列表
K89YT5`{G(AQ32IR6MV8OMK.png (2020-5-13 22:30 上传)

原图尺寸 89.19 KB, 下载次数: 54

K89YT5`{G(AQ32IR6MV8OMK.png

给初学单片机的40个实验.doc (2020-5-13 22:31 上传)

1.98 MB, 下载次数: 15, 下载积分: 黑币 -5

51黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版