3 Kasım 2010 Çarşamba

TUS TAKIMI UYGULAMALARI " KARAKTER VERILI PROG. UYG."

Program 45 :  Basilan tus degerini LCD ekranda gösteren program
 
 
 
Program 45 ile Program 44 ayni yapidadir. Program 44, 1 satir 3 sütun tus taramasi yaparken, Program 45, 4 satir 4 sütun taramasi yapmaktadir.
    Programi (1) numarali komut satirinda PORTA çikis, (2) numarali komut satirinda ise PORTB’nin ilk üç biti giris digerleri çikis olarak tanimlanmistir.
    (3) numarali komut satirinda tus degeri byte büyüklügünde tanimlanmaktadir. Tusun alabilecegi deger maksimum 12 sayisi oldugundan ve bu desimal sayinin binary karsiligi “1100” oldugundan 4 bitlik bu sayi degerinin maksimum 8 bit olan  byte büyüklügünde tanimlanmasi yeterlidir.
    (4)-(10) numarali komut satirlari arasinda tus takimina ait satir ve sütunlarin bagli oldugu PORTB pinleri tanimlanmistir. Sekil 8.6’da da görüldügü gibi B portunun 4,5,6,7 numarali pinlerine tus takimina ait satirlar, 0,1,2 numarali pinlerine ise sütunlar baglanmistir.
    (11)-(12) numarali  komut satirlarinda PORTA ve PORTB içerigi silinmistir.
    (13)-(34) numarali komut satirlari arasinda tus taramasi yapilmaktadir. Tus tarama islemi öncelikle ilk satir “1” yapilarak sütun seviyelerinin tespiti seklinde gerçeklesmektedir.  Daha sonra diger satirlar sirasiyla “1” yapilarak her bir tus için sütun seviye kontrolü sorgulanmaktadir.
    (14) numarali komut satirinda satir1, lojik1 (HIGH) yapilmaktadir.
    (15) nolu komut satirinda 1 numarali tusa basilip basilmadigi kontrol edilmektedir. IF SUTUN1=1 THEN : TUS=1 : GOSUB  LCD komut diziliminde “Eger sütun seviyesi “1”  ise o zaman TUS register içerigine “1” yaz ve LCD alt programini çagir denmektedir. Bu komut satirinda her bir komut iki nokta üst üste (:) ile ayrilmistir. Programin uzun olusundan dolayi satirlari alt alta yazmak yerine yan yana yazabilmek amaciyla bu yöntem tercih edilmistir.
    (16) ve (17) numarali komut satirlari ile 2 ve 3 numarali tuslara basilip basilmadigi kontrol edilmektedir.
    Programin (18) numarali komut satirinda satir1 seviyesi LOW komutu ile sase potansiyeline çekilmektedir. Böylece ilk satir için 1,2 ve 3 numarali tuslara ait tarama islemi sonlandirilmis olur. Bu islem (19)-(23), (24)-(28) ve (29)-(33) komut satirlari arasinda diger tus kontrolleri için tekrarlanir.
    Daha detayli açiklama için Program 44 ve Bölüm 7’yi  inceleyiniz.


XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX




 KARAKTER VERILI PROG. UYG.





Program 50 :5x7 matrix LED’ler üzerinde Sekil 9.10’da görüldügü gibi 0x0 adresli LED’i yakan program.
                                                                                        
 
                                            
 
                                                       
 
PORTB’ye bagli LED’ler ile PORTA’ya bagli 74154 entegresi PIC16F84’den gelen çikis bilgisi ile kontrol edildiginden programin (1) ve (2) numarali komut satirlarinda TRISA ve TRISB register içerikleri “0” yapilarak PORTA ve PORTB çikis olarak tanimlanmistir.
    (3) ve (4) numarali komut satirlarinda program baslangici için PORTA ve PORTB register içerikleri silinmistir.
    (5) numarali komut satirinda LED_YAK etiketi 0x0 adresli LED’in yakilacagi alt program baslangicidir. Bu etiket (8) numarali komut satirindan (5) numarali komut satirina sürekli döngü saglayarak LED’in daima yanik kalmasi amaciyla kullanilmistir.
     (6) numarali komut satirinda 0x0 adresli LED’in bagli oldugu PIC16F84’ün   B portunun 6. biti “1” diger bitleri “0” yapilmaktadir. RB6 “1” yapilarak, Sekil 9.9’da görüldügü gibi RB6 satirina bagli tüm LED’lerin anotlarina pozitif gerilim uygulanmaktadir. Bu satirda belirtilen 5 LED’den hangisinin katoduna sase potansiyeli uygulanirsa o LED yanacaktir.
     (7) numarali komut satirinda RA0=1, RA1=1, RA2=0 ve RA3=1 yapilarak (PORTA=%11101011) yani 74154 entegresinin ABCD girislerine 1101 uygulayarak, 0x0 LED’inin bagli oldugu ilk sütun olan Q11 çikisi “0” yapilir (Bakiniz Sekil 9.9 ve Tablo 9.1).
     Q11 çikisinin “0” olarak yetkilendirilmesi için 74154’ün G1 ve G2 girislerinin “0” olmasi gerekir. Bu girisler RA4’e bagli oldugundan (7) numarali komut satirinda PORTA’nin 4. biti de “0” yapilmaktadir (PORTA=%11101011).
     (8) numarali komut satiri ile yakilan LED’in daima yanik kalmasi için alt programi sürekli döngüye sokmak amaciyla (5) numarali komut satirina dallanma olusturulmustur.
     Program 50 kullanilarak Sekil 9.11’deki LED’i yakmak için (6) numarali komut satiri PORTB=100000 seklinde degistirilmelidir.
     Program 50 kullanilarak Sekil 9.12’deki LED’leri yakmak için (6) numarali komut satiri PORTB=%01010101 seklinde degistirilmelidir.
     Program 50 kullanilarak Sekil 9.13’deki gibi ilk sütuna ait LED’leri yakmak için (6) numarali komut satiri PORTB=%11111111 seklinde degistirilmelidir.



Program 54 :5x7 matrix dizilmis LED’ler üzerinde A harfini sagdan sola dogru kaydiran  program (5 sütun kayan yazi).
 
                                                        
 
                                                                
 
Program 54, Sekil 9.27 ile çalistirildiginda matrix LED’ler üzerinde “A” harfinin sagdan sola dogru kayarak yandigi görülür. Bu islem öncelikle 74154’ün Q15 çikisinin “0” yapilarak en son sütunun seçilmesi ile baslar. Ayni anda PORTB’ye $7E bilgisi yüklenirse SUTUN1 üzerinde Sekil 9.28’deki görüntü olusur.
    74154’de Q15’in bagli oldugu SUTUN1 bilgisi $7E, Program 54 ile bir saga kaydirilir. Bu islemin ardindan 74154’ün Q14 çikisi seçilerek, PORTB’ye $09 bilgisi yüklenirse SUTUN1 VE SUTUN2 üzerinde Sekil 9.29’daki görüntü elde edilir.
     Her sütun kaydirma islemi esnasinda bir sonraki sütuna “A” harfinin satir bilgileri PORTB araciligiyla gönderilir. Bu islemler “A” harfinin matrix dizilmis LED’ler üzerinde SUTUN1’den baslamak üzere tamaminin görüntülenip, SUTUN5’den ayrilisina kadar devam eder.
     Program 54, 4 bölümden olusmaktadir. (1)-(8) numarali komut satirlari arasinda degisken içeriklerine ait Büyüklükler tanimlanmaktadir. (9)-(17) numarali komut satirlari arasinda sütun seçme islemlerini gerçeklestirebilmek amaciyla degisken içeriklerine sabit sayilar atanmaktadir. (18)-(36) numarali komut satirlarinda “A” karakterini olusturan satir ve sütun bilgileri tanimlanmaktadir. (37)-(46) numarali komut satirlari arasinda “A” harfi LED matrix üzerinde kaydirilmaktadir.
     Programin (1)-(5) numarali komut satirlari arasinda sütun bilgilerinin kodlanacagi registerler ile (6) numarali komut satirinda kayma hizini belirleyen    I degiskeni register içerigi byte büyüklügünde tanimlanmaktadir.
     (7) ve (8) numarali komut satirlarinda TRISA ve TRISB register içerikleri     “0” yapilarak PORTA ve PORTB çikis olarak tanimlanmaktadir.





Programin (9)-(17) numarali komut satirlari arasinda PORTA, PORTB ve       I register içerikleri sifirlanmaktadir. Ayrica bu bölümde sütun seçme islemi için PORTA’nin DCBA girislerine uygulanmak üzere SUTUN degiskenlerine sirasiyla desimal formda 15, 16, 17, 18 ve 19 sabit sayilari yüklenmektedir.
Sekil 9.9’da da görüldügü gibi en son sütun olan 74154’ün Q15 çikisi aktif oldugunda PORTA’nin DCBA girisleri desimal 15 (binary 1111) olmalidir.
 Programin (13)-(17) numarali komut satirlarinda SUTUN içeriklerine      desimal 15’den baslamak üzere “A” karakterinin toplam 5 sütunluk bilgisi için en son desimal 19 sayisi atanmaktadir. Kaydirma islemi sagdan sola dogru yapilacagindan LED matrix üzerinde en sagdaki sütun içerigi (SUTUN1)  desimal 15 yapilmaktadir.  
 (18)-(36) komut satirlari ile “A” karakterinin satir ve sütun bilgileri tanimlanir.
 (19) numarali komut satirinda I=I+1 komutu ile “0” olan I içerigi 1 artirilarak I=0+1=1 olur. (20) numarali komut satirinda ise IF komutu ile I degisken içeriginin desimal 10 sayisina ulasip ulasmadigi sorgulanmaktadir. Sayi degeri desimal 10’a ulasmamis ise Program, (21) numarali komut satirina dallanir ve (36) numarali komut satiri ile KARAKTER etiketli (18) numarali komut satirina döner. (19) numarali komut satiri ile “1” olan I içerigi yeniden 1 artirilarak I=1+1=2 olur. Bu durum I=10 olana kadar devam eder. Böylece (21)-(35) numarali komut satirlari arasinda tanimlanan satir ve sütun bilgilerinin toplam 10 komut saykili boyunca LED matrix üzerinde görüntülenmesi saglanir.
 (21) numarali komut satirinda I=10 içerigi I=5 yapilirsa, matrix dizilmis LED’ler üzerinde kayma isleminin iki kat arttigi görülür. Çünkü bu komut satirinda I=5 yapilarak “A” harfine ait her bir sütun bilgisinin görüntülenme süresi yari yariya düsürülmektedir.
 Programin (21)-(35) numarali komut satirlari arasinda “A” karakterine ait sütun bilgileri PORTA’ya, satir bilgileri ise PORTB’ye yüklenmektedir.
 (21) numarali komut satirinda PORTA=SUTUN1 komutu ile (13) numarali komut satirinda desimal 15 olan SUTUN1 içerigi PORTA’ya yüklenmektedir.    Bu komut satiri ile desimal 15 (binary 1111) olan PORTA çikislari 74154’ün DCBA girislerine uygulanir. DCBA girislerinin “1111” olmasi SUTUN1’in bagli oldugu 74154’ün Q15 çikisinin lojik-0 seviyesinde seçilmesini saglar. Q15’in lojik-0 seviyesinde aktif olmasi SUTUN1’e bagli LED’lerin katotlarina sase potansiyeli uygulandigi anlamina gelir.
 (22) numarali komut satirinda “A” karakterine ait ilk satir bilgisi ($7E) PORTB’ye yüklenir. PORTB=$7E (veya binary 01111110) içeriginde “1” olan bitlere bagli satirlardaki LED’lerin anotlarina +5V uygulanir. Böylece SUTUN1’deki LED’ler 74154’ün Q15 çikisindan sase, PORTB üzerinden +5V’luk gerilim alarak “A” karakterinin ilk sütunu olusturulur.
 (23) numarali komut satirinda sütunun görüntülenmesi amaciyla 5msn’lik kisa süreli zaman gecikmesi yapilmaktadir.
 “A” karakterine ait diger satir ve sütun bilgileri sirasiyla programin (24)-(35) numarali komut satirlarinda elde edilmektedir. Dikkat edilirse bu komut satirlari ile “A” karakterinin tamami elde edilirken, SUTUN2, SUTUN3, SUTUN4 ve SUTUN5 içeriklerinin sirasiyla 16, 17, 18 ve 19 olmasi nedeniyle, LED matrix üzerinde SUTUN1’de “A” karakterinin sadece ilk sütunu görüntülenir. Çünkü 74154’de en son Q15 çikisi olup, Q16, Q17, Q18 ve Q19 olmadigindan bu içeriklere ait çikislar elde edilemez.
 “A” karakterine ait sütun bilgilerinin, programin (20) numarali komut satiri ile 10 komut adimi boyunca görüntülenmesinin ardindan program, KAYDIR etiketli (37) numarali komut satirina dallanir.
 (37)-(46) numarali komut satirlari arasinda “A” harfi LED matrix üzerinde kaydirilmaktadir.
 (38) numarali komut satirinda, KARAKTER etiketine geri dönüldügünde sütun görüntülenme isleminin 10 komut adimi boyunca devami için I içerigi yeniden sifirlanir.
 (39) numarali komut satirinda desimal 19 olan SUTUN5 içeriginin       desimal 10 degerine ulasip ulasmadigi sorgulanmaktadir. Çünkü Sekil 9.32’de görüldügü gibi, SUTUN5=15 oldugunda “A” karakteri tamamen görüntülene kadar SUTUN5 içerigi 19,18,17,16 ve 15 olarak degisecek, sayma islemi 14,13,12,11 ve 10’a devam ettiginde “A” harfi ekrani terk edecektir. Dolayisiyla “A” harfinin matrix dizilmis LED’ler üzerinde tamamen görüntülenip yine tamamen kaybolmasi için 10 komutluk ilerlemeye ihtiyaç vardir. Bu nedenle  (39) numarali komut satirinda 19 olan SUTUN5 içeriginin desimal 10 sayisina ulasip ulasmadigi sorgulanmaktadir.
 (39) numarali komut satirinda SUTUN5’in 10’a ulasmasini sorgulayan komut satiri ile “A” harfinin LED matrix üzerinde görüntüsünün kayarak tamamlanmasinin hemen ardindan tekrar kaymasi saglanmistir. Aksi taktirde bu komut satirlari kullanilmaz ise “A” harfi 1 defa kayar ve 74154’ün bosta kalan çikislarinin tamami “0” olana kadar ekran görüntüsü bos kalir. Bos kalma islemi 74514’ün Q15 çikisindan baslamak üzere Q0’a kadar devam eder ve bu turun ardindan “A” harfi yeniden kaymaya baslar.  
 Sekil 9.9’daki devrede 74154’ün tüm çikislarini kapsayacak sekilde 3 adet dotmatrix LED’ler ilave edilirse, bu tür sakinca ortadan kalkar ve tarama islemi 15 sütun boyunca devam eder ve bastan baslar. Bu özel durum 74154’ü her 10 sütun bilgisi görüntülendikten sonra kaydirma islemini gecikme olmadan yeniden baslatmak amaciyla yapilmistir.
 Programin (40)-(45) numarali komut satirlari ile SUTUN bilgileri 1 azaltilarak,  saginda yer alan sütun bilgisinin hemen yanindaki sol sütunda görüntülenmesi saglanir. Bu durumda sirasiyla SUTUN içerikleri      SUTUN5=19-1 =18, SUTUN4=18-1=17, SUTUN3=17-1=16, SUTUN2=16-1=15 ve SUTUN1=15-1=14 olur.
SUTUN5’in desimal 14 ve SUTUN4’ün desimal 15 olmasi ile 74154’ün Q15 ve Q14 çikislarina bagli SUTUN1 ve SUTUN2 üzerinde “A” karakterine ait ilk iki sütun bilgisinin görüntülendigi görülür.
(20) numarali komut satiri ile “A” karakterine ait ilk iki sütun bilgisi 10 komut adimi boyunca görüntülenmesinin ardindan program yeniden KAYDIR etiketli alt programa dallanir. Bu bölümde SUTUN içerikleri bir kez daha 1’er azaltilir. KARAKTER etiketli programa dönüldügünde bu kez “A” karakterine ait üç sütun LED matrix üzerinde görüntülenir. Bu islemler “A” karakteri tamamen görüntülenip, LED matrix üzerinden kayboluncaya kadar devam eder ve program kaydirma islemine bastan baslar. Çünkü bu durumda SUTUN5 içerigi desimal 10 sayisina ulastigindan program BASLA etiketli (9) numarali komut satirina dallanir.
 Matrix dizilmis LED’ler üzerinde farkli bir karakteri kaydirmak için programin (22), (25), (28), (31) ve (34) numarali komut satirlari degistirilmelidir.

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)