SAI-PBD PIC BASIC DERLEYICI

sai.gif (1116 bytes) TÜRKÇE SAI PBASIC V.01

wpe9.jpg (13415 bytes)

S(S@i) Pic serisi 16f84 ve 16f877 nin programlanmasi amacıyla yazılan bir derleyicidir. Komutlarini mikroislemciler için gerekli olan temel komutlar oluşturur. Bunlari ayirmak gerekirse.

1- Atama işlemleri ve Değişken tanımlama
2- Aritmetik işlemler (Toplama, çıkarma, çarpma ve bolme)
3- Mantıksal işlemler  (şarta bağlı komutlar)
4- Port işlemleri  Pic serisi için A B C D E  portlarinin I/O işlemlerini gerçekleştirmek
5- Çevre birimlerin kontrolü LCD, Segment, vs. gibi
6- Seri iletişim ve bilgisayar kontrolü
7- Bit seviyesindeki işlemler.  Bitlerin sağa sola kaymasi, vb.
8- Yaziciya bilgi gonderme ve print alma. vs.

gibi komutlardan oluşmaktadir.

SAI gelistirilmekte olan bir derleyici. Digerlerinden farkli olan yani turkçe komutlarının olması, Pic basic turlerinde veya diger bilgisayar programlarında kullanılan IF, FOR, NEXT RETURN GOTO gibi komutlar yerine,    EGER, DÖNGÜ, SONRA, GERIGIT, GIT gibi terimler kullanıldı.

Programlama işlemi esnasindı içice 10 adet dongu veya eger donguleri oluşturulabiliyor. 

Herkesin programlamaya basladigi zaman yaptigi flip flop lambalar. veya test islemleri için kullandığı, yanıp sönen led lamba vardır. Sai de bunu yapmak için

/ORNEK FLASOR PROGRAM

CHIP "P16F84"
SETET PORT B =  ‘ ‘00000000’
##SANIYE

BASLA:

PORT B = 1
  <SANIYE
  PORT B = 0
  <SANIYE
GIT BASLA

SON

yeterli olacaktır.  Eger bir sarta bagli olarak lambanin 3 defa yanip sondukten sonra 3 saniye sonuk olarak beklemesini istiyorsaniz. o zaman EGER komutuyla programiniza sart yerlestirebilirsiniz. Bunun için sayici bir değisken tanimlamanızda gerekecektir. Bunu kullanarak trafik isiklari na ait bir prograam ve devre gelistirebilirsiniz.

/ORNEK FLASOR PROGRAM

CHIP "P16F84"
DTIP SAYAC = 0

SETET PORT B =  ‘ ‘00000000’
##SANIYE

BASLA:

PORT B = 1
  <SANIYE
  PORT B = 0
  <SANIYE
GIT BASLA

SAYAC := SAYAC + 1

EGER SAYAC = 3 OLURSA
      <SANIYE
      <SANIYE
      <SANIYE
      SAYAC := 0
EGERSON

SON

olacaktır. saide mantık diger programlama dillerinden farksiz. ##SANIYE   Bir kutuphane eger kendiniz bir komut yazdiysaniz. Bunu kutuphaneye atip istediginiz zaman kullanabilirsiniz. Bu komutu calistirmak için ise < Komutun adini yazmaniz yeterli.

Eger dongu kullanmak istiyorsanız DONGU komutuyla bir islemi birden fazla gerceklestiribelirsiniz. Mesela bir lambanin sadece 20 defa yanip sonmesini istiyorsaniz.

DONGU  SAYAC = 20

      PORT B := 1
     <SANIYE
     PORT B := 0
     <SANIYE

SONRA

yazmak yeterli olaaktir. Sainin bir avantajida yeterli gelmedigi durumlarda, asm kodlari eklemenize imkan tanimasidiri. Kendi asm kodlarinizi komut haline donusturup buradada kullanabilirsiniz. Bunun için asm kodlarinin başina * yaznaniz yeterli olacaktir.

SAI Için Geliştirilen Komutlar
_____________________________________________
SAI Için Geliştirilmekte olan Komutlar
> Port Giriş/Çıkış Komutları
> Hitachi 44780 LCD Ekrana Yazdırma ve kontrol Komutları
> PIC16F877 İçin EEPROM okuma/Yazma Komutları
> Mantık Komutları (EGER)
> Temel Aritmetik işlemler Toplama Çıkarma vs.
> RS232 iletişim
> ADC Kanallarında bilgi alma ve LCD Ekrana Gönderme
> Bit seviyesinde işlem Komutları

SAI Için Geliştirilmekte olan Komutlar
___________________________________________________

> Grafik Ekran LCD
> RS232 Ve RS485 iletişim
> I2C K

omutları ve 24C64 ve 24C32 Serisi epromlara okuma ve yazma işlemleri
> PWM
> Step Motor Kontrol Komutları
> Led Displey lerin Sürülmesi işlemleri

…. Özel istek Komutları

SAI (Seyit Ahmet INAN) PIC16F84, PIC16F877 Microchiplerinin daha kolay programlanması amacıyla gerçekleştirilen bir derleyicidir. Bu derleyiciyi kullanarak, geliştirmiş olduğunuz cihazları kontrol edebilecek, devreler geliştirebileceksiniz. ve bilgisayar ile bağlantısını sağlayacaksınız. Ayrıca dış asm ve kendi komutunuzu kendinizin oluşturabilecegi bir modulde bulunmakta. Bu derleyici ile uyumlu çalışan, SAIBORD işlerinizi kolaylaştıracaktır. Bu derleyicide komutlar Türkçedir. Örnek;

/KULLANILAN CHIP TANIMI
                 CHIP "P16F877"   
/ ADC KOMUTLARINI KULLAN
## ADC
/ LCD KOMUTLARINI KULLAN
## LDC

/KULLANILAN DEGISKEN TANIMLARI
                 DTIP   SICAKLIK = 0    
                 DTIP   FAN = 1                    
                 DTIP   ISITICI = 2                     

/PORTLARIN KURULMASI
/PORTA TÜM UÇLAR ÇIKIŞ

                 SETET PORT C = 0
/PORTB TÜM UÇLAR GİRİŞ
                 SETET PORT B = 255

/INTERRUPT KUR

INTKUR DENETLE

BASLA:

                              /0 KANALDAN SICAKLIK DEGERINI OKU

SICAKLIK = ADC ( 0 )

    EGER  SICAKLIK  = 30 OLURSA
                PORT C = FAN
    EGERSON

   EGER  SICAKLIK  = 10 OLURSA
                PORT C = ISITICI
   EGERSON

 

GIT BASLA

    DENETLE:
        LCD = SICAKLIK
   GERIGIT

Su anda geliştirilen mevcut komutlar;

CHIP (KT)
SAYFA (KT)
DTIP (KT)
SAILOGO (KT)
SON (KT)
SETET (KT)
PORTYAZ (KT)
PORTOKU (KT)
AKTAR (KT)
EGER (KT)
EGERSON (KT)
ACIKLAMA (KT)
ALTPROG (KT)
ALTPROGP (KT)
DON (KT)
GIT (KT)
TOPLA (KT)
TOPLA1 (KT)
CIKARMA (KT)
CIKARMA1 (KT)
DONGU (KT)
SONRA (KT)
HIGH (KT)
LOW (KT)
BSAG (KT)
BSOL (KT)
BTRS (KT)
BSWP (KT)
TABLO (KT)
TABLOVERI (KT)
KESME (KT)
TMRKUR (KT)
INTKUR (KT)
INTSON (KT)
DELAYMS (KT)
DELAYMSPRG (KT)
ADC (KT)
KUTUPHANE (KT)
ADCPRG (KT)
ASMEKLE (KT)

Ayrıntılar yakında..!!

 
sai01.jpg (85082 bytes)
 

 

ATAMA KOMUTLARI

:=

=

ARİTMETİK OPERATÖRLER

+

++

 

BİT OPERATÖRLERİ

<<

>>

<+>

MANTIKSAL KOMUTLAR

EGER … OLURSA … EGERSON

DONGÜ KOMUTLARI

DONGU … SONRA

PORT KOMUTLARI

SETET

PIN[A…E][0…7]

PORT [A…E]

KÜTÜPHANE OLUŞTURMA KOMUTLARI

## ADC

## LCD

## ÖZEL KÜTÜPHANE

ALT PROGRAM KOMUTLARI

GIT

MODUL … GERIGIT MODUL YERİNE < KULLINILABİLİR

 

DİĞER KOMUTLAR

SAYFA

ASM ASM KOMUTLARI

*ASM KOMUTLARI

<ETİKET

 

CHIP "CHİP TÜRÜ"

SAI PBD iki adet flash eprom programlayabilir. Bunlar

PIC 16F84

PIC 16F877

CHIP "P16F84"

CHIP "P16F877"

SETET PORTX = GİRİŞ/ÇIKIŞ DEĞERİ

Portların giriş veya Çıkış olarak ayarlamak için

SETET komutu kullanılır. Giriş Çıkış degeri olarak sayı verilir. veya

binary olarak ‘H……L" Şeklinde ‘00010111’ olarakda verilebilir.

0->Çıkış

1->Giriş

SETET PORTB = 0

SETET PORTB = 255

SETET PORTA = 0

SETET PORTA = ‘00011111"

 

DTIP DEĞİŞKEN = İLK DEĞERİ

Programda kullanılan değişkenlerin ve türlerinin tanımlanması.

DTIP SICAKLIK = 30

DTIP HIZ = 20

DTIP SAYAC1 = 0

DTIP SAYAC2 = 60

 

SAYFA BANK NO

Bank seçimi için kullanılır.

Bank no 1 sayfa 1

Bank no 0 sayfa 0

SAYFA 0

SAYFA 1

 

ASM ASM KODLARI

Program içerisine ASM Kodları ekleme.

ASM NOP

ASM movlw test, ‘h30’

 

PINXY = 0/1 PIN AÇIK KAPALI

PBelirtilen portun pinini on of yapar

0 off

1 on

PINA0 = 1

PINA1 = 0

PINB1 = 0

PINC1 = 0

 

DEĞİŞKEN = PIN PORT PINNO

Belirtilen portun pinin 1 veya 0 olduğunu bulur

1 Buton a basılı yani 0

0 Butona basili değil yani 1

BUTONA = PINB2

BUTONB = PINB3

BUTONC = PINB4

START = PINB5

 

DEGİŞKEN = PORT PORTX

Belirtilen portu okuyup istenen değiştene aktarır

Port okumak için set edilmelidir. Giriş için 1

SETET PORTC = 255

TEST = PORT C

OKUMA = PORT A

 

EGER DEGİŞKEN = X OLURSA … EGERSON

Şartlı komutlar yazmak için kullanılır

Şart olarak =, <, > kullanılır.

EGER BUTONA = 1 OLURSA

PORT D = 12

EGERSON

EGER SINIR > 11 OLURSA

SINIR := 1

EGERSON

EGER SINIR < 0 OLURSA

SINIR := 1

EGERSON

 

LCD> ‘MESAJ’

Port D ye bağlı olan LCD ekrana bilgi göndermek için

Kullanılmadan önce ## LCD Kütüphanesi tanımlanmalıdır.

 

## LCD

LCD> ‘MERHABA’

LCD> ‘SICAKLIK=’

 

ATAMA KOMUTU :=

Değişkenlere bilgi aktarmak için kullanılr

SICAKLIK := 65

ADC_LOW := 12

 

TOPLAMA VE ÇIKARMA DEĞİŞKEN := DEĞİŞKEN +/- DEĞİŞKEN [X]

Toplama ve çıkarmak işlemleri için kullanılır.

A := 5

B := 7

C := A + B

C := A – B

C := C – 1

C := C + 7

 

ALT PROGRAMLAR ETİKET: … GERIGIT

Program içerisinde alt programları tanımlamak için kullanılır.

Genel kullanım

Etiket Adı:

…Komutlar

GERIGIT

SANIYE:

DONGU SAYAC1 = 100

BEKLE (10)

SONRA SAYAC1

GERIGIT

 

DONGÜ OLUŞTURMA DONGU DEĞİŞKEN = X … SONRA DEGİŞKEN

Program içerisinde döngüler oluşturmak amacıyla kullanılır.

DONGU ADET = [X= 0…255]

…KOMUTLAR

SONRA ADET

 

DONGU LCDSAYAC1 = 3

PORT D = 56

MODUL ENABLE

SONRA LCDSAYAC1

++ VE — DEĞİŞKEN ++/–

Değişkenin değerini 1 artırır veya eksiltir.

DEĞİŞKEN ++

DEĞİŞKEN —

SAI PBD Hakkında daha ayrıntılı bilgi ve beta sürümü  yakında…!!
                               seyit@sdu.edu.tr

 

Posted in Uncategorized.

Bir cevap yazın