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
  • VariableSabit 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


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.
  • VariableSabit 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
Ö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.
  • VariableSabit 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


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.
  • VariableSabit 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_Clear1 değeri ile sadece kare çizer. Eğer 0 verilirse kare çizer ama karenin içinide siler.
  • Xpos Startkarenin x eksenindeki başlangıç değeri. 0 ile 127 arasında değer alır.
  • Ypos StartKarenin y eksenindeki başlangıç değerini verir. 0 ile 63 arasında değer alır.
  • SizeKarenin 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


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

Ayrıca İnceleyiniz