enexs
Üye
- Katılım
- 4 Kas 2008
- Mesajlar
- 99
- Puanları
- 1
- Yaş
- 40
merhaba arkadaşlar
picin a0 pinindeki butona basana kadar b portundaki ledler binari olarak belli bir gecikme ile yanıyor butona basınca pic uyuyor ledler sönüyor RB<4:7> arası pinlere değişiklik kesmesi uygulanınca pic uyanıyor ve saymaya kaldığı yerden devam ediyor sonra tekrar uyutunca bu sefer uyanamıyor yani benim anladığım ikinci kesme gelmiyor. neden? hex,asm ve isis ektedir
list p=16F877A
#include<P16F877A.INC>
__config H'3F31'
sayac1 EQU 0X020
sayac2 EQU 0X021
ORG 0X000
goto ana_program
ORG 0X004
goto kesme
kesme
bcf INTCON ,RBIE
bcf PORTB,4
bcf PORTB,5
bcf PORTB,6
bcf PORTB,7
retfie
ayar
clrf PORTA
clrf PORTB
bsf STATUS,RP0
movlw b'000001'
movwf TRISA
movlw b'11110000'
movwf TRISB
movlw b'00000111'
movwf ADCON1
bsf INTCON,GIE
bsf INTCON,RBIE
bcf STATUS,RP0
return
gecikme
movlw H'FF'
movwf sayac1
movwf sayac2
dongu1
decfsz sayac1
goto dongu2
goto bitir
dongu2
movlw H'FF'
movwf sayac2
icdongu
decfsz sayac2
goto icdongu
goto dongu1
bitir
return
uyu
movf PORTB,W
clrf PORTB
sleep
nop
movwf PORTB
return
ana_program
call ayar
bcf STATUS,RP0
kontrol
btfss PORTA,0
HAYIR
call uyu
EVET
incf PORTB
call gecikme
goto kontrol
end
picin a0 pinindeki butona basana kadar b portundaki ledler binari olarak belli bir gecikme ile yanıyor butona basınca pic uyuyor ledler sönüyor RB<4:7> arası pinlere değişiklik kesmesi uygulanınca pic uyanıyor ve saymaya kaldığı yerden devam ediyor sonra tekrar uyutunca bu sefer uyanamıyor yani benim anladığım ikinci kesme gelmiyor. neden? hex,asm ve isis ektedir
list p=16F877A
#include<P16F877A.INC>
__config H'3F31'
sayac1 EQU 0X020
sayac2 EQU 0X021
ORG 0X000
goto ana_program
ORG 0X004
goto kesme
kesme
bcf INTCON ,RBIE
bcf PORTB,4
bcf PORTB,5
bcf PORTB,6
bcf PORTB,7
retfie
ayar
clrf PORTA
clrf PORTB
bsf STATUS,RP0
movlw b'000001'
movwf TRISA
movlw b'11110000'
movwf TRISB
movlw b'00000111'
movwf ADCON1
bsf INTCON,GIE
bsf INTCON,RBIE
bcf STATUS,RP0
return
gecikme
movlw H'FF'
movwf sayac1
movwf sayac2
dongu1
decfsz sayac1
goto dongu2
goto bitir
dongu2
movlw H'FF'
movwf sayac2
icdongu
decfsz sayac2
goto icdongu
goto dongu1
bitir
return
uyu
movf PORTB,W
clrf PORTB
sleep
nop
movwf PORTB
return
ana_program
call ayar
bcf STATUS,RP0
kontrol
btfss PORTA,0
HAYIR
call uyu
EVET
incf PORTB
call gecikme
goto kontrol
end