?? irq.asm
字號:
//==================================================================
//文件名稱:IRQ.asm
//功能描述:中斷程序。實現(xiàn)日期時間的調(diào)整,以及秒表的實現(xiàn)。
//維護(hù)記錄:2006.7.31 by zhenlei
//===================================================================
.INCLUDE SPCE061A.inc
.INCLUDE s480.inc
.EXTERNAL _num
.EXTERNAL _clock
.EXTERNAL _gyearmonthday
.EXTERNAL _gxq
.EXTERNAL _mbnum
.EXTERNAL _miaobiao
.EXTERNAL _int2hz
.EXTERNAL _mapcounter1
.EXTERNAL _keyTtemp
.EXTERNAL _keytimeEnb
.EXTERNAL _DispEnb
.EXTERNAL _DispCount
.EXTERNAL _Flash
.TEXT
//===================================================================
//匯編語言格式:_FIQ
//功能描述:FIQ的中斷服務(wù)函數(shù)
// 調(diào)用F_FIQ_Service_SACM_S480函數(shù)進(jìn)行語音解碼和語音數(shù)據(jù)的輸出
//入口參數(shù):無
//出口參數(shù):無
//====================================================================
.PUBLIC _FIQ
_FIQ:
push r1,r5 to [sp]; //判斷是否TimerA中斷。
r1=0x2000;
test r1,[P_INT_Ctrl];
jnz ?L_FIQ_TimerA;
r1=0x0800;
test r1,[P_INT_Ctrl];
jnz ?L_FIQ_TimerB;
?L_FIQ_PWM: //判斷是否為PWM中斷。
r1=C_FIQ_PWM;
[P_INT_Clear]=r1;
jmp ?OUT
?L_FIQ_TimerA: //TimerA中斷程序
[P_INT_Clear]=r1;
call F_FIQ_Service_SACM_S480;
jmp ?OUT
?L_FIQ_TimerB: //TimerB中斷程序
[P_INT_Clear]=r1;
?OUT:
pop r1,r5 from[sp]
reti
//====================================================================
//匯編語言格式:_IRQ0
//功能描述:IRQ0的中斷服務(wù)函數(shù)
// 如果需要,請在reti前面寫用戶的中斷服務(wù)函數(shù)
//入口參數(shù):無
//出口參數(shù):無
//====================================================================
.PUBLIC _IRQ0
_IRQ0:
reti
//====================================================================
//匯編語言格式:_IRQ1
//功能描述:IRQ1的中斷服務(wù)函數(shù)
// 如果需要,請在reti前面寫用戶的中斷服務(wù)函數(shù)
//入口參數(shù):無
//出口參數(shù):無
//=====================================================================
.PUBLIC _IRQ1
_IRQ1:
reti
//=====================================================================
//匯編語言格式:_IRQ2
//功能描述:IRQ2的中斷服務(wù)函數(shù)
// 如果需要,請在reti前面寫用戶的中斷服務(wù)函數(shù)
//入口參數(shù):無
//出口參數(shù):無
//=====================================================================
.PUBLIC _IRQ2
_IRQ2:
reti
//=====================================================================
//匯編語言格式:_IRQ3
//功能描述:IRQ3的中斷服務(wù)函數(shù)
// 如果需要,請在reti前面寫用戶的中斷服務(wù)函數(shù)
//入口參數(shù):無
//出口參數(shù):無
//=====================================================================
.PUBLIC _IRQ3
_IRQ3:
reti
//=====================================================================
//匯編語言格式:_IRQ4
//功能描述:1KHZ中斷,用來實現(xiàn)秒表的修改。
//入口參數(shù):無
//出口參數(shù):無
//=====================================================================
.PUBLIC _IRQ4
_IRQ4:
push r1,r5 to[sp]
r1=[P_INT_Ctrl]
test r1,0x0010
jnz ?INT_1KHZ
test r1,0x0400
jnz ?INT_4KHZ
?INT_2KHZ:
r1=0x0020
[P_INT_Clear]=r1
jmp ?OUT
?INT_4KHZ:
r1=0x0400
[P_INT_Clear]=r1
jmp ?OUT
?INT_1KHZ:
r1=0x0010
[P_INT_Clear]=r1
r1=[_mbnum]
r1=r1+0x0001
[_mbnum]=r1
r1=[_mapcounter1]
r1=r1+0x0001
[_mapcounter1]=r1
call _miaobiao
r1=0x0001
[P_Watchdog_Clear]=r1 //清看門狗
jmp ?OUT
?OUT:
pop r1,r5 from[sp]
reti
//=============================================================
//匯編語言格式:_IRQ5
//功能描述:2HZ中斷,用來實現(xiàn)時鐘以及日期的修改。
//入口參數(shù):無
//出口參數(shù):無
//=============================================================
.PUBLIC _IRQ5
_IRQ5:
push r1,r5 to[sp]
r1=[P_INT_Ctrl]
test r1,0x0004
jnz ?INT_2HZ
?INT_4HZ:
r1=0x0008
[P_INT_Clear]=r1
jmp ?OUT
?INT_2HZ:
r1=0x0004
[P_INT_Clear]=r1
r1=[_num]
r1=r1+0x0001
[_num]=r1
cmp r1,1
je ?flash
cmp r1,2 //0.5秒到,置顯示允許位
jne ?NormalDisp
[_DispEnb]=r1
jmp ?NormalDisp
?flash:
r1=1
[_Flash]=r1
?NormalDisp:
r1=[_keytimeEnb] //判斷是否允許按鍵時間計數(shù)
cmp r1,1
jne ?Normal //不允許,則跳過,進(jìn)行正常工作
r1=[_keyTtemp]
r1+=1
[_keyTtemp]=r1
?Normal:
call _clock //調(diào)用時間運(yùn)算子函數(shù)
call _gyearmonthday //調(diào)用年月運(yùn)算子函數(shù)
call _gxq //調(diào)用星期運(yùn)算子函數(shù)
r1=0x0001
[P_Watchdog_Clear]=r1 //清看門狗
r1=[_int2hz]
cmp r1,0x0000
jnz ?GAVE
r1=0x0001
[_int2hz]=r1
jmp ?OUT
?GAVE:
r1=0x0000
[_int2hz]=r1
?OUT:
pop r1,r5 from[sp]
reti
//===============================================================
//匯編語言格式:_IRQ6
//功能描述:IRQ6的中斷服務(wù)函數(shù)
// 如果需要,請在reti前面寫用戶的中斷服務(wù)函數(shù)
//入口參數(shù):無
//出口參數(shù):無
//================================================================
.PUBLIC _IRQ6
_IRQ6:
reti
//================================================================
//匯編語言格式:_IRQ7
//功能描述:IRQ7的中斷服務(wù)函數(shù)
// 如果需要,請在reti前面寫用戶的中斷服務(wù)函數(shù)
//入口參數(shù):無
//出口參數(shù):無
//================================================================
.PUBLIC _IRQ7
_IRQ7:
reti
//================================================================
//匯編語言格式:_BREAK
//功能描述:BREAK的中斷服務(wù)函數(shù)
// 如果需要,請在reti前面寫用戶的中斷服務(wù)函數(shù)
//入口參數(shù):無
//出口參數(shù):無
//================================================================
.PUBLIC _BREAK
_BREAK:
reti
.END
//================================================================//
//IRQ.asm end
//================================================================//
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -