Teknikim

Üye Girişi

Önemli! Foruma yazılmayan sorulara cevap verilmeyecektir. Lütfen sorularınızı foruma yazın!
PIC Uygulamaları 2-Buton ile Led Yakma
 

Yazan: Tuna BULUT, Tarih: 06-02-2008 15:56

Okunma Sayısı : 3532

Beğenilme : 42

Yayınlama yeri : Dersler, PIC Dersleri


Bu yazımızda PIC 16F628A kullanarak butona basınca yanan, basmayınca sönen LED uygulaması yapacağız.

Kullanılacak Malzemeler

  • 1xPIC16F628A
  • 1x4 Mhz kristal
  • 2x22pf seramik kondansatör
  • 1x100nF seramik kondansatör
  • 1xKırmızı Led(Sarı, yeşil,beyaz veya diğer renkler de olabilir)
  • 2xButon
  • 1x330 ohm direnç
  • 2x100 ohm direnç
  • 2x4.7k direnç
  • 5 V DC kaynak(Batarya, pil, adaptör veya güç kaynağı)

Not: Eğer 9-12 V luk bir kaynak kullanacaksanız bu gerilimi 5 V a düşürebilmek için regülatör(düzenleyici) devresi kullanmanız gerekmektedir.

      Regülatör Devresi

Bu devre 7-20 V arasındaki gerilimi 5 V gerilime dönüştürür.

 

Kullanılacak Malzemeler(Regülatör İçin)

        >>1x7805
        >>1x330uF elektrolitik kondansatör
        >>1x100nF seramik kondansatör

regulator.jpg   7805.gif   16F628A_Pin_Diagram.jpg

        Şekil 1-Regülatör Devresi         Şekil 2-LM780             Şekil 3-PIC16F628A Pin Diyagramı

PIC Devresi

buton_ile_led_yakma.jpg
                                           Şekil 4-PIC Devresi                                                                                              

PIC Assembly Kodu

            ;PIC 16F628A kullanarak Buton ile LED Yakma

            ;Bu kod Tuna Bulut tarafından yazılmıştır.         

            LIST             P=16F628A

            INCLUDE       "P16F628A.INC"

            __CONFIG     _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF

            MOVLW        H'07'

            MOVWF        CMCON                               ;COMPARATOR ÖZELLİĞİ KAPALI VE PORTA I/O İÇİN AKTİF MODDA

            CLRF            PORTB                                ;PORTB Yİ SIFIRLA

                       

            ;GİRİŞ-ÇIKIŞ TANIMLAMALARI

           

            BANKSEL      TRISA                                    ;BANK1 E GEÇİŞ YAP        

            MOVLW       H'FF'  

            MOVWF       TRISA                                   ;PORTA NIN BÜTÜN PİNLERİNİ GİRİŞ YAP     

            CLRF           TRISB                                   ;PORTB NİN BÜTÜN PİNLERİNİ ÇIKIŞ YAP

            BANKSEL      PORTB                                  ;TEKRAR BANK0 A GEÇ

            CLRF           PORTB                                  ;PORTB Yİ SIFIRLA

 

            ;ANA PROGRAM

 

BUTON_KONTROL

            BTFSS         PORTA,0                           ;BUTONU KONTROL ET BASILI DEĞİLSE(1) 1 SONRAKİ KOMUTU ATLA

            GOTO          LED_YAK                           ;LED YAK A GİT

LED_SONDUR

            BCF             PORTB,0                           ;LEDİ SÖNDÜR

            GOTO          BUTON_KONTROL               ;BUTON_KONTROL A GİT

LED_YAK

            BSF             PORTB,0                           ;LED İN BAĞLI OLDUĞU PİNİ 1 YAP

            GOTO           BUTON_KONTROL              ;BUTON_KONTROL A GİT

            END                                                    ;KODUN BİTİMİ

 

Not: Eğer RA6 ve RA7 pinlerini Giriş/Çıkış(I/O) olarak kullanmak istiyorsanız. Harici osilatör kullanmak yerine PIC16F628A'nın içinde bulunan 4 MHz dahili osilatörü kullanabilirsiniz. Bunun için devrede ve kodda birtakım değişiklik yapmanız gerekir: Devrede RA6 ve RA7  pinlerine bağlı bulunan elemanların  yani kristal ve kapasitörlerin bağlantısını kesin ve kodda  _XT_OSC yerine _INTRC_OSC_NOCLKOUT yazın. Ayrıca Reset opsiyonunu kullanmak istemiyor ve bu pini giriş olarak kullanmak istiyorsanız. RA5/MCLR pinine bağlı tüm elemanların ve yolların bağlantısını kesin kısacası bu pini açıkta bırakın ve kodda _MCLRE_ON yerine _MCLRE_OFF yazın. Şunu unutmayın ki RA5 pinini giriş olarak kullanabilirsiniz ama çıkış olarak kullanamazsınız.

Kodun Çalışma Mantığı

Buton açık konumdayken yani butona basılmıyorken akım 5 V luk kaynaktan 4,7kohm ve 100 ohm luk dirençler üzerinden RA0 pinine doğru akar yani bu pin lojik 1 seviyesine çekilir. Eğer butona basılıyorsa akım RA0 pininden toprağa(0) doğru 100 ohm luk direnç ve buton üzerinden akar, yani bu pin lojik 0 seviyesine çekilir. Bu kodda da yaptığımız RA0 pinini sürekli "BTFSS" komutuyla kontrol edip butona basılıyorsa yani RA0 pini 0 sa LED i yakmak, butuna basılmıyorsa yani RA0 girişi 1 se LED i söndürmek.

icon Buton ile Led Yakma ASM Kodu 


   
Beğenilme
E-mail olarak gönder
İlgili makaleler
Teknikim'e kaydet

Okuyucu yorumları  RSS feed Yorum
 

Ortalama Üye Değerlendirmesi

   (0 Oylama)

 

Yorum Sayısı: 1 / 1

ellerinize sağlık

Yazan:: mekatron (Kayıtlı ) Tarih: 20-04-2010 13:59

hocam pic c veya pic basic kodları var mı ?

 

» Yorumu cevapla...

Yorum Sayısı: 1 / 1



Yorumunuzu ekleyin
Sadece kayitli kullanicilar bir Makaleyi yorumlayabilir. Lütfen ücretsiz üye olun veya giriş yapın.


mXcomment 1.0.8 © 2007-2010 - visualclinic.fr
License Creative Commons - Some rights reserved
JoomlaWatch Stats 1.2.9 by Matej Koval