PDA

View Full Version : ngắt time 0 và time 1


minhtan001
06-01-2011, 02:15 PM
cho mình hỏi với sao mình khai báo ngắt time 0 và time 1 xung cấp lấy từ ngoài đối với time 0 là chân RA4 còn với time 1 là chân RC0 nhưng sao ko được nó không hiểu
đây là đoạn code mình đã viết nó sẽ tăng biến đếm và xuất ra led bảy đoạn số từ số 1 -> 9 khi có xung click từ chân RA4 hoặc RC0
mấy PRO coi thử sai chổ nào chỉ mình với

đối với time 0

ORG 0x000

nop
goto main


ORG 0x004

movwf w_temp
movf STATUS,w
movwf status_temp
movf PCLATH,w
movwf pclath_temp


incf donvi,1
movlw 0x0A
xorwf donvi,0
btfss STATUS,Z
goto exit
clrf donvi

goto exit
exit
BCF INTCON,TMR0IF

movf pclath_temp,w
movwf PCLATH
movf status_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
retfie



main

bcf STATUS,RP1
bsf STATUS,RP0
movlw 0XFF
movwf TRISA
movlw 0x00
movwf TRISD
MOVLW B'00101000'
MOVWF OPTION_REG

bcf STATUS,RP0
bsf INTCON,PEIE
bsf INTCON,GIE
BSF INTCON,TMR0IE
CLRF donvi
CLRF TMR0
loop
movf donvi,0
call table
movwf PORTD
GOTO loop
table
addwf PCL,1
retlw 0xC0
retlw 0xF9
retlw 0xA4
retlw 0xB0
retlw 0x99
retlw 0x92
retlw 0x82
retlw 0xF8
retlw 0x80
retlw 0x90

END

****đối với time 1

ORG 0x000

nop
goto main


ORG 0x004
movwf w_temp
movf STATUS,w
movwf status_temp
movf PCLATH,w
movwf pclath_temp


incf DEM,1
movlw 0x0A
xorwf DEM,0
btfss STATUS,Z
goto exit
clrf DEM

goto exit
exit
BCF PIR1,TMR1IF

movf pclath_temp,w
movwf PCLATH
movf status_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
retfie



main

bcf STATUS,RP1
bsf STATUS,RP0

movlw 0x00
movwf TRISD
movlw 0x01
movwf TRISC

BSF PIE1,TMR1IE
bcf STATUS,RP0

MOVLW B'00000111'
MOVWF T1CON
bsf INTCON,PEIE
bsf INTCON,GIE

CLRF DEM

loop
movf DEM,0
call table
movwf PORTD
GOTO loop
table
addwf PCL,1
retlw 0xC0
retlw 0xF9
retlw 0xA4
retlw 0xB0
retlw 0x99
retlw 0x92
retlw 0x82
retlw 0xF8
retlw 0x80
retlw 0x90

END