Bu ay ki yazı dizimizde, en çok kullanılan
sistemlerden biri olan analog bir verinin dijitale dönüştürülüp,
LCD ve LED Display de nasıl görüntülendiğini, hem MASM, hem de Pic Basic
Pro örnekleri ile aşağıdaki örnek program üzerinde inceleyerek anlamaya
çalışacağız. Bu arada Pic Basic Pro ile Macro Assembler'ın farklarını da
kıyaslamaya çalışacağız.
Yukarıdaki programların açıklamasız metinleri
için buraya tıklayın!
Şimdi daha kolay incelenebilmesi açısından
programın aşağıda akış diyagramını verdim.
Aşağıdaki şekillerde ADCON0 ve ADCON1 yazmacı ile ilgili tüm detaylar
yer almaktadır.
Yukarıdaki Resimleri Daha Büyük
ve Net Görmek İçin Üzerlerine Tıklayın!
Şimdi aşağıdaki vereceğimiz örnek Pic Basic Pro ile yapılmış bir örnektir.
Şimdi nereden çıktı Pic Basic Pro acaba ? işte bu soruyu merak edenler
için hemen belirtmeliyim ki hem MASM (Macro
ASseMbler)
, hem de Pic Basic Pro programlarını peş peşe vererek programlar arasındaki
boyut farkının görülmesini istedim. Ayrıca bu programla çok az satır yazarak
4 kanal ADC işlemini bir çırpıda yapmak mümkün.
Yani bu uzun paragrafın ana fikri; Programlarınızı Pic Basic Pro kullanarak
daha kısa zamanda ve daha gelişmiş yapıda hazırlayabilirsiniz.
Bir programlama dili programcıya ne kadar az komut kullanarak ne kadar
çok ve gelişmiş işlem yapma olanağı sağlıyorsa, o programlama dili hem
kazandırdığı zaman, hem programcıya sağladığı daha fazla hakimiyet açısından
mikrodenetleyiciler dünyasında ve de bilgisayar programlama dünyasında
tercihte üst sıralarda yer almasını sağlar.
Haa! şimdi belki MASM kullanan arkadaşlarım beni “-Aaa ne yapıyorsun
? bir Mikrodenetleyici’ ye hakim olmanın en iyi yolu Assembler kullanmaktır
diye eleştireceklerdir. Tamam Assembler ama bazen assemblerin vermediği
ya da belki satırlarca sürecek mantıklarla ancak tasarlanabilecek ve bir
o kadar da zor takibi yapılabilecek bir programı Pic Basic Pro bana sağlıyorsa,
ki sağlıyor, ben işte o an Pic Basic Pro’ yu tercih ederim.
Hem zaten program yazarken her yönüyle düşünmek gerekir; hız, az program
satırı, PIC’in her özelliğine, yeni geliştirilenn her program mantığında
sahip olabilme, elinizin altında bulunan ve herbiri kendi başına sizi 5-10
assembler bloğundan kurtarabilecek fonksiyona sahip komutlar, vs, vs,....
İşte birçok sebep.
Neyse işte bir örnek;
4 kanal ADC olup, LCD ye dönüştüren Pic Basic Pro Compiler ile derlenmiş
bir program.
' Bu Picbasic Pro programı 16F877 ADC üzerindeki portları okuyor.
' LCD pin pinleri tanımlanıyor
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
Define LCD_DREG PORTD
' Değişkenler yerleştiriliyor.
a var
byte
b var
byte
c var
byte
ADCON1 = 4
Low PORTE.2
Pause 100
Goto mainloop
' Subroutine to read a/d convertor
getad:
Pauseus 50
ADCON0.2 = 1
Pauseus 50
Return
' Subroutine to get pot x value
getx:
ADCON0 = $11
Gosub getad
x = ADRESH
Return
' Subroutine to get pot y value
gety:
ADCON0 = $49
Gosub getad
y = ADRESH
Return
' Subroutine to get pot z value
getz:
ADCON0 = $59
Gosub getad
z = ADRESH
Return
mainloop:
Gosub getx
Gosub gety
Gosub getz
Lcdout $fe, 1, "a=", #x, " b=", #y, " c=", #
Pause 100
Goto mainloop
End
4 kanal analog dijital çevirme işleminde, Pic’ lerin üreticisi olan
Microchip firmasının üretmiş olduğu Pic Microların yazılımı için Mplab
programı kullanılmaktadır. Fakat Pic Basic Pro ile MASM’ı birlikte çalıştırmanın
yazılım açısından çok büyük kolaylık sağlayacağını sanırım uygulamalarda
siz de gördünüz ve sizden gelen istekler doğrultusunda, talep yoğunluğuna
göre Pic Basic Pro ve Parsic Çalışmaları da vermeye çalışacağız. Pic Basic
Pro ile Simülasyonun nasıl gerçekleştiğini önümüzdeki aylardaki yazı dizilerimizden
izleyebilirsiniz.
Önümüzdeki ay Hiçbir dil bilmeksizin bir Pic
Mikroişlemci ile düşündüğünüz her tür projeyi nasıl gerçekleştirebileceğinizi
merakla bekleyin.
Hepinize Mutlu Günler...
Adnan IŞIK