PIC PROJELERI - DERS-2

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



 

B- PIC ASSEMBLY PROGRAMLAMA DİLİ

        ASSEMBLER PROGRAM  YAZMAK

            Assembler programı üç kısımdan oluşur;

1-GİRİŞ BÖLÜMÜ

            Bu kısımda pic numarası ve konfigürasyon bit düzenlemesi tanımlanır. Derleme işleminde kullanılacak .INC uzantılı gibi dosyalar belirtilir. Aşağıda giriş örnek programı verilmiştir.

 

 

;Bu program 07/OCAK/2004 tarihinde yazılmıştır.

          LIST    P=16F84

            INCLUDE "P16F84.INC"         

             __CONFIG  _CP_OFF &_WDT_OFF &_PWRTE_OFF &_XT_OSC

 

 

; noktalı virgül:

            Noktalı virgülden sonra açıklama, programın adı, yazım tarihi gibi bilgiler eklenebilir. Bu bilgilerin program akışıyla bir ilişkisi yoktur.

 

LIST  P=<pic adı>:

            LIST  ‘den sonra kullanılacak olan pic’in adı yazılır. Biz PIC16F84 kullanacağımız için burası değişmeyecektir.

 

INCLUDE <”dosya adı>”:

        Picler için hazırlanmış özel amaçlı kaydedici (SFR) gibi RAM hafızayla ilgili bazı adres tanımlamalarının bulunduğu dosyadır. Derleme sırasında, derleyici program MPASM.exe bu dosyayı kullanır.

Konfigürasyon Bitleri:

            Konfigürasyon bitleri program hafızasının 2007h adresine yerleştirilmiştir. Sadece programlama ile değiştirilebilir.Aşağıda belirtilen işlevlere sahiptir.

 

_CP_ON           :Program, hafızaya kod korumalı olarak programlanır.

PIC16F84 ‘den okunamaz, silinebilir.

_CP_OFF         :Program, hafızaya kod korumasız olarak programlanır. PIC16F84 ‘den okunabilir, silinebilir.

_WDT_OFF     :WDT sayıcısı çalışmaz.

_WDT_ON    : WDT sayıcısı aktif haldedir.

_PWRTE_ON  :PWRT özelliği aktif. (Bu konu önceki ünitelerde anlatılmıştır)

_PWRTE_OFF  :PWRT özelliği aktif değil.

_XT_OSC        :Kristalli osilatör kullanılacağını ifade eder.

_XT_RC           :RC tip osilatör kullanılacağını ifade eder.

_XT_LP            :Düşük güçlü tipte kristalli osilatör kullanılacağını ifade eder.

_XT_HP           :Yüksek güçlü tipte kristal veya rezenatörlü osilatör kullanılacağını ifade eder.

 

2-DEĞİŞKEN TANIMLAMA BÖLÜMÜ

            Program içinde kullanılacak değişkenlerin tanımlandığı bölümdür. Değişkenler 8 bit genişliğindeki genel amaçlı kaydedicilerle tanımlanır. Daha önceki konularda bahsettiğimiz gibi genel amaçlı kaydediciler 0Ch ile 4F arası RAM bölgesinde bulunmaktadırlar. Toplam 68 tane genel amaçlı kaydedici bulunur.

            Değişken tanımlamada EQU komutu kullanılır, aşağıda örnek program parçası verilmiştir.

Değişken adı

Komut

Adres

 

SAYAC

EQU

h’0C’

 

SAYI_1

EQU

h’0D’

 

SAYI_2

EQU

h’0E’

 

TOPLAM

EQU

h’0F’

 

..........

......

......

 

..........

......

......

 

            Şunu da hemen belirtelim ki GİRİŞ bölümünde INCLUDE "P16F84.INC" tanımlaması yapılmazsa, programlama sırasında kullanılacak özel amaçlı kaydediciler de (SFR) ‘Değişken adı’ kısmında tanımlanmak  zorundadır;

Değişken adı

Komut

Adres

SAYAC

EQU

h’0C’

SAYI_1

EQU

h’0D’

SAYI_2

EQU

h’0E’

TOPLAM

EQU

h’0F’

STATUS

EQU

h’03’

PORTA

EQU

h’05’

PORTB

EQU

h’06’

TRISA

EQU

h’85’

TRISB

EQU

h’86’

..........

....

....

 

3-PROGRAM BÖLÜMÜ

            Bu bölümde amacımıza yönelik hazırlamış olduğumuz PIC16F84 komutlarından oluşan kısım bulunur. Program oluşturma ile ilgili dersler ileride verilecektir. Aşağıda örnek bir programım parçası verilmiştir.

 

BASLA                                                ;BASLA noktası.

INCF               PORTB,F          ;PORTB=PORTB+1

MOVLW           H'00'               ;W ‘ye h’00’ sayısını yükle.

            MOVWF           SAYI_1            ;W ‘deki sayıyı SAYI_1 ‘e aktar.

MOVLW           H'01'               ;W ‘ye h’01’ sayısını yükle.

            MOVWF           SAYI_2           ;W ‘deki sayıyı SAYI_2 ‘e aktar

            CALL                GECIKME         ;GECIKME alt programına git.

            .......                  ............

            .......                  ............

 

PIC16F84 ‘E GÖNDERMEK

            Program yazımı ve PIC16F84 ‘e gönderilmesi konusunda birçok program bulunmaktadır. Bu işlem daha çok bilgisayar program kullanım bilgisine dayanmaktadır. Örneğin MPLAB programında makine dili programı yazıp, derleyerek PIC16F84 ‘e gönderebilmek mümkündür. Ayrıca yazılan program simülasyon yapmak da mümkündür.

            Kitabımızda en basit yöntem gösterilecektir.

1-Note-Pad ‘De Yazım:

NOTEPAD’de komutlardan oluşan programımız yazılır ve  “.ASM” uzantılı olarak kaydedilir.

 

 

2-Mpasmwın İle Derleme İşlemi:

MPASMWIN.exe  programı çalıştırılır ve derlenecek olan asm uzantılı program dosyası  browse butonuna tıklanır ve  bulunduğu yerden yüklenir. Assembler butonuna basılır.derleme işlemi artık başlamıştır. Ekrana sağdaki küçük pencere gelir. 100% yazan kutudaki renk yeşil ise ; derlemesini yaptığımız programda hata olmadığını gösterir. PIC16F84 ‘e gönderilecek HEX uzantılı dosyamız hazırlanmıştır. Bu alanın rengi kırmızı ise; yazım hataları gibi hatalarımız vardır.HEX dosyası oluşmamıştır.

Şunu belirtelim MPASM.exe program algoritmasındaki yani içeriğindeki mantık hatalarını denetlemez. Komut yazım hataları, adı kullanılmış fakat tanımlanmamış değişken vb döngü adları gibi eksikllikleri denetler.

Örneğin derleme işlemi sonucunda “yuruyen.ASM” isimli bir dosya için dört dosya daha oluşturulur;

yuruyen.LST                  yuruyen.HEX

yuruyen.ERR                   yuruyen.COD

            Derleme işlemi sonucunda hata oluşmuşsa ERR uzantılı dosyadan yapılan hatalar görülebilir. Bu dosyada hatalara ilşkin çeşitli hata mesajları bulunur.

MPASMWIN.exe programı görünüşü

hatasız derleme                       hatalı derleme

 


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