bas_00-skrypt.doc

(109 KB) Pobierz
Zmienne

BASCOM 8051 i BASCOM AVR – skrypt do zajęć

 

Zmienne

 

Wszystkie zmienne, stałe, tablice, funkcje, podprogramy w środowisku BASCOM AVR należy zadeklarować.

 

Dim nazwa_zmiennej As typ_zmiennej

 

Dim Alfa As Byte , Beta As Word , Flag As Bit 

Dim Text_1 * 10 As String

 

Przypisując zmiennym wartości należy pamiętać o zadeklarowanych zakresach.

 

Alfa = 255

 

Typy zmiennych

 

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

 

 

Stałe

 

CONST nazwa_stałej = wartość_stałej

 

Const Pi = 3.14

Const A = &hf3

Const B = &b01010011

Const Haslo = J-23

 

 

Tablice

 

DIM nazwa_tablicy(rozmiar_tablicy) AS typ_zmiennych

 

Dim Kod(20) As Byte

Kod(5) = 23

 

 

Aliasy - przypisania nazw do linii lub portu

 

nowa_nazwa ALIAS linia_portu

nowa_nazwa ALIAS port

 

Led Alias PORTB.7

Wejście Alias PORTC

 

 


Sterowanie portami

 

Aby móc sterować portami należy je najpierw skonfigurować w jeden z poniższych sposobów, w zależności od tego, czy końcówki (piny) portu mają funkcjonować jako WYJŚCIA (do sterowania innymi urządzeniami), albo jako WEJŚCIA (do pobierania informacji z innych urządzeń).

 

Config PORTB = Output

Config PORTC = Input

Config PIND.7 = Output

Config PIND.6 = Input

Config PIND.6 = 0                                          -  “0” – input, “1” – output

Config PORTA = &B00001111                            -  “0” – input, “1” – output

DDRA = &B00001111                                          -  “0” – input, “1” – output

PORTA = &B11110000                                          - “1” – rezystory podciągnięte do +5V

 

W programie możemy zmieniać kierunek transmisji przez cały port lub wybrane bity portu. Chcąc używać pinów portu jako wejścia należy na odpowiednich bitach rejestru DDRx wpisać „0”, jako wyjście należy wpisać „1”.

Jeżeli wyślemy stan „1” na dowolny bit portu ustawiony jako wejście, to spowodujemy podciągnięcie go do zasilania przez wewnętrzne rezystory mikrokontrolera.

 

 

Sterowanie wyświetlaczem alfanumerycznym LCD

 

Należy w OPTIONS/COMPILER/LCD poinformować kompilator jakiego typu zastosujemy wyświetlacz i do których linii portu będzie on podłączony. Możemy to także zrobić w treści programu w następujący sposób:
 

CONFIG LCD = ilość_znaków * ilość_linii

 

CONFIG LCD = 16*2

CONFIG LCD = 20*4

 

Operacje na wyświetlaczu:

LCD ”tekst”                                                        - wyświetl tekst

LCD zmienna                                                        - wyświetl wartość zmiennej

LCD ”tekst_1 ” ; zmienna                            - wyświetl kolejno tekst_1, wartość zmiennej

CLS                                                                      - wyczyszczenie (inicjalizacja) wyświetlacza

DISPLAY ON/OFF                                          - włączenie/wyłączenie LCD

CURSOR ON/OFF                                                        - włączenie/wyłączenie kursora

CURSOR BLINK/NOBLINK                            - włączenie/wyłączenie kursora i migania

SHIFTCURSOR LEFT/RIGHT                            - przesunięcie kursora

SHIFTLCD LEFT/RIGHT                                          - przesunięcie tekstu

HOME                                                                      - ustawienie kursora na początek linii

UPPERLINE                                                        - przejście kursora do wyższej linii

LOWERLINE                                                        - przejście kursora do niższej linii

THIRDLINE                                                        - przejście kursora do trzeciej linii

FOURTHLINE                                                        - przejście kursora do czwartej linii

LOCATE linia , pozycja_kursora              - ustawienie kursora na wskazaną pozycję

DEFLCDCHAR numer_banku , kod 1 linii , kod 2 linii , ... , kod 8 linii

                                                                      - deklarowanie własnych znaków

LCD CHR(numer_banku)                            - wywołanie zadeklarowanego znaku

 

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = PORTC.4 , Db5 = PORTC.5 , Db6 = PORTD.7 ,

                                            Db7 = PORTA.7 , E = PORTC.3 , Rs = PORTC.2      

Deflcdchar 0 , 0 , 0 , 14 , 1 , 15 , 17 , 15 , 4            'ą

Deflcdchar 1 , 2 , 4 , 14 , 16 , 16 , 17 , 14 , 0           'ć

Deflcdchar 2 , 0 , 0 , 14 , 17 , 31 , 16 , 14 , 4           'ę

Deflcdchar 3 , 12 , 4 , 6 , 12 , 4 , 4 , 14 , 0             'ł

Deflcdchar 4 , 2 , 4 , 22 , 25 , 17 , 17 , 17 , 0           'ń

Deflcdchar 5 , 2 , 4 , 14 , 17 , 17 , 17 , 14 , 0           'ó

Deflcdchar 6 , 2 , 4 , 15 , 16 , 14 , 1 , 30 , 0            'ś

Deflcdchar 7 , 4 , 0 , 31 , 2 , 4 , 8 , 31 , 0              'ź

'Deflcdchar 7 , 2 , 4 , 31 , 2 , 4 , 8 , 31 , 0              'ź

'Deflcdchar 7 , 0 , 0 , 15 , 17 , 17 , 15 , 1 , 14           'g

'Deflcdchar 7 , 0 , 0 , 17 , 17 , 17 , 15 , 1 , 14           'y

'Deflcdchar 7 , 6 , 9 , 9 , 6 , 0 , 0 , 0 , 0                'znak stopnia

'Deflcdchar 7 , 8 , 20 , 8 , 3 , 4 , 4 , 4 , 3               'znak stopnia + c Cursor Off Noblink

Cls                              'wpis zdefiniowanych znaków

                                               'do pamięci RAM wyświetlacza


Opóźnienia czasowe

 

DELAY                                                                      - opóźnienie ok. 100ms dla kwarcu 12 MHz

WAITMS ilość_milisekund                            - opóźnienie o wskazaną liczbę ms

WAIT   ilość_sekund                                          - opóźnienie o wskazaną liczbę sekund

 

 

Led Alias PORTB.7

Do

  Reset Led

  Waitms 250

  Set Led

   Wait 1

Loop

END

 

 

Pętla DO … LOOP

 

DO                                                                      - początek pętli

                                                                         - operacje i polecenia wykonywane w pętli

LOOP                                                        ...

Zgłoś jeśli naruszono regulamin