PIC PROGRAM ÖRNEĞİ 1

ne-nasil.net

Sun

05

Dec

2010

A Portunun ilk Butonuna Basıldığında B Portunun ilk LED’ini Yakan Program

pic uygulamaları
pic

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.

 

ne-nasil.net
pic uygulamaları
pic örnekleri

        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.

 

PIC UYGULAMALARI
PIC

(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.

 

pic örnekleri
pic

(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.

 

PIC16F84
pic 16f84

(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.

 

pic dersleri
elektronik

 (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.

Programın uygulama kısımları için BURAYA göz atabilirsiniz.

PIC BASIC PRO UYGULAMALARI DERS KİTABI

 

0 Comments