我正在使用MPLAB爲我的項目編程PIC16F84A。我有一個彙編代碼,其中RB4-7位連接到按鈕,因此用作輸入。一箇中斷子程序被實現來處理任何新的中斷(當一個按鈕被按下時)。一切正常,當按下按鈕時,圖片會轉到指定的子程序。但現在,當我在子程序中時,我必須清除該標誌(INTCON - RBIF),但該標誌未被清除,但清除INTCON寄存器中的任何其他位都可以正常工作。所以我該怎麼做?MPLAB,試圖清除一點,但它仍然是1
這裏是我的代碼:
ORG 0X00
GOTO START
ORG 0x04
BTFSC INTCON,RBIF
GOTO RBX_INT
START CLRF PORTA
MOVLW B'10001000'
MOVWF INTCON
BSF STATUS,RP0
CLRF TRISA
MOVLW B'11110000'
MOVWF TRISB
MOVLW B'10000111'
MOVWF OPTION_REG
BCF STATUS,RP0
MAIN GOTO MAIN
這是我的子程序:
RBX_INT BCF INTCON,RBIF
MOVLW D'156'
CALL DELAY
RETFIE
如果這是一個「變更中斷」,即使您不需要知道狀態,您也需要**讀取**端口。如果你不這樣做,觸發中斷的邏輯將繼續觸發。 –
@RogerRowland是的,這是問題所在。 – kamal