3 Kasım 2010 Çarşamba

PORT GIRIS (BUTON) UYGULAMALARI

Program 11 :  A portunun ilk bitine bagli butona basildiginda, B portunun ilk bitine bagli LED’i (0. LED) yakan program.




 
    Program 11’de butona basilip basilmadigina dair buton kontrolü (6) nolu komut satirinda yapilmaktadir. Sekilde görüldügü gibi buton PORTA’nin 0. bitine pull-up baglanmistir. Butona basildiginda PORTA’nin 0. biti sase potansiyeli almaktadir. Diger bir ifadeyle butona basildiginda PORTA’nin 0. bit girisi “0” olmaktadir. Bu nedenle program içerisinde BUTON=0 kontrolü yapilir.
    (4) nolu komut satirinda yer alan SYMBOL ile A portunun 0. bitine (PORTA.0) BUTON ismi (alias) verilmistir. Semboller, bir sabit veya degiskene programin daha kolay anlasilmasini saglamak veya program içerisinde karmasayi gidermek amaciyla farkli bir isim vermek amaciyla kullanilirlar.
    IF komutu ile BUTON degerinin “0” olup olmadigi sorgulanir. THEN komutu ile buton degeri “0” ise LED_YAK etiketli (8) nolu komut satiri isletilerek LED yakilir.

        Programin açiklanmasi : (1)         8 bitlik TRISB registerine ait tüm bitler “0” yapilarak PORTB register bitleri çikis olarak ayarlanir ve böylece bu portun ilk bitine bagli LED yakilabilir.
 (2)        5 bitlik TRISA registerine ait tüm bitler “1” yapilarak PORTA bitleri giris olarak ayarlanir ve böylece bu portun ilk bitine bagli buton kontrolü saglanabilir.
 (3)       PIC üzerine önceden yazilmis bir program var ise bu komut satiri ile silinir.
 (4)         SYMBOL komutu ile PORTA’nin 0. biti BUTON olarak isimlendirilmistir. Böylece program içerisinde A portunun 0.bitini tanimlayan PORTA.0 ibaresi yerine BUTON yazmak yeterli olur.
 (5)      Programin (6) nolu komut satirindan (4) nolu komut satirina dönebilmesi için DONGU etiketi kullanilir. Bu etiket ile (4)-(6) nolu komut satirlari arasinda buton kontrolünü saglayan sürekli döngü elde edilir.
 (6)         IF  BUTON=0  THEN  LED_YAK
         Eger (IF) BUTON degeri “0” ise o zaman (THEN) LED_YAK etiketli (7) nolu komut satirina dallan.
 (7)         Buton kontrolü için (4) nolu komut satirina dallan.
 (8)        IF…THEN komutlari ile yapilan kiyaslama sonucu botunun basilmasi durumunda program LED_YAK etiketli bu program satirina dallanir.
 (9)       PORTB’nin 0. bitini “1” yap (LED’i yak).
 (10)      Program sonu. 
    Programda (7) ve (8) nolu komut satirlari silinerek, (5) nolu komut satiri IF BUTON=0 THEN HIGH PORTB.0 seklinde düzenlendiginde, programin isleyisinde bir farklilik olmaz ve butona basildiginda LED yanar. Böylece program iki satir kisaltilabilir.  





Program 12 : A portunun 1.bitine bagli butona (RA1) basili oldugu sürece B portunun 1. bitine (RB1) bagli LED’i yakan program.

                                                    

Programin (7)-(11) nolu komut satirlari arasinda IF…THEN…ELSE…ENDIF komutlari birlikte kullanilmistir. Bu program satirlari ile butona basildiginda LED’in yanmasi buton birakildiginda ise LED’in sönmesi saglanir.
IF…THEN kiyaslama komut diziliminde THEN komutundan sonra önceki programlarda oldugu gibi herhangi bir etiket tanimlanabilecegi gibi THEN komutundan sonra farkli bir komut da isletilebilir.
Program 11’de oldugu gibi THEN komutundan sonra kullanilan LED_YAK etiketi gibi bir etiketin kullanilmasi durumunda ELSE veya ENDIF komutlarinin kullanimina gerek yoktur. Ancak THEN komutundan sonra farkli komutlar isletilecek ise IF…THEN komutlari ENDIF ile sonlandirilmalidir.
(7) ve (11) nolu komut satirlarinda, eger (IF) butona basilmis ise o zaman (THEN) LED’i yak, yoksa (ELSE) LED’i söndür denmektedir. 
Program 12, (4) nolu komut satirina kadar program 8 ile ayni yapidadir. Programin (5) nolu komut satirinda (4) nolu komut satirinda oldugu gibi SYMBOL komutu ile PORTB’nin 1. biti LED olarak isimlendirilmistir. Böylece programin devaminda PORTB.1 yerine LED yazmak yeterli olacaktir.
DONGU islemleri programin (6)-(12) nolu komut satirlari ile yapilir.
(7) nolu komut satiri ile butona basilip basilmadigi (buton seviyesi) kontrol edilir. Butona basilmis ise PORTA’nin  1. biti sase “0” potansiyelinde olacagindan THEN komutundan sonra gelen komut isletilerek (8) nolu komut satirindaki HIGH komutu ile PORTB’nin 1. biti “1” yapilir ve LED yanar.
Butona basilmamis veya buton basilip birakilmis ise bu kez program (7) nolu komut satirindan (9) nolu ELSE komut satirina dallanir ve (10) nolu komut satiri ile LED’in sönük olmasi saglanir.
(11) nolu komut satirinda IF..THEN komutlari sonlandirilir.
Programda PORTA’ya bagli buton ile PORTB’nin farkli bitine bagli LED’i yakmak için (5) nolu komut satirindaki PORTB içerigi degistirilmelidir. Örnegin PORTB’nin    3. bitine bagli LED’i yakmak için bu komut satiri SYMBOL  LED=PORTB.3  yapilmalidir.
Programda ayni LED’i PORTA’nin farkli bitine bagli butonla yakmak için ise     (4) nolu komut satirindaki PORTA içerigi degistirilmelidir. Örnegin PORTA’nin  2. bitine bagli butona basildiginda LED’i yakmak için bu komut satiri SYMBOL  BUTON=PORTA.2 yapilmalidir.

Program 13 :A portunun ilk bitine (RA0) bagli butona basildiginda B portuna bagli tüm LED’leri yakan, A portunun ikinci bitine (RA1) bagli butona basildiginda ise LED’leri söndüren program
 
                                                            
 
                                                            
 
        Programin (1) ve (2) nolu komut satirlarinda PORTB çikis ve PORTA giris olarak tanimlanmistir.
(3) nolu komut satirinda PORTB içerigi silinmistir.
(4) ve (5) nolu komut satirlarinda SYMBOL komutu ile A portunun 0. biti (PORTA.0) BUTON0 ve 1. biti
PORTA.1) BUTON1 olarak tanimlanmistir.
(6) nolu komut satiri ile buton kontrollerine ait sürekli döngü islemi saglanmistir.
(7) nolu komut satirinda BUTON0’a basilip basilmadigi kontrol edilmektedir. Eger PORTA’nin 0. bitine bagli butona basilmis ise program (8) nolu komut satirini isleterek PORTB’ye bagli tüm LED’leri yakar.
(8) nolu komut satirinda PORTB bitleri “lojik 1” yapilarak tüm LED’lerin yakilmasi saglanmistir.
(9) nolu komut satirinda BUTON0’a ait IF…THEN komut sorgulamasi ENDIF komutu ile sonlandirilmistir.
(10) nolu komut satirinda BUTON1’e basilip basilmadigi kontrol edilmektedir. Eger PORTA’nin 1. bitine bagli butona basilmis ise program (11) nolu komut satirini isleterek PORTB’deki tüm LED’leri söndürür.
(11) nolu komut satirinda PORTB bitleri “lojik 0” yapilarak yanik durumdaki tüm LED’ler söndürülür.
(12) nolu komut satirinda BUTON1’a ait IF…THEN komut sorgulamasi ENDIF komutu ile sonlandirilmistir.
(13) nolu komut satiri ile sürekli buton kontrolü için (6) nolu komut satirina yönlendirme yapilir.
(14) nolu komut satiri programi sonlandirir.
    Farkli butonlari kullanarak ayni LED’leri yakip söndürmek için programda  (4) ve (5) nolu komut satirlarindaki
PORTA degerlerini degistirmek gerekir. Örnegin butonlarin PORTA’nin 2. ve 3. bitine baglanmasi durumunda
programin (4) nolu komut satiri SYMBOL  BUTON0=PORTA.2 ve (5) nolu komut satiri SYMBOL BUTON1=PORTA.3 seklinde degistirilmelidir.
Ayni butonlari kullanarak ilk butona basildiginda PORTB’nin ilk 4 LED’ini diger butona basildiginda ise PORTB’nin son 4 LED’ini yakmak için program üzerinde (8) ve (11) nolu komut satirlarini degistirmek gerekir.
(8) nolu komut satirinda PORTB içerigi 00001111 ve (11) nolu komut satirinda PORTB içerigi 11110000 seklinde düzenlenmelidir. 

Program 16 :A portunun ilk bitine (RA0) ve ikinci bitine (RA1) bagli butonlara sirasiyla basildiginda B portunun tüm LED’lerini yakan program.
 
                                                        
 
Program 16’da diger programlardan farkli olarak SYMBOL komutu ile buton veya LED tanimlamasi yapilmamistir. Istenildigi taktirde SYMBOL komutu kullanilarak bu tanimlamalar da yapilabilir.
Programin (1) ve (2) nolu komut satirlarinda PORTB çikis ve PORTA giris olarak tanimlanmistir.
(3) nolu komut satirinda PORTB içerigi silinmistir.
(4) nolu komut satiri ile buton1 kontrolü için sürekli döngü islemi yapilmistir.
(5) nolu komut satiri ile PORTA’nin 0. bitine bagli butona basilip basilmadigi kontrol edilmektedir. PORTA’nin  0. bitine bagli butona basilmis ise program PORTA’nin 1. bitine bagli diger butona basilip basilmadigini kontrol etmek için    A etiketli (7) nolu komut satirina dallanir.
Eger ilk butona basilmamis ise (5) nolu komut satirindan sonra (6) nolu komut satiri isletilerek, bu butona basilana kadar (4)-(6) arasinda sürekli döngü islemi olusturulur.
Ilk butonun basilmasinin ardindan (8) nolu komut satiri ile ikinci butona basilip basilmadigi kontrol edilir. Eger PORTA’nin 1. bitine bagli butona basilmis ise PORTB’nin tüm bitleri “lojik 1” yapilarak bu bitlere bagli LED’ler yakilir. Butona basilmamis ise THEN komutundan sonra gelen  komutu atlanarak (9) nolu komut satiri isletilir ve ikinci butona basilana kadar (7)-(9) arasinda sürekli döngü islemi yapilir.
(10) nolu komut satiri ile program sonlandirilir.
PORTA’nin farkli bitlerine bagli butonlara sirasiyla basildiginda B portunun farkli bitlerine bagli LED’leri yakmak için programin (5) ve (8) nolu komut satirlarinda belirtilen PORTA’nin 0. biti ile 1. bit degerleri ile PORTB içeriginin degistirilmesi gerekir. Örnegin A portunun önce 2. daha sonra 3. butonuna sirayla basildiginda B portunun ilk 4 bitine bagli LED’leri yakmak için, (5) nolu komut satiri IF  PORTA.2=0  THEN A yapilmali, (8) nolu komut satiri ise IF  PORTA.3  THEN  yapilmalidir.



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)