3 Kasım 2010 Çarşamba

A portunun ilk butonuna basildiginda B portunun ilk LED’ini (0.LED) yakan program.

Program 1 :  A portunun ilk butonuna basildiginda B portunun ilk LED’ini (0.LED) yakan program.
 
        Program 1’de PORTA’nin ilk butonuna basildiginda PORTB’nin ilk bitine bagli LED’i yakmaktadir. Buton birakildiginda ise LED sönmektedir. PIC16F84’ün tüm girisleri pull-up oldugundan butona basildiginda PORTA’nin 0. biti “0” bilgisini alir. Buton kontrollü programlarda buton basili veya degil iken çikis kontrolü tamamen program araciligiyla yapilir.
Program hakkinda açiklamalar yapmak amaciyla her bir komut satiri numaralandirilmistir. Program yazimi esnasinda numaralandirma gerekmez. Komutlar arasi bosluk “Space – Bosluk” veya “TAB” tusu ile verilebilir. Ancak komutlarin daha anlasilir ve düzenli olmasi için TAB tusu kullanmak avantaj saglar. Ayrica komutlarin büyük veya küçük harf yazilma zorunlulugu da yoktur.
 
              
 
        Programin açiklanmasi :
 
(1)     ; ===== PROGRAM 1 ===== 1BUT_1LED =====
 
        Programin ismi, yazilis tarihi gibi bilgilerin yer aldigi bölüm baslik satiridir. Program içerisinde noktali      virgül (;)  ile baslayan tüm satirlar  derleyici tarafindan heksadesimal’e çevrilmez. Bu satirlar programda çesitli hatirlatmalar yapmak amaciyla kullanilir. Baslikta kullanilan esittir (=) isaretlerinin adedi önemli degildir.
 
 
(2)     LIST           P=16F84
 
        Programlanacak PIC cinsinin belirtildigi komut satiridir. Örnegin PIC16F877 ile program yazimi yapilmak istenseydi bu kez bu komut satiri LIST         P=16F877 olmalidir.
 
 
(3)     INCLUDE   “P16F84.INC”
 
        Microchip firmasi her PIC mikrodenetleyicisi için kullanilmak üzere “Header file” denilen dosyalar düzenlemistir. Bu dosyalar araciligiyla PIC’in RAM bellegindeki özel register adreslerinin program yazimi asamasinda bir çok defa girilmesi zorunlulugu ortadan kalkmistir. Bunun yerine INCLUDE komutu kullanarak register adresleri otomatik olarak atanabilir. 3. satirda PIC16F84 mikrodenetleyicisinin tüm register adresleri yükleme esnasinda INCLUDE komutu ile otomatik olarak tanimlanir.
 
 
(4)     CLRF   PORTB
 
        Bu komut satiri PORTB’yi sifirlar. Özellikle daha önceden programlanip üzerine program yazilan PIC’ler için bu durum önemlidir. Çünkü PIC içerisindeki eski veri port çikis registerinde hala duruyor olabilir.  
        (5),(6),(7),(8) ve (9) numarali komut satirlari birbirleri ile bütünlük olusturur. Bu satirlar PIC entegresine ait portlari giris ve çikis olarak tanimlar.
 
 
(5)     BSF   STATUS,5
 
        BSF komutu Status’un 5.bitini “1” yapar. Status’un 5. bitinin “1” olmasi BANK1’e geç anlamina gelir. BANK1’e geçme nedeni PORTA ve PORTB’yi yönlendiren registerlerin burada bulunmasidir.
 
 
(6)     CLRF   TRISB
 
        TRISB’nin tüm bitlerini sifirlar. Gerek TRISA gerekse TRISB’nin içeriginin sifir “0” olmasi yönlendirdigi port bitlerinini çikis olarak tanimlanmasi anlamina gelir. CLRF  TRISB komutu ile TRISB registerlerinin tamami sifir “0” yapilmis ve yönlendirdigi 8 bitlik tüm PORTB bitleri ise çikis olarak kullanilmistir.
(7)     MOVLW   H’FF’
 
        W registerine H’FF’ bilgisini yükler. Heksadesimal H’FF’ sayisinin binary karsiligi B’11111111’ dir. MOVLW komutu ile MOVWF komutu genellikle birlikte kullanilan bir komuttur. W registerinin içeriginin H’FF’ yapilmasi PORTA’yi giris yapmak için bir ön hazirliktir.
 
 
(8)     MOVWF   TRISA
 
        W registerinin içerigini TRISA registerine atar. H’FF’ sabiti ile TRISA registerinin tüm bitleri “1” oldugundan TRISA araciligi ile PORTA’nin tüm bitleri giris olarak atanir. PIC ile gerçeklestirilen atama ve aritmetik ile ilgili tüm islemler önce W registerine atanir ve oradan hedef registere yönlendirilir. H’FF’ veya B’11111111’ bilgisi 8 bitlik olmasina ragmen 5 bitlik TRISA için fazladir. Ancak fazla bitler islem görmeyeceginden bu yazimin bir önemi yoktur. Ayni komut H’FF’ yerine “1F” olarak da yazilabilir.
 (9)     BCF   STATUS,5
 
        BCF komutu Status’un 5.bitini “0” yapar. Status’un 5. bitinin “0” olmasi BANK0’a geç anlamina gelir. Böylece portlari yönlendirmek için BANK1’de bulunan TRISA ve TRISB registerlerinin ayarinin ardindan tekrar BANK0’a geri dönülür.
 
 
(10)  BUTON
 
        Bu bölüm programda amaçlanan çalismanin baslangiç noktasidir. Buraya herhangi bir etiket verilebilir. Böyle bir etiket atamasinin nedeni 12. satirda yer alan döngüden kaynaklanmaktadir. Döngü hangi komut satirindan itibaren tekrarlanmasi isteniyorsa o komut satirini basina bir etiket konulur.
 
 
(11)  BTFSC   PORTA,0
 
        A portunun sifirinci “0” bitini test eder. BTFSC komutu ile PORTA’nin sifirinci “0” biti test edilir ve eger bu bit sifirsa siradaki komutu atlanarak bir sonraki komut uygulanir. Eger A portunun sifirinci biti “0” degil ise tekrar BUTON satirina dönülür. Butona basilana kadar döngü islemi tekrar eder.
 
 
(12)  GOTO   BUTON
 
        Buton komut satirina dönülür. Bu komut satiri ancak butona basilmadigi zaman isletilir.
 
 
(13)  BSF   PORTB,0
 
        B portunun sifirinci “0” bitini “1” yapar. BSF komutu herhangi bir biti “1” yapmak amaciyla kullanilir. Ayni komut yine bu programin 5. satirinda bu kez Status’un 5. bitini “1” yapmak için kullanilmistir. PORTB’nin sifirinci biti ayni zamanda ilk (LSB) bitidir. 
 
 
(14)  END
 
        Programi sonlandirmak amaciyla kullanilan bir komuttur ve tüm PIC programlari END komutu ile sona erer.
 

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)