PIC16F877 Sayı 4
Yazı dizimizde bu ay, 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 örnek program üzerinde inceleyerek anlamaya çalışıp, bu arada Pic Basic Pro ile Macro Assembler'ın farklarını kıyaslamaya çalışacağız. 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