PIC PROJELERI - DERS-3

GİRİŞ
PIC PROJELERİ
PIC ÖĞRENİYORUM
=> DERS1
=> DERS-2
=> DERS-3
=> DERS-4
DEVRELER
FAYDALI LİNKLER
DOWNLOAD



 

C-PROGRAMLAMA

1-DEĞİŞKEN TANIMLAMAK (EQU derleyici komutu):

            Program içerisinde bazı değerleri geçici veya sürekli olarak saklamak ihtiyacı duyarız. Bu amaçla programın başlangıcında kullanılacak tüm değişkenlere birer isim ve adres verilerek değişken tanımlaması yaparız. RAM hafızanın 000Ch – 004Fh adresleri arasında 68 tane kaydedici bu iş için ayrılımıştır. İstenilen adres değerleri seçilerek değişkenlerimizi tanımlamış yani onlar için RAM hafızada yer ayırmış oluruz. Aşağıda değişken tanımlanmasının nasıl olduğu gösterilmiştir.  

Kullanımı:

<Değişken adı>        EQU   <Adresi>

Örnek:

SAYAC

EQU

h’0C’

 

SAYI_1

EQU

h’0D’

 

SAYI_2

EQU

h’0E’

 

TOPLAM

EQU

h’0F’

 

..........

......

......

 

..........

......

......

 

 

Değişken tanımlamada EQU komutu kullanılır.EQU komutu PIC16F84 ‘e ait bir komut olmayıp sadece derleyiciye  (MPASMWIN) ait bir dönüştürme komutudur. EQU komutundan sonra belirtilen adres değişken için ayrılır. Değişkene ait değer bu adresin gösterdiği RAM hafıza hücresinde saklanacaktır.

 

2-DEĞİŞKENİ SIFIRLAMAK (CLRF komutu):

            Bir değişkenin içeriğini sıfırlamak için CLRF komutu kullanlır. Aşağıda kullanım şekli ve örnekler verilmiştir.

 

Kullanımı:

CLRF   <değişken veya SFR  adı>

Örnek:

            CLRF    SAYI_1            ;sayı_1= 00h değerini alır.

            CLRF    SAYAC ;sayac = 00h değerini alır.

            CLRF    TRISA                        ;TRISA = 00h değerini alır.

 

3-DEĞİŞKENE DEĞER AKTARMAK (MOVLW ve MOVWF komutları):

            Direkt olarak bir değişkene değer aktarma komutu bulunmadığından dolayı, bir değişkene değer aktarmak için önce, aktarılmak istenen değer W kaydedicisine ve oradan da değişkene aktarılır. Bu işlem için iki komut arda arda kullanılır. W’ye aktarılan değer saklı kalır ta ki değiştirilene kadar.

 

Kullanımı:

MOVLW       <değer>

 

MOVWF       <değişken veya SFR  adı>

 

Örnek: SAYI_1 değişkenine 3Bh değerini aktaralım.

 

            MOVLW   0X3B            ;3Bh değeri W kaydedicine aktarılır.

            MOVWF   SAYI_1        ;W içeriği SAYI_1 değişkenine aktarılır.

 

Not: 0X3B yazım şekli heksadesimal sayılar için kullanılır.

 

4- DEĞİŞKEN BASAMAKLARINI DEĞİŞTİRMEK( BCF ve BSF komutları)

            Değişkenlerimiz veya SFR kaydedicilerimiz sekiz basamaklı binary      değerleri içeren kaydedicilerdir. Programlamada herhangibir basamağın değerini değiştirmemiz gerekebilir. Bu amaçla BCF ve BSF komutları kullanılır.

Kullanımı:

BCF lojik “0” , BSF lojik “1” değerini yükler.

 

BCF    <değişken veya SFR  adı> , <basamak>

 

BSF    <değişken veya SFR  adı> , <basamak>

Örnek: STATUS kaydedicisinin RP0 basamağını  lojik “1” yapınız.

BSF      STATUS, RP0              ;RP0=1 olur, BANK1 hafıza bölgesi

seçilmiş olur.

 

Örnek:TOPLAM isimli değişkenin 4. basamağını lojik “0” yapınız.

Çözüm:

BCF      TOPLAM,4

5-BANK DEĞİŞTİRME KOMUTLARI

Hafıza haritası SFR vr GPR kaydedicileri olarak uzzunluğuna bölündüğü gibi, genişliğine de BANK1  ve BANK2  olarak bölünmüştür. BANK1 / BANK2 seçimi durum kaydedicisi (STATUS REGISTER)  RP0 ve RP1 bitleri ile yapılır.

 

Örneğin;
BCF    STATUS, RP0 ;RP0=0 yapar, BANK0 seçilmiş olur.


BSF    STATUS, RP0 ;RP0=1 yapar, BANK1 seçilmiş olur.

 

6-PORTLARIN GİRİŞ/ ÇIKIŞ DÜZENLEMELERİ

PORTA

PORTA ‘nın  beş ucu vardır.  TRISA kaydedicisi ile giriş veya çıkış olarak yönlendirilir. Daha sonra PORTA ‘ya istenen bilgi gönderilir veya PORTA ‘dan okunur.

 

Örneğin :

TRISA=00h=(0000 0000)2  yapılırsa PORTA’nın tüm uçları çıkış ucu olarak çalışır.

 

TRISA=04h=(0000 0100)2  yapılırsa PORTA’nın  RA2 ucu giriş,diğerleri çıkış ucu olur.

PORTB

PORTB ‘nin 8 ucu vardır. TRISB kaydedicisi ile giriş veya çıkış olarak yönlendirilir. Daha sonra PORTB ‘ya istenen bilgi gönderilir veya PORTB ‘dan okunur.  Her uç çıkışında (dahili) pull-up dirençleri bulunur. Bu dirençler seçenekler kaydedicisinin (OPTION REGISTER) 7. biti RBPU ile devre alınır veya devre dışı bırakılır. İlk çalışma anında pull-up dirençleri devre dışıdır.

Örneğin :

TRISB=00h=(0000 0000)2  yapılırsa PORTb’nın tüm uçları çıkış ucu olarak çalışır.

TRISB=04h=(0000 0100)2  yapılırsa PORTB’nın  RB2 ucu giriş,diğerleri çıkış ucu olur

 


=> Sen de ücretsiz bir internet sitesi kurmak ister misin? O zaman burayı tıkla! <=