delay.asm
来自「凌阳单片机解码SAA3010T(通用无线遥控) sunplus IDE(集成」· 汇编 代码 · 共 44 行
ASM
44 行
.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 + =
减小字号Ctrl + -
显示快捷键?