1. Bu site çerez kullanmaktadır. Siteyi kullanmaya devam etmeniz halinde çerez kullanımı ile ilgili site koşullarını kabul etmiş sayılırsınız. Daha Fazlasını Öğren.
  2. Forum İllegal Uyarısı Forum kuralları gereği forumda video ve illagal paylaşım yapmak yasaktır.Program Arşivimizde ise kısıtlanmış sürüm yada dağıtımı serbest olan (trial - freeware) yazılımlar yayınlayınız..Aksi takdirde mesajlarınız silinecektir..

Pic Basic Programlama Temel Kavramalar

Konusu 'Elektronik Cihaz Katalog Bilgi Döküman Ve Dergiler' forumundadır ve guclusat tarafından 14 Ağustos 2011 başlatılmıştır.

  1. guclusat
    Online

    guclusat Tanınmış Üye Süper Moderatör

    Katılım:
    14 Haziran 2009
    Mesajlar:
    9.756
    Ödül Puanları:
    48
    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.
     
  2. guclusat
    Online

    guclusat Tanınmış Üye Süper Moderatör

    Katılım:
    14 Haziran 2009
    Mesajlar:
    9.756
    Ödül Puanları:
    48
    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
     
Yüklüyor...

Sayfayı Paylaş