ABS
Yazılım
Assignment Variable = ABS Variable
Görevi
Sayının Mutlak sayı değerini geri döndürür.
Operatörler
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
ACOS
Yazılım
Assignment Variable = ACOS Variable
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
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
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
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
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.
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
Assignment Variable = ASIN Variable
Görevi
Değerin Ark Sinüsünü bulur.
Operatörler
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
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
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
Assignment Variable = ATAN Variable
Görevi
Değerin Ark Tanjantını bulur.
Operatörler
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
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, TANBOX
Yazılım
BOX Set_Clear , Xpos Start , Ypos Start , Size
Görevi
Grafik LCD’ye kare çizer.
Operatörler
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
' 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 }]
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]
BRANCHL INDEX,[Lab_0, Lab_1, Lab_2]
Lab_0: INDEX = 2
GOTO Start
Lab_1: INDEX = 0
Lab_1: INDEX = 0
GOTO Start
Lab_2: INDEX = 1
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.
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
BRESTART
Yazılım
BRESTART
Görevi
I2C haberleşmesinde haberleşme için start byte'ını gönderme komutu.
Ayrıca İnceleyiniz
BRESTART
Görevi
I2C haberleşmesinde haberleşme için start byte'ını gönderme komutu.
Ayrıca İnceleyiniz