我現(xiàn)在用PIC做定時中斷時,軟件調(diào)試沒有問題,可是燒寫后沒有出現(xiàn)應(yīng)有的中斷,程序如下:
ORG 0X00
GOTO START
ORG 0X04
GOTO INT
ORG 0X50
START
MOVLW B'10101010'
MOVWF FLAG1
BANKSEL TRISB
BCF TRISB,1
BANKSEL OPTION_REG
MOVLW B'10000000'
OPTION
BANKSEL PIE1
BSF PIE1,0
BANKSEL INTCON
MOVLW 0C0H
MOVWF INTCON
BANKSEL T1CON
MOVLW B'00110100'
MOVWF T1CON
MOVLW 50H
MOVWF TMR1H
MOVWF TMR1L
LOOP
BSF T1CON,0
GOTO LOOP
INT
BANKSEL PIR1
BCF PIR1,TMR1IF
BANKSEL PORTB
BTFSS PORTB,1
GOTO SET1
BCF PORTB,1
GOTO START
SET1
BSF PORTB,1
GOTO START
END
就是用RB1來反映是否執(zhí)行中斷,但是這個程序運行后RB1只是低電平,不知什么地方出問題了,希望各位老大不吝賜教,謝謝
請教:關(guān)于PIC定時中斷
全部回復(fù)(2)
正序查看
倒序查看
你的程序很亂,中斷返回沒有,有可能陷入死循環(huán).我把修改后的代碼給你.你的系統(tǒng)初始化我沒有改動.我沒有查詢,如果可能你最好用c編寫. ORG 0X00
GOTO mainline
ORG 0X04
GOTO INT
ORG 0X50
mainline
call initial
BSF T1CON,0
mainloop
GOTO mainloop
initial
MOVLW B'10101010'
MOVWF 20
BANKSEL TRISB
BCF TRISB,1
BANKSEL OPTION_REG
MOVLW B'10000000'
OPTION
BANKSEL PIE1
BSF PIE1,0
BANKSEL INTCON
MOVLW 0C0H
MOVWF INTCON
BANKSEL T1CON
MOVLW B'00110100'
MOVWF T1CON
MOVLW 50H
MOVWF TMR1H
MOVWF TMR1L
return
INT
BANKSEL PIR1
BCF PIR1,TMR1IF
MOVLW 50H
MOVWF TMR1H
MOVWF TMR1L
BANKSEL PORTB
BTFSS PORTB,1
GOTO SET1
BCF PORTB,1
retie
SET1
BSF PORTB,1
retie
END
GOTO mainline
ORG 0X04
GOTO INT
ORG 0X50
mainline
call initial
BSF T1CON,0
mainloop
GOTO mainloop
initial
MOVLW B'10101010'
MOVWF 20
BANKSEL TRISB
BCF TRISB,1
BANKSEL OPTION_REG
MOVLW B'10000000'
OPTION
BANKSEL PIE1
BSF PIE1,0
BANKSEL INTCON
MOVLW 0C0H
MOVWF INTCON
BANKSEL T1CON
MOVLW B'00110100'
MOVWF T1CON
MOVLW 50H
MOVWF TMR1H
MOVWF TMR1L
return
INT
BANKSEL PIR1
BCF PIR1,TMR1IF
MOVLW 50H
MOVWF TMR1H
MOVWF TMR1L
BANKSEL PORTB
BTFSS PORTB,1
GOTO SET1
BCF PORTB,1
retie
SET1
BSF PORTB,1
retie
END
0
回復(fù)
@xxy1990
你的程序很亂,中斷返回沒有,有可能陷入死循環(huán).我把修改后的代碼給你.你的系統(tǒng)初始化我沒有改動.我沒有查詢,如果可能你最好用c編寫. ORG0X00 GOTOmainline ORG0X04 GOTOINT ORG0X50mainline call initial BSFT1CON,0mainloop GOTO mainloopinitial MOVLWB'10101010' MOVWF20 BANKSELTRISB BCFTRISB,1 BANKSELOPTION_REG MOVLWB'10000000' OPTION BANKSELPIE1 BSFPIE1,0 BANKSELINTCON MOVLW0C0H MOVWFINTCON BANKSELT1CON MOVLWB'00110100' MOVWFT1CON MOVLW50H MOVWFTMR1H MOVWFTMR1L return INT BANKSELPIR1 BCFPIR1,TMR1IF MOVLW50H MOVWFTMR1H MOVWFTMR1L BANKSELPORTB BTFSSPORTB,1 GOTOSET1 BCFPORTB,1 retieSET1 BSFPORTB,1 retie END
佩服!您是真正的學(xué)者.
0
回復(fù)