📄 delay.lst
字号:
Sunplus u'nSP Assembler - Ver. 1.14.3.1
Listing File Has Been Relocated
.DEFINE P_Watchdog_Clear 0x7012 // Watchdog Reset
000088CA .CODE
//-----------------------------------------------------------------------------------
//调用方式:delay_xus(n);n=1~65535
//计算公式:(65+13*R1)*(1/F_CPU)
//延时范围:(已经包括调用时间)78~852020 Cycle (49.152M时:1.6us~17334.4us)
//______________________________________________________
//
//参数计算公式:设 t 为延时时间,n=(t*F_CPU-65)/13
//______________________________________________________
//创建日期 :2007-4-19
//Author : Zhixian-Liao
//-----------------------------------------------------------------------------------
.PUBLIC _delay_xus //调用过程使用9个时钟周期 总时间为 65+13*R1 个机器周期
_delay_xus: .PROC //
//___________________________________
000088CA 88 DA PUSH BP TO [SP] // 6
000088CB 08 0B 01 00 BP = SP + 1 // 4
000088CD 88 D4 PUSH R2 TO [SP] // 6
000088CE 88 D2 PUSH R1 TO [SP] // 6
000088CF 03 92 R1 = [BP+3] // 6
000088D0 41 94 R2=0x0001 // 2________________30 Cycle
nLOOP: //___________________________________13*R1 Cycle
000088D1 1A D5 12 70 [P_Watchdog_Clear]=R2;// 7
000088D3 41 22 R1-=1; // 2
000088D4 44 4E JNZ nLOOP // 4
//___________________________________
000088D5 88 90 POP R1 FROM [SP]// 6
000088D6 88 92 POP R2 FROM [SP]// 6
000088D7 88 98 POP BP FROM [SP]// 6
000088D8 90 9A RETF // 8________________26 Cycle
.ENDP
//-----------------------------------------------------------------------------------
//调用方式:delay_xms(n);n=1~65535
//计算公式:(2769*n+2209)*(1/F_CPU)
//延时范围:(已经包括调用时间)4978~181468624 Cycle (49.152M时:0.1ms~3692ms)
//______________________________________________________
//
//参数计算公式:设 t 为延时时间,n=(t*F_CPU-2209)/2769
//______________________________________________________
//创建日期 :2007-4-19
//Author : Zhixian-Liao
//-----------------------------------------------------------------------------------
.PUBLIC _delay_xms //调用过程使用9个时钟周期 总时间为 9+70+(13*R1+10)*213=9+2769*R1+2200 个机器周期
_delay_xms: .PROC //
//___________________________________
000088D9 88 DA PUSH BP TO [SP] // 6
000088DA 08 0B 01 00 BP = SP + 1 // 4
000088DC 88 D6 PUSH R3 TO [SP] // 6
000088DD 88 D4 PUSH R2 TO [SP] // 6
000088DE 88 D2 PUSH R1 TO [SP] // 6
000088DF 03 92 R1 = [BP+3] // 6
000088E0 41 94 R2=0x0001 // 2
000088E1 0B 97 D5 00 R3=213 // 4________________40 Cycle
MLOOP: //___________________________________(13*R1+10)*213-2 Cycle
000088E3 03 92 R1 = [BP+3] // 6
mLOOP:
000088E4 1A D5 12 70 [P_Watchdog_Clear]=R2; //7___________
000088E6 41 22 R1-=1; // 2
000088E7 44 4E JNZ mLOOP // 2/4_________________11 Cycle
000088E8 41 26 R3-=1 // 2
000088E9 47 4E JNZ MLOOP // 2/4
//___________________________________
000088EA 88 90 POP R1 FROM [SP]// 6
000088EB 88 92 POP R2 FROM [SP]// 6
000088EC 88 94 POP R3 FROM [SP]// 6
000088ED 88 98 POP BP FROM [SP]// 6
000088EE 90 9A RETF // 8________________32 Cycle
.ENDP
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -