?? delay.asm
字號:
.DEFINE P_Watchdog_Clear 0x7012 // Watchdog Reset
.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 //
//___________________________________
PUSH BP TO [SP] // 6
BP = SP + 1 // 4
PUSH R2 TO [SP] // 6
PUSH R1 TO [SP] // 6
R1 = [BP+3] // 6
R2=0x0001 // 2________________30 Cycle
nLOOP: //___________________________________13*R1 Cycle
[P_Watchdog_Clear]=R2;// 7
R1-=1; // 2
JNZ nLOOP // 4
//___________________________________
POP R1 FROM [SP]// 6
POP R2 FROM [SP]// 6
POP BP FROM [SP]// 6
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 //
//___________________________________
PUSH BP TO [SP] // 6
BP = SP + 1 // 4
PUSH R3 TO [SP] // 6
PUSH R2 TO [SP] // 6
PUSH R1 TO [SP] // 6
R1 = [BP+3] // 6
R2=0x0001 // 2
R3=213 // 4________________40 Cycle
MLOOP: //___________________________________(13*R1+10)*213-2 Cycle
R1 = [BP+3] // 6
mLOOP:
[P_Watchdog_Clear]=R2; //7___________
R1-=1; // 2
JNZ mLOOP // 2/4_________________11 Cycle
R3-=1 // 2
JNZ MLOOP // 2/4
//___________________________________
POP R1 FROM [SP]// 6
POP R2 FROM [SP]// 6
POP R3 FROM [SP]// 6
POP BP FROM [SP]// 6
RETF // 8________________32 Cycle
.ENDP
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -