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..

Proton Picbasic Komutları

Konusu 'Pic Uygulama Ve Devreleri' forumundadır ve guclusat tarafından 9 Eylül 2012 başlatılmıştır.

  1. guclusat
    Offline

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

    Katılım:
    14 Haziran 2009
    Mesajlar:
    9.756
    Ödül Puanları:
    48
    Proton Picbasic Komutları

    ABS

    Yazılım
    Assignment Variable = ABS Variable

    Görevi

    Sayının Mutlak sayı değerini geri döndürür.

    Operatörler

    Assignment Variable - Uygun tipte bir değişken
    Variable – Sabit değer veya değişken.


    Örnek
    DEVICE = 16F877
    DIM DWD1 AS DWORD ' DWORD değişken tanımla
    DIM DWD2 AS DWORD ' DWORD değişken tanımla
    CLS
    DWD1 = -1234567 ' DWD1 değişkenine -1234567 değerini yükle
    DWD2 = ABS DWD1 ' DWD1’in mutlak değerini DWD2’e aktar
    PRINT DEC DWD2 ' LCD ekranda görüntülen değer 1234567
    STOP

    Ondalıklı Sayı Örneği DEVICE = 16F877
    DIM FLP1 AS FLOAT ' FLOAT değişken tanımla
    DIM FLP2 AS FLOAT ' FLOAT değişken tanımla
    CLS
    FLP1 = -1234567 ' FLP1’ye -1234567.123 yükle
    FLP2 = ABS FLP1 ' FLP2’ye FLP1’in mutlak değerini yükle
    PRINT DEC FLP2 ' Ekranda görüntülenen değer 1234567.123
    STOP

    Ayrıca İnceleyiniz
    ASIN, COS, EXP, LOG, LOG10, SIN, SQR, TAN


    ACOS

    Yazılım
    Assignment Variable = ACOS Variable

    Görevi

    Değerin Ark Kosinüsünü bulur.

    Operatörler

    Assignment Variable – Uygun tipte bir değişken.
    Variable – Sabit değer veya değişken. Bu komut Kosinüsün tersini alır. Yani 1/Cos değerini bulmanıza yarar. Bu komut çalıştığında geriye dönen değer RADYAN’dır. Dönen değer aralığı-1 ile +1 arasında değişir.


    Örnek
    INCLUDE "PROTON18_4.INC" ' Use the PROTON board for the demo
    DEVICE = 18F452 ' Choose a 16-bit core device
    DIM FLOATIN AS FLOAT ' Holds the value to ACOS
    DIM FLOATOUT AS FLOAT ' Holds the result of the ACOS
    DELAYMS 500 ' Wait for the PICmicro to stabilise
    CLS ' Clear the LCD
    FLOATIN = 0.8 ' Load the variable
    FLOATOUT = ACOS FLOATIN ' Extract the ACOS of the value
    PRINT DEC FLOATOUT ' Display the result
    STOP

    Not
    ACos komutu 12 bit ve 14 bit çekirdekli işlemcilerde kullanılmaz, ARC COSINE komutu eksta özellikler ve daha fazla bellek gereksinim duyduğu ve 32-bit kayan noktalı işlem gerektirdiği için için 16-bit çekirdekli ünitelerde kullanılabilir.

    Floating point trigonometry işlemleri daha fazla bellek ve işlemlemden dolayı bu komutlar diğer komutlara göre daha yavaş çalışır.


    ADIN

    Yazılım

    Variable = ADIN channel number

    Görevi

    Analog Dijital çeviriciden değeri okur ve değişkene aktarır.

    Operatörler

    Variable – Kullanıcı tanımlı değişkenler bit, byte, byte_array, word, word_array, dword, or float.
    channel number – sabit değer veya değişken.

    Örnek
    'ADC’nin kanal 0’ından değeri oku ve değişkene yükle
    DECLARE ADIN_RES 10 ' 10-bit çözünürlük
    DECLARE ADIN_TAD FRC ' RC OSC osilatörü seçildi
    DECLARE ADIN_STIME 50 ' Örnekleme zamanı 50us
    DIM VAR1 as WORD
    TRISA = %00000001 ' AN0(PORTA.0)giriş konumuna alındı
    ADCON1 = %10000000 ' PORTA.0 analog giriş moduna alındı.
    VAR1 = ADIN 0 ' Okunan değeri VAR1 değişkenine yükle

    Tanımlamalar
    ADIn komutu için üç farklı çözünürlük kullanılır. Bunlar: DECLARE ADIN_RES 8 , 10 , or 12

    Şeklindedir. Kullanığınız mikrodenetleyicideki ADC ünitesinin tipine göre belirlenmesi gerekmektedir. Eğer bu tanımlama yapılmaz ise Mikrodenetleyicinin enerjilendiği anda standart olarak ayarlanmış değeri ne ise o çözünürlük kabul edilir. Örneğin 16F87x serisi için bu 10-bit çözünürlüktür. 16-bit çekirdekli mikrodenetleyiciler için ise standart çözünürlük 8-bit kabul edilmektedir.

    DECLARE ADIN_TAD 2_FOSC , 8_FOSC , 32_FOSC , or FRC.

    ADC’nin clock kaynağını seçmek için kullanılır. Bütün mikrodenetleyicilerde dört farklı ayar mevcuttur. 2_FOSC, 8_FOSC, and 32_FOSC ayarları harici osilatör için kullanılır. FRC ise mikrodenetleyicinin ADC ünitesinde mevcut olan dahili RC osilatörünün seçilmesi sağlar. Bu tanımlama mikrodenetleyicinin ADCON0 yazmacını düzenlemeyi sağlar. Bu yazmacon 0-1 bitleri bu iş için kullanılır. Bu bitlere 0-3 arasındaki değerlerin girilmesi ile clock kaynağı ayarlanmaktadır.

    Eğer bu tanımlama hatalı yapılacak olursa veya yanlış çözünürlük değerleri kullanılacak olursa çevrim sonucunda elde edilecek değerde hata oluşacaktır veya çevrim yapılamayabilecektir. Eğer FRC kullanılırsa bu güvenli çevrim için en ideal clock puls’ini oluşturacaktır. Garantili çevrim için FRC’nin kullanılması gereklidir. FRC ile alacağınız değeri kullanarak diğer modları kullanırsanız bu size bir referans değeri oluşturacaktır.

    DECLARE ADIN_STIME 0 to 65535 microseconds (us).

    ADC içinde cevrim amaçlı olarak kullanılan bir kondansatör mevcuttur. Bu kondasatörün tam şarj değerine sahip olması için bir şarj süresi gereklidir. Bu süre 0 ile 65535 microseconds (us) arası kullanılabilir. Düşük çözünürlüklerde bu değer küçük seçilmelidir. Daha hassas ve yüksek çözünürlüklerde bu değerin büyük seçilmesi uygun olacaktır.

    ADIN_STIME için tipik olarak 50 veya 100 değeri kullanılmalıdır. Bu süre şarj için yeterli zamanı sağlayacaktır. Fakat gerekli gerçek zamanı deneyerek ayarlanması uygun olacaktır.

    Not
    ADIn komutunu kullanmadan önce mutlaka tris yazmacını kullanılmalıdır. İlgili uçlar giriş konumuna alınmadığı taktirde ADC ile ilgili ayarları yapsanız bile ölçüm alamazsınız. Ayrıca ADC ile ilgili ADCON1 yazmacıda kullanılmalıdır. Bu konu ile ilgili daha detaylı açıklamaları mikrodenetleyicinin dökümanlarında bulabilirsiniz.

    Ardışıl ölçümlerde bir çevrim yaptıktan sonra diğer çevrime geçmeden önce kondansatörün tam şarj olabilmesi için gerekli bir zaman aralığını vermeniz gerekmektedir.
    Again:
    VAR1 = ADIN 3 ' Place the conversion into variable VAR1
    DELAYUS 1 ' Wait for 1us
    GOTO Again ' Read the ADC forever


    ASIN


    Yazılım
    Assignment Variable = ASIN Variable

    Görevi
    Değerin Ark Sinüsünü bulur.

    Operatörler

    Assignment Variable – Uygun tipte bir değişken.
    Variable – Sabit değer veya değişken. Bu komut Sinüsün tersini alır. Yani 1/Sin değerini bulmanıza yarar. Bu komut çalıştığında geriye dönen değer RADYAN’dır. Dönen değer aralığı-1 ile +1 arasında değişir.

    Örnek
    DEVICE = 18F452 ' 16-bit çekirdekli denetleyici
    DIM FLOATIN AS FLOAT ' Float değişken tanımlama
    DIM FLOATOUT AS FLOAT ' Float değişken tanımlama
    DELAYMS 500 ' 500ms bekle
    CLS ' LCD ekranını sil
    FLOATIN = 0.8 ' Değeri yükle
    FLOATOUT = ASIN FLOATIN ' ASIN değerini bul değişkene yükle
    PRINT DEC FLOATOUT ' Ekranda görüntüle
    STOP

    Not
    ASin komutu 12 bit ve 14 bit çekirdekli işlemcilerde kullanılmaz, ARC COSINE komutu eksta özellikler ve daha fazla bellek gereksinim duyduğu ve 32-bit kayan noktalı işlem gerektirdiği için için 16-bit çekirdekli ünitelerde kullanılabilir.

    Floating point trigonometry işlemleri daha fazla bellek ve işlemlemden dolayı bu komutlar diğer komutlara göre daha yavaş çalışır.

    Ayrıca İnceleyiniz
    ASIN, COS, EXP, LOG, LOG10, SIN, SQR, TAN


    ASM...ENDASM

    Yazılım
    ASM
    assembler mnemonics
    ENDASM

    veya
    @ assembler mnemonic

    Görevi

    Basic kodlarının için gerekli olduğu durumlarda direk ASM kodları ile yazılım hazırlamak için kullanılır. Bu kodlar direk olarak asm komutları ve mnemonics değerleri yazılarak yapılabilir. Bu yöntem size program yazarken büyük bir esneklik ve kolaylık sağlayacaktır.


    ATAN

    Yazılım
    Assignment Variable = ATAN Variable

    Görevi
    Değerin Ark Tanjantını bulur.

    Operatörler

    Assignment Variable – Uygun tipte bir değişken.
    Variable – Sabit değer veya değişken. Bu komut Sinüsün tersini alır. Yani 1/Tan değerini bulmanıza yarar. Bu komut çalıştığında geriye dönen değer RADYAN’dır. Dönen değer aralığı-1 ile +1 arasında değişir.

    Örnek

    DEVICE = 18F452 ' 16-bit çekirdekli denetleyici
    DIM FLOATIN AS FLOAT ' Float değişken tanımlama
    DIM FLOATOUT AS FLOAT ' Float değişken tanımlama
    DELAYMS 500 ' 500ms bekle
    CLS ' LCD ekranını sil
    FLOATIN = 0.8 ' Değeri yükle
    FLOATOUT = ATAN FLOATIN ' ATAN değerini bul değişkene yükle
    PRINT DEC FLOATOUT ' Ekranda görüntüle
    STOP

    Not
    ASin komutu 12 bit ve 14 bit çekirdekli işlemcilerde kullanılmaz, ARC COSINE komutu eksta özellikler ve daha fazla bellek gereksinim duyduğu ve 32-bit kayan noktalı işlem gerektirdiği için için 16-bit çekirdekli ünitelerde kullanılabilir.

    Floating point trigonometry işlemleri daha fazla bellek ve işlemlemden dolayı bu komutlar diğer komutlara göre daha yavaş çalışır.

    Ayrıca İnceleyiniz
    ASIN, COS, EXP, LOG, LOG10, SIN, SQR, TAN


    BOX

    Yazılım
    BOX Set_Clear , Xpos Start , Ypos Start , Size

    Görevi

    Grafik LCD’ye kare çizer.

    Operatörler

    Set_Clear – 1 değeri ile sadece kare çizer. Eğer 0 verilirse kare çizer ama karenin içinide siler.
    Xpos Start – karenin x eksenindeki başlangıç değeri. 0 ile 127 arasında değer alır.
    Ypos Start – Karenin y eksenindeki başlangıç değerini verir. 0 ile 63 arasında değer alır.
    Size – Karenin büyüklüğünü pixel olarak belirlemenizi sağlar. 0 ile 255 arası değer alır.


    Örnek
    ' Posizyonu 63,32 ve büyüklüğü 20 pixel olan kare çiz
    INCLUDE "PROTON_G4.INT"
    DIM XPOS as BYTE
    DIM YPOS as BYTE
    DIM SIZE as BYTE
    DIM SET_CLR as BYTE

    DELAYMS 200 ' Stabilize için bekle
    CLS
    XPOS = 63
    YPOS = 32
    SIZE = 20
    SET_CLR = 1
    BOX SET_CLR , XPOS , YPOS , SIZE
    STOP
    Not

    Sisteme enerji verdikten sonra LCD’nin hazır duruma geçmesi için bir süre beklemek uygun olacaktır. Dikkat edilirse program açılışta LCD’ye veri göndermeden önce yaklaşık olarak 200ms beklemektedir.

    Ayrıca İnceleyiniz
    CIRCLE , LINE , LINETO


    BRANCH

    Yazılım
    BRANCHL Index, [Label1 {,...Labeln }]

    Görevi

    Tek sayfalı veya daha fazla sayfaya sahip işlemciler için dallanma komutu.

    Operatörler

    Index - Sabit veya değişken , Bu adres dallanmak için kullanılır.
    Label1,...Labeln – En fazla 127 dallanma etiketi kullanılır. Eğer 16-bit çekirdekli işlemci kullanıyorsanız en fazla 255 adres tanımlanabilir.


    Örnek

    DEVICE 16F877
    DIM INDEX as BYTE

    INDEX = 2

    Start:
    BRANCHL INDEX,[Lab_0, Lab_1, Lab_2]
    Lab_0: INDEX = 2
    GOTO Start
    Lab_1: INDEX = 0
    GOTO Start
    Lab_2: INDEX = 1
    GOTO Start
    Yukarıdaki örnekte index değeri 2 olarak verilmiş. Bu durumda BRANCH komutu çalıştığında Lab_2 etiketli yere dallanma sağlanacaktır. Lab_2 etiketli alana gidildiğinde index değeri 1 olur ve arkasından tekrar start diyerek BRANCH komutu çalışır bu sefer Lab_1’e gider ve program bu şekilde çalışmaya devam eder.



    Not
    BRANCHL komutunu belleği büyük olan mikrodenetleyiciler için kullanmanız gerekmektedir.

    Ayrıca İnceleyiniz
    BRANCH, ON GOTO, ON GOTOL, ON GOSUB


    BRESTART

    Yazılım
    BRESTART

    Görevi

    I2C haberleşmesinde haberleşme için start byte'ını gönderme komutu.
     

Sayfayı Paylaş