📄 delay.asm
字号:
.include hardware.inc
.public _HDM_DELAY_1us;
.public _HDM_DELAY_15us;
.public _HDM_DELAY_480us;
.public _HDM_INIT_SYS;
.TEXT
//初始化系统的时钟为20.48MHz
_HDM_INIT_SYS: .proc
push r1,r1 to [sp];
r1=0x0038;
[P_SystemClock]=r1;
pop r1,r1 from [sp];
retf;
.endp
//延时1微秒
_HDM_DELAY_1us: .proc
H1:
retf
.endp
//延时15微秒(307周期,在CPU时钟为20M时,约为15微秒)
_HDM_DELAY_15us: .proc
push r1,r1 to [sp];
r1=0x21;
H2:
r1-=1;
jnz H2;
r1=0;
pop r1,r1 from [sp];
retf;
.endp
//延时481.9微秒
_HDM_DELAY_480us: .proc
push r1,r1 to [sp];
r1=32;
H3:
call _HDM_DELAY_15us;
r1-=1;
jnz H3;
pop r1,r1 from [sp];
retf;
.endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -