p16f877 timer1 kesmesi sonucu led yanmama problemi.

Başlatan ShooterLens, 20 Ekim 2019, 16:14:51

ShooterLens

20 Ekim 2019, 16:14:51 Son düzenlenme: 20 Ekim 2019, 16:17:37 ShooterLens Sebep: eksik yazim
İlk önce herkese iyi günler dilerim,mikroişlemciler dersimizde p16f877 kullaniyoruz.
Yapmak istediğim şey timer1 kesmesi kullanarak 1 saniye yanip 1 saniye sönen led yapmak.
MPLAB programinda portb ye 1 gönderdiğim gözükmesine rağmen,PROTEUS da led yanmiyor,3 gündür uğraşmama rağmen sorunu çözemedim.
Kesme oluşmadan önce istediğim ledi yakip söndürebiliyorum,ancak program kesmeye girdikten sonra port müdahalesi kapaniyor.
Datasheeti kurcaliyorum ancak pic programlamada tecrübem olmadığı için datasheetin tam olarak nasil kullanilmasi gerektiğini de tam bilmiyorum.
Kodum şudur:
   #INCLUDE<P16F877A.INC>

    
org 0x0000
	
goto 
setup
	
org 0x0004
	
goto 
kesme
	

    
    
    
loop
	
goto 
loop
    
    setup
	
banksel
	
PIR1
	
bcf
	
PIR1,7
	
banksel
	
INTCON
	
bsf
	
INTCON,7
	
bsf
	
INTCON,6
	
bcf
	
INTCON,4
	
bcf
	
INTCON,3
	
bcf
	
INTCON,1
	
bcf
	
INTCON,0
	
banksel
	
PORTB
	
clrf
	
PORTB
	
banksel
	
TRISB
	
bcf
	
	
TRISB,0
	
banksel tmr1if
	
clrf
	
0x22
	
int200 equ 0x22
	
clrf
	
0x23
	
int100 equ 0x23
	
clrw
	

	
movlw d'2'
	
movwf
	
int200
	
clrw
	
movlw d'1'
	
movwf
	
int100
	
clrw
	
interrupt equ 8Ch
	
tmr1if
	
equ 0Ch
    banksel T1CON
	
bcf T1CON,5
	
bcf T1CON,4
	
bsf
	
T1CON,3
	
bcf
	
T1CON,2
	
bcf
	
T1CON,1
	
banksel
	
TMR1H
	
clrf
	
TMR1H
	
clrf
	
TMR1L
	
clrw
	
movlw
	
b'11111110'
	
movwf
	
TMR1L
	
clrw
	
movlw
	
b'11111110'
	
movwf
	
TMR1H
	
clrw
	
banksel interrupt
	
bsf interrupt,0
	
banksel INTCON
	
bsf
	
INTCON,7
	
bsf
	
INTCON,6
	
banksel T1CON
	
bsf
	
T1CON,7
	
bsf
	
T1CON,6
	
bsf
	
T1CON,0
    
goto loop
    

    kesme
	
bsf
	
PORTB,0
	
banksel
	
T1CON
	
bcf
	
T1CON,0
	
bcf
	
interrupt,0
	
banksel
	
PORTB
	
clrf
	
PORTB
	
banksel tmr1if
	
bcf
	
tmr1if,0
	
banksel INTCON
	
bcf
	
INTCON,INTF
	

	
banksel
	
TMR1H
	
clrf
	
TMR1H
	
clrf
	
TMR1L

	
clrw
	
movlw
	
b'11111110'
	
movwf
	
TMR1L
	
clrw
	
movlw
	
b'11111110'
	
movwf
	
TMR1H
	
clrw
	
banksel
	
T1CON
	
bsf
	
T1CON,0
	
banksel int200

	
decfsz
	
int200,1
    retfie
	
incf int200,1
	

	
decfsz
	
int100,1
	
retfie
	
incf int100,1
	
goto 
led_yak

	
led_yak
	
call setup2
	
call portbyak
	

	
retfie

	
portbyak
	
banksel
	
PORTB
	
movfw
	
PORTB
	
xorlw
	
d'1'
	
movwf
	
PORTB
	

	
return

	
setup2
	
clrw
	

	
movlw d'2'
	
movwf
	
int200
	
clrw
	
movlw d'1'
	
movwf
	
int100
	
clrw
	
return
	


    
end
Timerlere ledi rahat görmem için küçük değerler verdim,dediğim gibi portb ye 1 gönderdiği gözüküyor ancak led yanmiyor.
Saçlarimi yolmak üzereyim.

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.