請(qǐng)問(wèn)中斷0需要哪些指令啊
請(qǐng)問(wèn)中斷0需要哪些指令啊
全部回復(fù)(2)
正序查看
倒序查看
還沒有人回答?那我就來(lái)說(shuō)說(shuō):
以8031為例:
首先要有這么兩條指令:
ORG 03 ;中斷0
LJMP AINT0
每次有中斷0就會(huì)跳到地址03,LJMP AINT0轉(zhuǎn)移到你的中斷處理程序.
以下寄存器設(shè)置可以任意順序.
INT0(12腳,P3.2)要置1,如果你未對(duì)此腳操作可以不管它,因?yàn)閺?fù)位后它就是1.
設(shè)置IT0,=1時(shí)12腳負(fù)跳沿有效,=0低電平有效.(必需,如果要設(shè)為1可以不管,復(fù)位后它就是1)
設(shè)置中斷優(yōu)先級(jí)寄存器IP,=1時(shí)高優(yōu)先級(jí),如果不需要優(yōu)先級(jí)也可以不管
設(shè)置EX0和EA為1,EX0是中斷0允許位,EA是中斷總允許位,=1為允許,=0為禁止.(必需,一般把設(shè)置EA放在最后,設(shè)置完了打開所有需要的中斷.)
中斷處理程序最后要用RETI返回?cái)帱c(diǎn).
如果中斷處理程序要影響到中斷處程序要用到的寄存器要用堆棧保護(hù)現(xiàn)場(chǎng),如PSW、ACC等.
AINTO: PUSH ACC ;中斷0
PUSH PSW
……
MOV PSW,#10H
……
MOV A,B
SUBB A,#35H
……
POP PSW
POP ACC
RETI
以8031為例:
首先要有這么兩條指令:
ORG 03 ;中斷0
LJMP AINT0
每次有中斷0就會(huì)跳到地址03,LJMP AINT0轉(zhuǎn)移到你的中斷處理程序.
以下寄存器設(shè)置可以任意順序.
INT0(12腳,P3.2)要置1,如果你未對(duì)此腳操作可以不管它,因?yàn)閺?fù)位后它就是1.
設(shè)置IT0,=1時(shí)12腳負(fù)跳沿有效,=0低電平有效.(必需,如果要設(shè)為1可以不管,復(fù)位后它就是1)
設(shè)置中斷優(yōu)先級(jí)寄存器IP,=1時(shí)高優(yōu)先級(jí),如果不需要優(yōu)先級(jí)也可以不管
設(shè)置EX0和EA為1,EX0是中斷0允許位,EA是中斷總允許位,=1為允許,=0為禁止.(必需,一般把設(shè)置EA放在最后,設(shè)置完了打開所有需要的中斷.)
中斷處理程序最后要用RETI返回?cái)帱c(diǎn).
如果中斷處理程序要影響到中斷處程序要用到的寄存器要用堆棧保護(hù)現(xiàn)場(chǎng),如PSW、ACC等.
AINTO: PUSH ACC ;中斷0
PUSH PSW
……
MOV PSW,#10H
……
MOV A,B
SUBB A,#35H
……
POP PSW
POP ACC
RETI
0
回復(fù)