51单片机c语言延时计算软件,51单片机精确延时程序大集合+初值计算工具

在论坛上看到不少不错的延时程序,整理如下共同分享:

精确延时计算公式:

延时时间=[(2*第一层循环+3)*第二层循环+3]*第三层循环+5

;延时5秒左右

DELAY5S:PUSH   04H;2个机器周期

PUSH   05H;2个机器周期

PUSH   06H;2个机器周期

MOV    R4,#50;1个机器周期

DELAY5S_0:MOV R5,#200;1个机器周期

DELAY5S_1:MOV R6,#245;1个机器周期

DJNZ   R6,$;2×245=490个机器周期

DJNZ   R5,DELAY5S_1;这条2个机器周期,这层循环包含R5×(490+1)+2×R5=98600个机器周期

DJNZ   R4,DELAY5S_0;这条2个机器周期 ,这层循环包含R4×(98600+1)+2×R4=4930150个机器周期

POP    06H;2个机器周期

POP    05H;2个机器周期

POP    04H;2个机器周期

RET;2个机器周期

;(共2+2+2+1+4930150+2+2+2+2=4930165个机器周期 )

;513微秒延时程序

DELAY: MOV     R2,#0FEH;1个机器周期

JUZINAIYOU: DJNZ    R2,JUZINAIYOU;2×R21即2×245

RET;2个机器周期

;(实际上是493个机器周期)

;10毫秒延时程序

DL10MS: MOV     R3,#14H

DL10MS1:LCALL   DELAY

DJNZ    R3,DL10MS1

RET

;(缺DELAY)

;0.1s延时程序12MHz

DELAY: MOV R6,#250

DL1: MOV R7,#200

DL2: DJNZ R6,DL2

DJNZ R7,DL1

RET

;延时1046549微秒(12MHz)

;具体的计算公式是:

;((((r7*2+1)+2)*r6+1)+2)*r5+1+4 = ((r7*2+3)*r6+3)*r5+5

DEL : MOV R5,#08H

DEL1: MOV R6,#0FFH

DEL2: MOV R7,#0FFH

DJNZ R7,$

DJNZ R6,DEL2

DJNZ R5,DEL1

RET

;1秒延时子程序是以12MHz晶振

Delay1S:mov r1,#50

del0: mov r2,#91

del1:   mov r3,#100

djnz r3,$

djnz r2,del1

djnz r1,del0

Ret

;1秒延时子程序是以12MHz晶振为例算指令周期耗时

KK: MOV    R5,#10    ;1指令周期×1

K1: MOV    R6,#0FFH    ;1指令周期×10

K2: MOV    R7,#80H    ;1指令周期256×10=2560

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值