Upload
aziz-asci
View
176
Download
2
Embed Size (px)
Citation preview
DEĞİŞKENLER
DEĞİŞKEN : Program içerisinde sürekli değeri değişen , bir değerin yerini tutan etiketlerdir.
Proton+ basic derleyicisinde beş tip değişken tanımlanabilir.
Değişken tanımlamak için DIM komutu kullanılır.
1)BIT : 1 bitlik değişkendir. Değeri 0 veya 1 olabilir.
2)BYTE : 8 bitlik işaretsiz değişkendir. Değeri 0-255 olabilir.
3)WORD : 16 bitlik işaretsiz değişkendir. Değeri 0-65535 olabilir.
4)DWORD : 32 bitlik işaretli değişkendir. Değeri -2147483647 - +2147483647 olabilir.
5)FLOAT : 32 bitlik kayan noktalı değişkendir.Değeri-2147483646.999 - +2147483646.999 olabilir.
Her değişken mikrodenetleyicinin RAM hafızasında belirli bir yer işgal eder.
FLOAT : 4 byte RAM.
DWORD : 4 byte RAM.
WORD : 2 byte RAM.
BYTE : 1 byte RAM.
BIT : 1 byte RAM.
DIM:
Değişken , sabit ve dizi tanımlamak için kullanılan komuttur.
(Dizi birden fazla değer tutan değişkendir)
Dizilim
DIM Değişken ismi as Değişken tipi
DIM Sabit ismi as Sabitin değeri
DIM Dizinin ismi* Eleman sayısı + as Dizinin tipi
ÖRNEK1
DIM SEGMENT_LED AS BYTE
DIM DATA AS WORD
DIM KONUM AS DWORD
DIM LED AS BIT
DIM YUK AS FLOAT
DIM PI AS 3.14
DIM SAYI AS 5.0
DIM ZAMAN AS 1000
DIM MOTOR[10] AS BYTE
ÖRNEK2
DIM SAYI AS WORD
DIM SAYI_1 AS SAYI.LOWBYTE
DIM SAYI_2 AS SAYI.HIGHBYTE
DIM DWD AS DWORD
DIM PART1 AS DWD.BYTE0
DIM PART2 AS DWD.BYTE1
DIM PART3 AS DWD.BYTE2
DIM PART4 AS DWD.BYTE3
DIM DWD AS DWORD
DIM PART1 AS DWD.WORD0
DIM PART2 AS DWD.WORD1
**************************************************
**************************************************
SYMBOL:
Kayıt edicilere (register) ve sabitlere takma isim atamak için kullanılır.
Dizilim
SYMBOL Sembol Adı = Sembolün değeri
ÖRNEK
SYMBOL Metre = 1
SYMBOL Santimetre = 100
SYMBOL Milimetre = 1000
SYMBOL Metre = 1
SYMBOL Santimetre = Metre / 100
SYMBOL Milimetre = Santimetre / 10
SYMBOL LED = PORTA.0
SYMBOL PI = 3.14
**************************************************
**************************************************
SAYILARI VE KARAKTERLERİ YAZMA
İkilik sayı (Binary) = Sayının başına % işareti konur. (%0101)
Onaltılık sayı (Hexadecimal)= Sayının başına $ işareti konur. ( $0A)
Karakter=Karakterler çift tırnak " " işaretleri arasına yazılır. ("a")
Onluk sayı(Decimal)=Doğrudan yazılır.(12)
Ondalık sayı (Floating point)=Onluk kısmından sonra nokta konur. (3.14)
**************************************************
**************************************************
KARŞILAŞTIRMA OPERATÖRLERİ
Bir ifadeyi başka bir ifadeyle karşılaştırmak için kullanılır.
Operatör İşlev Örnek
= Eşittir X = Y
<> Eşit deyildir X <> Y
< Kücüktür X < Y
> Büyüktür X > Y
<= Kücük eşittir X <= Y
>= Büyük eşittir X >= Y
**************************************************
**************************************************
MANTIKSAL OPERATÖRLER
Karşılaştırma işlemlerinde birden fazla koşul var ise koşullar arasında mantıksal bağlantı kurmak için
kullanılır.
AND (VE)
OR (VEYA)
NOT (DEYİL)
XOR(ÖZEL VEYA)
ÖRNEK
IF X=1 OR Y=12 THEN RESET
IF PORTB.0=1 AND PORTA.2=1 THEN DUR
**************************************************
**************************************************
BiT OPERATÖRLERİ
Değişkenler üzerinde bit düzeyinde işlemler yapmak için kullanılır.
AND(VE) OPERATÖRÜ { & }
DIM A1 as BYTE
DIM A2 as BYTE
DIM S as BYTE
A1 = %00001111
A2 = %10101101
S = A1 & A2
PRINT bin S (%00001101)
**************************************************
**************************************************
OR(VEYA) OPERATÖRÜ { | }
DIM A1 as BYTE
DIM A2 as BYTE
DIM S as BYTE
A1 = %00001111
A2 = %10101001
S = A1 | A2
PRINT bin S (%10101111)
**************************************************
**************************************************
XOR(ÖZEL VEYA) OPERATÖRÜ { ^ }
DIM A1 as BYTE
DIM A2 as BYTE
DIM S as BYTE
A1 = %00001111
A2 = %10101001
S= A1 ^ A2
PRINT bin S (%10100110)
**************************************************
**************************************************
SOL TARAFA KAYDIRMA OPERATÖRÜ { << }
DIM A1 as BYTE
DIM S as BYTE
A1 = %00001111
S= A1 << 4
PRINT bin S (%11110000)
**************************************************
**************************************************
SAĞ TARAFA KAYDIRMA OPERATÖRÜ { >> }
DIM A1 as BYTE
DIM S as BYTE
A1 = %11110000
S= A1 >> 4
PRINT bin S (%00001111)
PROGRAM KODLARININ YAZILMASI
Normalde her bir satıra bir komut yazılabilir. Bir satıra birden fazla komut yazmak için komutlar
arasına iki nokta üst üste işareti ( : ) konulur
ÖRNEK
TRISB = %00000000
FOR SAYI = 0 TO 100
PORTB = SAYI
NEXT .
TRISB = %00000000 : FOR SAYI = 0 TO 100 : PORTB = SAYI : NEXT
Tek bir komut bazen bir satıra sığmayabilir. Bu durumda komutun satır sonuna gelen kısmının sonuna
alt çizgi işareti ( _ ) konulur.
ÖRNEK1
SAYI = LOOKUP VAR2,[1,2,3,4,5,6,7,8]
SAYI = LOOKUP VAR2,[1,2,3,_
4,5,6,7,8]
ÖRNEK2
PRINT AT 1,1,"MERHABA",DEC SAYI,HEX VAR2
PRINT AT 1,1,_
"HELLO WORLD",_
DEC SAYI,_
HEX VAR2
IF..THEN..ELSEIF..ELSE..ENDIF
IF-THEN deyimleri arasındaki koşul değerlendirilir. Koşul sağlanmışsa THEN deyiminden sonra yazılan
Deyimler1… çalıştırılır. Koşul sağlanmamışsa ELSEIF-THEN deyimleri arasındaki diğer bir koşul
değerlendirilir.Koşul sağlanmışsa THEN deyiminden sonra yazılan Deyimler2… çalıştırılır.Bu koşulda
sağlanmamışsa ELSE deyiminden sonra yazılan Deyimler3… çalıştırılır.ENDIF deyimiyle karşılaştırma
işlemi biter.
IF Koşul THEN
Deyimler1...
ELSEIF Koşul THEN
Deyimler2...
ELSE
Deyimler3...
ENDIF
ÖRNEK 1
IF X = 10 THEN
HIGH LED1
ELSEIF X = 20 THEN
HIGH LED2
ELSE
HIGH LED3
ENDIF
ÖRNEK 2
IF X = 0 THEN
A = 0
B = 1
ELSE
A = 1
ENDIF
ÖRNEK 3
IF Z = 1 THEN
A = 0
B = 0
ENDIF
************************************************** *************************
SELECT ..CASE ..ENDSELECT
SELECT deyiminden sonra kullanılan değişkenin aldığı değere göre CASE sAT ırlarından sonra yazılan
deyimler çalıştırılır. Eğer değişkenin değeri hiçbir CASE sAT ırında belirtilmemişse CASE ELSE
deyiminden sonraki deyimler çalıştırılır. ENDSELECT deyimiyle SELECT -CASE bloğu bitirilir.
SELECT Değişken
CASE Değer
Deyimler…
CASE Değer
Deyimler…
CASE ELSE
Deyimler…
ENDSELECT
ÖRNEK
INCLUDE "PROTON_4.INC"
DIM SAYI AS BYTE
DIM SONUC AS BYTE
DELAYMS 300
CLS
SONUC = 0
SAYI = 1
SELECT SAYI
CASE 1
SONUC = 1
CASE 2
SONUC = 2
CASE 3
SONUC = 3
CASE ELSE
SONUC = 255
ENDSELECT
PRINT DEC SONUC
STOP
************************************************** *************************
GOTO
Programın akışını GOTO deyiminden sonra yazılan etikete dallandırır.
GOTO Etiket
GOSUB ...RETURN
Programın akışını GOSUB deyiminden sonra yazılan etikete dallandırır. RETURN deyimiyle birlikte
program akışı GOSUB deyiminin yazıldığı sAT ırın altındaki sAT ıra yönlendirilir.
ÖRNEK
DIM X AS BYTE
DIM Y AS BYTE
ANA:
X=10
GOSUB ALT
PRINT DEC Y
GOTO ANA
ALT:
Y=20-X
RETURN
************************************************** *************************
FOR ...NEXT ...STEP
FOR ve NEXT deyimleri arasında kalan komutları belirtilen sayıda tekrar edilmesini sağlar.
FOR Değişken = başlangıç TO bitiş * STEP , Adım - +
{Tekrar edilecek Deyimler }
NEXT
ÖRNEK 1
DIM X as WORD
FOR X = 0 TO 2000 STEP 2
PRINT @X
NEXT
ÖRNEK 2
DIM X as WORD
FOR X = 2000 TO 0 STEP -2
PRINT @X
NEXT
ÖRNEK 3
DIM X as DWORD
FOR X = 200000 TO 0 STEP -200
PRINT @X
NEXT
************************************************** *************************
REPEAT...UNTIL
UNTIL deyimi ile belirtilen koşul sağlanıncaya kadar REPEAT -UNTIL deyimleri arasında kalan
deyimleri çalıştırır.
REPEAT
Deyimler…
UNTIL Koşul
ÖRNEK
X = 1
REPEAT
PRINT AT 1,1,DEC X
DELAYMS 200
INC X
UNTIL X > 10
************************************************** *************************
WHILE ...WEND
WHILE deyimi ile belirtilen koşul sağlandığı sürece WHILE -WEND deyimleri arasında kalan deyimleri
çalıştırır.
WHILE koşul
Deyimler…
WEND
ÖRNEK
X = 1
WHILE X <= 10
PRINT @X , " "
X = X + 1
WEND
************************************************** *************************
BREAK
Çalışmakta olan döngüyü döngü bitmeden kırmaya yarar.
ÖRNEK
INCLUDE "PROTON_4.INC"
DIM X as BYTE
DELAYMS 200
CLS
FOR X = 0 TO 39
PRINT AT 1,1,DEC X
IF X = 10 THEN BREAK
X = 10
DELAYMS 200
NEXT
PRINT AT 2,1,"CIKIS " , DEC X
STOP
Proteus devresi