Politechnika Warszawska - Instytut IM w Płocku, Podstawy Elektrotechniki i Elektroniki
1
BADANIE DYDAKTYCZNEGO SYSTEMU
MIKROPROCESOROWEGO DSM-51
1. Cel wiczenia
Celem wiczenia jest zapoznanie studentów z budow i funkcjonowaniem układów
mikroprocesorowych oraz podstawowymi czynno ciami zwi zanymi z programowaniem
mikrokontrolerów w j zyku asemblera i uruchamianiem programów w systemie
mikroprocesorowym.
2. Obsługa dydaktycznego systemu mikroprocesorowego DSM-51
W omawianym systemie przewidziano dwie metody napisania programu dla mikrokontrolera.
Pierwsza metoda polega na wykorzystaniu komputera PC do napisania programu ródłowego
za pomoc edytora tekstu, wykonaniu asemblacji kodu ródłowego z wykorzystaniem
predefiniowanego pakietu oprogramowania i przesłaniu kodu wynikowego za pomoc portu
szeregowego RS 232 do systemu dydaktycznego. Program mo e by uruchomiony w trybie pracy
krokowej, co umo liwia podgl d wszystkich, wa nych z punktu widzenia pracy układu rejestrów i
lokacji pami ci.
Druga metoda to wykorzystanie własnego assemblera zaimplementowanego w systemie
dydaktycznym. Za pomoc klawiatury systemu wprowadza si bezpo rednio do pami ci
mikrokontrolera kolejne rozkazy kodu ródłowego programu. jest to bardzo niewygodny sposób
wprowadzania programu i nadaje si jedynie do uruchamiania bardzo krótkich programów.
Po zał czeniu zasilania stanowiska wykonuje si autotest systemu celem sprawdzenia
poprawno ci funkcjonowania poszczególnych układów systemu mikroprocesorowego.
System DSM-51 mo e pracowa w trzech trybach:
tryb 0 – gotowo c systemu na załadowanie programu steruj cego z komputera PC,
tryb 1 – wykonywanie programu aktualnie załadowanego do pami ci RAM,
tryb 2 – projektowanie programu za pomoc wbudowanego interpretera polece
mikrokontrolera 8051.
Standardowo system uruchamia si w trybie 0, aby przej do trybu 2 nale y przytrzyma
wci ni ty klawisz 2 i na chwil nacisn klawisz RESET-ROM.
Pisanie i uruchamianie programów z wykorzystaniem wbudowanego interpretera polece nie
nale y do przyjemnych zada . Dlatego te praktycznie wszystkie programy s pisane w edytorze
tekstu na komputerze klasy PC, a nastepnie poddawane procesowi asemblacji przy u yciu
zewn trznego asemblera
DSM51ASS.EXE.
Konwersja pliku ródłowego asemblera do postaci kodu wynikowego jest realizowana poprzez
wykonanie nast puj cego polecenia:
DSM51ASS nazwa_ pliku.asm
W wyniku działania programu powstaj nast pujace pliki:
nazwa_pliku.hex – plik zawieraj cy kod wynikowy w formacie Intel HEX,
nazwa_pliku.lst – listing programu.
Listing programu to plik tekstowy zawierajacy tre programu uzupełnion o numery linii,
wygenerowane kody rozkazów oraz wywołania makrorozkazów. Powstały plik w formacie HEX
mo na przesła do systemu DSM51 za pomoc programu DSM51RUN uruchamianego z wiersza
polece lub poprzez uruchomienie programu DSM51.EXE wyposa onego w interfejs graficzny.
Program ten pozwala na uruchomienie systemu w trybie pracy krokowej pod nadzorem monitora..
Politechnika Warszawska - Instytut IM w Płocku, Podstawy Elektrotechniki i Elektroniki
2
Przed przesłaniem programu do systemu DSM-51 nale y najpierw ustawi go w tryb 0, który jest
domy lnie ustawiany podczas uruchomienia programu lub poprzez naci ni cie przycisku RESET -
ROM.
Do dydaktycznego systemu mikroprocesorowego doł czonych jest szereg prostych
programów, których celem jest pokazanie mo liwo ci oraz sposobu funkcjonowania podstawowych
podzespołów systemu mikroprocesorowego.
3. Mikrokontroler 8051 – krótka charakterystyka
a) Schemat mikrokontrolera 8051
b) Pami ci mikrokontrolera 8051
Standardowy mikrokontroler 8051 posiada 4kB pami ci programu typu ROM programowane
mask . Niektóre wersje układu posiadaj pami EPROM lub EEPROM. Pami programu
przechowuje kody operacji przeznaczonych do wykonania przez mikroprocesor, mo e tak e słu y
do przechowywania stałych u ywanych w programie. Pami programu adresowana jest przez 16-
bitowy licznik rozkazów (PC, ang. Program Counter). Mikrokontroler 8051 mo e tak e korzysta z
zewn trznej pami ci programu o pojemno ci do 64kB.
Na wewn trzna pami RAM składaj si dwa bloki: 128 bajtów ci głego obszaru pami ci
danych oraz obszar 128 bajtów niespójnego bloku rejestrów specjalnych mikrokontrolera.
Politechnika Warszawska - Instytut IM w Płocku, Podstawy Elektrotechniki i Elektroniki
3
Rejestry specjalne SFR
Blok rejestrów specjalnych (SFR; ang. Special Function Registers) znajduje si w niespójnym
obszarze pami ci danych mikrokontrolera o adresach 128-240 (80H-0F0H). Obszar rejestrów SFR
mikrokontrolera '51 jest wykorzystywany dwojako - z jednej strony umieszczone s w nim wszystkie
(za wyj tkiem licznika rozkazów i czterech banków rejestrów R0-R7) rejestry steruj ce prac
mikrokontrolera lub wykorzystywane bezpo rednio przy wykonywaniu programu; z drugiej za
strony rejestry SFR stanowi rodzaj interfejsu pomi dzy mikroprocesorem a układami peryferyjnymi
umieszczonymi wewn trz mikrokontrolera. Wszystkie operacje sterowania wewn trznymi układami
peryferyjnymi oraz przesyłania danych mi dzy nimi a CPU, odbywaj si wła nie za po rednictwem
rejestrów SFR. Dost p do ka dego z tych rejestrów mo liwy jest wył cznie w trybie adresowania
bezpo redniego. Nazwy rejestrów SFR s zazwyczaj nazwami predefiniowanymi w asemblerach
mikrokontrolerów rodziny '51.
Mapa wewn trznej pami ci danych mikrokontrolera 8051
Adresy 48-127 (30H-7FH)
Pami danych u ytkownika
Adresy 32-47 (20H-2FH)
Pami adresowana bitowo (adresy 0-127 (0H-7FH))
Adresy 24-31 (18H-1FH)
Rejestry R0-R7 - bank 3 (RB3)
Adresy 16-23 (10H-17H)
Rejestry R0-R7 - bank 2 (RB2)
Adresy 8-15 (8H-0FH)
Rejestry R0-R7 - bank 1 (RB1)
Adresy 0-7 (0H-7H)
Rejestry R0-R7 - bank 0 (RB0)
Obszar od adresu 0 do 31 (0H-1FH) zajmuj cztery banki rejestrów (RB0...RB3) roboczych, po
osiem rejestrów w banku. Rejestry te maj oznaczenia R0 do R7 i mog by wykorzystywane do
przechowywania danych. Wyj tek stanowi rejestry R0 i R1 ka dego bloku, które mog by
wykorzystane do indeksowego adresowania wewn trznej i zewn trznej pami ci danych. W danej
chwili dost pny jest tylko bank wybierany bitami RS1 i RS0 rejestru statusowego PSW. Po
wyzerowaniu mikrokontrolera sygnałem RESET u ytkownik ma do dyspozycji bank 0. Obszar
pami ci o adresach 32-47(20H-2FH) mo e by u ywany do przechowywania dowolnych danych
wykorzystywanych w programie. Cech tego obszaru jest to, e mo liwe jest zaadresowanie
pojedynczego bitu komórki pami ci.
4. Projektowanie oprogramowania w j zyku asemblera
W wi kszo ci przypadków do projektowania wykorzystuje si komputer PC z
zainstalowanym programem edytora, asemblera, programu ł cz co-ładuj cego (ang. Linking-loader)
i ledz cego (debuger).
W systemie DSM-51 translator asemblera generuje plik wynikowy w
formacie (HEX), który mo e by przesłany do pami ci oraz dodatkowy plik tekstowy (LST), który
zawiera raport z przeprowadzonej translacji kodu ródłowego (numery i adresy kolejnych instrukcji
programu, adresy zadeklarowanych zmiennych, zestawienie u ytych nazw symbolicznych oraz
ewentualne komunikaty o bł dach).
Przygotowanie kodu ródłowego programu w postaci pliku ASCII
Ka da instrukcja programu w asemblerze jest tłumaczona na pojedynczy rozkaz maszynowy.
Ka da linia asemblera mo e zawiera maksymalnie jeden rozkaz procesora, dyrektyw asemblera lub
wywołanie wcze niej zdefiniowanego makrorozkazu.
Format ka dej linii programu:
[<etykieta>] <rozkaz> <operandy> ; <komentarz>
Politechnika Warszawska - Instytut IM w Płocku, Podstawy Elektrotechniki i Elektroniki
4
[
<etykieta>] - symbol umieszczony na samym pocz tku linii, musi si zaczyna od litery lub
znaku podkre lenia. Je eli zako czona jest dwukropkiem, to nadawana jest jej warto okre laj ca
jej pozycj w kodzie ródłowym.
<rozkaz> - mnemonik kodu maszynowego procesora dyrektywa asemblera lub makrorozkaz.
<
operandy> - (argumenty) informacje wymagane przez mnemonik, dyrektyw asemblera lub
makrorozkaz. Rozkazy mog zawiera od 0 do 2 argumentów, oddzielonych przecinkami.
Argumentami mog by liczby, adresy danych oraz oznaczenia rejestrów.
<
komentarz> - wszystkie znaki wyst puj ce po redniku s traktowane jako komentarz i
ignorowane przez asembler.
Poszczególne pola linii programów musz by oddzielone mi dzy sob co najmniej jednym
znakiem spacji lub tabulacji.
Asembler umo liwia równie stosowanie symboli do oznaczania zarówno danych liczbowych
jak i adresów.
MOV A, #10
MOV – przeznaczenie, ródło
Rozkaz MOV (move – przesu ) spowoduje przeniesienie bitu lub bajtu z miejsca
okre lonego przez „ ródło” (w przykładzie: #10) do miejsca okre lonego przez „przeznaczenie” (w
przykładzie: A). Znak # okre la, e chodzi bezpo rednio o warto liczbow 10, która ma by
skopiowana do akumulatora.
Akumulator – jest rejestrem umieszczonym równie w obszarze rejestrów specjalnych SFR
(ACC) - akumulator
Rozkaz LCALL adr-16, wywołaj podprogram zaczynaj cy si szesnastobitowym adresem –
zwi ksz o 3 licznik programu PC, zwi ksz o 1 wska nik stosu SP i zapisz pod tym adresem młodszy
bajt licznika programu PC, zwi ksz wska nik stosu znowu o 1, zapisz pod ten adres starszy bit
licznika programu PC, przepisz adres wywołanego podprogramu do licznika programu PC.
RET powró z wywoływanego podprogramu, przepisz do licznika PC starszy bit adresu
powrotu, zmniejsz wska nik stosu SP o jeden, przepisz ze stosu do licznika programu PC młodszy
bajt adresu powrotu i zmniejsz wska nik stosu o 1.
Wybrane rozkazy mikrokontrolera 8051
Operacje matematyczne
ADD
Dodaj A
←A +
ADDC
Dodaj A
←A + + C
SUBB Odejmij A
←A -⋅ -⋅ C
INC
Zwi ksz o jeden
DEC
Zmniejsz o jeden
MUL
Mnó A
*
B
DIV
Dziel A/B
DA
Poprawka dziesi tna
Operacje logiczne
ANL Iloczyn logiczny AND
ORL
Suma logiczna OR
XRL Suma modulo 2XOR
CLR/CPL
Zeruj/neguj
RL/RR
Obrót w lewo/prawo
RLC RRC
Obrót przez C
SWAP
Zamie 4 bity (hi
↔lo)
CPL
Neguj bit
Przesłanie danych
MOV kopiuj A
←
MOV kopiuj R
r
←
MOV direct
← kopiuj
MOV kopiuj @ R
i
←
MOV DPTR
←
MOVC
pami programu
MOVX zewn trzna pami danych
PUSH Zapisz na stos
POP
Odczytaj ze stosu
Skoki
LCALL
podprogram
RET
powrót z podprogramu
RETI powrót z przerwania
LJMP, AJMP, SJMP, JNC skoki
JZ, JNZ, JC, JNC – skok warunkowy
JB, JNB, JBC – skok warunkowy od bitu
CJNE – porównaj, skocz je li
≠
DJNZ – zmniejsz, skocz je li
≠0
NOP – nic nie rób
Politechnika Warszawska - Instytut IM w Płocku, Podstawy Elektrotechniki i Elektroniki
5
Wybrane operandy asemblera 8051
R
r
rejestry R0 – R7
@R
i
– rejestr po redni R0 lub R1
bit – bity adresowalne RAM + SFR
# data – stała o miobitowa zawarta w instrukcji
#data 16 – stała szesnastobitowa
addr16 – adres w obszarze 64 k (adres przeznaczenia przez rozkaz LJMP lub LCALL)
rel – adres wzgl dny –128 do +127
n – rozkaz wykonywany w n cyklach
Symbol
$ – oznacza aktualny adres w pami ci danego rozkazu
Przykładowe podprogramy w pami ci EPROM systemu DSM 51
WRITE_TEXT
wpisuje na wy wietlacz LCD tekst wskazany rejestrem DPTR
WRITE_DATA
wpisuje znakowo bajt z Akumulatora na wy wietlacz LCD
WRITE_HEX
wpisuje szesnastkowo bajt z Akumulatora na wy wietlacz
LCD_INIT
inicjalizuje prac wy wietlacza LCD
LCD_OFF
wył cza wy wietlacz LCD
LCD_CLR
kasuje zawarto wy wietlacza LCD i kursor na pocz tek
DELAY_US
wykonuje programowe opó nienie
WAIT_KEY
program czeka na naci ni cie dowolnego klawisza z klawiatury
Przykładowe programy ródłowe asemblera
Zapal/zga diod LED
; Zawarto portu P1 po sygnale RESET wynosi 11111111B
; dioda LED podł czona do linii 7 w porcie P1
LED
EQU P1.7
; dioda TEST podł czona do portu P1.7
LJMP START
ORG 100H
START:
LOOP:
CLR LED ; zeruj lini 7 w porcie P1, czyli zapal diod LED
SETB LED ; ustaw lini 7, zga diod
LJMP LOOP ; skocz do pocz tku p tli
Mruganie diody – opó nienie czasowe
LED EQU P1.7
LJMP START
ORG 100 H
START:
CLR LED ; zapal diod
LOOP:
SETB LED ; ustaw bit zga diod
MOV A, #10 ; załaduj do akumulatora liczb 10
LCALL DELAY_100 ms, czekaj czas 10 x 100 ms = 1 s
CLR LED
; zeruj bit – zapal diod
MOV A, #10
LCALL DELAY_100 ms
LJMP LOOP ; powtórz
Politechnika Warszawska - Instytut IM w Płocku, Podstawy Elektrotechniki i Elektroniki
6
Wy wietl. 7-segment zapis do portu – pełny adres
SEG_ON EQU P1.6
; wł czenie wy wietlacza 7-segmentowego
: adresy urz dze WE/WY
F_CSDS EQU 0FF30H
; wybrane wska niki (bufor)
F_CSDB EQU 0FF38H
; wybrane segmenty (bufor)
: stała u ywana w programie
DISPLAY EQU 0001001B ; wybrane wska niki
COD EQU 01011011B
; wybrane segmenty
LJMP START
ORG 100 H
START:
MOV DPTR, #F_CSDS
; adres bufora wybranych wska ników
MOVX @ DPTR, A
; wypisz wybrane wska niki
MOV DPTR, #F_CSDB ; adres bufora danych wska nika
MOV A, # COD
MOVX @ DPTR, A
; wpisz wybrane
CLR SEG_ON
; wł cz wy wietlacz 7-segmentowy
SJMP $
Wy wietlacz zawsze pokazuje na ekranie zawarto bufora danych na wybranych
wska nikach pobranych z bufora wyboru wska nika.
5. Wykonanie wiczenia:
1. Zapoznanie studentów z budow podstawowego systemu mikroprocesorowego.
2. Uruchomi stanowisko i komputer PC w trybie wiersza polece .
3. Uruchomi oprogramowanie Norton Commander i przej do katalogu
C:\DSM51\TESTY.
Podejrze zawarto kolejnych przykładów plików ródłowych ASM dla Lekcji 1.
Przeanalizowa komentarze umieszczone przy poszczególnych wierszach kodu ródłowego.
4. Uruchomi program
DSM51.EXE i z menu File załadowa pierwszy przykład Lekcji 1
(
L01_p1.asm) do bufora pami ci. Przej do menu BUFFER i wyeditowa zawarto bufora.
Nast pnie z menu DSM-51 wybra opcj RUN i przesła program do systemu
mikroprocesorowego. Zaobserwowa efekty wykonania si programu.
5. Czynno ci w pkt. 4 powtorzy dla pozostałych przykładów.
6. Wróci do wiersza polece (Norton Commander) i wyedytowa plik
L01_p6.asm,
wprowadzi inn warto stałej dla p tli opó nienia. Kombinacj klawiszy CTRL+O ukry
nakładk programu Nortona i w wierszu polece wprowadzi komend :
DSM51ASS
L01_P6.ASM. Zaobserwowa wynik translacji kodu ródłowego i podejrze zawarto pliku
listingu.
7. Ustawi system DSM-51 w
Trybie 0 (przycisk RESET) i przesła plik wynikowy HEX do
systemu mikroprocesorowego komend :
DSM51RUN –2 L01_P6.HEX. Zaobserwowa
ró nic wykonania programu w stosunku do wersji poprzedniej.
8. Analogicznie przeanalizowa przykłady dla Lekcji 6.
9. Podda plik
L06_P3.ASM modyfikacji tak, aby na wy wietlaczu pojawiła si data
wykonania wiczenia.
10. Wykona sprawozdanie z przeprowadzonego wiczenia.