MCS51延时程序分析

延时方式

单片机控制应用中,延时必不可少。CPU过段时间再做某事,称为延时。延时有两种方法,即硬件延时和软件延时。

硬件延时是通过定时器/计数器实现的,软件延时一般通过执行循环程序实现。

硬件延时中,常用汇编指令及占用时间如下:

指令占用机器时间
MOV Rn,#Data1
DJNZ Rn,rel2
RET2
NOP1

以12MHz晶振为例,机器周期为1us,则执行一个MOV指令所用时间为1us;6MHz晶振机器周期为2us,执行一句DJNZ指令所用时间为4us。

硬件延时程序中又分为单重循环延时程序、双重循环延时程序及多重循环延时程序。晶振及延时程序的不同决定了延时时间范围。

单循环延时程序

D2:	 MOV  	R0 ,  #X  ;将立即数X存到寄存器R0中,耗时1机器周期
D1:	 DJNZ 	R0 ,  D1  ;寄存器R0减1,不为零即跳转到D1,耗时2机器周期
	 RET           	  ;耗时2机器周期	

设机器周期为T,*延时时间=2XT+1T+2T=(3+2*X)T

R0为8位寄存器,X取值为0—256。

频率为6MHz晶振延时时间范围为10~1030us;频率为12MHz晶振延时时间范围为 50—515us。

双重循环延时程序*

 	D3:	MOV	    R1,#Y 	;1周期
 	D2:	MOV 	R0,#X	;1周期
 	D1:	DJNZ	R0,D1	;2周期
 			DJNZ	R1,D2	;2周期
 			RET				;2周期

延时时间=(2X+1+2)YT+T+2T=(2XY+3Y+3)*T

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值