汇编 51单片机延时子程序

DT: MOV R2 ,#08H
MOV R1 ,#9AH
MOV R0 ,#7CH
DT1: DJNZ R0, DT1
DJNZ R1, DT1
DJNZ R2, DT1
RET
越详细越好!
一共延时了多久?

与晶振有关,假设采用12M晶振
MOV R2 ,#08H ;1微秒,8次
MOV R1 ,#9AH ;1微秒,9A=154
MOV R0 ,#7CH ;1微秒,7C=124
DT1: DJNZ R0, DT1 ;2微秒
DJNZ R1, DT1 ;2微秒
DJNZ R2, DT1 ;2微秒,8*154*124*2=152768*2=305536
RET ;2微秒

大约0.3秒追问

  T= (2 * ( 256*256*(R2-1) + 256*(R1-1) + R0+256*(R2-1) + R1+R2)+3+1) * (12/fosc)=566046
正确答案是这样的,但是有一点看不懂,为什么会有256*(R2-1),最好一起都解释下,非常感谢!

追答

原题中给的08H,9AH,7CH没有被使用。你的标答是不对的

追问

用了啊, R0 R1 R2不是吗

追答

R2中的数字是8,R1=9AH.....

温馨提示:答案为网友推荐,仅供参考
相似回答