Pic Basic Programlama Temel Kavramalar

guclusat

Tanınmış Üye
Süper Moderatör
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.
 
PIC 16F877’de Portlar:

Portlar PIC’e ait giriş/çıkış işlemlerinin yapıldığı bölümlerdir. 16F877 serisi gibi 8 bit denetleyicilerin portlarında 8 adet pin bulunur. Bizim kullandığımız modelde A,B,C,D ve E portları bulunmaktadır.

Portlarla ilgili giriş çıkış işlemlerini TRIS ismi verilen yazmaçlarla yapmaktayız. Örneğin PortA’nın birinci pinini giriş yapmak istiyorsak; TRISA.1=1 şeklinde ayarlamamız gerekmekte.

Şimdi ilk örneğimize geçebiliriz. İlk örneğimizde en temel pic basic kodları olan high, low, pause, goto ve end komutlarını göreceğiz. Bu komutları kullanarak B portunun sıfırıncı pinine bağlı ledi yakıp söndüreceğiz.

Saçma bi görüntü oldu kusura bakmayın

Kod ve similasyon dosyaları burada. İndirmek istemeğen kodları aşağıdanda alabilir.


TRISB.0=0 ’ PICden lede bir çıkış vereceğimiz için PortB.0 çıkış olacak.
ADCON1=7 ’ Bu ifade ilerde açıklanacaktır.

LED VAR PortB.0 ’LED’i PortB.0’a tanımladık. Artık PortB.0 ’yazacağınız yere LED yazabilirsiniz.

BASLA:

HIGH LED ’Ledi yak.
Pause 500 ’500 ms (yarım saniye bekle)
LOW LED ’Ledi söndür.
PAUSE 500

GOTO BASLA ’başa dön ve işlemleri tekrarla.
END

Sizde PAUSE süreleriyle oynayarak Ledin yanık kalma / sönük kalma zamanlarını ayarlayın.

---------- Sonra gönderilen Saat 05:07 ---------- İlk önce gönderilen Saat 05:07 ----------

Pic Basic Pro - Led Aç , Kapat

Merhaba arkadaşlar bu dersimizde Pic Basic Pro kullanarak en basit led devresi yapmayı anlatacağız.Devremizde en popüler entegrelerden birisi olan PIC16F84A kullanacaz.Devredeki butonu kullanarak ledimizi açık ise kapatacağız kapalı ise açacağız.Şimdi devre ile alakalı şemayı ve program kodlarını verelim.

Program Kodları :

’****************************************************************
define osc 4 ’osilatör frekansı
’*****************GİRİŞ ÇIKIŞ YÖNLENDİRME************************
trisa=001 ’porta 0. biti giriş diğer pinleri çıkış olarak atandı
’*********************PORT BELİRLEME*****************************
symbol buton = porta.0 ’porta.0 a buton ismi verildi
symbol led = porta.1 ’porta.1 e led ismi verildi
’*****************************************************************
basla:
’*********************ANA PROGRAM*******************************
IF buton = 0 then ’butona basıldığında led 0 ise 1
TOGGLE led : pause 100 ’1 ise 0 yap
endif
goto basla ’basla ya git
’*****************************************************************

end ’program sonu
Alıntıdır:CW
 
Geri
Yukarı