延时程序 汇编

延时程序 汇编,第1张

用的stc89c52RC整段程序如下:

MOV R0,#0

START:MOV A,R0

MOV DPTR,#TAB2

MOVC A,@A+DPTR

MOV P3,A

INC R0

ACALL DELAY

CJNE R0,#00BH,START

MOV R0,#0

SJMP START

DELAY:

MOV R2,#10

L1: MOV R3,#200

L2: MOV R4,#450

L3: DJNZ R4,L3

DJNZ R3,L2

DJNZ R2,L1

ret

单片机编程时延时程序其实就是一些循环指令组成的集合。比如:

DELAY:

    MOV R2,#248    ;本条指令1T执行1次

    DJNZ R2,$      ;本条指令2T执行248次

    NOP            ;本条指令1T执行1次

    RET            ;本条指令2T执行1次

    

所以延时时间为:1+2482+1+2=500T,如果晶振是12M的话,延时500us

时间精确的延时程序要用汇编语言来编写。

计算延迟时间要查询每一条程序的执行周期数,然后加起来就是了。

在12m晶振的系统中,每个机器周期是1微秒

借用一下:

举例来说明吧:

delay:

mov r0,#10 ;1(周期)

delay1:

mov r1,#100 ;1

djnz r1,$ ;2

djnz r0,delay1 ;2

ret ;2

周期数=1+((1+(2100)+2)10)+2=2033

延迟时间=2033周期1微秒=2033微秒

从到这个程序开始到返回到调用的那个程序用了2033微秒

以上就是关于延时程序 汇编全部的内容,包括:延时程序 汇编、单片机汇编程序怎么计算延时、51单片机使用汇编语言循环延迟时间怎么算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9277408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存