3 Kasım 2010 Çarşamba

LCD UYGULAMALARI

Program 33: LCD ekranin ilk satirina PIC BASIC, ikinci satirina ise MAVI KITAPLAR yazdiran program.


    Program 33 içerisindeki tanimlamalar Sekildeki uygulama devresine göre düzenlenmistir. Belirtilen uygulama devresi, PicBasicPro’da özel tanimli devre olmadigindan her bir baglanti seklinin DEFINE komutu ile tanimlanmasi gerekir.
    Bu program uygulama devresine yüklendiginde LCD ekran üzerinde PIC BASIC ile MAVI KITAPLAR görüntülenir.

Programin açiklamasi:
    Programin (1)-(10) nolu komut satirlari arasinda Sekildeki uygulama devresine göre, LCD’nin PIC16F84’ün hangi portlarina ve portlar üzerinde hangi pinlere bagli olduguna dair tanimlamalar yapilmaktadir.
(1) DEFINE LCD_DREG     PORTB   ‘LCD data pinleri PORTB’ye bagli.
(2) DEFINE LCD_DBIT       4             ‘LCD data pinleri 4. bitten basliyor.
(3) DEFINE LCD_EREG     PORTB   ‘LCD enable pini PORTB’ye bagli.
(4) DEFINE LCD_EBIT       3             ‘LCD enable pini 3. bit’e bagli.
(5) DEFINE LCD_RWREG  PORTB  ‘LCD R/W pini PORTB’ye bagli.
(6) DEFINE LCD_RWBIT    2            ‘LCD R/W pini 2. bit’e bagli.
(7) DEFINE LCD_RSREG   PORTB  ‘LCD RS pini PORTB’ye bagli.
(8) DEFINE LCD_RSBIT     1             ‘LCD RS pini 1. bit’e bagli.
(9) DEFINE LCD_BITS       4             ‘LCD 4 bit bagli.
(10) DEFINE LCD_LINES     2             ‘LCD 2 satir çalisiyor.
(11) PORTB çikis olarak tanimlanmaktadir.
(12) PORTB.2 , “0” yapilarak LCD’ye yazmaya imkan vermek için R/W girisi Low yapilarak Yazma (W) moduna alinir. LCD’nin R/W girisi devre üzerinde saseye baglanirsa program içerisine (5), (6) ve (12) nolu komut satirlarini yazmaya gerek kalmaz.
(13) nolu komut satiri ile LCD’nin kullanima hazir hale gelmesi için gerekli gecikme süresi ayarlanir.
(14) nolu komut satiri ile LCD ekrani silinir.
(15)  nolu komut satirinda LCDOUT  $FE,2 komutu ile kursör satir basina getirilir ve tirnak içerisinde belirtilen “PIC BASIC” ekrana yazdirilir. Ekrana yazdirilacak tüm karakterler program içerisinde tirnak (“) isareti ile gösterilir.
    Bu komut satirinda PIC BASIC yazisinin ilk satira yazilacagi belirtilmemistir. Eger komut satiri içerisinde yazinin kaçinci satira yazilacagi belirtilmez ise Picbasic programi ilgili yaziyi LCD’nin ilk satirina satir basindan itibaren yazar.
     Ayni komut satirinda LCDOUT $FE,2 komutunda “2” rakami yazilmasa dahi LCD ekran üzerinde yazma islemi satir basindan baslar.
(16) nolu komut satirinda LCDOUT, $FE,$C0 komutu ile kursör ikinci satirin basina getirilerek, “MAVI KITAPLAR” ekrana yazdirilir.
    Bu komut satirinda yazinin ikinci satira yazilacagi belirtilmesine ragmen, yazma isleminin ikinci satirin hangi bölgesine yazilacagi belirtilmemistir. Eger komut satiri içerisinde yazinin satir içerisinde kaçinci bölgeye yazilacagi belirtilmez ise Picbasic programi ilgili yaziyi LCD’de satir basindan itibaren yazar.
(17) nolu komut satirindaki END komutu ile program sonlandirilir.

Program 34: Sekil 7.3’deki uygulama devresi ile LCD ekranin ilk satirina PIC BASIC, ikinci satirina MAVI KITAPLAR yazdiran program.




    Sekildeki devre kullanildiginda Program 33’de DEFINE komutu ile tanimlanan (1)-(10) nolu komut satirlarinin tamami ile (11)nolu komut satirinda belirtilen TRISB=0 komutunun kullanilmasina gerek kalmaz.
    PicBasicPro, Sekildeki devre baglantisini PORTA ve PORTB’ler çikis olacak sekilde program yapisi içerisinde otomatik olarak tanimlar. 
    Program 34’de (3) nolu komut satiri LCDOUT $FE,$84,”PIC BASIC” ve (4) nolu komut satiri LCDOUT $FE,$C2,”MAVI KITAPLAR” seklinde degistirilirse her satir için yazma islemi satir basindan degil, komut satirinda belirtilen konumdan baslar. Bu durumda, 1. satir baslangiç adresi $80 oldugundan, $84 ile PIC BASIC yazisi 4 karakter ve 2. satir baslangiç adresi $C0 oldugundan, $C2 ile MAVI KITAPLAR yazisi 2 karakter saga ötelenerek, LCD ekran üzerinde yazilarin ortalandigi görülür.

Program 37: PORTB’nin  7. bitine  bagli  butona  her  basista  LCD  üzerinde desimal, binary  ve heksadesimal ileri sayan program.

    Program 37, Sekildeki devre ile çalistirildiginda, PORTB’nin 0. bitine bagli butona basildiginda LCD’nin ilk satirinda desimal ve binary formda artan sayilar görüntülenirken, ikinci satirda heksadesimal artan sayilar görüntülenir.
    LCD ekranda sadece desimal sayiyi yazdirmak için programin (11) ve (12) nolu komut satirlari silinmelidir.




    Programin (1) nolu komut satirinda TRISB=%10000000 yapilarak PORTB’nin 7. biti giris diger bitleri ise çikis olarak tanimlanmaktadir.
    (2) nolu komut satiri ile sayma isleminin 8 bit diger bir ifadeyle 255 sayisina kadar sayacagi tanimlanmaktadir.
    (3) nolu komut satirinda SYMBOL komutu ile PORTB’nin 7. biti BUTON olarak isimlendirilmistir. Bu komut satiri kullanilmaz ise programin (13) nolu komut satirindaki BUTON kelimesi yerine PORTB.7 yazilmalidir.
    (4) nolu komut satirinda LCD’nin kullanima hazir hale gelmesi için gerekli gecikme süresi 0,5sn olarak ayarlanmaktadir.
    (5) nolu komut satirinda sayi degerinin 255’e ulasmasi durumunda sayma isleminin “0” sayisindan yeniden baslamasi için BASLA etiketi kullanilmistir.
    (6) nolu komut satirinda LCD ekran temizlenir.
    (7) nolu komut satirinda SAYI degiskeni içerigine sayma isleminin baslangiç degeri olan “0” sayisi atanir.
    (8) nolu komut satirinda butona her basista sayi degerinin “1” artirilmasini saglayan buton kontrol döngüsü DONGU etiketi ile saglanmaktadir.
    (9) nolu komut satirinda 150msn’lik gecikme yapilarak buton arki söndürülerek butona her basista sayi degerinin yalnizca “1” artmasi saglanir. 
    (10) nolu komut satirinda LCDOUT $FE $80 komutu ile LCD’ye PIC çikis bilgisinin satir basindan itibaren yazdirilacagi belirtilir. Tirnak içerisinde belirtilen “DEC=” sabiti ile LCD’ye DEC kelimesi yazdirilir. Komut satirinin sonunda yer alan DEC komutu, sayma isleminin desimal formda yapilmasini saglar.  
 Bu komut satiri isletildiginde sayma degerinin 26 oldugu kabul edilirse,  LCD üzerinde DEC=26 sayisal degeri görüntülenir. 
    (11) nolu komut satirinda sayma islemi, komut satirinin sonunda yer alan HEX komutu ile yapilmaktadir. Heksadesimal bu deger sayma esnasinda görüntülenen desimal degerin heksadesimal karsiligina esittir. Bu komut satirindaki $89 eklentisi ile sayi degeri ilk satirin basindan itibaren 9 karakter ötelenmis olarak LCD üzerinde görüntülenir.    
    Sayma islemi esnasinda örnegin desimal 26’ya ulasan sayi degeri bu komut satiri ile LCD ekran üzerinde HEX=1A olarak görüntülenir.
    Böylece desimal ve heksadesimal sayma islemi LCD ekranin 1. satiri üzerinde gerçeklesir.
   Programin (12) nolu komut satirinda sayma islemi, komut satirinin sonunda yer alan BIN komutu ile yapilmaktadir. 
    Ayni komut satirindaki $C0 eklentisi, sayi degerinin LCD ekrana 2. satirdan ve satir basindan itibaren yazilmasini saglar.
(13) nolu komut satirinda buton kontrolü yapilmaktadir. Butona basilmis ise (BUTON=0) program SAY etiketli (15) nolu komut satirina, basilmamis ise sürekli tekrar buton kontrolü için (8) nolu komut satirina dallanir.
    Programin (16) nolu komut satiri ile sayi degeri “1” artirilir ve yeni deger yine SAYI degiskeni içerigine yüklenir.
    (17) nolu komut satirinda sayi degerinin 255’e ulasip ulasmadigi sorgulanir. Sayi degeri 255’e ulasmamis ise program, buton kontrolünün saglandigi DONGU etiketli (8) nolu komut satirina döner.
    Sayma islemi için butona 255. kez basilacak ise program, BASLA etiketli  (5) nolu komut satirina dallanarak SAYI degiskeni içerigini sifirlar.
    (19) nolu komut satiri ile program sonlandirilir.

Program 38: PORTB’nin 6. bitine bagli butonuna (RB6) her basildiginda LCD üzerinde desimal ileri sayan, 7. bitine bagli butona (RB7) basildiginda ise geri sayan program.



    Program 38’de (1)-(5) nolu komut satirlari arasinda PicBasicPro programi içerisinde özel port tanimlamalari disinda yer alan tanimlamalar yapilmistir.
    (1) nolu komut satirinda PORTB’nin 6. ve 7. bitleri Sekildeki buton baglantisi nedeniyle giris, diger bitler ise çikis olarak tanimlanmistir.
    (2) nolu komut satirinda LDC üzerindeki sayi degeri 8 bit diger ifadeyle 0-254 arasinda sayacak sekilde tanimlanmaktadir.
    (4) ve (5) nolu komut satirlarinda SYMBOL komutu ile PORTB’nin 6. bitine bagli buton BUTON0, 7. bitine bagli buton BUTON1 olarak tanimlanmaktadir.
    (5) nolu komut satirinda LCD’nin kullanima hazir hale gelmesi için gerekli gecikme süresi 0,5sn olarak ayarlanmaktadir.
    Programin (6)-(9) nolu komut satirlari ile sayi degerinin “0” dan baslamasi ve bu degerin LCD üzerinde gösterilmesi saglanir. (9) nolu komut satiri kullanilmaz ise LCD ekranda SAYI=0 degeri görüntülenmez ve butona ilk basista sayma islemi SAYI=1 degerinden baslar.
    (9) nolu komut satirinda sayma isleminin desimal (DEC) olarak ve ilk satirin satir basindan ($FE) itibaren yapilacagi belirtilmektedir. Bu durum (22) ve (29) nolu satirlar için de geçerlidir.
    Programin (10)-(17) nolu komut satirlari arasinda buton kontrolleri yapilmaktadir. (10)-(13) nolu komut satirlari BUTON0,(14)-(16) nolu komut satirlari ise BUTON1 kontrolleri ve yönlendirmeleri yapilir.
    (11) nolu komut satirinda BUTON0’a basilip basilmadigi test edilir. Butona basilmis ise program ileri yönlü sayma islemini gerçeklestirmek için ILERI etiketli (18) nolu komut satirina dallanir. (13) nolu komut satirindaki ENDIF komutu ile BUTON0 kontrolü sonlandirilir. Ayni durum BUTON1 için (14)-(16) nolu komut satirlarinda gerçeklesir.
    (17) nolu komut satiri ile BUTON0 ve BUTON1 için sürekli taramasi yapilir.
    Programin (18)-(24) nolu komut satirlari arasinda sayma isleminin ileri yönde yapilmasi saglanir. (19) nolu komut satiri sayi degerini “1” artirarak yine SAYI degiskeni içerigine yükler.
    (20) nolu komut satiri sayinin ekranda görüntülenmesi için ve buton anahtar ziplamasini engellemek amaciyla 150msn gecikme saglar.
     (22) nolu komut satiri sayi degerini LCD üzerinde gösterir.
    (23) nolu komut satiri sayi degerinin 255’e ulasip ulasmadigini sorgular. Ulasmamis ise sayi degerini butona basilma durumunda “1” artirmak için (10) nolu komut satirina yönlendirir. Ulasmis ise (24) nolu komut satiri isletilerek sayi degerini sifirlamak amaciyla (6) nolu komut satirina dallanir.
    Programin (25)-(31) nolu komut satirlari arasinda sayma isleminin geri yönde yapilmasi saglanir ve isleyis yukarida anlatildigi gibidir.
    (30) nolu komut satiri ile sayi degeri geri yönde “0”a ulasmis ise BASLA etiketli baslangiç noktasina, ulasmamis ise buton kontrollerine dönülür.

Hiç yorum yok:

Yorum Gönder

İzleyiciler

LED DİRENÇ HESAPLAMA

All LEDs require current limiting, without a current limiting mechanism the LED will usually burn out in under a second. Adding a simple resistor is the easiest way to limit the current. Use the calculator below to find out the value of resistor you require.

For example if you are wanting to power one of our_blank">red LEDs in an automotive application you would see that the typical forward voltage is 2.0 Volts and the maximum continuous forward current is 30mA. Therefore you would enter 14.5, 2.0 and 30 into the Single LED calculation box. After calculating you get 470ohm 1 watt as the result. Here is a that allows you to enter a resistor value and generate the corresponding color code.

Note: For automotive applications use the actual system voltage, not 12 Volts. Most 12 Volt system actually operate at around 14.5 Volts.

Supply Voltage
VOLTS
Voltage Drop Across LED
VOLTS
Desired LED Current
MILLIAMPS



Calculated Limiting Resistor
OHMS
Nearest higher rated 10% resistor

Calculated Resistor Wattage
WATTS
Safe pick is a resistor with
power rating of (common values are .25W, .5W, and 1W)
WATTS

LEDs in series

Several leds in series with one resistor
Supply Voltage
VOLTS
Voltage Drop Across LED
VOLTS
Desired LED Current
MILLIAMPS
How many LEDs connected




Calculated Limiting Resistor
OHMS
Nearest higher rated 10% resistor

Calculated Resistor Wattage
WATTS
Safe pick is a resistor with
power rating of (common values are .25W, .5W, and 1W)
WATTS
LM317 UYGULAMA DEVRELERİ HESAPLAMASI

 




Çıkış Voltajı
R1 resistor

R2 resistor

R1 resistor
R2 resistor

Çıkış Voltajı


Lm317 uygulama devreleri ve detayli bilgiye Buradan ulasabilirsiniz

LM555 - ASTABLE OSCILLATOR CALCULATOR

LM555 - ASTABLE OSCILLATOR CALCULATOR
Value Of R1 Ohms Value Of R2 Ohms
Value Of C1 Microfarads
Output Time HIGH SECONDS Output Time LOW SECONDS Output Period HIGH + LOW SECONDS Output Frequency HERTZ Output Duty Cycle PERCENT
Resistor values are in Ohms (1K = 1000) - Capacitor values are in Microfarads (1uF = 1)

NOTE: The leakage currents of electrolytic capacitors will affect the actual output results of the timers. To compensate for leakage it is often better to use a higher value capacitor and lower value resistances in the timer circuits.

LM555 Astable Oscillator Circuit Diagram


LM555 - ASTABLE CAPACITOR CALCULATOR

The next calculator can find the capacitance needed for a particular output frequency if the values of R1 and R2 are known.

Value Of R1 Ohms Value Of R2 Ohms
Frequency Desired Hertz
Capacitance uF
s

VOLT AMPER OHM ve WATT HESAPLAMA

Current:
kA (kiloamps) A (amps) mA (milliamps) µA (microamps)
Voltage:
kV (kilovolts) V (volts) mV (millivolts) µV (microvolts)