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 + -
显示快捷键?