Mikro Bilgisayarlı Sistem Tasarımı - Fırat Üniversitesi
Mikro Bilgisayarlı Sistem Tasarımı - Fırat Üniversitesi
Mikro Bilgisayarlı Sistem Tasarımı - Fırat Üniversitesi
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Gecikme sürelerini sayaçlara yüklediğimiz M ve N sabitlerini değiştirerek ayarlamak<br />
mümkündür. Örneğin gecikme süresinin 10 milisn olması için dış ve iç döngü sayaçlarının<br />
değerlerinin ne olması gerektiğini bulalım:<br />
10.000/(0.05 x 4) = 3xNxN N=129<br />
bu değer h‟81‟ değerine karşılık gelir. Böylece 10 milisn gecikme elde edilir.<br />
Örnek 9.9: PortA‟nın 1. ucuna bağlı butona 10 defa basıldıktan sonra PortB deki tüm ledleri yakan<br />
program.<br />
LIST P16F877<br />
INCLUDE “P16F877.INC”<br />
SAYAC1 EQU h „20‟<br />
SAYAC2 EQU h „21‟<br />
MEM EQU h „22‟<br />
CLRF PORTB ; PortB‟yi sil<br />
BSF STATUS,5 ; Bank1‟e geç<br />
CLRF TRISB ; PortB‟nin uçları çıkış<br />
BSF TRISA,1 ; Porta‟nın 1. biti giriş<br />
CLRF MEM ; MEM kayıtçısını temizle<br />
TEKRAR<br />
BTFSC PORTA,1 ; PortA‟nın 1.bit‟i 0 mı?<br />
GOTO TEKRAR ; Hayır tekrar test et<br />
INCF MEM ; Evet, MEM=MEM+1<br />
MOVF MEM,W ; W=MEM<br />
SUBLW d „10‟ ; W= d „10‟-W<br />
BTFSC STATUS,2 ; STATUS‟un 2.biti 0 mı?<br />
GOTO YAK ; Hayır, Z=1<br />
CALL GECİKME ; Gecikme altprogramını çağır<br />
GOTO TEKRAR ;<br />
YAK<br />
MOMVLW h „FF‟ ; W= h „FF‟<br />
MOVWF PORTB ; PortB‟deki tüm ledleri yak<br />
DONGU<br />
GOTO DONGU ;<br />
;***************GECİKME ALTPROGRAMI***********<br />
GECIKME<br />
MOVLW h „FF‟<br />
MOVWF SAYAC1<br />
DONGU1<br />
MOVLW h „FF‟<br />
MOVWF SAYAC2<br />
DONGU2<br />
DECFSZ SAYAC2,F<br />
GOTO DONGU2<br />
DECFSZ SAYAC1,F<br />
GOTO DONGU1<br />
RETURN<br />
END<br />
İbrahim Türkoğlu, <strong>Fırat</strong> <strong>Üniversitesi</strong> - Elektronik ve Bilgisayar Eğitimi Bölümü, Elazığ- 2010. 114