Ana Sayfa
Antrak Gazetesi
Eski Sayılar
Antrak Ana Sayfası
Yorumlariniz ve Sorularınız için mail adresimiz. Editör Burçak Çubukçu'ya bu adresten ulaşabilirsiniz


İnternette İlk 
Türk Amatör Telsiz Gazetesi

PIC16F877 / SAYI - 6

 


TA5CPO Adnan Işık
E-Mail: isikadnan@isikelektronik.com
Eveet yazın artık iyiden  iyiye kendini göstermeye başladığı şu günlerde insanlar bir yandan tatil özlemi duyup, fırsat bulursa nasıl tatil yapacağının hayalini kurarken, bir yandan da işleriyle daha verimli bir şekilde ilgilenebilmekte.

Biz de bu ay yazı dizimize Pic Basic Pro ile Pic16F877 için tasarlanmış programlarla ilgili bazı örnekler verip, işlerin nasıl daha kısa sürede yapılabildiğini anlatmaya ve macro assembler ile karşılaştırmaya çalıştık.
Programcılıkta daha önceki yazıda da belirttiğim gibi hep bir düşünce vardır. Programlama dili olarak seçilen dil ne kadar Makine diline yakınsa programın kontrol ettiği donanımın uç birimlerine kadar kontrol etme imkanı artar. Bu yüzden yıllarca programcılar, İnsana yakın (üst düzey) ve işlemciye yakın (alt düzey diller) olarak dilleri kendi arasında kategoriye ayırmışlardır.
İşte bence bu geleneksel yapı bence Pic Basic’ de biraz bozulmuş. Yani izlediğim şekliyle öyle hızlı bir değişim süreci geçirdi ki, ilk üretildiği dönemde yalnızca henüz başlangıç düzeyinde mikrokontrol programlamayla uğraşan meslektaşlara yönelik bir yapısı varken şimdi 7'den 70'e, amatörden, profesyonel'e her kesimi destekleyen bir yapıya büründü.

Küçük bazı örneklerle Pic Basic Pro ve Macro assembler programları mümkün olduğunca karşılaştırma fırsatı.
Bu yazıya kadar ki dönemde genelde tüm konulara giriş yapmaya çalıştım. Bundan sonra Pic 16F877 konusunda örnekler verirken, bu örnekleri şu ana kadar ki yöntemlerin hemen tümünü birlikte vererek ,  örnek üzerinde komut yapılarını anlatacağım.

Akış diyagramı şekilde verilmiş bir program bloğu olsun;

Her iki blokta da PORTA,4 kontrol ediliyor. PORTA,4 1 olmadığı sürece PORT'a bakılıyor. 1 olduğunda PORTB'ye Hex.12 değeri gönderiliyor. Program DONGU etiketinin olduğu satırda sonsuz döngüye giriyor.


SAYAC değişkeninin değeri programın önceki satırlarında 10 olarak belirlenmiş olsun...

Her iki blokta da SAYAC adında bir değişkenin 10 değerinden 0 değerine kadar –1'er değer çıkartılarak sayması sağlanıyor. MASM ile bu işlemi sayaç kullanarak ve sürekli kontrol yaparak saydırırken, PIC BASIC PRO'da yine sayaç kullanabileceğimiz gibi yukarıda görüldüğü gibi 10'dan başlayarak 0 değerine kadar -1'er artış miktarı belirlenmiş hazır bir döngü kurulup, döngü tamamlandığında PORTB'nin 0 yapılması sağlanıyor.

Her iki örnekte de “SAYAC” döngüsü içerisinde tekrarlanması gereken komutlar kullanılabilirdi.


PortA'nın 1. biti 0 mı? test ediliyor. Değer 0 olmadığı sürece TEST_PORTA etiketine program yönlendiriliyor. Değer 0 olduğunda PortB'nin 0. biti 1 yapılıyor.


W yazmacındaki h'0A' sayısıyla h'24' sayısını toplayıp, sonucu B port'una bağlı led ya da geliştirilen farklı bir donanım bağlandığında yapılacak küçük değişiklikle orada görüntüleyebilecek program.

Başta belirttiğim gibi buradaki küçük örneklerde birkaç komut ile birlikte MASM-PRO karşılaştırması yapmaya çalıştım. Bu örnekler basit olsalar da bundan sonraki geliştirilecek PIC16F877 projelerinde komutların görevleri de yazılarak gittikçe kompleks örneklerle anlatacağım projeleri bulacaksınız.

Son olarak Pic Basic ile Pic Basic PRO versionu arasındaki farkları görmeniz için komut listesini ve yenileri yanyana veriyorum.

İyi Çalışmalar...
 
 
 
 
PIC BASIC
PIC BASIC PRO
12CIN
@
12COUT
ASM..ENDASM
END
BRANCHL
BRANCH
CLEAR
BUTTON
COUNT
CALL
DEBUG
DEBUG
DATA
EEPROM
DISABLE
FOR .. NEXT
DISABLE DEBUG
GOSUB
DISABLE INTERRUPT
GOTO
DTMFOUT
HIGH
ENABLE
IF..THEN
ENABLE DEBUG
INPUT
ENABLE INTERRUPT
LET
FREQOUT
LOOKDOWN
HSERIN
LOOKUP
HSERIOUT
LOW
I2CREAD
NAP
I2CWRITE
OUTPUT
LCDIN
PAUSE
LCDOUT
PEEK
LOOKDOWN2
POKE
LOOKUP2
POT
ON DEBUG
PULSIN
ON INTERRUPT
PULSOUT
PAUSEUS
PWM
RCTIME
RANDOM
SERIN2
READ
SEROUT2
RETURN
SHIFTIN
REVERSE
SHIFTOUT
SERIN
SWAP
SEROUT
WHILE..WEND
SLEEP
WRITE CODE
SOUND
XIN
TOGGLE
XOUT
WRITE