SATIR ETİKETİ:
Program satırına verilen referans isimdir.Program dallanma yapıp o satıra gitmek için kullanılır.
DEĞIŞKENLER(VARIABLES):
Programda geçici olarak verileri saklamak için kullanılır.Bu veriler RAM de tutulur.
DEĞIŞKEN TIPLERI:
BIT 2 bit ( 0 veya 1) (0-1)
BYTE 8 bit (0-255)
WORD 12 bit (0-65535)
SAYI VAR BIT
RAKAM VAR BYTE
NUMARA VAR WORD
LAKAP(ALIAS):
Bir değişkene başka bir isim vermek için kullanılır.
SAYI VAR ZAMAN
SABİTLER(CONSTANS):
Programda kullanılan sabit değerleri atamak için kullanılır.Birçok yerde kullanılan aynı sabiti değiştirmek gerektiğinde kolaylık sağlar.
SAYI CON 5
NUMERİK SABİTLER:
Üç şekilde sayılar ifade edilebilir.Desimal,binary ve heksadesimal.
A=25 DESİMAL 25
A=110010 BİNARY 10110010
A=$25 HEKSADESİMAL 25
SEMBOLLER(SYMBOLS):
Değişkenler , sabitler yada portlara isim vermek için kullanılır.
SYMBOL BUTON = PORTA.0
PINLER(PINS):
Herhangi bir pine özel bir isim vermek için kullanılır.
LED VAR PORTB.0
ROLE VAR PORTB.1
AÇIKLAMA SATIRI:
Tek tırnak (’) veya REM komutu ile programda istenilen yere açıklama yazılabilir.
HIGH PORTA.0 ’PORTA nın 0. pinini 5v a çek
REM LOW PORTA.0 ( Pasif satır işlemci bu satırı okumaz)
İLAVE DOSYA EKLEMEK:
Daha önceden oluşturulmuş standart dosyaları eklemek için kullanılır.
INCLUDE "ekdosya.bas"
ARİTMETİK VE LOJİK OPERATÖRLER:
+ TOPLAMA
- ÇIKARMA
* ÇARPMA
/ BÖLME
// KALAN
<< SOLA KAYDIRMA
>> SAĞA KAYDIRMA
& (YADA AND) AND (VE) KAPISI
| (YADA OR) OR (VEYA)KAPISI
^ (YADA XOR) XOR KAPISI
~ (YADA NOT) NOT KAPISI
&/ (YADA NOT AND) NAND KAPISI
|/ (YADA NOT OR ) NOR KAPISI
^ (YADA NOT XOR ) XNOR KAPISI
ÖRNEKLER:
SONUC = PORTB + 3
PORTA = PORTB * 3
SAYI = SAYI + 1
A = A / 2
C = B & $ 0F
C = SAYI | $FO
KARŞILAŞTIRMA OPERATÖRLERİ:
= EŞİT
<> EŞİT DEĞİL
> BÜYÜK
< KÜÇÜK
= BÜYÜK EŞİT
---------- Sonra gönderilen Saat 05:03 ---------- İlk önce gönderilen Saat 05:03 ----------
Program Yazma Tekniği
Mikrodenetleyici ve mikroişlemcileri programlamak için yazılmış onlarca programlama dili mevcut.Biz sizlere bunlardar PIC BASIC PRO’yu anlatacağız.Konu anlatımlarına geçmeden önce program yazma tekniklerinden bahsetmek istedim.
Öncelikle yazdığımız program kolay okunur ve sonradan geliştirmeye musait olmalıdır.Program yazarken mutlaka yanlarına notlar alın,küçük açıklamalar yapın. O an programı yazarken size çok basit ve anlaşılır gelen bir sürü komut olacaktır ancak programınıza herhangi bir sebepten dolayı bakan birisi sizin programda ne yapmak istediğinizi kolaylıkla anlayamayabilir ve sizde zaman geçtikçe yazdığınız programa yabancı kalabilir,hatırlamaya bilirsiniz.
Programda alacağınız notlar yada yapacağınız açıklamalar PBP dosyası içerisinde yer kaplamasına karşın , mikrodenetleyici yada mikroişlemcinin içine yazılan HEX kodları içerisinde kesinlikle yer almaz.Yani aldığımız notlar ve yaptığınız açıklamalar ne kadar fazla olursa olsun işlemcide hiçbir yer kaplamaz.Bu nedenle istediğimiz kadar not alabilir açıklama yapabiliriz.
İkinci olarak kullanacağımız pin ve değişkenleri kolay okunur bir şekilde mutlaka adlandırmalıyız.Kullanacağımız pin ve değişkenlere Pin1 - Pin2 yada A1 - A2 gibi isimler vermek yerine kullanıldığı yere uygun olarak anlaşılır bir isim vermeyi tercih etmeliyiz.
Üçüncü olarak doğru ve anlaşılır etiket kullanmalıyız.Kullanacağımız etiklerin isimlerine Etiket1 - Adres1 gibi isimler vermek yerine Döngü gibi bir isim vermek daha açıklayıcı olacaktır.Etiketlerimize isim verirken etiketin altındaki programın ne yaptığı ile orantılı bir isim vermek en mantıklı yöntemdir.
Örnek programı indirmek için tıklayınız...
---------- Sonra gönderilen Saat 05:03 ---------- İlk önce gönderilen Saat 05:03 ----------
Pic Basic Pro - DEFINE Komutu
Osilatör frekansı ve LCD pin yerleşimi gibi bazı değişkenler PBP içerisinde tanımlıdır.DEFINE komutu bu değişkenleri değiştirmemize olanak sağlar.
Ösilatör frekansının değiştirilmesi , LCD pin yerleşimleri , DEBUG pinlerinin değiştirilmesi ve BAUT RATE hızı DEFINE komutu ile değiştirebileceklerimizin bazılarıdır.
DEFINE komutu ile yapılan bütün tanımlamalar mutlaka BÜYÜK harf ile yazılmalıdır.Şimdide DEFINE komutu ile yapılan bazı tanımlamaları verelim...
DEFINE BUTTON_PAUSE 10
DEFINE CHAR_PACING 1000
DEFINE DEBUG_REG PORTB
DEFINE DEBUG_BIT 0
DEFINE DEBUG_BAUD 2400
DEFINE DEBUG_MODE 1
DEFINE DEBUG_PACING 1000
DEFINE HSER_BAUD 2400
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_EVEN 1
DEFINE HSER_ODD 1
DEFINE I2C_INTERNAL 1
DEFINE I2C_SLOW 1
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSEG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 8
DEFINE LCD_LINES 4
DEFINE OSC 20
DEFINE OSCCAL_1K 1
DEFINE OSCCAL_2K 1
---------- Sonra gönderilen Saat 05:04 ---------- İlk önce gönderilen Saat 05:03 ----------
Pic Basic Pro - Satır Etkinlikleri
Satır etkinlikleri demek ile: PBP ’ de program yazarken satırları nasıl kullanacağımız , neler yapacağımız hakkında bilgi vereceğiz.Satırlara istediğimiz açıklamaları yapabalir notlar alabiliriz , bir satırda birden fazla komutu yan yana yazabiliriz ve bir satıra yazdığımız komutlar yazılabilecek karakter sayısınız geçtiğinden dolayı yada isteğe bağlı olarak alt satırdan devam ettirebiliriz.
1) Açıklama Satırı :
Yazdığımız programda açıklama yada sonradan yazdığımız programı rahatlıkla anlayabilmek amacı ile yazdığımız kodların yanına küçük notlar , açıklamalar yazma ihtiyacı duyarız.Aldığımız bu notlar açıklama satırı olarak adlandırılır.Açıklama satırını REM komutu yada (’) tırnak kullanarak oluşturabiliriz.REM komutu veya (’) tırnak işaretini takip eden karakterler derlenmez.Yani HEX dosyası içerisinde yer almaz.Açıklama satırını birer örnek ile açıklayıp bitirelim....
(Mavi renk ile yazılan yazılar derlenmeyecektir)
HIGH PORTA.0 ’Açıklama satırı
REM Açıklama satırı
2) Bir Satıra Birden Fazla Komut Yazmak :
Uzun programlarda satır sayısını azaltmak veya birbiri ile ilgili komutları gruplamak amacıyla bir satıra birden fazla komut yazabiliriz.Bunun için komutlar arasına ) iki nokta koymak işimizi görecektir.
HIGH LED1
HIGH LED2
HIGH LED3
Yukarıdaki komutlar ile aşağıdakiler aynı işlevi görmektedir...
HIGH LED1 : HIGH LED2 : HIGH LED3
3) Satır Devam Ettirme :
PBP’de program yazarken bir satıra en fazla 256 karakter girebiliriz.Karakter sayısını geçtiğimiz programlarda yada isteğe bağlı olarak uzamasını istemediğimiz programlarda (_) alt çizgi kullanarak bir sonraki satırdan devam edebiliriz.Şimdi bir örnek ile açıklayalım....
LOOKUP RAKAM , [$3F, $06, $5B, $4F, $66, _
$6D, $7D, $07, $7F, $6F] , PORTB
---------- Sonra gönderilen Saat 05:04 ---------- İlk önce gönderilen Saat 05:04 ----------
Pic Basic Pro - Aritmetik Operatörler - 1
PBP’de aritmetik işlemler hiyerarşik bi düzene göre yapılır.İşlem operatörlerinin birbirlerine göre öncelikleri vardır.Mesela çarpma ve bölme işlemi , toplama ve çıkarma işlemine göre önceliklidir , daha önce işlem görür.İşlem önceliklerini kendi isteğimiz sıraya göre yapabilmek için işlemleri gruplamamız gerekir.İşlemleri gruplamamız için parantez içine almamız yeterli olacaktır. Hemen bir örnek ile açıklayalım...
A=(B+C)*D
A=B+C*D
Yukarıda gördüğünüz yeşil ile yazılmış işlem ile mavi ile yazılmış işlem aynı değildir.Yeşil ile yazılmış satırda B ve C nin toplamlarını D ile çarpıp A değişkenine eşitleyecektir.Ancak mavi ile yazılmış işlemde çarpma işleminin önceliği olduğundan C ile D nin çarpımını B ile toplayıp A değişkeninin içine yazacaktır...
Aritmetik işlemlerde İşlem Önceliği :
1)( ) Parantez içindeki işlemler
2)* Çarpma
3)/ Bölme
4)+ Toplama
5)- Çıkarma
PBP ’ de Kullanılan Aritmetik Öperatörler :
+ Toplama
- Çıkarma
* Çarpma
** Çarpımın Üst 16 Bitini Elde Etme
*/ Çarpımın Ortadaki 16 Bitini Elde Etme
/ Bölme
// Kalan Bulma
<< Sola Kaydırma
>> Sağa Kaydırma
ABS Sayının İşaretsiz Değerini Verir
COS Sayının Kosinüsünü Verir
DCD 2n Kod Çözme
DIG Dijit
MAX Maximum
MIN Minimum
NCD Kodlama
REV Bit Tersleme
SIN Sayının Sinüsünü Verir
SQR Sayının Kare Kökünü Alır
& Bit AND
| Bit OR
^ Bit XOR
~ Bit NOT
&/ Bit NAND
|/ Bit NOR
^/ Bit XNOR
Yukarıda verdiğimiz aritmetik işlemlerin hepsini diğer aritmetik işlem derslerinde tek tek açıklayacağız.
---------- Sonra gönderilen Saat 05:04 ---------- İlk önce gönderilen Saat 05:04 ----------
Pic Basic Pro - Aritmetik Operatörler - 2
PBP ’ de program yazarken istediğimiz değerleri elde edebilmek için aritmetik operatörlere ihtiyaç duyarız.Bu işlemler matematiksel yada mantıksal olabilirler.Bir önceki dersimizde verdiğimiz aritmetik operatörlerin bir kaçını şimdi açıklığa kavuşturacağız....
1) Toplama :
İki değişkenin içeriklerinin toplanması yada değişkenin içeriğine istediğimiz bir sayının eklenmesini sağlar.
A = 3 : B = 5 : C = 0 ’ Değişkenlere değer atandı
A + B = C <’ A + B nin içeriğini (3+5) C’ ye yükle
A = A + 5 ’ A değişkenine 5 eklendi
2) Çıkarma :
İki değişkenin içeriklerinin farklarını yada değişkenin içeriğinden istediğimiz bir sayıyı çıkarmamızı sağlar.
A = 3 : B = 5 : C = 0 ’ Değişkenlere değer atandı
B - A = C ’ B - A ’ nin içeriğini (5-3) C’ ye yükle
B = B - 2 ’ B değişkeninden 2 çıkarıldı
3) Çarpma :
Pic basic pro ’ da çarpma operatörü kullanılırken 16x16 bit işlem yapılır.Bu işlem sonucunda 32 bitlik sayı elde edilir.Çarpma işlemi için "*" operatörü kullanırsak 32bitlik sonucun alt 16 bitini elde ederiz."**" operatörünü kullanırsak üst 16 biti elde ederiz.Yada "*/" operatörünü kullanırsak 32bitlik sonucun ortadaki 16 bitini elde etmiş oluruz.Şimdide bu operatörlere birer örnek ile açıklık getirelim.
A = B * C ’ B ile C ’ nin içeriklerini birbiri ile çarparak sonucun alt 16 bitini A ’ nın içerisine yazar
A = B ** C ’ B ile C ’ nin içeriklerini birbiri ile çarparak sonucun üst 16 bitini A ’ nın içerisine yazar
A = B */ C ’ B ile C ’ nin içeriklerini birbiri ile çarparak sonucun ortasındaki 16 bitini A ’ nın içerisine yazar
4) Bölme :
Pic basic pro 16 bitlik bölme işlemi yapar.PBP ’ de / operatörü 16 bitlik sonuç elde eder.// operatörü ise bölme işlemi sonrasında kalanı bulmamızı sağlar.Bu operatörleride birer örnek ile açıklayıp konumuza burada son veriyoruz.Kalan operatörler diğer derslerimizde anlatılacaktır...
A = B / C ’ B ’ yi C ’ ye böler ve sonucu A ’ ya yazar
A = B // C ’ B ’ yi C ’ ye böler ve kalanı A ’ ya yazar
---------- Sonra gönderilen Saat 05:05 ---------- İlk önce gönderilen Saat 05:04 ----------
Pic Basic Pro - Aritmetik Operatörler - 3
Bu yazımızda da aritmetik operatörlerin devamı olan ABS , DCD , NCD ve shift(kaydırma) operatörlerini inceleyeceğiz...
1) Shift (Kaydırma) :
A = $A7 ’ A değişkeninin içerisine hex A7 yükle
$F7 = %10100111 ’ Hex A7 nin binary karşılığı
A = A << 2 ’ A ’ nın içeriğini 2 bit sola kaydır
A = %10011100 ’ Binary olarak yeni değer
A = $9B ’ Hex olarak yeni değer
A = A >> 3 ’ A ’ nın içeriğini 3 bit sağa kaydır
A = %00010100 ’ Binary olarak yeni değer
A = %14 ’ Hex olarak yeni değer
2) DCD :
DCD operatörü 8 yada 16 bitlik bir sayının istenilen bitinin değerini lojik (1) yapar.Diğer bitler ise lojik (0) olur.
A VAR BYTE ’ 8 bit (1 byte) değişken atandı
B VAR WORD ’ 16 bit (2 byte) değişken atandı
A = DCD 3 ’ A = 00001000 olur
B = DCD 7 ’ B = 00000000010000000 olur
3) NCD :
NCD komutu ile binary bir sayının içerisindeki en soldaki lojik (1) hangi bitte ise o bitin sayısını değişkenin içerisine yükler.
A = NCD %00010011 ’ Binary sayının içerisindeki en yüksek lojik (1) 4.bitte A = 7 olur
4) ABS :
ABS operatörü bir sayının işaretsiz değerini verir.Bir bytelik sayı 127’den büyük ise (bit8=1 ise) 256 sayı değeri elde edilir.2 bytelik sayı 32767 ’ den büyük ise (bit16=1 ise) 65536 sayı değeri elde edilir.
Cevap = ABS A ’ A = 100 ise cevap = 100
’ A = 200 ise cevap =56
Cevap = ABS B ’ B = 30000 ise cevap = 30000
’ B = 50000 ise cevap = 15536
---------- Sonra gönderilen Saat 05:05 ---------- İlk önce gönderilen Saat 05:05 ----------
Pic Basic Pro - Aritmetik Operatörler - 4
Bu yazımızda da aritmetik operatörlerin bir diğeri ve sonuncusu olan DIG , MAX - MIN , SIN , COS , SQR ve REV operatörlerini de inceleyip aritmetik öperatörler konusunu kapatacağız...
1) DIG :
DIG komutu desimal bir sayının istenilen basamağını elde etmemize olanak sağlar.Desimal sayı en fazla beş haneli olabilir.Sayımızın en sağındaki rakam sıfırıncı bit , en solundaki rakam ise dördüncü bitimizdir.Yani DIG komutuna basamak bilgisi olarak girebileceğimiz değerler 0 ile 4 arasında olmalıdır.
SAYI = 1453 ’ Sayı değişkenine 1453 değeri atandı
A = SAYI DIG 2 ’ Sayı değişkeninin ikinci biti (4) A ’ nın içerisine yüklendi
2) MAX ve MIN :
MAX ve MIN komutları iki sayının büyük veya küçük olanını bulmamıza olanak sağlar.Bu komutlar genellikle bir sayıyı sınırlamak için kullanılır.
A = B MAX 10 ’ B ile 10 dan hangisi büyük ise A ’ nın içerisine yazar
A = B MIN 10 ’ B ile 10 dan hangisi küçük ise A ’ nın içerisine yazar
3) SQR :
SQR komutu bir tam sayının karekökünü bulur.Elde edilen sayı 8 bittir.
A = SQR B ’ B ’ nin karakökünü A ’ ya atar
4) REV :
REV komutu binary bir sayının içerisinde belirlenen bir bitin sağındaki tüm bitlerin tersini alır.
A = 10001010 REV 4 ’ A = %10000101 olur.
5) SIN :
SIN komutu radyan cinsinden verilen bir açının sinüsünü bulur.Elde edilen sonuç 8 bittir ve ikinin tamamlayıcısı formundadır.
A = SIN B ’ B ’ nin içerisindeki sayının sinüsünü A ’ ya yerleştirir
6) COS :
COS komutu radyan cinsinden verilen bir açının cosinüsünü bulur.Elde edilen sonuç 8 bittir ve ikinin tamamlayıcısı formundadır.
A = COS B ’ B ’ nin içerisindeki sayının cosünüsünü A ’ ya yerleştirir
---------- Sonra gönderilen Saat 05:05 ---------- İlk önce gönderilen Saat 05:05 ----------
Pic Basic Pro - Karşılaştırma Operatörleri
Karşılaştırma operatörleri PBP ’ deki koşul operatörleri (IF...THEN) kullanarak bir değişkeni başka bir değişkenle yada bir sayı ile karşılaştırmak için kullanılır.Karşılaştırılacak değişken yada sayı negatif olamaz.Karşılaştırma operatörleri şöyledir:
= Eşittir
<> Eşit Değildir
< Küçüktür
> Büyüktür
<= Küçük Eşit
> Büyük Eşit
---------- Sonra gönderilen Saat 05:05 ---------- İlk önce gönderilen Saat 05:05 ----------
Pic Basic Pro - Komut Seti - 1
Pic Basic Pro ’ nun tüm komutlarını ileriki derslerimizde tek tek anlatacağız ancak bu yazımızda baş vuru kaynağı olması amacı ile tüm komutları topluca kısa açıklamaları ile birlikte vereceğiz.
@ ’ Bir satırlık asm kodu ekler
ASM...ENDASM ’ Birden fazla asm komutu ekler
BRANCH ’ Koşullu dallanmayı sağlar
BRANCHL ’ Koşullu dallanmayı sağlar (2K hafıza geçildikten sonra)
BUTTON ’ Herhangi bir pinden giriş alır
CALL ’ Asm alt programını çağırır
CLEAR ’ Tüm değişkenleri sıfırlar
COUNT ’ Herhangi bir pindeki puls ’ i sayar
DATA ’ EEPROM belleğe sabit değer yazar
DEBUG ’ Herhangi bir bitten asenkron seri çıkış yapar
DEBUGIN ’ Herhangi bir pinden asenkron seri giriş yapar
DISABLE ’ Kesmeleri kapatır
DISABLE DEBUG ’ ON DEBUG işlemini kapatır
DISABLE INTERRUPT ’ ON INTERRUPT işlemini kapatır
DTMFOUT ’ Herhangi bir pinden telefon tuşu sesleri üretir
EEPROM ’ EEPROM belleğe veri yazar
ENABLE ’ Kesmeleri açar
ENABLE DEBUG ’ ON DEBUG işlemini açar
ENABLE INTERRUPT ’ ON INTERRUPT işlemini açar
END ’ Programı durdurup düşük güç moduna geçer
ERASECODE ’ Program belleğinden kod siler
FOR...NEXT ’ Komut grubunu istenilen sayıda tekrar eder
FREQOUT ’ Herhangi bir pinden bir veya iki farklı frekans üretir
GOSUB ’ Alt programı çağırır
GOTO ’ Herhangi bir etikete dallanmayı sağlar
HIGH ’ Herhangi bir çıkışı lojik (1) yapar
HPWM ’ Donanımsal pwm sinyali gönderir
HSERIN ’ Seri olarak veri alımı sağlar
HSERIN2 ’ Seri olarak veri alımı sağlar
HSEROUT ’ Seri veri gönderimi sağlar
HSEROUT2 ’ Seri olarak veri gönderimi sağlar
---------- Sonra gönderilen Saat 05:06 ---------- İlk önce gönderilen Saat 05:05 ----------
Pic Basic Pro - Komut Seti - 2
Pic Basic Pro ’ nun tüm komutlarını ileriki derslerimizde tek tek anlatacağız ancak bu yazımızda baş vuru kaynağı olması amacı ile tüm komutları topluca kısa açıklamaları ile birlikte vereceğiz.
I2CREAD ’ I2C protokolu destekleyen EEPROM ’ dan veri okur
I2CWRITE ’ I2C protokolu destekleyen EEPROM ’ a veri yazar
IF..THEN..ENDIF ’ Koşula bağlı olarak komut yada komutları çalıştırır
INPUT ’ Herhangi bir pini giriş yapar
LCDIN ’ LCD ’ nin RAM inden veri okur
LCDOUT ’ LCD ’ 4 veya 8 bit veri gönderir
LOOKDOWN ’ Değer tablosundan istenilen değeri araştırmayı sağlar
LOOKDOWN2 ’ Değer tablosundan istenilen sabit/değişken araştırmayı sağlar
LOOKUP ’ Değer tablosundaki istenilen değeri almayı sağlar
LOOKUP2 ’ Değer tablosundan sabit/değişken almayı sağlar
LOW ’ İstenilen pini lojik (0) yapar
NAP ’ Mikrodenetleyiciyi kısa süreliğine durdurur
ON DEBUG ’ DEBUG alt programını çağırır
ON INTERRUPT ’ Kesme oluştuğunda kesme alt programını çağırır
OWIN ’ 1-Wire iletişim cihazından veri okur
OWOUT ’ 1-Wire iletişim cihazına veri yazar
OUTPUT ’ İstenilen pini çıkış yapar
PAUSE ’ Ms bazında gecikme oluşturur
PAUSEUS ’ Us bazında gecikme oluşturur
PEEK ’ Registerden 1 byte veri okur
PEEKCODE ’ PIC belleğinden 1 bytelık veri okur
POKE ’ Registere 1 byte veri yazar
POKECODE ’ PIC belleğine 1 bytelık veri yazar
POT ’ Pindeki potansiyometreyi okur
PULSIN ’ Pindeki pulsi ölçer
PULSOUT ’ Herhangi bir pinde puls oluşturur
PWM ’ Herhangi bir pinde pwm sinyali oluşturur
RANDOM ’ Bir değişken içerisine 1-65535 arasında bir değer atar
RCTIME ’ Pindeki pulsi ölçer
READ ’ EEPROM bellekten 1 byte veri okur
---------- Sonra gönderilen Saat 05:06 ---------- İlk önce gönderilen Saat 05:06 ----------
Pic Basic Pro - Komut Seti - 3
Pic Basic Pro ’ nun tüm komutlarını ileriki derslerimizde tek tek anlatacağız ancak bu yazımızda baş vuru kaynağı olması amacı ile tüm komutları topluca kısa açıklamaları ile birlikte vereceğiz.
READCODE ’ Program belleğinden 1 wordlük veri okur
REPEAT...UNTIL ’ Karşılaştırmaya bağlı komut gruplarını tekrar eder
RESUME ’ INTERRUPT alt programı bittikten sonra programın kaldığı yerden devam etmesini sağlar
RETURN ’ En son kullanılan GOSUB komutundan sonraki bölüme dönmeyi sağlar
REVERSE ’ Pinleri terslemeye yarar .Giriş ise çıkış , çıkış ise giriş yapar
SELECT CASE ’ Değişkeni farklı sayılarla karşılaştırmaya yarar
SERIN ’ Asenkron seri giriş
SERIN2 ’ Asenkron seri giriş
SEROUT ’ Asenkron seri çıkış
SEROUT2 ’ Asenkron seri çıkış
SHIFTIN ’ Senkron seri giriş
SHIFTOUT ’ Senkron seri çıkış
SLEEP ’ İşlemciyi belirli bir süre düşük güç moduna alır
SOUND ’ Herhangi bir pinden istenilen tonda ses üretir
STOP ’ Programı durdurur
SWAP ’ İki değişken içerisindeki değerleri değiştirir
TOOGLE ’ Pin lojik (1) ise (0) , (0) ise (1) yapar
USBIN ’ USB modulu olan pice giriş yapar
USBINIT ’ USB modulleri çalıştırmak için kurulumları gerçekleştirir
USBOUT ’ USB modulu olan picten çıkış yapar
WHILE...WEND ’ Koşula bağlı olarak komut grubunu tekrarlar
WRITE ’ EEPROM belleğe 1 bytelık veri yazar
WRITECODE ’ Program belleğine 1 wordlük veri yazar
XIN ’ X-10 iletişimi destekleyen cihazdan veri okur
XOUT ’ X-10 iletişimi destekleyen cihaza veri yazar
---------- Sonra gönderilen Saat 05:06 ---------- İlk önce gönderilen Saat 05:06 ----------
Burdan konuyu Yusuf Burak kardeşimden devr alıyorum. Yapacağımız örneklerde 16F877 modelini kullanacağız. Similasyonları Proteus’da yapıp kodları Micro Code Studio’da yazacağız. Programları aşağıda veriyorum.
PBP klasörünü C dizinine kopyalayın.
MicroCodeStudio programını kurduktan sonra. View compiler and program optionsa girin ve aşağıda ki yerlere belirtilen konumları gösterin.
- Compiler: c:\\pbp\\pbp247
- Assembler: (Use MPASM seçtikten sonra) c:\\pbp\\mpasm
Proteusu kurun. Kurulum sırasında sizden key dosyası isteyecek. Program klasörü içerisinde ki lxk dosyasını gösterin. Kurulum tamamlandıktan sonra LXK Proteus 7.7 SP2 ENG v1.0.0.exe dosyasını çalıştırın. İşlem tamamlandığında programınız hazır olacak.
16F877’ye ait datasheetler ekde verilmiştir. En kısa zamanda örneklere geçilecektir. Sorularınızı bu başlık altından sorabilirsiniz herkese kolay gelsin..
Programlar için tıklayın.
Program satırına verilen referans isimdir.Program dallanma yapıp o satıra gitmek için kullanılır.
DEĞIŞKENLER(VARIABLES):
Programda geçici olarak verileri saklamak için kullanılır.Bu veriler RAM de tutulur.
DEĞIŞKEN TIPLERI:
BIT 2 bit ( 0 veya 1) (0-1)
BYTE 8 bit (0-255)
WORD 12 bit (0-65535)
SAYI VAR BIT
RAKAM VAR BYTE
NUMARA VAR WORD
LAKAP(ALIAS):
Bir değişkene başka bir isim vermek için kullanılır.
SAYI VAR ZAMAN
SABİTLER(CONSTANS):
Programda kullanılan sabit değerleri atamak için kullanılır.Birçok yerde kullanılan aynı sabiti değiştirmek gerektiğinde kolaylık sağlar.
SAYI CON 5
NUMERİK SABİTLER:
Üç şekilde sayılar ifade edilebilir.Desimal,binary ve heksadesimal.
A=25 DESİMAL 25
A=110010 BİNARY 10110010
A=$25 HEKSADESİMAL 25
SEMBOLLER(SYMBOLS):
Değişkenler , sabitler yada portlara isim vermek için kullanılır.
SYMBOL BUTON = PORTA.0
PINLER(PINS):
Herhangi bir pine özel bir isim vermek için kullanılır.
LED VAR PORTB.0
ROLE VAR PORTB.1
AÇIKLAMA SATIRI:
Tek tırnak (’) veya REM komutu ile programda istenilen yere açıklama yazılabilir.
HIGH PORTA.0 ’PORTA nın 0. pinini 5v a çek
REM LOW PORTA.0 ( Pasif satır işlemci bu satırı okumaz)
İLAVE DOSYA EKLEMEK:
Daha önceden oluşturulmuş standart dosyaları eklemek için kullanılır.
INCLUDE "ekdosya.bas"
ARİTMETİK VE LOJİK OPERATÖRLER:
+ TOPLAMA
- ÇIKARMA
* ÇARPMA
/ BÖLME
// KALAN
<< SOLA KAYDIRMA
>> SAĞA KAYDIRMA
& (YADA AND) AND (VE) KAPISI
| (YADA OR) OR (VEYA)KAPISI
^ (YADA XOR) XOR KAPISI
~ (YADA NOT) NOT KAPISI
&/ (YADA NOT AND) NAND KAPISI
|/ (YADA NOT OR ) NOR KAPISI
^ (YADA NOT XOR ) XNOR KAPISI
ÖRNEKLER:
SONUC = PORTB + 3
PORTA = PORTB * 3
SAYI = SAYI + 1
A = A / 2
C = B & $ 0F
C = SAYI | $FO
KARŞILAŞTIRMA OPERATÖRLERİ:
= EŞİT
<> EŞİT DEĞİL
> BÜYÜK
< KÜÇÜK
= BÜYÜK EŞİT
---------- Sonra gönderilen Saat 05:03 ---------- İlk önce gönderilen Saat 05:03 ----------
Program Yazma Tekniği
Mikrodenetleyici ve mikroişlemcileri programlamak için yazılmış onlarca programlama dili mevcut.Biz sizlere bunlardar PIC BASIC PRO’yu anlatacağız.Konu anlatımlarına geçmeden önce program yazma tekniklerinden bahsetmek istedim.
Öncelikle yazdığımız program kolay okunur ve sonradan geliştirmeye musait olmalıdır.Program yazarken mutlaka yanlarına notlar alın,küçük açıklamalar yapın. O an programı yazarken size çok basit ve anlaşılır gelen bir sürü komut olacaktır ancak programınıza herhangi bir sebepten dolayı bakan birisi sizin programda ne yapmak istediğinizi kolaylıkla anlayamayabilir ve sizde zaman geçtikçe yazdığınız programa yabancı kalabilir,hatırlamaya bilirsiniz.
Programda alacağınız notlar yada yapacağınız açıklamalar PBP dosyası içerisinde yer kaplamasına karşın , mikrodenetleyici yada mikroişlemcinin içine yazılan HEX kodları içerisinde kesinlikle yer almaz.Yani aldığımız notlar ve yaptığınız açıklamalar ne kadar fazla olursa olsun işlemcide hiçbir yer kaplamaz.Bu nedenle istediğimiz kadar not alabilir açıklama yapabiliriz.
İkinci olarak kullanacağımız pin ve değişkenleri kolay okunur bir şekilde mutlaka adlandırmalıyız.Kullanacağımız pin ve değişkenlere Pin1 - Pin2 yada A1 - A2 gibi isimler vermek yerine kullanıldığı yere uygun olarak anlaşılır bir isim vermeyi tercih etmeliyiz.
Üçüncü olarak doğru ve anlaşılır etiket kullanmalıyız.Kullanacağımız etiklerin isimlerine Etiket1 - Adres1 gibi isimler vermek yerine Döngü gibi bir isim vermek daha açıklayıcı olacaktır.Etiketlerimize isim verirken etiketin altındaki programın ne yaptığı ile orantılı bir isim vermek en mantıklı yöntemdir.
Örnek programı indirmek için tıklayınız...
---------- Sonra gönderilen Saat 05:03 ---------- İlk önce gönderilen Saat 05:03 ----------
Pic Basic Pro - DEFINE Komutu
Osilatör frekansı ve LCD pin yerleşimi gibi bazı değişkenler PBP içerisinde tanımlıdır.DEFINE komutu bu değişkenleri değiştirmemize olanak sağlar.
Ösilatör frekansının değiştirilmesi , LCD pin yerleşimleri , DEBUG pinlerinin değiştirilmesi ve BAUT RATE hızı DEFINE komutu ile değiştirebileceklerimizin bazılarıdır.
DEFINE komutu ile yapılan bütün tanımlamalar mutlaka BÜYÜK harf ile yazılmalıdır.Şimdide DEFINE komutu ile yapılan bazı tanımlamaları verelim...
DEFINE BUTTON_PAUSE 10
DEFINE CHAR_PACING 1000
DEFINE DEBUG_REG PORTB
DEFINE DEBUG_BIT 0
DEFINE DEBUG_BAUD 2400
DEFINE DEBUG_MODE 1
DEFINE DEBUG_PACING 1000
DEFINE HSER_BAUD 2400
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_EVEN 1
DEFINE HSER_ODD 1
DEFINE I2C_INTERNAL 1
DEFINE I2C_SLOW 1
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSEG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 8
DEFINE LCD_LINES 4
DEFINE OSC 20
DEFINE OSCCAL_1K 1
DEFINE OSCCAL_2K 1
---------- Sonra gönderilen Saat 05:04 ---------- İlk önce gönderilen Saat 05:03 ----------
Pic Basic Pro - Satır Etkinlikleri
Satır etkinlikleri demek ile: PBP ’ de program yazarken satırları nasıl kullanacağımız , neler yapacağımız hakkında bilgi vereceğiz.Satırlara istediğimiz açıklamaları yapabalir notlar alabiliriz , bir satırda birden fazla komutu yan yana yazabiliriz ve bir satıra yazdığımız komutlar yazılabilecek karakter sayısınız geçtiğinden dolayı yada isteğe bağlı olarak alt satırdan devam ettirebiliriz.
1) Açıklama Satırı :
Yazdığımız programda açıklama yada sonradan yazdığımız programı rahatlıkla anlayabilmek amacı ile yazdığımız kodların yanına küçük notlar , açıklamalar yazma ihtiyacı duyarız.Aldığımız bu notlar açıklama satırı olarak adlandırılır.Açıklama satırını REM komutu yada (’) tırnak kullanarak oluşturabiliriz.REM komutu veya (’) tırnak işaretini takip eden karakterler derlenmez.Yani HEX dosyası içerisinde yer almaz.Açıklama satırını birer örnek ile açıklayıp bitirelim....
(Mavi renk ile yazılan yazılar derlenmeyecektir)
HIGH PORTA.0 ’Açıklama satırı
REM Açıklama satırı
2) Bir Satıra Birden Fazla Komut Yazmak :
Uzun programlarda satır sayısını azaltmak veya birbiri ile ilgili komutları gruplamak amacıyla bir satıra birden fazla komut yazabiliriz.Bunun için komutlar arasına ) iki nokta koymak işimizi görecektir.
HIGH LED1
HIGH LED2
HIGH LED3
Yukarıdaki komutlar ile aşağıdakiler aynı işlevi görmektedir...
HIGH LED1 : HIGH LED2 : HIGH LED3
3) Satır Devam Ettirme :
PBP’de program yazarken bir satıra en fazla 256 karakter girebiliriz.Karakter sayısını geçtiğimiz programlarda yada isteğe bağlı olarak uzamasını istemediğimiz programlarda (_) alt çizgi kullanarak bir sonraki satırdan devam edebiliriz.Şimdi bir örnek ile açıklayalım....
LOOKUP RAKAM , [$3F, $06, $5B, $4F, $66, _
$6D, $7D, $07, $7F, $6F] , PORTB
---------- Sonra gönderilen Saat 05:04 ---------- İlk önce gönderilen Saat 05:04 ----------
Pic Basic Pro - Aritmetik Operatörler - 1
PBP’de aritmetik işlemler hiyerarşik bi düzene göre yapılır.İşlem operatörlerinin birbirlerine göre öncelikleri vardır.Mesela çarpma ve bölme işlemi , toplama ve çıkarma işlemine göre önceliklidir , daha önce işlem görür.İşlem önceliklerini kendi isteğimiz sıraya göre yapabilmek için işlemleri gruplamamız gerekir.İşlemleri gruplamamız için parantez içine almamız yeterli olacaktır. Hemen bir örnek ile açıklayalım...
A=(B+C)*D
A=B+C*D
Yukarıda gördüğünüz yeşil ile yazılmış işlem ile mavi ile yazılmış işlem aynı değildir.Yeşil ile yazılmış satırda B ve C nin toplamlarını D ile çarpıp A değişkenine eşitleyecektir.Ancak mavi ile yazılmış işlemde çarpma işleminin önceliği olduğundan C ile D nin çarpımını B ile toplayıp A değişkeninin içine yazacaktır...
Aritmetik işlemlerde İşlem Önceliği :
1)( ) Parantez içindeki işlemler
2)* Çarpma
3)/ Bölme
4)+ Toplama
5)- Çıkarma
PBP ’ de Kullanılan Aritmetik Öperatörler :
+ Toplama
- Çıkarma
* Çarpma
** Çarpımın Üst 16 Bitini Elde Etme
*/ Çarpımın Ortadaki 16 Bitini Elde Etme
/ Bölme
// Kalan Bulma
<< Sola Kaydırma
>> Sağa Kaydırma
ABS Sayının İşaretsiz Değerini Verir
COS Sayının Kosinüsünü Verir
DCD 2n Kod Çözme
DIG Dijit
MAX Maximum
MIN Minimum
NCD Kodlama
REV Bit Tersleme
SIN Sayının Sinüsünü Verir
SQR Sayının Kare Kökünü Alır
& Bit AND
| Bit OR
^ Bit XOR
~ Bit NOT
&/ Bit NAND
|/ Bit NOR
^/ Bit XNOR
Yukarıda verdiğimiz aritmetik işlemlerin hepsini diğer aritmetik işlem derslerinde tek tek açıklayacağız.
---------- Sonra gönderilen Saat 05:04 ---------- İlk önce gönderilen Saat 05:04 ----------
Pic Basic Pro - Aritmetik Operatörler - 2
PBP ’ de program yazarken istediğimiz değerleri elde edebilmek için aritmetik operatörlere ihtiyaç duyarız.Bu işlemler matematiksel yada mantıksal olabilirler.Bir önceki dersimizde verdiğimiz aritmetik operatörlerin bir kaçını şimdi açıklığa kavuşturacağız....
1) Toplama :
İki değişkenin içeriklerinin toplanması yada değişkenin içeriğine istediğimiz bir sayının eklenmesini sağlar.
A = 3 : B = 5 : C = 0 ’ Değişkenlere değer atandı
A + B = C <’ A + B nin içeriğini (3+5) C’ ye yükle
A = A + 5 ’ A değişkenine 5 eklendi
2) Çıkarma :
İki değişkenin içeriklerinin farklarını yada değişkenin içeriğinden istediğimiz bir sayıyı çıkarmamızı sağlar.
A = 3 : B = 5 : C = 0 ’ Değişkenlere değer atandı
B - A = C ’ B - A ’ nin içeriğini (5-3) C’ ye yükle
B = B - 2 ’ B değişkeninden 2 çıkarıldı
3) Çarpma :
Pic basic pro ’ da çarpma operatörü kullanılırken 16x16 bit işlem yapılır.Bu işlem sonucunda 32 bitlik sayı elde edilir.Çarpma işlemi için "*" operatörü kullanırsak 32bitlik sonucun alt 16 bitini elde ederiz."**" operatörünü kullanırsak üst 16 biti elde ederiz.Yada "*/" operatörünü kullanırsak 32bitlik sonucun ortadaki 16 bitini elde etmiş oluruz.Şimdide bu operatörlere birer örnek ile açıklık getirelim.
A = B * C ’ B ile C ’ nin içeriklerini birbiri ile çarparak sonucun alt 16 bitini A ’ nın içerisine yazar
A = B ** C ’ B ile C ’ nin içeriklerini birbiri ile çarparak sonucun üst 16 bitini A ’ nın içerisine yazar
A = B */ C ’ B ile C ’ nin içeriklerini birbiri ile çarparak sonucun ortasındaki 16 bitini A ’ nın içerisine yazar
4) Bölme :
Pic basic pro 16 bitlik bölme işlemi yapar.PBP ’ de / operatörü 16 bitlik sonuç elde eder.// operatörü ise bölme işlemi sonrasında kalanı bulmamızı sağlar.Bu operatörleride birer örnek ile açıklayıp konumuza burada son veriyoruz.Kalan operatörler diğer derslerimizde anlatılacaktır...
A = B / C ’ B ’ yi C ’ ye böler ve sonucu A ’ ya yazar
A = B // C ’ B ’ yi C ’ ye böler ve kalanı A ’ ya yazar
---------- Sonra gönderilen Saat 05:05 ---------- İlk önce gönderilen Saat 05:04 ----------
Pic Basic Pro - Aritmetik Operatörler - 3
Bu yazımızda da aritmetik operatörlerin devamı olan ABS , DCD , NCD ve shift(kaydırma) operatörlerini inceleyeceğiz...
1) Shift (Kaydırma) :
A = $A7 ’ A değişkeninin içerisine hex A7 yükle
$F7 = %10100111 ’ Hex A7 nin binary karşılığı
A = A << 2 ’ A ’ nın içeriğini 2 bit sola kaydır
A = %10011100 ’ Binary olarak yeni değer
A = $9B ’ Hex olarak yeni değer
A = A >> 3 ’ A ’ nın içeriğini 3 bit sağa kaydır
A = %00010100 ’ Binary olarak yeni değer
A = %14 ’ Hex olarak yeni değer
2) DCD :
DCD operatörü 8 yada 16 bitlik bir sayının istenilen bitinin değerini lojik (1) yapar.Diğer bitler ise lojik (0) olur.
A VAR BYTE ’ 8 bit (1 byte) değişken atandı
B VAR WORD ’ 16 bit (2 byte) değişken atandı
A = DCD 3 ’ A = 00001000 olur
B = DCD 7 ’ B = 00000000010000000 olur
3) NCD :
NCD komutu ile binary bir sayının içerisindeki en soldaki lojik (1) hangi bitte ise o bitin sayısını değişkenin içerisine yükler.
A = NCD %00010011 ’ Binary sayının içerisindeki en yüksek lojik (1) 4.bitte A = 7 olur
4) ABS :
ABS operatörü bir sayının işaretsiz değerini verir.Bir bytelik sayı 127’den büyük ise (bit8=1 ise) 256 sayı değeri elde edilir.2 bytelik sayı 32767 ’ den büyük ise (bit16=1 ise) 65536 sayı değeri elde edilir.
Cevap = ABS A ’ A = 100 ise cevap = 100
’ A = 200 ise cevap =56
Cevap = ABS B ’ B = 30000 ise cevap = 30000
’ B = 50000 ise cevap = 15536
---------- Sonra gönderilen Saat 05:05 ---------- İlk önce gönderilen Saat 05:05 ----------
Pic Basic Pro - Aritmetik Operatörler - 4
Bu yazımızda da aritmetik operatörlerin bir diğeri ve sonuncusu olan DIG , MAX - MIN , SIN , COS , SQR ve REV operatörlerini de inceleyip aritmetik öperatörler konusunu kapatacağız...
1) DIG :
DIG komutu desimal bir sayının istenilen basamağını elde etmemize olanak sağlar.Desimal sayı en fazla beş haneli olabilir.Sayımızın en sağındaki rakam sıfırıncı bit , en solundaki rakam ise dördüncü bitimizdir.Yani DIG komutuna basamak bilgisi olarak girebileceğimiz değerler 0 ile 4 arasında olmalıdır.
SAYI = 1453 ’ Sayı değişkenine 1453 değeri atandı
A = SAYI DIG 2 ’ Sayı değişkeninin ikinci biti (4) A ’ nın içerisine yüklendi
2) MAX ve MIN :
MAX ve MIN komutları iki sayının büyük veya küçük olanını bulmamıza olanak sağlar.Bu komutlar genellikle bir sayıyı sınırlamak için kullanılır.
A = B MAX 10 ’ B ile 10 dan hangisi büyük ise A ’ nın içerisine yazar
A = B MIN 10 ’ B ile 10 dan hangisi küçük ise A ’ nın içerisine yazar
3) SQR :
SQR komutu bir tam sayının karekökünü bulur.Elde edilen sayı 8 bittir.
A = SQR B ’ B ’ nin karakökünü A ’ ya atar
4) REV :
REV komutu binary bir sayının içerisinde belirlenen bir bitin sağındaki tüm bitlerin tersini alır.
A = 10001010 REV 4 ’ A = %10000101 olur.
5) SIN :
SIN komutu radyan cinsinden verilen bir açının sinüsünü bulur.Elde edilen sonuç 8 bittir ve ikinin tamamlayıcısı formundadır.
A = SIN B ’ B ’ nin içerisindeki sayının sinüsünü A ’ ya yerleştirir
6) COS :
COS komutu radyan cinsinden verilen bir açının cosinüsünü bulur.Elde edilen sonuç 8 bittir ve ikinin tamamlayıcısı formundadır.
A = COS B ’ B ’ nin içerisindeki sayının cosünüsünü A ’ ya yerleştirir
---------- Sonra gönderilen Saat 05:05 ---------- İlk önce gönderilen Saat 05:05 ----------
Pic Basic Pro - Karşılaştırma Operatörleri
Karşılaştırma operatörleri PBP ’ deki koşul operatörleri (IF...THEN) kullanarak bir değişkeni başka bir değişkenle yada bir sayı ile karşılaştırmak için kullanılır.Karşılaştırılacak değişken yada sayı negatif olamaz.Karşılaştırma operatörleri şöyledir:
= Eşittir
<> Eşit Değildir
< Küçüktür
> Büyüktür
<= Küçük Eşit
> Büyük Eşit
---------- Sonra gönderilen Saat 05:05 ---------- İlk önce gönderilen Saat 05:05 ----------
Pic Basic Pro - Komut Seti - 1
Pic Basic Pro ’ nun tüm komutlarını ileriki derslerimizde tek tek anlatacağız ancak bu yazımızda baş vuru kaynağı olması amacı ile tüm komutları topluca kısa açıklamaları ile birlikte vereceğiz.
@ ’ Bir satırlık asm kodu ekler
ASM...ENDASM ’ Birden fazla asm komutu ekler
BRANCH ’ Koşullu dallanmayı sağlar
BRANCHL ’ Koşullu dallanmayı sağlar (2K hafıza geçildikten sonra)
BUTTON ’ Herhangi bir pinden giriş alır
CALL ’ Asm alt programını çağırır
CLEAR ’ Tüm değişkenleri sıfırlar
COUNT ’ Herhangi bir pindeki puls ’ i sayar
DATA ’ EEPROM belleğe sabit değer yazar
DEBUG ’ Herhangi bir bitten asenkron seri çıkış yapar
DEBUGIN ’ Herhangi bir pinden asenkron seri giriş yapar
DISABLE ’ Kesmeleri kapatır
DISABLE DEBUG ’ ON DEBUG işlemini kapatır
DISABLE INTERRUPT ’ ON INTERRUPT işlemini kapatır
DTMFOUT ’ Herhangi bir pinden telefon tuşu sesleri üretir
EEPROM ’ EEPROM belleğe veri yazar
ENABLE ’ Kesmeleri açar
ENABLE DEBUG ’ ON DEBUG işlemini açar
ENABLE INTERRUPT ’ ON INTERRUPT işlemini açar
END ’ Programı durdurup düşük güç moduna geçer
ERASECODE ’ Program belleğinden kod siler
FOR...NEXT ’ Komut grubunu istenilen sayıda tekrar eder
FREQOUT ’ Herhangi bir pinden bir veya iki farklı frekans üretir
GOSUB ’ Alt programı çağırır
GOTO ’ Herhangi bir etikete dallanmayı sağlar
HIGH ’ Herhangi bir çıkışı lojik (1) yapar
HPWM ’ Donanımsal pwm sinyali gönderir
HSERIN ’ Seri olarak veri alımı sağlar
HSERIN2 ’ Seri olarak veri alımı sağlar
HSEROUT ’ Seri veri gönderimi sağlar
HSEROUT2 ’ Seri olarak veri gönderimi sağlar
---------- Sonra gönderilen Saat 05:06 ---------- İlk önce gönderilen Saat 05:05 ----------
Pic Basic Pro - Komut Seti - 2
Pic Basic Pro ’ nun tüm komutlarını ileriki derslerimizde tek tek anlatacağız ancak bu yazımızda baş vuru kaynağı olması amacı ile tüm komutları topluca kısa açıklamaları ile birlikte vereceğiz.
I2CREAD ’ I2C protokolu destekleyen EEPROM ’ dan veri okur
I2CWRITE ’ I2C protokolu destekleyen EEPROM ’ a veri yazar
IF..THEN..ENDIF ’ Koşula bağlı olarak komut yada komutları çalıştırır
INPUT ’ Herhangi bir pini giriş yapar
LCDIN ’ LCD ’ nin RAM inden veri okur
LCDOUT ’ LCD ’ 4 veya 8 bit veri gönderir
LOOKDOWN ’ Değer tablosundan istenilen değeri araştırmayı sağlar
LOOKDOWN2 ’ Değer tablosundan istenilen sabit/değişken araştırmayı sağlar
LOOKUP ’ Değer tablosundaki istenilen değeri almayı sağlar
LOOKUP2 ’ Değer tablosundan sabit/değişken almayı sağlar
LOW ’ İstenilen pini lojik (0) yapar
NAP ’ Mikrodenetleyiciyi kısa süreliğine durdurur
ON DEBUG ’ DEBUG alt programını çağırır
ON INTERRUPT ’ Kesme oluştuğunda kesme alt programını çağırır
OWIN ’ 1-Wire iletişim cihazından veri okur
OWOUT ’ 1-Wire iletişim cihazına veri yazar
OUTPUT ’ İstenilen pini çıkış yapar
PAUSE ’ Ms bazında gecikme oluşturur
PAUSEUS ’ Us bazında gecikme oluşturur
PEEK ’ Registerden 1 byte veri okur
PEEKCODE ’ PIC belleğinden 1 bytelık veri okur
POKE ’ Registere 1 byte veri yazar
POKECODE ’ PIC belleğine 1 bytelık veri yazar
POT ’ Pindeki potansiyometreyi okur
PULSIN ’ Pindeki pulsi ölçer
PULSOUT ’ Herhangi bir pinde puls oluşturur
PWM ’ Herhangi bir pinde pwm sinyali oluşturur
RANDOM ’ Bir değişken içerisine 1-65535 arasında bir değer atar
RCTIME ’ Pindeki pulsi ölçer
READ ’ EEPROM bellekten 1 byte veri okur
---------- Sonra gönderilen Saat 05:06 ---------- İlk önce gönderilen Saat 05:06 ----------
Pic Basic Pro - Komut Seti - 3
Pic Basic Pro ’ nun tüm komutlarını ileriki derslerimizde tek tek anlatacağız ancak bu yazımızda baş vuru kaynağı olması amacı ile tüm komutları topluca kısa açıklamaları ile birlikte vereceğiz.
READCODE ’ Program belleğinden 1 wordlük veri okur
REPEAT...UNTIL ’ Karşılaştırmaya bağlı komut gruplarını tekrar eder
RESUME ’ INTERRUPT alt programı bittikten sonra programın kaldığı yerden devam etmesini sağlar
RETURN ’ En son kullanılan GOSUB komutundan sonraki bölüme dönmeyi sağlar
REVERSE ’ Pinleri terslemeye yarar .Giriş ise çıkış , çıkış ise giriş yapar
SELECT CASE ’ Değişkeni farklı sayılarla karşılaştırmaya yarar
SERIN ’ Asenkron seri giriş
SERIN2 ’ Asenkron seri giriş
SEROUT ’ Asenkron seri çıkış
SEROUT2 ’ Asenkron seri çıkış
SHIFTIN ’ Senkron seri giriş
SHIFTOUT ’ Senkron seri çıkış
SLEEP ’ İşlemciyi belirli bir süre düşük güç moduna alır
SOUND ’ Herhangi bir pinden istenilen tonda ses üretir
STOP ’ Programı durdurur
SWAP ’ İki değişken içerisindeki değerleri değiştirir
TOOGLE ’ Pin lojik (1) ise (0) , (0) ise (1) yapar
USBIN ’ USB modulu olan pice giriş yapar
USBINIT ’ USB modulleri çalıştırmak için kurulumları gerçekleştirir
USBOUT ’ USB modulu olan picten çıkış yapar
WHILE...WEND ’ Koşula bağlı olarak komut grubunu tekrarlar
WRITE ’ EEPROM belleğe 1 bytelık veri yazar
WRITECODE ’ Program belleğine 1 wordlük veri yazar
XIN ’ X-10 iletişimi destekleyen cihazdan veri okur
XOUT ’ X-10 iletişimi destekleyen cihaza veri yazar
---------- Sonra gönderilen Saat 05:06 ---------- İlk önce gönderilen Saat 05:06 ----------
Burdan konuyu Yusuf Burak kardeşimden devr alıyorum. Yapacağımız örneklerde 16F877 modelini kullanacağız. Similasyonları Proteus’da yapıp kodları Micro Code Studio’da yazacağız. Programları aşağıda veriyorum.
PBP klasörünü C dizinine kopyalayın.
MicroCodeStudio programını kurduktan sonra. View compiler and program optionsa girin ve aşağıda ki yerlere belirtilen konumları gösterin.
- Compiler: c:\\pbp\\pbp247
- Assembler: (Use MPASM seçtikten sonra) c:\\pbp\\mpasm
Proteusu kurun. Kurulum sırasında sizden key dosyası isteyecek. Program klasörü içerisinde ki lxk dosyasını gösterin. Kurulum tamamlandıktan sonra LXK Proteus 7.7 SP2 ENG v1.0.0.exe dosyasını çalıştırın. İşlem tamamlandığında programınız hazır olacak.
16F877’ye ait datasheetler ekde verilmiştir. En kısa zamanda örneklere geçilecektir. Sorularınızı bu başlık altından sorabilirsiniz herkese kolay gelsin..
Programlar için tıklayın.