Mikrodenetleyici Programlama #6 1 Buton 1 Led yakımı

Herkese Merhaba Dostlar

Bir önceki yazımızda butonsuz bir şekilde direk led nasıl yakılır onu göstermiştim hatta proteusta simülasyon devresini kurmuştuk. O konuyada buraya tıklayarak ulaşabilirsiniz. Bugün de aynı devremize buton ekleyerek bunu gerçekleştireceğiz. Simülasyonunu da ekleyeceğim fakat önceki videoda programı atmayı göstermiştim o yüzden ayrıntıya girmeyeceğim. Hemen başlayalım. 

NOT: PIC16F84 kullanılmıştır.

İlk olarak programımızın hazırlık kısmını yazalım. Bu sefer hazırlık kısmında hem çıkış yapacağımız pinleri, hemde giriş yapacağımız pinleri belirteceğiz.

LIST P=16F84                          ;(Derleyici programı için)

INCLUDE “P16F84.INC”       ;(Derleyici programı için)

CLRF PORTB                            ;(PORTB’deki veriyi temizle)

BSF STATUS,5                          ;(Bank değiştirme)

BCF STATUS,6                          ;(Bank değiştirme)

MOVLW b’11111111′                   ;(Akümülatöre veri yazma)

MOVWF TRISA                         ;(Veriyi TRISA atma)

CLRF TRISB                               ;(TRISB çıkış olarak ayarlama)

BCF STATUS,5                           ;(Bank değiştirme)

 

Şimdi A Portunun 0’ıncı pinine 1 adet buton koyalım. Butonların başına her zaman isim(etiket) vermeliyiz. Bu etiketleri, butona basılıp basılmadığını sürekli kontrol etmesi için kullanacağız.

LIST P=16F84                          ;(Derleyici programı için)

INCLUDE “P16F84.INC”       ;(Derleyici programı için)

CLRF PORTB                            ;(PORTB’deki veriyi temizle)

BSF STATUS,5                          ;(Bank değiştirme)

BCF STATUS,6                          ;(Bank değiştirme)

MOVLW b’11111111′                   ;(Akümülatöre veri yazma)

MOVWF TRISA                         ;(Veriyi TRISA atma)

CLRF TRISB                               ;(TRISB çıkış olarak ayarlama)

BCF STATUS,5                           ;(Bank değiştirme)

ELMA             BTFSS PORTA,0                      ;(Buton kodu)

GOTO ELMA                              ;(Buton kontrol kodu)

MOVLW b’00000001′              ;(Akümülatöre veri yazma)

MOVWF PORTB                        ;(Veriyi PORTB atma)

END                                              ;(Program bitişi)

Şimdi gelelim anlatımına.Programın çalışma mantığı şu şekildedir;

Program çok hızlı bir şekilde yukarıdan aşağıya doğru kodları okumaya ve ona göre tepki vermeye başlar. Program yukarıdan aşağıya doğru taramaya başladığında eğer butona basılmadıysa program o satırda bekler. Ve butona basılmadığı sürece program bir alt satıra inmez. Burada programın sürekli butona basılıp basılmadığını kontrol etmesi için GOTO ELMA kodunu yazıyoruz. Yani program;

ELMA BTFSS PORTA, 0

GOTO ELMA

ELMA BTFSS PORTA,0

GOTO ELMA

ELMA BTFSS PORTA,0

şeklinde sürekli bir kısır döngüye girer. Bu butona basılıncaya kadar devam eder. Butona basıldığında program GOTO ELMA satırını atlayarak bir alttaki MOVLW ile başlayan satıra geçer ve akümülatördeki veriyi PORTB’ye atar. Ve bu şekilde de ledimiz çalışır vaziyete geçmiş olur. Umarım anlatabilmişimdir. Ben etiket olarak Elma seçtim siz armut yada farklı kelimeler kullanabilirsiniz. Okuduğunuz için teşekker ederim. Aşağıdan simülasyona ve not defterine ulaşabilirsiniz.

 Buradan da simülasyon videosuna bakabilirsiniz.

 

Not : Burada verdiğimiz bilgiler yüzeysel bilgilerdir tabiki eksiklerimiz olacaktır. Ben bildiklerimi aktarmaya çalıştım.Bilgi paylaştıkça çoğalır. Kolay Gelsin iyi çalışmalar.

 

 

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir