background image

Politechnika Warszawska   -  Instytut  IM  w  Płocku,  Podstawy Elektrotechniki i Elektroniki 

 

 

 

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..  

background image

Politechnika Warszawska   -  Instytut  IM  w  Płocku,  Podstawy Elektrotechniki i Elektroniki 

 

 

 

 

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.  

background image

Politechnika Warszawska   -  Instytut  IM  w  Płocku,  Podstawy Elektrotechniki i Elektroniki 

 

 

 

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> 

background image

Politechnika Warszawska   -  Instytut  IM  w  Płocku,  Podstawy Elektrotechniki i Elektroniki 

 

 

 

[

<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 

background image

Politechnika Warszawska   -  Instytut  IM  w  Płocku,  Podstawy Elektrotechniki i Elektroniki 

 

 

 

 

 

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 

background image

Politechnika Warszawska   -  Instytut  IM  w  Płocku,   Podstawy Elektrotechniki i Elektroniki 
 

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.