📄 delay.lst
字号:
Sunplus u'nSP Assembler - Ver. 1.14.3.1
Listing File Has Been Relocated
.DEFINE P_Watchdog_Clear 0x7012 // Watchdog Reset
00008A16 .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 //
//___________________________________
00008A16 88 DA PUSH BP TO [SP] // 6
00008A17 08 0B 01 00 BP = SP + 1 // 4
00008A19 88 D4 PUSH R2 TO [SP] // 6
00008A1A 88 D2 PUSH R1 TO [SP] // 6
00008A1B 03 92 R1 = [BP+3] // 6
00008A1C 41 94 R2=0x0001 // 2________________30 Cycle
nLOOP: //___________________________________13*R1 Cycle
00008A1D 1A D5 12 70 [P_Watchdog_Clear]=R2;// 7
00008A1F 41 22 R1-=1; // 2
00008A20 44 4E JNZ nLOOP // 4
//___________________________________
00008A21 88 90 POP R1 FROM [SP]// 6
00008A22 88 92 POP R2 FROM [SP]// 6
00008A23 88 98 POP BP FROM [SP]// 6
00008A24 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 //
//___________________________________
00008A25 88 DA PUSH BP TO [SP] // 6
00008A26 08 0B 01 00 BP = SP + 1 // 4
00008A28 88 D6 PUSH R3 TO [SP] // 6
00008A29 88 D4 PUSH R2 TO [SP] // 6
00008A2A 88 D2 PUSH R1 TO [SP] // 6
00008A2B 03 92 R1 = [BP+3] // 6
00008A2C 41 94 R2=0x0001 // 2
00008A2D 0B 97 D5 00 R3=213 // 4________________40 Cycle
MLOOP: //___________________________________(13*R1+10)*213-2 Cycle
00008A2F 03 92 R1 = [BP+3] // 6
mLOOP:
00008A30 1A D5 12 70 [P_Watchdog_Clear]=R2; //7___________
00008A32 41 22 R1-=1; // 2
00008A33 44 4E JNZ mLOOP // 2/4_________________11 Cycle
00008A34 41 26 R3-=1 // 2
00008A35 47 4E JNZ MLOOP // 2/4
//___________________________________
00008A36 88 90 POP R1 FROM [SP]// 6
00008A37 88 92 POP R2 FROM [SP]// 6
00008A38 88 94 POP R3 FROM [SP]// 6
00008A39 88 98 POP BP FROM [SP]// 6
00008A3A 90 9A RETF // 8________________32 Cycle
.ENDP
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -