标题:
汇编:51单片机模块化软件延时
[打印本页]
作者:
liuchao626
时间:
2022-7-12 22:36
标题:
汇编:51单片机模块化软件延时
ORG 0000H
PUSH PSW
PUSH ACC
PUSH B
LCALL DELAY1US
POP PSW
POP ACC
POP B
RET
DELAY1US: NOP
RET
DELAY100US: PUSH R7
MOV R7,#100
LOOP: NOP
DJNZ R7,LOOP
POP R7
RET
DELAY1MS: PUSH R7
PUSH R6
MOV R6,#10
LOOP1: MOV R7,#100
NOP
LOOP2: DJNZ R6,LOOP2
DJNZ R7,LOOP1
POP R6
POP R7
RET
复制代码
有错的地方,欢迎大家猛烈批评指正。
作者:
光说不练
时间:
2022-7-13 15:36
1微秒估计悬,RET占2个周期。第一个设计为5微秒或10微秒比较合理。
作者:
liuchao626
时间:
2022-7-13 18:18
光说不练 发表于 2022-7-13 15:36
1微秒估计悬,RET占2个周期。第一个设计为5微秒或10微秒比较合理。
感谢大哥指教了,感激不尽
作者:
yzwzfyz
时间:
2022-7-28 11:35
51单片机中,R0-R7对应的RAM地址可以是00H-07H,也可以是08H-0FH,10H-17H,18H-1FH。
共4套方案,由PSW中的RS1、RS0选择决定,上电时RS1、RS0=00,所以默认R0-R7对应的地址是00H-07H。
PUSH R6,会让CPU无从选择哪一个地址的内容压入堆栈。
所以,51指令中没有 PUSH、POP R0-R7的指令。
PUSH R6 可以改为 PUSH 06H(默认状态下时)替代。
能看出这个问题的人,绝对极少。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1