LAB operacje arytm

background image

Politechnika Poznańska

Wydział Elektroniki i Telekomunikacji














MIKROKONTROLER 8051


Proste operacje arytmetyczne,

stos mikrokontrolera 8051




















Poznań 2009

background image

Politechnika Poznańska, Wydział Elektroniki i Telekomunikacji
Proste operacje arytmetyczne, stos mikrokontrolera 8051

_________________________________________________________________________________________________

1

Wstęp teoretyczny

Mikrokontroler 8051 jest wyposażony w jednostkę arytmetyczno-logiczną (ALU), która potrafi

wykonywać podstawowe operacje arytmetyczne na liczbach jednobajtowych.

W systemie DSM-51 istnieje kilka standardowych podprogramów służących do czytania danych

z klawiatury matrycowej i wyświetlania informacji na wyświetlaczu LCD.

nazwa

funkcja

LCD_CLR

czyści wyświetlacz LCD

WRITE_HEX

wypisuje na wyświetlaczu LCD bajt z

akumulatora w postaci szesnastkowej

WRITE_TEXT

wypisuje na wyświetlaczu LCD tekst wskazany

rejestrem DPTR

WRITE_DATA

wypisuje znakowo bajt z akumulatora na

wyświetlaczu LCD

WRITE_INSTR

wysyła

na

wyświetlacz

LCD

rozkaz

z

Akumulatora

WAIT_ENTER

na

wyświetlaczu

informacja

„PRESS

ENTER...”; czeka na naciśnięcie klawisza

[Enter]

WAIT_KEY

program czeka na dowolny klawisz z klawiatury

matrycowej;

nr

klawisza

zwraca

w

akumulatorze

WAIT_ENT_ESC

czeka na [Enter] lub [Esc]; zwraca informację:

C=0 - [Enter], C=1 - [Esc]

GET_NUM

wczytuje liczbę BCD (4 cyfry) z klawiatury pod

adres @R0; koniec wpisywania: [Enter] (C=0),

po 4 cyfrze również [Esc] (C=1)

Wszystkie te podprogramy zmieniają zawartość rejestrów A i PSW oraz wykorzystują rejestr R0.

W systemie DSM-51 klawisze [0] ... [9] ponumerowane są odpowiednio od 0 do 9, a pozostałe

mają kolejne wartości 10 ... 15, czyli 0AH ... 0FH.

Kolejność klawiszy jest następująca: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

←, →, ↑, ↓,

ESC, Enter.

Do realizacji podstawowych operacja arytmetycznych służą instrukcje

background image

Politechnika Poznańska, Wydział Elektroniki i Telekomunikacji
Proste operacje arytmetyczne, stos mikrokontrolera 8051

_________________________________________________________________________________________________

2

nazwa

funkcja

przykład

ADD

dodawanie

A

←Α +

ADD A, B

ADD A, #1

ADDC

dodawanie z przeniesieniem A

←Α + +

C

ADDC A, B

MUL

mnożenie

A*B

MUL A, B

SUBB

odejmowanie

A

←Α −

- C

SUBB A, #1

INC

zwiększ o jeden

INC A

DEC

zmniejsz o jeden

DEC A

DIV

dzielenie

A/B

DIVA, B

SWAP

zamienia miejscami cztery starsze bity z

czterema młodszymi bitami

SWAP A

XCH

zamienia

zawartość

dwóch

argumentów

między sobą

XCH A, B

DA

poprawka dziesiętna

DA A

W mikrokontrolerze 8051 istnieje możliwość zapamiętywania danych na stosie. W tym celu

programista musi zarezerwować pewną część pamięci RAM. Obszar ten musi być obszarem

ciągłym i nie można wykorzystywać go do innych celów. Adres wierzchołka stosu jest

wskazywany przez rejestr SP umieszczony w obszarze rejestrów specjalnych. Po sygnale RESET

wskaźnik stosu w 8051 jest ustawiony na 7.

Wskaźnik stosu można przestawić na inny obszar w pamięci RAM np. rozkazem:

MOV SP, #60H.

Dane wpisywane są na stos przy pomocy instrukcji PUSH, a odczytywane ze stosu poprzez

rozkaz POP.

background image

Politechnika Poznańska, Wydział Elektroniki i Telekomunikacji
Proste operacje arytmetyczne, stos mikrokontrolera 8051

_________________________________________________________________________________________________

3

Przebieg ćwiczenia

1.

Napisz program, który będzie dodawał dwie liczby. Liczby mają być wczytywane z

klawiatury (wykorzystaj podprogram WAIT_KEY) a wynik i znaki +, = powinny być

wyświetlane na wyświetlaczu LCD.

2.

Napisz program, który będzie realizował konwersję liczby binarnej mniejszej od 100 na

liczbę w kodzie BCD. Liczba binarna ma być wpisana do akumulatora a wynik

wyświetlony na wyświetlaczu LCD.

3.

Napisz program realizujący odejmowanie dwóch liczb jednobajtowych. Wynik

odejmowania ma być wyświetlany na wyświetlaczu.

4.

Napisz program realizujący mnożenie dwóch liczb binarnych jednobajtowych

umieszczonych w rejestrach A i B. Wynik mnożenia wyświetl na wyświetlaczu LCD.

5.

Napisz program, który będzie dodawał numery kolejno wciskanych klawiszy i wynik

wyświetlał na wyświetlaczu. Liczby powinny być przedstawione w kodzie BCD.

6.

Napisz program mnożący liczby reprezentowane w kodzie BCD.

7.

Napisz program, złożony z podprogramów, który będzie korzystał ze stosu. Niech

wyświetla liczbę zawartą w akumulatorze najpierw w formacie dziesiętnym a następnie w

postaci szesnastkowej wykorzystując do tego celu procedurę zamiany liczby binarnej

większej od 100 na liczbę w kodzie BCD.


Wyszukiwarka

Podobne podstrony:
LAB operacje arytm
Lab 1 Analiza wrazliwosci, Materiały AGH- zarządzanie finansami, badania operacyjne
LAB POD ELEKTRONIKI RD instrukcja wzmacniacz operacyjny
W2K3-15-raport, WAT, SEMESTR VII, Systemy operacyjne windows, Systemy operacyjne windows, sow, W2K3-
Lab 11 Operacje na plikach
Lab 02 Operacje na plikach
zad-dualność-lab 3-s, ZiIP Politechnika Poznańska, Badania Operacyjne
LAB 9 INF - C operacje we-wy, student
Lab 11 Operacje na plikach
Systemy operacyjne Sop 05 lab
Systemy operacyjne Sop 01 lab
Lab 7 (Wzmacniacze operacyjne)
Wzmacniacz Operacyjny - lab, Elektrotechnika, Elektrotechnika, elektronika
wzmacniacze oper, studia MEiL, Semestr 4, Elektronika II (lab), 2 Wzmacniacze operacyjne
Lab 8 (Wzmacniacz operacyjny)
nowe anale lab 2, wzmacniacz operacyjny - wnioski

więcej podobnych podstron