PIC Assembler programlama dili

Güncelleme 16/08/2024

        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 4Farası 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

Yazar: Ali Celal

5f59ca35fd9ac7f00cde62f0b0cd0d07?s=90&d=blank&r=g- Elektronik Mühendisi
- E.Ü. Tıp Fakültesi Kalibrasyon Sorumlusu Test kontrol ve kalibrasyon sorumlu müdürü (Sağ.Bak. ÜTS)
- X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.)
- Usta Öğretici (MEB)
- Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin