?? main.asm
字號:
//*****************************************************************************/
// 描述: IRQ5中斷有兩個中斷源:2Hz和4Hz,該程序利用2Hz中斷來控制
// 發光二極管的亮滅,時間間隔為1s,設定B口低八位輸出。
// 日期: 2003/07/09
// 版本: 1.8.0
//*****************************************************************************/
.DEFINE P_IOB_DATA 0x7005;
.DEFINE P_IOB_DIR 0x7007;
.DEFINE P_IOB_ATTRI 0x7008;
.DEFINE P_INT_CTRL 0x7010;
.DEFINE P_INT_CTRL_NEW 0x702D;
.DEFINE P_INT_CLEAR 0x7011;
.DEFINE P_Watchdog_Clear 0x7012;
.RAM
.VAR G_Time2
.CODE
//=============================================================================
// 函數: main()
// 描述:主函數
//=============================================================================
.PUBLIC _main
_main:
INT OFF
R1 = 0xffff //設定IOB口為同相輸出口;
[P_IOB_ATTRI] = R1
[P_IOB_DIR] = R1
[P_IOB_DATA] = R1
R1 = 0x0004 //開中斷IRQ5_2Hz
[P_INT_CTRL] = R1
[P_INT_CTRL_NEW] = R1
R1 = 0
[G_Time2] = R1
INT irq
L_loop:
nop
R1 = 0x0001;
[P_Watchdog_Clear] = R1 //清看門狗
nop
jmp L_loop
.TEXT
.PUBLIC _IRQ5
_IRQ5:
push R1,R5 to [sp] //壓棧保護
R1 = 0x0004
[P_INT_CLEAR] = R1
R2 = [G_Time2]
R2+ = 0x0001
[G_Time2] = R2
CMP R2,2 //比較是否為1秒
JBE L_LED2HZ_OFF //小于等于則LED滅
R1 = 0xff00 //大于則LED亮
[P_IOB_DATA] = R1
CMP R2,3 //比較是否為兩秒
JBE L_LED2Hz_RET //小于等于則LED繼續亮
R2 = 0x0000 //否則,TIME1單元清零,返回中斷
[G_Time2] = R2
JMP L_LED2Hz_RET
L_LED2HZ_OFF:
R1 = 0xffff
[P_IOB_DATA] = R1
L_LED2Hz_RET:
POP R1,R5 FROM [sp]
RETI
//*****************************************************************************/
// main.asm 結束
//*****************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -