Teknikim

Üye Girişi

Önemli! Foruma yazılmayan sorulara cevap verilmeyecektir. Lütfen sorularınızı foruma yazın!
LED ile Flash Yapma
 

Yazan: Tuna BULUT, Tarih: 13-09-2008 09:51

Okunma Sayısı : 1588

Beğenilme : 22

Yayınlama yeri : Dersler, PIC Dersleri


Bu uygulamada PIC 16F628A kullanarak LED ile flash yapacağız, yani LED'in parlaklığını artırarak önce yakacağız sonra söndüreceğiz ve bu işlem sürekli devam edecek.

Bu uygulama için şu konuda yer alan devreyi kullanabilirsiniz.

Pic Assembly Kodu

    ;LED ile Flash Yapma

    ;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

   

    ;-------------DEĞİŞKENLERİ BİR ADRESE ATA----------------

    CBLOCK  H'20'

    i

    IS

    BEK

    SAYAC

    SAYAC1

    SAYAC2

    ENDC

    ;--------------------------------------------------------

    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

   

    ;DEĞİŞKEN DEĞERLERİNİ YÜKLÜYORUZ

    MOVLW   D'01'

    MOVWF   IS

    MOVLW   D'254'

    MOVWF   BEK

    MOVLW   D'03'

    MOVWF   i

       

YAK

    BSF     PORTB,0

    MOVF    IS,W

    CALL    GECIKME

    BCF     PORTB,0

    MOVF    BEK,W

    CALL    GECIKME

    DECFSZ  i,F

    GOTO    YAK

 

;--------------------IS DEĞİŞKENİNİN DEĞERİNİ ARTIRARAK GERİLİMİ ARTIRIYORUZ-----------

ARTIR

    MOVLW   D'03'

    MOVWF   i

    ;IS DEĞİŞKENİNİN 255'E ULAŞIP ULAŞMADIĞINI KONTROL EDİYORUZ

    MOVF    IS,W

    XORLW   H'FF'

    BTFSC   STATUS,2

    ;----------------------------------------------------------------------------------------------------

    GOTO    SONDUR

    INCF    IS,F   

    DECF    BEK,F

    GOTO    YAK

;------------------------------------------------------------------------------------------------------------------------------

 

SONDUR

    BCF     PORTB,0

    CALL    UZUN_GECIKME

    CALL    UZUN_GECIKME

    CALL    UZUN_GECIKME

    CALL    UZUN_GECIKME

    MOVLW   D'01'

    MOVWF   IS

    MOVLW   D'254'

    MOVWF   BEK

    GOTO    YAK

   

;------------------KISA GECİKME-----------------------------------------

GECIKME

    MOVWF   SAYAC

DONGU

    DECFSZ  SAYAC,F

    GOTO    DONGU

    RETURN

;-------------------195 MS LİK GECİKME----------------------------------

UZUN_GECIKME                   

    MOVLW   H'FF'

    MOVWF   SAYAC1      ;SAYAC1 E H'FF' DEĞERİNİ YÜKLE

DONGU1

    MOVLW   H'FF'

    MOVWF   SAYAC2      ;SAYAC2 YE H'FF' DEĞERİNİ YÜKLE

DONGU2

    DECFSZ  SAYAC2,1    ;SAYAC2 İ 1 AZALT VE SAYAC2 ÜZERİNE KAYDET 0 SA BİR SONRAKİ KOMUTU ATLA    

    GOTO    DONGU2

    DECFSZ  SAYAC1,1    ;SAYAC1 İ 1 AZALT VE SAYAC1 ÜZERİNE KAYDET 0 SA BİR SONRAKİ KOMUTU ATLA     

    GOTO    DONGU1

    RETURN

    END

 

Kodun Mantığı

LED'i yakarken çıkış gerilimini yavaş yavaş artırarak LED'in ışık şiddetini artırarak yakmış olduk. Önceki uygulamaların bir kısmında yaptığımız gibi bu uygulamada da çıkış gerilimini ayarlamak için PWM metodunu kullandık. Çıkışa düz bir sinyal değil de kare dalga göndererek gerilimi ayarlamış olduk. Kare dalgayı ise şu şekilde üretiyoruz: Önce çıkışı 1 yapıyor ardından bir süre gecikme koyuyoruz, sonra 0 yapıp gene ardından bir süre gecikme koyuyoruz. İşte çıkış gerilimini belirleyen de bu sürelerin uzunlukları oluyor. Çıkış geriliminin nasıl hesaplandığını şu konudan öğrenebilirsiniz. i değişkenine yüklediğimiz sayıyı artırarak ledin daha yavaş bir biçimde yanmasını sağlayabilirsiniz.  

icon LED ile Flash Yapma 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

süper

Yazan:: yahodan (Kayıtlı ) Tarih: 31-10-2008 01:14

süper olmuş hocam teşekkürler....

 

» 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