Bascom - podstawy.doc

(97 KB) Pobierz
Podstawy programowania w BASCOM BASIC

Podstawy programowania w BASCOM BASIC AVR

 

 

Tworzenie programu

 

1.       Uruchamiamy aplikację BASCOM AVR.

2.       Tworzymy plik programu lub otwieramy i ewentualnie edytujemy istniejący.

3.       Sprawdzamy, czy ustawienia konfiguracji są zgodne z założonymi.

4.       Zapisujemy plik programu.

5.       Dokonujemy kompilacji.

6.       Jeśli wystąpiły jakieś błędy, poprawiamy je zapisujemy i ponownie kompilujemy  program.

7.       Uruchamiamy symulację.

8.       Jeżeli program działa niezgodnie z oczekiwaniami poprawiamy go i powtarzamy operację kompilacji i symulacji.

9.       Programujemy układ mikrokontrolera i testujemy w realizowanym urządzeniu.

 

Zestaw znaków

 

·         duże litery od A do Z oraz ich odpowiedniki w zestawie małych liter oraz znak _.

·         liczby 0 do 9 oraz przy zapisie szesnastkowym litery od A do H

(zapis szesnastkowy powinien być poprzedzony przedrostkiem &H, a bitowy

przedrostkiem &B).

 

Znaki o szczególnym znaczeniu

 

spacja              - znak rozdzielający

:              - rozdziela instrukcje zapisane w jednej linii

,              - znak rozdzielający argumenty instrukcji

;              - rozdziela argumenty instrukcji wejścia/wyjścia

'              - znak początku komentarza

"              - rozpoczyna i kończy dane tekstowe

+              - znak operacji dodawania

-              - znak operacji odejmowania

*              - znak operacji mnożenia

/              - znak operacji dzielenia

\              - znak dzielenia dla liczb całkowitych

^              - znak operacji potęgowania

.              - oddziela część całkowitą od ułamkowej

=              - występuje w operacjach przypisania oraz porównywania

<              - znak operacji porównywania (mniejszy)

>              - znak operacji porównywania (większy)

 

Struktura pojedynczej linii programu

 

Etykieta:              Instrukcja1: Instrukcja2: ... : Instrukcja ostatnia              ‘Komentarz

(oczywiście nie wszystkie składniki muszą występować jednocześnie).

 

·         Etykieta - zaczyna się jako pierwszy znak linii, musi zaczynać się od litery (1 do 32 znaków) i nie może być słowem zastrzeżonym (żadną z instrukcji języka BASCOM BASIC).

·         Komentarz - rozpoczyna się znakiem ‘ lub słowem REM (traktowanym jako instrukcja języka BASCOM BASIC). Mogą zawierać dowolne znaki. Komentarze są bardzo wskazane, celem opisu operacji, podprogramów i procedur zawartych w programie.

 


Instrukcje języka BASCOM BASIC

 

·         Instrukcje “wykonywalne” tworzą logiczną strukturę działania programu (są odzwierciedleniem algorytmu programu).

·         Instrukcje “nie wykonywalne” są odpowiedzialne za cześć informacyjną oraz organizacyjną programu:

- instrukcje komentarza,

- instrukcje deklaracji (DIM, DECLARE) ,

- dyrektywy kompilatora, rozpoczynające się znakiem $.

 

Typy danych

 

Bit

1/8 bajta

Może przyjmować wartość 0 lub 1

Byte

1 bajt

Może przechowywać wartość binarna od 0 do 255

Word

2 bajty

Może przechowywać wartość w zakresie 0 – 65535

Integer             

2 bajty

Może przechowywać dowolną liczbę całkowitą z zakresu –32768 do +32767.

Long

4 bajty

Może przechowywać dowolną liczbę całkowitą z zakresu -2^32 do 2^32-1

Single

4 bajty

Może przechowywać dowolną liczbę stało lub zmiennoprzecinkową pojedynczej precyzji

Double

8 bajtów

Może przechowywać dowolną liczbę stało lub zmiennoprzecinkową podwójnej precyzji

String

max. 254 bajty

Może przechowywać dowolny ciąg znaków o długości nie większej niż 254 znaki

 

Zmienne

 

Zmienna to określony obszar pamięci identyfikowany przez nadaną mu nazwę. Wielkość tego obszaru zależy od zmiennej (patrz tabela wyżej). W zmiennych numerycznych można przechowywać tylko dane będące liczbami. W zmiennych typu String tylko dane będące znakami lub ciągiem znaków (ciągiem liczb odpowiadających kodom liter wg ASCII). Nazwa zmiennej musi zaczynać się od litery (max 32 znaki). Nie może być słowem zastrzeżonym.

 

Przypisanie zmiennej wartości liczbowej lub tekstowej:

 

B = 1.1                     'zmienna C jest typu Single

C = "BASCOM"                'zmienna D jest typu String

s = "8051"

ALFA = &H1af4

Delta = &B1010

 

Przypisanie zmiennej wartości innej zmiennej:

 

Abc = Def

K = G

 

Przypisanie zmiennej wyniku operacji matematycznej:

 

Temp = A + 5

 

Przypisanie zmiennej wyniku działania funkcji:

 

Temp = Asc(s)                 'zmienna s jest typu String o długości jednego znaku

 


Definiowanie zmiennych

 

Aby używać zmiennej w programie należy ją najpierw zdefiniować instrukcją DIM. Jest to wymagane, gdyż kompilator musi określić rozmiar pamięci przeznaczony na każdą ze zmiennych. Zmienne typu String muszą mieć dodatkowy parametr określający przewidywaną długość w znakach.

 

Dim B1 As Bit, I As Integer, K As Byte , S As String * 10

 

Można także użyć specjalnych instrukcji z zestawu: DEFINT, DEFBIT, DEFBYTE, DEFWORD, DEFLNG lub DEFSNG. Instrukcje te odgórnie definiują typ użytych zmiennych w programie. Dla przykładu instrukcja:

 

Defint A

 

spowoduje, że wszystkie zmienne użyte w programie, których nazwa zaczyna się literą A, a nie były zdefiniowane instrukcją DIM, będą zmiennymi typu Integer.

 

Kwalifikatory

 

Do każdej zmiennej numerycznej (oprócz typu Bit) można stosować kwalifikatory - odnośniki do konkretnych bitów zmiennych. Przykład dla zmiennej typu Byte:

 

A = 7                        ’bitowo: &b00000111

Print A.0                     'wydrukuje 1

Print A.3                     'wydrukuje 0

 

Liczby zmiennoprzecinkowe

 

Liczby zmiennoprzecinkowe można przechowywać jedynie jako typu Single. Sposób reprezentowania zmiennych typu Single w pamięci, został oparty na standardzie IEEE. Liczba taka zajmuje 32 bity (4 bajty). Bity te są podzielone na bit znaku, 8 bitowy eksponent (cechę) i 23 bitową mantysę:

 

31 30__________23 22______________________________0

zn       eksponent                                  mantysa

 

Bit znaku określa znak liczby przechowywanej w zmiennej. Wartość 0 oznacza liczbę dodatnią, 1 zaś ujemną. Eksponent jest zapisany jako liczba 8 bitowa ze znakiem w kodzie U2. Jeśli najbardziej znaczący bit eksponentu (zwanego też cechą) jest ustawiony (eksponent > 128) to eksponent jest traktowany jako ujemny. Mantysa jest przechowywana w znormalizowanym formacie “ukrytego bitu”.

Wszystkie operacje matematyczne mogą być przeprowadzane wyłącznie na liczbach typu Single.

Można także dokonywać konwersji (niejawnej) z typu Single na Integer lub Word, i odwrotnie:

 

Dim I As Integer, S As Single

 

S = 100.1                 'przypisujemy liczbę zmiennoprzecinkową

I = S                     'ta instrukcja zmieni liczbę typu single na Integer

 

Ciągi

 

Ciągi używane są przede wszystkim do zapamiętywania tekstu. Przy definiowaniu ciągów musi być podana przewidywana długość takiego ciągu.

 

Dim S As String * 5

 

Rozkaz powyższy spowoduje utworzenie ciągu który może pomieścić maksymalnie 5 znaków. Zmienna ta zajmie dokładnie 6 bajtów, gdyż na końcu ciągu jest zapamiętywany zawsze znak końca (znak o kodzie zero).

 

Przypisanie ciągu znaków do zmiennej może odbywać się w ten sposób:

 

S = "abcd"

 

Jeśli nie ma możliwości bezpośredniego wprowadzenia z klawiatury jakiegoś znaku, to można skorzystać z możliwości wprowadzenia jego kodu:

 

S = "AB{kod}cd"

 

Znacznik {kod} wstawia do ciągu znak z zestawu ASCII o podanym kodzie. Należy pamiętać, że kod musi być trzycyfrowy. Zapis: s = "{27}" nie spowoduje umieszczenia znaku Escape do ciągu!

 

 

Tablice

 

Tablica to nic innego jak zbiór ponumerowanych elementów. Każdy element tablicy posiada swój własny indeks (numer) jednoznacznie go identyfikujący. Zmiana ...

Zgłoś jeśli naruszono regulamin