3 Kasım 2010 Çarşamba

SAYICI UYGULAMALARI

Program 20 : B portuna bagli LED’ler üzerinde 8 bit binary ileri sayan program.
Program satirlarinin açiklanmasi :

Programin (1) nolu komut satirinda TRISB içerigi “0” yapilarak PORTB registeri çikis olarak tanimlanmistir.

(2) nolu komut satirinda SAYI degisken içerigi 8 bitlik binary sayma islemi için byte büyüklügünde tanimlanmistir.

(3) nolu komut satirinda PORTB içerigi silinmistir.

(4) nolu komut satirinda 8 bitlik binary sayma isleminin “0” baslangiç degeri SAYI degiskeni içerisine atanmistir.

(5) nolu komut satirina sürekli döngüden dönüs için ILERI etiketi atanmistir.

(6) nolu komut satiri sayma islemini gerçeklestirir. Bu komut satiri her isletildiginde SAYI içerigi bir artirilarak tekrar SAYI degiskeni içerisine kaydedilir.

(7) nolu komut satiri sayma isleminde bekleme gecikmesi saglar. Bu komut satiri ile binary sayi degeri LED’ler üzerinde 1sn’lik süre boyunca görüntülenir.

(8) nolu komut satiri ile SAYI içeriginin PORTB registerine kaydedilmesi saglanir. Böylece SAYI degiskeni içerigi PORTB’ye bagli LED’ler üzerinde görüntülenir.

(9) nolu komut satirinda GOTO komutu ile (5) nolu komut satirina dönülerek sayma isleminin devamliligi saglanir.

(10) nolu komut satiri ile program sonlandirilir.

Program 22 : B portuna bagli LED’ler üzerinde 8 bit binary geri sayan program.
Programin (1) nolu komut satirinda TRISB içerigi “0” yapilarak PORTB registeri çikis olarak tanimlanmistir.

(2) nolu komut satirinda SAYI degisken içerigi 8 bitlik binary sayma islemi için byte büyüklügünde tanimlanmistir.

(3) nolu komut satirinda PORTB içerigi silinmistir.

(4) nolu komut satirinda 8 bitlik binary geri sayma isleminin “255” baslangiç degeri SAYI degiskeni içerisine atanmistir.
(5) nolu komut satirina sürekli döngüden dönüs için GERI etiketi atanmistir.

(6) nolu komut satiri sayma islemini gerçeklestirir. Bu komut satiri her isletildiginde SAYI içerigi bir azaltilarak tekrar SAYI degiskeni içerisine kaydedilir.

(7) nolu komut satiri sayma isleminde bekleme gecikmesi saglar. Bu komut satiri ile binary sayi degeri LED’ler üzerinde 1sn’lik süre boyunca görüntülenir.

(8) nolu komut satiri ile SAYI içeriginin PORTB registerine kaydedilmesi saglanir. Böylece SAYI degiskeni içerigi PORTB’ye bagli LED’ler üzerinde görüntülenir.

(9) nolu komut satirinda GOTO komutu ile (5) nolu komut satirina dönülerek sayma isleminin devamliligi saglanir.

(10) nolu komut satiri ile program sonlandirilir.

Programda sayma islemi hangi sayidan geriye dogru yapilacak ise o deger (4) nolu komut satirinda oldugu gibi SAYI degiskeni içerigine yerlestirilir. Geriye sayma isleminin baslangiç degeri bu satirda desimal 255 olarak belirtilmistir. Bu deger binary olarak (11111111) olarak da yazilabilir.

Binary sayi degerine dikkat edildiginde geriye dogru 8 bitlik bir sayma islemi yapilmaktadir. (4) nolu komut satirinda belirtilen bu deger binary olarak (00001111) seklinde düzenlenirse bu kez sayma islemi bir defaya mahsus olarak 15’den geriye dogru olacaktir ancak sayi sifira ulastiginda geriye sayma sayi degeri tekrar 255’ten (11111111) baslayacaktir.

Program 25 : 7 segment displaylerde 0-99 ileri sayan program.
 
 
    Sekildeki devre ortak katotlu 7 segment displayler ile 0-99 ileri sayici olarak çalismaktadir. Devrede kullanilan 4511 entegresi BCD / 7 segment kilitleyici decoder (kod çözücü) olarak çalismaktadir.
    Devreye ilave olarak display segmentlerine (4511 çikislarina) 330ohm dirençler ve 4511 entegresinin LT, BI pinleri +5V'a  baglanmalidir.
    Ortak katotlu 7 segment displayler ayni zamanda 7448 (7 segment kod çözücü) entegresi ile de kullanilabilirler. Ancak sekildeki devrede 4511 entegresinin kullanilma nedeni, 7 segment kod çözücü özelliginin yaninda kilitleme özelliginin de bulunmasidir.
    4511 entegresinin LE girisi (5 nolu pin) pozitif degerlikli (yaklasik +3V ve üzeri) yapildiginda display üzerinde en son görüntülenen rakam, A,B,C,D giris degerlerine bakilmaksizin sabit kalir. A,B,C,D giris degerlerine göre display üzerinde degisik rakamlar elde etmek için diger bir ifadeyle 4511 entegresini 7 segment kod çözücü olarak aktif etmek için, LE girisine sase potansiyeli yapilamali ve LT ile BI girisleri ise pozitif degerlikli olmalidir.

    Program 25, PIC16F84’e yüklenip devre çalistirildiginda displayler üzerinde 0-99 ileri sayma isleminin gerçeklestigi görülür.
    Devrede 4511 entegrelerine ait A,B,C ve D data girisleri birbirlerine paralel baglidir. Dolayisiyla PIC16F84’ten uygulanan datalar ayni anda iki 4511 girisine de uygulanir. Ancak buna ragmen displaylerde farkli rakam degerleri görüntülenir. Bunun sebebi program araciligiyla 4511 entegreleri çok kisa zaman araliginda tarama yöntemi seklinde ayri ayri seçilir ve 8 bitlik sayi degeri 4’er bit halinde 4511 entegrelerine ayri ayri gönderilir.
    Programin (1) nolu komut satirinda TRISB register içerigi 0 yapilarak PORTB’nin çikis olarak tanimlanmasi saglanmistir.
    Sayma islemi 0-99 araliginda yapilacagindan ve desimal 99 degeri binary olarak (1100011) degerine esit oldugundan, 7 bitlik bu sayi için (2) nolu komut satirinda SAYI degisken içerigi byte büyüklügünde tanimlanmistir. Byte olarak tanimlanan bir degisken içerigi maksimum 8 bit olabilir.
    (3) ve (4) nolu komut satirlarinda DISPLAY1 ve DISPLAY2 degisken içerikleri byte büyüklügünde tanimlanmistir. Bunun nedeni(11) ve (12) nolu komut satirlarinda görüldügü gibi her iki display kontrolü için 4511 girisleri A,B,C ve D olmak üzere 4’er bitliktir ve bu büyüklükler byte ile tanimlanabilmektedir.
    (5) nolu komut satirinda ana program çalistirilmadan önce PORTB içerigi sifirlanarak, bu register içeriginde istenilmeyen bilgi kalintilarinin silinmesi saglanir.
    (6) nolu komut satiri ile 0-99 sayicisina ait sayma isleminin baslangiç degeri olan 0 sayisi SAYI degiskeni içerisine yüklenmektedir.
    (7) nolu komut satirinda ILERI etiketi ile programin (23) nolu komut satirindan bu komut satirina dönebilmesi saglanmaktadir.
    Sayma islemi (8) nolu komut satirinda gerçeklestirilir. Bu komut satiri ile sayi degeri “1” artirilir. Program (23) nolu komut satirindan (7) nolu komut satirina dönüp, (8) nolu komut satirina her gelisinde bu SAYI degisken içerigi “1” artirilarak sayma isleminin 99’a kadar artmasini saglar.
    (9) nolu komut satiri sayma zaman araligini belirler.PAUSE 500 komutu ile sayma islemi 0,5’er saniye araliklarla gerçeklesir.
    (10) nolu komut satiri ileri sayma islemini 99 sayisi ile sinirlar. Bu komut satirinda SAYI degiskeni içeriginin 100’e ulasip ulasmadigi sorgulanir. Sayi degeri 100’e ulasmis ise displayler üzerinde en son 99 görüntülenir ve ayni komut satirinda SAYI degiskeni içerigi 0 yapilarak, sayma islemi 0’dan itibaren yeniden baslatilir. SAYI degerinin içerigine 99 verilmesi durumunda displayde en son 98 rakami görüntülenir ve sayma islemi yeniden 0’dan baslar.
    Sayma islemi 8 bitlik yapilmaktadir. Programin (11) ve (12) nolu komut satirlari ile 8 bitlik sayi degeri 4’er bit halinde iki ayri parçaya bölünür.Ilk 4 bit DISPLAY1’in bagli oldugu 4511 girislerine uygulanirken, son 4 bit DISPLAY2’nin bagli oldugu diger 4511 girislerine uygulanir.
    (11) ve (12) nolu komut satirlarinda yer alan DIG komutu, aritmetik operatör olarak görev yapar. DIG komutu, desimal sayinin istenilen bitini herhangi bir degisken içerisine atamak amaciyla kullanilir.
    Asagidaki örnek programin ilk satirinda SAYI1 içerigine desimal 45 sayisi yüklenmektedir. Ikinci satirda ise DIG 1 komutu ile, SAYI2 içerigine SAYI1’e yüklenen 45 desimal sayisindaki 4 sayisi atanir. DIG komutunun degeri “1” oldugundan, 45 sayisinin sagdan sola dogru sayildiginda 1. biti 4 rakamina karsilik gelmektedir. Bu komut satiri DIG 0 olarak degistirilirse, bu kez SAYI2 içerigine 5 rakami atanir.

SAYI1 = 45 ‘SAYI1’e 45 sayisini atar.
SAYI2 = SAYI1 DIG 1 ‘SAYI2’ye 4 rakamini (45’nin 1. rakami) atar.

    Sayicinin 00-99 sayma islemi sirasinda DIG komutu ile her bir displayin 0-9 rakamlarini uygun zamanlarda ayri ayri göstermesi saglanir. Örnegin sayma rakami 00’dan baslayip 17 gibi bir sayiya geldiginde DIG 0 komutu ile DISPLAY1 “7” rakamini, DIG1 komutu ile “1” rakamini görüntüler.
 
    (13) nolu komut satirinda DISPLAY1 içerigi (11110000) binary sayisi ile bit OR’lama (|) islemine tabi tutularak sonuç PORTB’ye yüklenmektedir. 
              
    Sekildeki uygulama devresine dikkat edildiginde PORTB’nin 4 ve 5. bitleri 4511 seçmek amaciyla kullanilmaktadir. DISPLAY1 ve DISPLAY2’yi süren 4511’in data bilgileri yine PORTB’nin ilk 4 biti tarafindan saglanmaktadir.
Ancak sayma islemi sirasinda SAYI içerigine yüklenen sayi degeri daima 8 bitliktir ve bu durum 4511 ile DISPLAY seçmeyi saglayan üst 4 bit degerinin sürekli degismesine neden olur. Oysa ki PORTB’nin 4 ve 5. bitleri sayma sirasinda her sayi degeri için sürekli “1” yapilarak displayler üzerinde görüntülenmek istenen rakamlarin kilitlenmesi saglanmalidir.
    (13) nolu komut satirinda yer alan “|” bit OR’lama komutu ile PORTB’nin üst 4 bitinin daima “1”, alt 4 bitinin ise DISPLAY1 içerigine bagli olarak degismesi saglanir.
    Program yazimi esnasinda “|” bit OR’lama komut simgesi metin düzenleyiciye klavye üzerinde Alt Gr tusu ile birlikte alt çizgi veya düz çizgi  “_” tusuna basilarak aktarilir.
    Programin (14) ve (17) nolu komut satirlari arasinda DISPLAY1’in bagli oldugu PORTB’nin 5. biti 1msn’lik kisa süre içerisinde önce “0” yapilir ve 4511 entegresi yetkilendirilerek sayinin “1” artmasina izin verilir. Daha sonra bu bit tekrar “1” yapilarak 4511 çikisindaki sayi degeri kilitlenir ve display üzerinde görüntülenmesi saglanir.
     (18) ile (22) nolu komut satirlarinin çalisma prensibi yukarida anlatildigi gibi (13) ile (17) nolu komut satirlarinda oldugu gibidir.
    Program her sayi degeri için (23) nolu komut satirindan (7) nolu komut satirina döner.

Program 28: PORTA’nin 0. bitine bagli RA0 butonuna her basildiginda 7 segment displaylerde 0-9999 ileri sayan program. 


Devreye ilave olarak display segmentlerine (4511 çikislarina) 330ohm dirençler ve 4511 entegresinin LT, BI pinleri +5V'a  baglanmalidir.


       Program 28’de sayma islemi 0-9999 araliginda yapilmaktadir. Maksimum  10000 olan sayi degeri 14 bit oldugundan SAYI ve DISPLAY içerikleri (2)-(6) nolu komut satirlari arasinda 16 bitlik word büyüklügü olarak tanimlanmistir.
    Program 25’e Program 28’de görüldügü gibi buton kontrolüne ait (9)-(11) nolu komut satirlari eklenip, (40) nolu komut satiri GOTO  BASLA olarak degistirildiginde butona her basista displayler üzerindeki sayi degeri 1 artar.
    (10) nolu komut satirinda PORTA’nin 0. bitinin “0” olup olmadigi sorgulanmaktadir. Butona basildiginda PORTA’nin 0. biti “0” degerlikli olacagindan program ILERI etiketli (12) nolu komut satirina dallanarak  Program 25’te anlatildigi gibi displaylerde ilk sayinin görüntülenmesi saglanir.
    Butona basilmamis ise program (11) nolu komut satirini isleterek BASLA etiketli (9) nolu komut satirina döner. Butona basilana kadar döngü devam eder. (14) nolu komut satiri buton arkini söndürmek için 150msn’lik gecikme saglar. (15) nolu komut satirinda maksimum sayi degeri 9999 olarak tanimlanmistir.
    Program 28’de Program 25’in aksine buton kontrolü için (40) nolu komut satirinda belirtilen BASLA etiketine yönlendirme yapilmaktadir. Eger Program 25’te oldugu gibi ILERI etiketine yönlendirme yapilirsa, butona bir kez basildiginda sayma islemi buton kontrolsüz olarak 0-99’a araliginda  sayar.
    Devre üzerinde buton kaldirilarak devreye enerji verilir verilmez sayma isleminin yapilmasi için, program üzerinde (9)(10) ve(11) nolu komut satirlari silinerek, (40) nolu komut satiri GOTO  ILERI seklinde düzenlenmelidir.

Program 28: PORTA’nin 0. bitine bagli RA0 butonuna her basildiginda 7 segment displaylerde 0-9999 ileri sayan program. 


Devreye ilave olarak display segmentlerine (4511 çikislarina) 330ohm dirençler ve 4511 entegresinin LT, BI pinleri +5V'a  baglanmalidir.


       Program 28’de sayma islemi 0-9999 araliginda yapilmaktadir. Maksimum  10000 olan sayi degeri 14 bit oldugundan SAYI ve DISPLAY içerikleri (2)-(6) nolu komut satirlari arasinda 16 bitlik word büyüklügü olarak tanimlanmistir.
    Program 25’e Program 28’de görüldügü gibi buton kontrolüne ait (9)-(11) nolu komut satirlari eklenip, (40) nolu komut satiri GOTO  BASLA olarak degistirildiginde butona her basista displayler üzerindeki sayi degeri 1 artar.
    (10) nolu komut satirinda PORTA’nin 0. bitinin “0” olup olmadigi sorgulanmaktadir. Butona basildiginda PORTA’nin 0. biti “0” degerlikli olacagindan program ILERI etiketli (12) nolu komut satirina dallanarak  Program 25’te anlatildigi gibi displaylerde ilk sayinin görüntülenmesi saglanir.
    Butona basilmamis ise program (11) nolu komut satirini isleterek BASLA etiketli (9) nolu komut satirina döner. Butona basilana kadar döngü devam eder. (14) nolu komut satiri buton arkini söndürmek için 150msn’lik gecikme saglar. (15) nolu komut satirinda maksimum sayi degeri 9999 olarak tanimlanmistir.
    Program 28’de Program 25’in aksine buton kontrolü için (40) nolu komut satirinda belirtilen BASLA etiketine yönlendirme yapilmaktadir. Eger Program 25’te oldugu gibi ILERI etiketine yönlendirme yapilirsa, butona bir kez basildiginda sayma islemi buton kontrolsüz olarak 0-99’a araliginda  sayar.
    Devre üzerinde buton kaldirilarak devreye enerji verilir verilmez sayma isleminin yapilmasi için, program üzerinde (9)(10) ve(11) nolu komut satirlari silinerek, (40) nolu komut satiri GOTO  ILERI seklinde düzenlenmelidir.

Program 29:  4 display ile PORTA’nin 0. bitine bagli RA0 butonuna basildiginda ileri sayan, 1. bitine bagli RA1 butonuna basildiginda ise geri sayan  program.


    Sekildeki uygulama devresinde görüldügü gibi PORTA’nin 0. ve 1. bitlerine ILERI ve GERI butonlari baglanmistir. PORTB çikislari ise 4511 entegreleri ile displayleri kontrol etmektedir.
    Devreye ilave olarak display segmentlerine (4511 çikislarina) 330ohm dirençler ve 4511 entegresinin LT, BI pinleri +5V'a  
baglanmalidir.
 

    Programin (1) nolu komut satirinda TRISB register içerigi 0 yapilarak PORTB’nin çikis olarak tanimlanmasi saglanmistir.
    (2)-(6) nolu komut satirlari arasinda sayma isleminin 0-9999 arasinda olabilmesi için SAYI ve DISPLAY degisken içerikleri word büyüklügünde tanimlanmistir.
    (7) nolu komut satirinda PORTB içerigi sifirlanarak, bu register içeriginde istenilmeyen bilgi kalintilarinin silinmesi saglanir.
    (8) nolu komut satiri ile 0-9999 sayicisina ait sayma isleminin baslangiç degeri olan 0 sayisi SAYI degiskeni içerisine yüklenir.
    (9)-(12) nolu komut satirlari arasinda sayma isleminin ileri ya da geri yönde yapilabilmesi için buton kontrolleri yapilmaktadir.
    (10) nolu komut satirinda PORTA’nin 0. bitine bagli ILERI butonuna basilip basilmadigi kontrol edilmektedir. Butona basilmis ise program ILERI etiketli  (13) nolu komut satirina dallanir ve sayma islemi butona her defa basista yukari yönde “1” artar. Ayni butona basilmamis ise program bu kez (11) nolu komut satirini isleterek PORTA’nin 1. bitine bagli GERI butonunu kontrol edilir.
    PORTA’nin 1. bitine bagli GERI butonuna basilmis ise program GERI etiketli (19) nolu komut satirina dallanir. (20) nolu komut satiri ile SAYI içerisinde kayitli en son sayisal deger bir eksiltilerek geri sayma islemi butona basili oldugu sürece devam eder.
    Programin (17) ve (23) nolu komut satirlarinda kullanilan GOSUB komutu etiket ile belirlenen alt programa dallanmayi saglar. Bu komut satirlarinda yer alan GOSUB  DISPLAY komutu ile DISPLAY etiketli alt program çagrilir ve ana program RETURN komutuna kadar alt programi isletir.
    (25)-(50) nolu komut satirlari arasinda sayma islemi sirasinda elde edilen sayi degeri displayler üzerinde görüntülenmesi saglanir.
    Özetle Program 29’un (1)-(8) araliginda ön hazirlik, (9)-(12) araliginda ileri veya geri sayma islemi için buton kontrolleri, (13)-(18)araliginda ileri sayma islemi, (19)-(24) araliginda geri sayma islemi, (25)-(50) nolu komut satirlari arasinda ise sayi degerinin displayler üzerinde gösterilmesi islemleri yapilmaktadir.
    Program 29, kitabin bu bölümünde anlatilan sayici programlarinin hemen hemen tamamini kapsayan bir özellik tasimaktadir. Dolayisiyla bu bölümdeki her bir program dikkatli incelendiginde Program 29 daha kolay anlasilacaktir.

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)