proton ders notları

13
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

Upload: aziz-asci

Post on 21-Apr-2015

175 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: proton ders notları

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

Page 2: proton ders notları

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")

Page 3: proton ders notları

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

Page 4: proton ders notları

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)

Page 5: proton ders notları

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 .

Page 6: proton ders notları

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

Page 7: proton ders notları

Ö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

Page 8: proton ders notları

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

Page 9: proton ders notları

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

Page 10: proton ders notları

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

Page 11: proton ders notları

Proteus devresi

Page 12: proton ders notları
Page 13: proton ders notları