background image

Projekt wspó

łfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

 

 

 
 

 

MINISTERSTWO EDUKACJI 

            NARODOWEJ 

 

 

 

Mirosław Sulejczak 

 

 

 

 

 

Badanie układów zewnętrznych mikrokontrolera

 

 

311[07].Z4.03 

 
 
 
 
 

Poradnik dla ucznia 

 

 

 

 

 

 

 

 

 

Wydawca 

Instytut Technologii Eksploatacji – Państwowy Instytut Badawczy 
Radom  2006 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

Recenzenci: 

mgr inż. Elżbieta Małgorzata Majka 

mgr inż. Anna Kembłowska 

 
 
Opracowanie redakcyjne: 

mgr inż.Danuta Pawełczyk 

 

 

 

Konsultacja: 

mgr inż. Gabriela Poloczek 

 

 

 

Korekta: 

 

 

 

 

Poradnik  stanowi  obudowę  dydaktyczną  programu  jednostki  modułowej  311[07].Z4.03 
„Badanie  układów  zewnętrznych  mikrokontrolera”  zawartego  w  modułowym  programie 
nauczania dla zawodu technik elektronik. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

Wydawca 

Instytut Technologii Eksploatacji – Państwowy Instytut Badawczy, Radom  2006 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

SPIS TREŚCI

 

 
 

1.  Wprowadzenie 

2.  Wymagania wstępne 

3.  Cele kształcenia 

4.  Materiał nauczania 

4.1. Dołączanie układów zewnętrznych do mikrokontrolera 

   4.1.1. Materiał nauczania 

   4.1.2. Pytania sprawdzające 

13 

   4.1.3. Ćwiczenia 

14 

   4.1.4. Sprawdzian postępów 

15 

4.2. Wyświetlacz LCD  

16 

   4.2.1. Materiał nauczania 

16 

   4.2.2. Pytania sprawdzające 

19 

   4.2.3. Ćwiczenia 

20 

   4.2.4. Sprawdzian postępów 

21 

4.3. Przetwornik C/A 

22 

   4.3.1. Materiał nauczania 

22 

   4.3.2. Pytania sprawdzające 

23 

   4.3.3. Ćwiczenia 

24 

   4.3.4. Sprawdzian postępów 

26 

5. Sprawdzian osiągnięć 

27 

6. Literatura 

35 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

1. WPROWADZENIE 

 

Poradnik  będzie  Ci  pomocny  w  przyswajaniu  wiedzy  z  zakresu  badania  modułów 

wewnętrznych mikrokontrolera. 

W poradniku zamieszczono: 

− 

wymagania wstępne – wykaz umiejętności, jakie powinieneś mieć już opanowane,  
abyś bez problemów mógł korzystać z poradnika,  

− 

cele kształcenia – wykaz umiejętności, jakie opanujesz podczas pracy z poradnikiem, 

− 

materiał  nauczania  –  podstawowe  wiadomości  teoretyczne  niezbędne  do  opanowania 
treści jednostki modułowej, 

− 

zestaw pytań przydatny do sprawdzenia, czy już opanowałeś podane treści, 

− 

ćwiczenia,  które  pomogą  Ci  zweryfikować  wiadomości  teoretyczne  oraz  ukształtować 
umiejętności praktyczne, 

− 

sprawdzian postępów, 

− 

literaturę uzupełniającą, 

− 

sprawdzian  osiągnięć  –  przykładowy  zestaw  zadań  i  pytań.  Pozytywny  wynik 
sprawdzianu  potwierdzi,  że  dobrze  pracowałeś  podczas  lekcji  i  że  nabyłeś  wiedzę  
i umiejętności z zakresu tej jednostki modułowej, 

W  materiale  nauczania  zostały  omówione  zagadnienia  zakresu  badania  układów 

zewnętrznych  mikrokontrolera,  ich  budowy,  sposobu  dołączenia  do  mikrokontrolera  
oraz  programowania.  Podczas  poznawania  modułów  mikrokontrolera  niewątpliwie  pomocny 
będzie nauczyciel, który pomoże Ci w przypadku pojawienia się problemów. 
Z rozdziałem „Pytania sprawdzające” możesz zapoznać się: 

− 

przed  przystąpieniem  do  rozdziału  „Materiał  nauczania”  –  poznając  przy  tej  okazji 
wymagania  wynikające  z  zawodu,  a  po  przyswojeniu  wskazanych  treści,  odpowiadając  
na te pytania sprawdzisz stan swojej gotowości do wykonywania ćwiczeń, 

− 

po zapoznaniu  się  z  rozdziałem  „Materiał  nauczania”, by  sprawdzić  stan swojej  wiedzy, 
która będzie Ci potrzebna do wykonywania ćwiczeń. 
Kolejny  etap  to  wykonywanie  ćwiczeń,  których  celem  jest  uzupełnienie  i  utrwalenie 

wiadomości z zakresu badania modułów mikrokontrolera. 

Wykonując ćwiczenia przedstawione w poradniku lub zaproponowane przez nauczyciela, 

będziesz poznawał  budowę, sposób programowania  i użytkowania  modułów dołączanych do 
mikrokontrolera. 

Po  wykonaniu  zaplanowanych  ćwiczeń,  sprawdź  poziom  swoich  postępów  wykonując 

„Sprawdzian postępów”.  
W tym celu: 

− 

przeczytaj pytania i odpowiedz na nie, 

− 

podaj odpowiedź wstawiając X w podane miejsce, 

  wpisz TAK jeśli Twoja odpowiedź na pytanie jest prawidłowa,  

  wpisz NIE jeśli Twoja odpowiedź na pytanie jest niepoprawna. 

Odpowiedzi  NIE  wskazują  luki  w  Twojej  wiedzy,  informują  Cię  również,  jakich 

zagadnień  jeszcze  dobrze  nie  poznałeś.  Oznacza  to  także  powrót  do  treści,  które  nie  są 
dostatecznie opanowane. 

Poznanie  przez  Ciebie  wszystkich  lub  określonej  części  wiadomości  będzie  stanowiło  

dla nauczyciela podstawę przeprowadzenia sprawdzianu poziomu przyswojonych wiadomości  
i  ukształtowanych  umiejętności.  W  tym  celu  nauczyciel  może  posłużyć  się  zadaniami 
testowymi.  

 
 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

W rozdziale 5. tego poradnika jest zamieszczony przykład takiego testu, zawiera on: 

  instrukcję, w której omówiono tok postępowania podczas przeprowadzania sprawdzianu, 

  przykładową kartę odpowiedzi, w której, w przeznaczonych  miejscach wpisz odpowiedzi 

na pytania lub zakreśl właściwe odpowiedzi spośród zaproponowanych. 

 

Bezpieczeństwo i higiena pracy 
 

W  czasie  pobytu  w  pracowni  musisz  przestrzegać  regulaminów,  przepisów 

bezpieczeństwa  i  higieny  pracy  oraz  instrukcji  przeciwpożarowych,  wynikających  z  rodzaju 
wykonywanych prac. Przepisy te poznasz podczas trwania nauki. 

 

 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

 

Schemat układu jednostek modułowych 

 

311[07].Z4 

Badanie układów 

mikroprocesorowych 

311[07].Z4.01 

Pisanie i uruchamianie programów 

w asemblerze 

311[07].Z4.02 

Badanie modułów wewnętrznych 

mikrokontrolera 

311[07].Z4.03 

Badanie układów zewnętrznych 

mikrokontrolera 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

2. WYMAGANIA WSTĘPNE 

 

Przystępując do realizacji programu jednostki modułowej, powinieneś umieć: 

  omawiać architekturę systemu mikroprocesorowego, 

  stosować rozkazy mikrokontrolera, 

  pisać, kompilować i poprawiać programy w języku asemblera, 

  programować moduły wewnętrzne mikrokontrolera, 

  używać zestawu uruchomieniowego do uruchamiania programu, 

  korzystać z różnych źródeł informacji. 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

3. CELE KSZTAŁCENIA 

 

W wyniku realizacji programu jednostki modułowej powinieneś umieć: 

 

zaprogramować przetworniki C/A, 

 

wykorzystać brzęczyk do sygnalizacji określonych sytuacji, 

 

wykorzystać przełączniki wejściowe do wprowadzania danych binarnych, 

 

wyświetlić informację na zestawie diod, 

 

stworzyć kody klawiszy, 

 

zaprogramować niestandardowe znaki wyświetlacza, 

 

uruchomić mikroprocesorowe systemy sterowania (np. sygnalizacją świetlną 
skrzyżowania). 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

4. MATERIAŁ NAUCZANIA 

 

4.1. Dołączanie układów zewnętrznych do mikrokontrolera 

 

4.1.1. Materiał nauczania 

 

Układy  zewnętrzne  mogą  być  dołączone  do  mikrokontrolera  za  pośrednictwem  portów  

lub dołączane do magistral danych, adresowej i sterującej. Układy dołączone do magistral są 
dostępne w przestrzeni adresowej zewnętrznej pamięci danych XRAM. 

 
Diody: 

Aby wyświetlić informację na zestawie diod należy wysłać daną: 

  do portu równoległego np. MOV P1,#0FFH 

  na adres pod którym są dostępne w przestrzeni adresowe np.: 

 

MOV DPTR,#9000H 

;adres diod 

 

MOV A,#0FFH 

 

MOVX @DPTR,A 

Można  również  zapalać  lub  gasić  pojedyncze diody dołączone  do  portu  np.  SETB  P1.1  

lub CLR P1.1. Podobnie można załączać/ wyłączać brzęczyk. 

 
Przełączniki binarne: 

Przełączniki  binarne  również  mogą  być  dołączane  do  portu  lub  umieszczane  
w przestrzeni adresowej XRAM. Pobranie stanu przełączników do akumulatora: 

  z portu np.: MOV A,P1 

  z bufora umieszczonego w przestrzeni adresowej np.: 

MOV DPTR,#8000H 

 

;adres klawiatury 

MOV A,@DPTR 

Przykład  programu  realizującego  koder  priorytetowy  tzn.  pobierającego  stan 

przełączników  dołączonych  do  portu  P1  i  wyświetlającego  binarnie  numer  wybranego 
przełącznika  na  diodach  dołączonych  do  magistrali  pod  adresem  9000H.  Przełącznik  0  ma 
najwyższy priorytet. 
 

MOV R7,#0 

 

 

MOV A,P1 

 

NAST: 

RRC A 

;bity  pobrane  z  portu  są  przesuwane  w  prawo  
;i wpisywane jako bit CY 

 

INC R7 

;rej.  R7  jest  inkrementowany  po  każdym  wysuniętym 
;zerze  

 

JNC NAST 

 

 

DEC R7 

 

 

MOV A,R7 

;w  R7  jest  binarny  numer  najstarszego  ustawionego 
;przełącznika 

 

MOV DPTR,#9000H 

 

 

MOVX @DPTR,A 

 

 

 
 
 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

Klawiatura 
Klawiatura  może  być  zbudowana  jako połączenie kilku  przycisków wspólną  końcówką, 

lub  poszczególne  przyciski  mogą  być  zorganizowane  w  postaci  matrycy.  W  zależności  od 
dostępności  portów  wejściowych  i  wymaganej  ilości  klawiszy,  stosuje  się  różnego  rodzaju 
układy  wejściowe.  Najprostszym  sposobem  dołączenia  klawiatury  bezpośrednio  do  portu 
mikrokontrolera przedstawia rysunek 1. Port P1 jest rejestrem umieszczonym w wewnętrznej 
przestrzeni  adresowej  mikrokontrolera  i  z  tego  powodu  można  wymuszać  stany  logiczne  
na  poszczególnych  wyjściach  portu.  Dzięki  tej  właściwości  można  dołączyć  klawiaturę  
8–stykową  lub  matrycową  4x4.  Program  do  obsługi  klawiatury  matrycowej  ustawia  kolejno 
stan  logiczny  0  na  poszczególnych  liniach  portu  P1  (od  P1.4  do  P1.7)  i  odczytuje  stan  linii 
P1.0 do P1.3. Naciśnięty przycisk wymusza stan 0. 

 
 

 

 

 

 

a) 

 

 

 

 

b) 

Rys. 1. Dołączenie styków klawiatury do portu P1 mikrokontrolera a) matryca 4x4, b) klawiatura 8–stykowa [6] 

 
 
Podobnie  jak  w  przypadku  innych  układów  zewnętrznych  możliwe  jest  dołączenie 

klawiatury  do  magistral  w  przestrzeni  adresowej  zewnętrznej  pamięci  XRAM.  Takie 
rozwiązanie  wymaga  dodatkowych  elementów  w  postaci  dekodera  adresów,  rejestrów 
wejściowych i wyjściowych: 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

10 

 

 

 

 

Rys. 2. Dołączenie klawiatury 16– stykowej [6] 

 
 
 
Podobnie 

jak 

diody 

do 

mikrokontrolera 

mogą 

być 

dołączone 

wskaźniki 

elektroluminescencyjne  np. ośmiosegmentowe. Najprostszy sposób dołączenia pojedynczego 
wyświetlacza ośmiosegmentowego do portu mikrokontrolera przedstawia rysunek 3. 

 

 

Rys.3. Wyświetlacz ośmiosegmentowy dołączony do portu [6] 
 

W przypadku dołączenia kilku wyświetlaczy znaki na nich mogą być wyświetlane: 

 

statycznie – informacja jest wyświetlana na wszystkich wskaźnikach jednocześnie, 

 

dynamicznie  –  w  danej  chwili  aktywny  jest tylko  jeden  wyświetlacz,  wrażenie  ciągłego 
wyświetlania  znaków  na  wszystkich  wyświetlaczach  uzyskuje  się  dzięki  bezwładności 
ludzkiego oka. 

 

Przykładową makietę zawierającą 4 wskaźniki 8–segmentowe przedstawia rys. 4, cztery 

wskaźniki  W1..W4  są  wybierane  liniami  portu    P5.0–P5.3,  stan  jedynki  logicznej  na  linii 
portu  P4.0–P4–7  wywołuje  przepływ  prądu  przez  wybrany  segment,  a  tym  samym 
zaświecenie segmentu, jeśli wskaźnik jest wybrany, stan zera – wygasza segment.  

 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

11 

 

 

Rys. 4.– Schemat blokowy makiety wskaźników 8–segmentowych [3, s.92] 

 

Można również zastosować dekoder z serii CMOS typu  CD4511, który zawiera w sobie 

dekoder  kodu  BCD  na  kod  wskaźnika  7–segmentowego  oraz  rejestr  zatrzaskowy.  Dzięki 
temu  istnieje  możliwość  podłączenia  czterech  wyświetlaczy  typu  WK  (wspólna  katoda)  do 
jednego  portu  mikrokontrolera  (rys.5).  Liniami  portu  P1.0  do  P1.3  podajemy  kod  znaku  
do  wyświetlenia  a  wyjściami  P1.4  do  P1.7  wybieramy  wyświetlacz,  zmiana  stanu  z  0  na  1  
na  którymś  z  wyjść  P1.4  do  P1.7  powoduje  wpisanie  kodu  do  dekodera.  Rezystory  
w  obwodzie  poszczególnych  segmentów  ograniczają  prąd  świecenia.  Dzięki  rozwiązaniom 
układowym 

przedstawionym 

powyżej 

oprogramowanie 

wyświetlaczy 

jest 

proste  

i poszczególne wyświetlacze świecą statycznie. 

 

 
      R1       …......        R8 
 
   P4.0           P4.7 

       a………h                a………h                a………h                a………h 

 

 

 

 

sterowanie anod wskaźników 

P5.0-P5.3 

sterowanie katod (segmentów) wskaźników 

P4.0-P4.7 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

12 

  

Rys. 5. Cztery wyświetlacze 7–segmentowe podłączone do portu mikrokontrolera poprzez dekodery typu 

CD4511 [6] 

 
Przykład: 

Do  portu  P1  mikrokontrolera  dołączony  jest  wyświetlacz  8–segmentowy.  Napisz 

program jednocyfrowego licznika odliczającego sekundy. 
Rozwiązanie  zadania  należy  rozpocząć  od  utworzenia  tablicy  kodów  8–segmentowych  cyfr 
0–9 (segment A–P1.0, B–P1.1,....H–P1.7): 

cyfra 

hex 

CF 

06 

5B 

4F 

34 

6D 

7D 

07 

7F 

6F 

 
Następnie obliczyć liczbę przepełnień licznika odmierzającego 1 sekundę: 
Aby odmierzyć 1 s licznik musi zliczyć: 
1s=1000000

µ

s=1000000 cykli 

15

65536

1000000

=

reszta 16960 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

13 

 Aby  odliczyć  1000000  cykli  licznik  trzeba  przepełnić  15  razy  w  pełnym  zakresie  i  jeszcze 
16960 cykli. Wartość początkowa, którą należy wpisać do licznika: 
65536–16969=48576. 
Program będzie składał się z następujących części: 

1.  załadowanie do pamięci IRAM od adresu 30h tablicy kodów 8–segmentowych, 
2.  rejestr  R1  będzie  licznikiem  wyświetlanych  cyfr  (uwaga:  można  wpisać  do  rejestru 

wartość  początkową  30h,  zamiast  0–  pozwoli  to  adresować  tablicę  kodów  
8–segmentowych),  

3.  pobranie kodu cyfry i wysłanie na port P1, 
4.  odmierzenie 1 sekundy, 
5.  inkrementacja licznika i sprawdzenie, czy jest już równy 9, jeżeli tak – następną cyfrą 

będzie 0, 

6.  kroki 3–6 będą powtarzane. 

 

MOV R0,#30H 

;adres tablicy kodów 

 

MOV @R0,#0CFH 

;kod 0 

 

INR R0 

 

 

....... 

;załadowanie wszystkich kodów  

OD_NOWA:  MOV R1,#30H 

;licznik cyfr 

CYKL: 

MOV P1,#@R1 

; wysłanie kodu 8–segmentowego 

 

LCALL SEKUNDA 

;odmierzenie opóźnienia 

 

INR R1 

 

 

CJNE R1,#10,CYKL 

;czy była cyfra 9? 

 

LJMP OD_NOWA 

 

 

 

 

SEKUNDA: 

MOV TMOD,#00010000B 

; licznik T1 zlicza impulsy wewnętrzne 

(C/=0) w trybie 1 (M1M0=01) 

 

MOV TH1,#HIGH(48576) 

;załadowanie starszego bajtu wartości 
początkowej do starszej części licznika T1 

 

MOV TL1,#LOW(48576) 

;załadowanie młodszego bajtu wartości 
początkowej do młodszej części licznika T1 

 

MOV R7,#16 

;licznik przepełnień 

 

SETB TR1 

;start zliczania 

SEK: 

JNB TF1,$ 

;oczekiwanie na przepełnienie licznika 

 

CLR TF1 

;programowe zdjęcie flagi przepełnienia 

 

DJNZ R7,SEK 

; dekrementacja licznika przepełnień 

 

CLR TR1 

; zatrzymanie licznika po odmierzeniu 1s 

 

RET 

 

 

4.1.2. Pytania sprawdzające 

 

Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń. 

1.  W jaki sposób można dołączyć układy zewnętrzne do mikrokontrolera? 
2.  Jakimi  rozkazami  można  wysłać  daną  z  akumulatora  mikrokontrolera  na  układ 

zewnętrzny dołączony do portu równoległego? 

3.  Jakimi  rozkazami  można  wysłać  daną  z  akumulatora  mikrokontrolera  na  układ 

zewnętrzny dołączony do magistrali? 

4.  W  jaki  sposób  można  wyświetlać  znaki  na  kilku  wyświetlaczach  dołączonych  

do mikrokontrolera? 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

14 

4.1.3. Ćwiczenia 

 

Ćwiczenie 1 

Napisz  i  uruchom  program  sterowania  sygnalizacją  świetlną.  Sygnalizatory  są 

symulowane przez diody dołączone do portu P5 mikrokontrolera: 

 

 

Sposób wykonania ćwiczenia 
 
Aby wykonać ćwiczenie powinieneś: 

1)  przygotować sekwencję świateł na skrzyżowaniu wypełniając tabelę: 

droga 

główna 

droga 

podporz. 

przejście 

dla 

pieszych 

D7  D6  D5  D4  D3  D2  D1  D0 

czas 

zielone 

czerw. 

czerw. 

5 s 

…… 

…… 

…… 

 

 

 

 

 

 

 

 

 

 

2)  przygotować algorytm programu w postaci schematu blokowego, 
3)  napisać program w języku asemblera do odmierzania czasu używając układu czasowego, 
4)  skompilować program, poprawić ewentualne błędy, 
5)  uruchomić program używając zestawu uruchomieniowego, 
6)  sprawdzić poprawność działania programu, 
7)  zaprezentować wykonane ćwiczenie, 
8)  dokonać oceny poprawności wykonanego ćwiczenia. 
 

Wyposażenie stanowiska pracy: 

–  komputer PC, 
–  oprogramowanie umożliwiające kompilowanie i debbugowanie programu, 
–  zestaw uruchomieniowy z oprogramowaniem,  
–  literatura z rozdziału 6. 
 
Ćwiczenie 2 

Napisz  i  uruchom  program  wyświetlania  na  wyświetlaczu  8–segmentowym  numeru 

naciśniętego na klawiaturze klawisza: 
 

Sposób wykonania ćwiczenia 
 

 

D0 
D1 

D2     D3    D4 

D5 
 
D6 
 
D7 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

15 

Aby wykonać ćwiczenie powinieneś: 

1)  przygotować kody 8–segmentowe poszczególnych cyfr szesnastkowych, 
2)  przygotować algorytm programu w postaci schematu blokowego, 
3)  napisać program w języku asemblera, 
4)  skompilować program, poprawić ewentualne błędy, 
5)  uruchomić program używając zestawu uruchomieniowego, 
6)  sprawdzić poprawność działania programu, 
7)  zaprezentować wykonane ćwiczenie, 
8)  dokonać oceny poprawności wykonanego ćwiczenia. 
 

Wyposażenie stanowiska pracy: 

–  komputer PC, 
–  oprogramowanie umożliwiające kompilowanie i debbugowanie programu, 
–  zestaw uruchomieniowy z oprogramowaniem, 
–  literatura z rozdziału 6. 
 
Ćwiczenie 3 

Napisz  i uruchom program wyświetlający  na diodach krążącą jedynkę w prawo, krążącą 

jedynkę  w  lewo,  krążące  zero  w  prawo  lub  krążące  zero  w  lewo.  Wybór  funkcji  zrealizuj 
używając przełączników. 
 

Sposób wykonania ćwiczenia 
 
Aby wykonać ćwiczenie powinieneś: 

1)  przygotować algorytm programu w postaci schematu blokowego, 
2)  napisać  program  w  języku  asemblera  pamiętając  o  konieczności  wprowadzenia 

opóźnienia pomiędzy poszczególnymi stanami, 

3)  skompilować program, poprawić ewentualne błędy, 
4)  uruchomić program używając zestawu uruchomieniowego, 
5)  sprawdzić poprawność działania programu, 
6)  zaprezentować wykonane ćwiczenie, 
7)  dokonać oceny poprawności wykonanego ćwiczenia, 
 

Wyposażenie stanowiska pracy: 

–  komputer PC, 
–  oprogramowanie umożliwiające kompilowanie i debbugowanie programu, 
–  zestaw uruchomieniowy z oprogramowaniem, 
–  literatura z rozdziału 6. 
 

4.1.4. Sprawdzian postępów 

Czy potrafisz: 
 

 

 

 

 

 

 

 

            Tak       Nie 

1)  dołączyć diody do mikrokontrolera? 

 

 

 

 

¨ 

¨ 

2)  dołączyć wyświetlacze 8–segmentowe do mikrokontrolera? 

 

¨ 

¨

 

3)  dołączyć przełączniki do mikrokontrolera? 

 

 

 

¨ 

¨

 

4)  dołączyć klawiaturę do mikrokontrolera? 

 

 

 

¨ 

¨

 

5)  napisać program wysyłania danych na diody lub wyświetlacze 

8–segmentowe? 

 

 

 

 

 

 

¨ 

¨ 

6)  wczytać stan przełączników i klawiatury ? 

 

 

 

¨ 

¨ 

7)  opracować kody klawiszy? 

 

 

 

 

 

¨ 

¨ 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

16 

4.2. Wyświetlacz LCD 

 

4.2.1.Matriał nauczania 

 
Sterowanie  wyświetlaczem  LCD  jest  na  tyle  skomplikowane,  że  budowane  są  jako 

gotowe moduły  zawierające  oprócz  wyświetlacza  kontroler  sterujący  wyświetlaniem danych 
na wyświetlaczu. Przykładem może być wyświetlacz LCD ze sterownikiem HD44780. 

 

Rys.6. Przykładowy sposób dołączenia wyświetlacza LCD w przestrzeni adresowej pamięci XRAM 

[5, s. 206] 

Kontroler  zawiera pamięć danych DD RAM i generator znaków CG ROM. Do pamięci 

danych  wpisywane  są  znaki  wyświetlane  na  wyświetlaczu,  adres  w  DD  RAM  odpowiada 
pozycji  na  wyświetlaczu.  Dla  wyświetlacza  2x16  znaków  do  poszczególnych  pozycji 
wyświetlacza przyporządkowane są następujące adresy DD RAM (szesnastkowo): 

 

linia1  00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F 
linia2  40  41  42  43  44  45  46  47  48  49  4A  4B  4c  4D  4E  4F 
 
Pamięć  CG  ROM  zawiera  generator  znaków.  Adresy  w  pamięci  CG  ROM  odpowiadają 
kodom ASCII znaków. Dodatkowo można zaprojektować 8 własnych znaków umieszczonych 
w pamięci CG ROM pod adresami 0..7 (lub 8..15). 
 
Dołączenie  wyświetlacza  LCD  do  mikrokontrolera  wymaga  doprowadzenia  szyny  danych 
oraz 3 sygnałów sterujących: 
Linia 

Nazwa 

Opis 

Enable 

Wybór sterownika 

RS 

Register selection  Wybór wewnętrznych rejestrów: instrukcji lub danych 

R/W 

Read/ Write 

Odczyt/ zapis sterownika 

 
 
 
 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

17 

Cztery kombinacje sygnałów RS i R/W pozwalają na wykonanie następujących operacji: 

Tabela 1 Sygnały RS i R/W 

RS 

R/W  Opis 

zapis danych do pamięci RAM (pamięci wyświetlacza DD RAM lub generatora 
znaków CG RAM) 

odczyt danych z pamięci RAM (pamięci wyświetlacza DD RAM lub generatora 
znaków CG RAM) 

odczyt słowa statusowego, najstarszy bit busy jest informacją o stanie zajętości 
wyświetlacza: busy=1– sterownik zajęty 

zapis rozkazów do sterownika 

 
Współpraca mikrokontrolera z wyświetlaczem LCD wymaga wysłania rozkazów sterujących. 

Tabela 2 Rozkazy sterujące wyświetlacza LCD 

 
Rozkaz 

Opis 

0  0 

Clear Display– kasuj  dane  wyśw.  i  ustaw  kursor na 
adres 0 

0  0 

Return Home– ustaw kursor na adres 0 

0  0 

I/D  S 

Entry  mode  set–  ustaw  kierunek  przesunięcia 
kursora  oraz  wł/  wył  kierunek  przesuwania  danych 
wyświetlacza: 
I/D=1  zwiększaj  adres  kursora  po  każdym  wpisie 
danej 
I/D=0  zmniejszaj  adres  kursora  po  każdym  wpisie 
danej 
S=1 jednoczesny obrót danych wyświetlacza 

0  0 

Display  ON/OFF  control:  1–  ON(włącz),  0–
OFF(wyłącz): 
D– cały wyświetlacz 
C– kursor 
B– miganie znaku w pozycji kursora 

0  0 

S/C  R/L  x 

Kursor and display Shift 
S/C=1– obrót danych wyświetlacza 
S/C=0– przesunięcie kursora 
R/L=1– obrót/ przesunięcie w prawo 
R/L=0– obrót/ przesunięcie w lewo 

0  0 

DL  N 

Function set 
DL=1– 8–bitowa szyna  
DL=0– 4–bitowa szyna 
N=1– 2 linie wyświetlacza 
N=0– 1 linia wyświetlacza 
F=1– znaki 5x10 punktów 
F=0– znaki 5x7 punktów 

0  1 

A

5

  A

A

A

A

A

Set CG RAM address 
Ustawienie adresu generatora znaków (A

5

..A

0

1  A

A

5

  A

A

A

A

A

Set DD RAM address 
Ustawienie  adresu  danych  (A

6

..A

0

)–  pozycji  na 

wyświetlaczu 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

18 

Wyświetlacz  LCD  może  być  dołączony  do  mikrokontrolera  w  przestrzeni  adresowej 

pamięci  XRAM,  przykładowy  adres  8800H.  Linie  R/W  i  RS  są  doprowadzone  jako  bity 
adresowe  A1  i  A0.  Stąd  w  celu  wybrania  wyświetlacza  LCD  są  stosowane  następujące 
adresy: 
starszy bajt adresu: 88H 
młodszy bajt: 

A7  A6  A5  A4  A3  A2 

A1 

R/W 

A0 
RS 

 

– zapis słowa sterującego 

– zapis danej 

– odczyt słowa statusowego 

– odczyt danej 

 

Przykładowa inicjalizacja wyświetlacza: 

 

MOV DPTR,#8800H 

; wybór funkcji: zapis słowa sterującego 

 

MOV A,#38H 

;szyna 8–bitowa, 2 linie, znak 5x7 

 

MOVX @DPTR,A 

;wysłanie słowa sterującego do wyświetlacza 

 

LCALL BUSY 

;oczekiwanie na gotowość 

 

MOV A,#0EH 

;wyświetlacz włączony, kursor widoczny 

 

MOVX @DPTR,A 

 

 

LCALL BUSY 

 

 

MOV A,#06H 

;inkrementacja adresu po wysłaniu słowa 

 

MOVX @DPTR,A 

 

 

LCALL BUSY 

 

 

MOV A,#0 

;wyczyszczenie wyświetlacza 

 

MOVX @DPTR,A 

 

 

LCALL BUSY 

 

 
; wysyłanie danych na wyświetlacz LCD 
BUSY: 

PUSH DPH 

;zachowanie rejestru DPTR na stosie 

 

PUSH DPL 

 

 

PUSH ACC 

;zachowanie akumulatora na stosie 

 

MOV DPTR,#8802H 

;wybór funkcji: odczyt słowa statusowego 

TEST: 

MOVX A,@DPTR 

;pobranie słowa statusowego 

 

JB ACC.7,TEST 

;test 

flagi 

busy 

(oczekiwanie 

na 

gotowość 

wyświetlacza) 

 

POP ACC 

;odtworzenie stanu akumulatora 

 

POP DPL 

;odtworzenie stanu rejestru DPTR 

 

POP DPH 

 

 

RET 

 

 

 

 

 

 
 
 
 
 
 
 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

19 

Niekiedy  pojawia  się  potrzeba  zdefiniowania  własnych  znaków  np.  „polskich  liter”. 

Mamy wówczas do dyspozycji 8 komórek pamięci generatora znaków (adresy 0–7 lub 8–15). 
Definiujemy literę ó na polu 5x7 pikseli: 
 

 

 

 

 

hex: 

 

 

 

 

 

01 

 

 

 

 

 

02 

 

 

 

 

 

0E 

 

 

 

 

 

11 

 

 

 

 

 

11 

 

 

 

 

 

11 

 

 

 

 

 

0E 

 
inicjalizacja wyświetlacza 
 

……………….. 

 

;zdefiniowanie własnego znaku 
 

MOV DPTR,#8800H 

;wybór funkcji: zapis słowa sterującego 

 

MOV A,#40H 

;adres 0 w CG RAM 

 

MOVX @DPTR,A 

 

 

LCALL BUSY 

 

 

MOV R7,#7 

;licznik bajtów wysyłanych do CGRAM 

 

MOV A,#0 

 

PL: 

MOV DPTR,#TAB_PL 

;adres tablicy ze zdefiniowaną literą 

 

PUSH ACC 

 

 

MOVC A,@A+DPTR 

;pobranie bajtu definiowanego znaku 

 

MOV DPTR,#8801H 

;wybór funkcji: zapis danej 

 

MOVX @DPTR,A 

 

 

LCALL BUSY 

 

 

POP ACC 

 

 

INC A 

 

 

DJNZ R7,PL 

 

 

 

 

TAB_PL: 

DB:  01, 02, 0Eh, 11h, 11h, 11h, 0Eh 

 
 

Odwołanie do zdefiniowanego znaku następuje przez podanie jego adresu. Na przykład w 

celu wyświetlenia tekstu Próba definiujemy tablicę: 
TABLICA: DB ‘Pr’,00,’ba’, znaki znajdujące się pomiędzy apostrofami zostaną pobrane jako 
kody ASCII z generatora znaków CGROM, a własny znak– z komórki 0 pamięci CGRAM. 
Jeżeli  konieczne  jest  zdefiniowanie  większej  ilości  znaków  wystarczy  zwiększyć  licznik  
(np. 3  znaki–  licznik=21),  w tablicy  umieścić odpowiednia  ilość  bajtów.  Znak zdefiniowany 
przez pierwsze 7 bajtów zostanie zapamiętany pod adresem 0, kolejne pod adresami 1,2 itd. 
 

4.2.2. Pytania sprawdzające 

 
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń. 

1.  Jakie sygnały z mikrokontrolera muszą być doprowadzone do wyświetlacza LCD? 
2.  W jaki sposób można zainicjować wyświetlacz LCD? 
3.  Jak sprawdzić gotowość wyświetlacza LCD do odebrania słowa sterującego lub danej? 
4.  Jak wyświetlić znak na wyświetlaczu LCD na wybranej pozycji? 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

20 

5.  Jak zdefiniować własny znak? 
6.  Jak wyświetlić tekst zawierający gotowe znaki z CGROM i znaki własne? 
 

4.2.3. Ćwiczenia 

 

Ćwiczenie 1 

Program  wysyłania  na  wyświetlacz  znaków  z  generatora  znaków.  Po  wysyłaniu  16 

znaków  odmierz  jednosekundowe  opóźnienie  umożliwiające  obserwację  znaków,  następnie 
wyślij  kolejnych  16  znaków  itd.,  aż  do  wyczerpania  znaków  w  pamięci  generatora  znaków 
CGROM. 
 

Sposób wykonania ćwiczenia 
 
Aby wykonać ćwiczenie powinieneś: 

1)  przygotować słowa sterujące konieczne do zainicjowania wyświetlacza, 
2)  opracować algorytm programu i zapisać go w postaci schematu blokowego, 
3)  napisać program wyświetlania danych z generatora znaków, 
4)  napisać  podprogram  odmierzania  czasu  1s,  włączyć  go  jako  podprogram  do  programu 

głównego, 

5)  skompilować program, poprawić ewentualne błędy, 
6)  uruchomić program używając zestawu uruchomieniowego, 
7)  sprawdzić poprawność działania programu, 
8)  zaprezentować wykonane ćwiczenie, 
9)  dokonać oceny poprawności wykonanego ćwiczenia. 
 

Wyposażenie stanowiska pracy: 

–  komputer PC, 
–  oprogramowanie umożliwiające kompilowanie i debbugowanie programu, 
–  zestaw uruchomieniowy z wyświetlaczem LCD wraz z oprogramowaniem, 
–  lista rozkazów mikrokontrolera, 
–  lista słów sterujących wyświetlacza LCD, 
–  tablica kodów ASCII, 
–  literatura z rozdziału 6. 
 
Ćwiczenie 2 

Napisz  i  uruchom  program  wyświetlający  tekst  dłuższy  niż  16  znaków  używając 

znacznika końca: 
a)  w 2 liniach, 
b)  tekst przewija się na wyświetlaczu w 1 linijce. 

 

Sposób wykonania ćwiczenia 

 

Aby wykonać ćwiczenie powinieneś: 

1)  przygotować słowa sterujące konieczne do zainicjowania wyświetlacza, 
2)  opracować algorytm programu i zapisać go w postaci schematu blokowego, 
3)  napisać program wyświetlania danych (zdefiniować własne znaki), 
4)  skompilować program, poprawić ewentualne błędy, 
5)  uruchomić program używając zestawu uruchomieniowego, 
6)  sprawdzić poprawność działania programu, 
7)  zaprezentować wykonane ćwiczenie, 
8)  dokonać oceny poprawności wykonanego ćwiczenia. 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

21 

Wyposażenie stanowiska pracy: 

–  komputer PC, 
–  oprogramowanie umożliwiające kompilowanie i debbugowanie programu, 
–  zestaw uruchomieniowy z wyświetlaczem LCD wraz z oprogramowaniem, 
–  lista rozkazów mikrokontrolera, 
–  lista słów sterujących wyświetlacza LCD, 
–  literatura z rozdziału 6. 
 
Ćwiczenie 3 

Napisz program wyprowadzania na wyświetlacz LCD trzycyfrowej liczby wprowadzonej 

z klawiatury. 
 

Sposób wykonania ćwiczenia 
 
Aby wykonać ćwiczenie powinieneś: 

1)  przygotować słowa sterujące konieczne do zainicjowania wyświetlacza, 
2)  opracować algorytm programu i zapisać go w postaci schematu blokowego, 
3)  napisać  program  odczytu  danej  z  klawiatury,  zamiany  pobranej  danej  na  kod  ASCII  

i wyświetlania znaku, 

4)  skompilować program, poprawić ewentualne błędy, 
5)  uruchomić program używając zestawu uruchomieniowego, 
6)  sprawdzić poprawność działania programu, 
7)  zaprezentować wykonane ćwiczenie, 
8)  dokonać oceny poprawności wykonanego ćwiczenia. 
 

Wyposażenie stanowiska pracy: 

–  komputer PC, 
–  oprogramowanie umożliwiające kompilowanie i debbugowanie programu, 
–  zestaw uruchomieniowy z wyświetlaczem LCD wraz z oprogramowaniem, 
–  lista rozkazów mikrokontrolera, 
–  lista słów sterujących wyświetlacza LCD, 
–  tablica kodów ASCII, 
–  literatura z rozdziału 6. 
 
 
 

4.2.4. Sprawdzian postępów 

 
Czy potrafisz: 
 

 

 

 

 

 

 

 

           Tak       Nie 

1) omówić sposoby dołączenia wyświetlacza LCD do mikrokontrolera? 

¨ 

¨

 

2) zainicjować wyświetlacz?  

 

 

 

 

 

¨ 

¨

 

3) napisać program wysyłania znaków na wyświetlacz? 

 

 

¨ 

¨

 

4) zdefiniować i wyświetlić własne znaki?   

 

 

 

¨ 

¨

 

5) napisać program przewijający po ekranie długi tekst? 

 

 

¨ 

¨

 

6) napisać program wyprowadzający na wyświetlacz numer 

 naciśniętego klawisza?  

 

 

 

 

 

¨ 

¨

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

22 

4.3. Przetwornik C/A 

 

4.3.1. Materiał nauczania 

 

Przetwornik  C/A  pozwala  na  odwzorowanie  danej  cyfrowej  w  postaci  sygnału 

analogowego. Sposób odwzorowania przedstawia rysunek 7: 

 

Rys. 7. Kształtowanie sygnału analogowego za pośrednictwem przetwornika cyfrowo–analogowego. [3,s. 57] 

 
Odwzorowanie sygnału cyfrowego w analogowy jest tym lepsze : 

 

im liczba bitów przetwornika jest większa, 

 

im krótszy jest czas miedzy kolejnymi próbkami sygnału cyfrowego 

t. 

Przetwornik cyfrowo–analogowy jest traktowany jako zewnętrzne urządzenie wyjściowe, 

do  którego  wpisywane  są  dane.  W  zależności  od  rozdzielczości  przetwornika  (ilości  bitów) 
przetwornik  może  zajmować  jeden  albo  dwa  adresy  w  przestrzeni  adresowej.  
Do  mikrokontrolera  z  rodziny  ‘51  najłatwiej  dołączyć  przetwornik  C/A  8–bitowy.  Prosty 
przykład  rozwiązania  układowego  jest  przedstawiony  na  rys.  8.  Zastosowano  tutaj 
przetwornik  C/A  typu  DAC08,  który  nie  zawiera  w  sobie  rejestru  pamięciowego,  źródła 
napięcia  odniesienia,  wzmacniacza  wyjściowego.  Z  tego  względu  należy  wszystkie  te 
elementy  dołączyć  do  przetwornika.  Najlepszym  rozwiązaniem  jest  zastosowanie 
przetwornika  C/A  przystosowanego  do  współpracy  z  układami  mikroprocesorowymi,  który 
zawiera w sobie wszystkie wymienione wyżej elementy.  

 

Rys. 8.–bitowy przetwornik C/A zrealizowany na układzie DAC08 [6] 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

23 

Programowe  kształtowania  sygnału  analogowego  piłokształtnego  na  wyjściu 

przetwornika  C/A  może  być  zrealizowane  przez  wpisywanie  wartości  cyfrowych  do  bufora 
przetwornika.  Przetwornik  dołączony  jest  w  przestrzeni  adresowej  pamięci  zewnętrznej 
XRAM,  a  więc  wysłanie  danej  z  mikrokontrolera  do  przetwornika  rozkazem  MOVX 

powoduje  jednocześnie  wystawienie  sygnału  WR   powodującego  wpis  danych  do  bufora 
wejściowego przetwornika. Najwyższą częstotliwość generowanego sygnału  można uzyskać, 
jeżeli  mikrokontroler  będzie  wykonywał  jak  najmniej  rozkazów  pomiędzy  kolejnymi 
sterowaniami  przetwornika  C/A  lub  ograniczy  się  liczbę  poziomów  kształtujących  sygnał 
analogowy.  Zakładając  8–bitowy  przetwornik  (256  poziomów),  największą  częstotliwość 
sygnału można  uzyskać dla sygnału o następującym kształcie: 

 

 

Rys. 9. sygnał piłokształtny uzyskany na wyjściu przetwornika C/A 

 
Program kształtujący sygnał analogowy (przykładowy adres przetwornika C/A–9000H): 

 

CLR A 

;zerowanie akumulatora 

 

MOV DPTR,#9000H 

;adres przetwornika C/A 

CYKL: 

MOVX @DPTR,A 

;wysłanie danej do bufora przetwornika 

 

INC A 

 

 

SJMP CYKL 

 

Mikrokontroler  wykonuje  pętlę  w  czasie  5  cykli  maszynowych:  rozkaz  MOVX 

@DPTR,A–  2  cykle,  INC  A–  1cykl,  SJMP  CYKL–  2  cykle.  Przy  8–  bitowej  rozdzielczości 
przetwornika C/A okres T generowanego sygnału wynosi: 

T=256*5cykli=1280 cykli maszynowych 
dla f

XTAL

=12 MHz: 

f

max

=

Hz

25

,

781

T

1

=

 

 

4.3.2. Pytania sprawdzające 

 

Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń. 

1.  Jakie jest zadanie przetwornika C/A? 
2.  W jaki sposób liczba bitów przetwornika wpływa na jakość sygnału analogowego? 
3.  Jakie parametry przetwornika C/A wpływają na odwzorowanie sygnału analogowego? 
4.  W jaki sposób można wygenerować przebieg o zadanym kształcie na wyjściu 

przetwornika C/A dołączonego do mikrokontrolera? 

 

U(t) 
 
U

max 

FE

 

FF 

FD

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

24 

4.3.3. Ćwiczenia 

 
Ćwiczenie 1 

Napisz  i  uruchom  program  generujący  na  wyjściu  przetwornika  C/A  przebieg 

piłokształtny jak na rysunku: 

 

Sposób wykonania ćwiczenia 
 
Aby wykonać ćwiczenie powinieneś: 

1)  przygotować algorytm programu w postaci schematu blokowego, 
2)  napisać program w języku asemblera, 
3)  skompilować program, poprawić ewentualne błędy, 
4)  uruchomić program używając zestawu uruchomieniowego, 
5)  sprawdzić poprawność działania programu używając oscyloskopu, 
6)  zaprezentować wykonane ćwiczenie, 
7)  dokonać oceny poprawności wykonanego ćwiczenia. 

 

Wyposażenie stanowiska pracy: 

–  komputer PC, 
–  oprogramowanie umożliwiające kompilowanie i debbugowanie programu, 
–  zestaw uruchomieniowy z oprogramowaniem, 
–  oscyloskop, 
–  literatura z rozdziału 6. 
 
 
Ćwiczenie 2 

Napisz i uruchom program generujący na wyjściu przetwornika C/A przebieg 

trapezoidalny jak na rysunku: 

 

 

FD 

U(t) 
 
U

max 

FE

 

FF 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

25 

 

Sposób wykonania ćwiczenia 
 
Aby wykonać ćwiczenie powinieneś: 

1)  przygotować algorytm programu w postaci schematu blokowego, 
2)  napisać program w języku asemblera, 
3)  skompilować program, poprawić ewentualne błędy, 
4)  uruchomić program używając zestawu uruchomieniowego, 
5)  sprawdzić poprawność działania programu używając oscyloskopu, 
6)  zaprezentować wykonane ćwiczenie, 
7)  dokonać oceny poprawności wykonanego ćwiczenia. 
 

Wyposażenie stanowiska pracy: 

–  komputer PC, 
–  oprogramowanie umożliwiające kompilowanie i debbugowanie programu, 
–  zestaw uruchomieniowy z oprogramowaniem, 
–  oscyloskop, 
–  literatura z rozdziału 6. 
 
Ćwiczenie 3 

Wyszukaj  w  Internecie  noty  katalogowe  przetworników  C/A  różnych  producentów. 

Porównaj ich parametry, przeanalizuj możliwość dołączenia do mikrokontrolera 8–bitowego. 

 
Sposób wykonania ćwiczenia 
 
Aby wykonać ćwiczenie powinieneś: 

1)  wyszukać w Internecie strony producentów przetworników C/A, 
2)  na  stronie  producentów  przetworników  C/A  odszukać  przetworniki  współpracujące  z 

mikrokontrolerami 8–bitowymi, 

3)  ściągnąć dokumentację wybranych przetworników, 
4)  porównać ich parametry, 
5)  zaprezentować wykonanie ćwiczenia. 
 

Wyposażenie stanowiska pracy: 

–  komputer PC  z dostępem do Internetu, 
–  oprogramowanie umożliwiające przeglądanie dokumentacji w postaci PDF, 
–  literatura z rozdziału 6. 

 

U(t) 
 
U

max 

¾ U

max 

C0 

FD 

FE

 

FF 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

26 

4.3.4. Sprawdzian postępów 

 
Czy potrafisz: 
 

 

 

 

 

 

 

 

           Tak         Nie 

1)  wskazać sposoby dołączenia przetwornika C/A  

do mikrokontrolera 8–bitowego?  

 

 

 

 

¨ 

¨

 

2)  podać podstawowe parametry przetwornika C/A? 

 

 

¨ 

¨

 

3)  porównać przetworniki ze względu na parametry? 

 

 

¨ 

¨

 

4)  napisać program generowania przebiegów analogowych  

o zadanym kształcie ?  

 

 

 

 

 

¨ 

¨

 

5)  obliczyć okres i częstotliwość wygenerowanego przebiegu 

 analogowego? 

 

 

 

 

 

 

¨ 

¨

 

 

 

 

 

 

 

 
 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

27 

5. SPRAWDZIAN OSIĄGNIĘĆ

 

 

INSTRUKCJA DLA UCZNIA 

1.  Przeczytaj uważnie instrukcję. 
2.  Podpisz imieniem i nazwiskiem kartę odpowiedzi. 
3.  Zapoznaj się z zestawem zadań testowych. 
4.  Test  zawiera  20  zadań  o  różnym  stopniu  trudności.  Zadania:  1–14  są  to  zadania 

wielokrotnego  wyboru  i  tylko  jedna  odpowiedź  jest  prawidłowa,  w  zadaniach:  15–20   
należy udzielić krótkiej odpowiedzi, 

5.  Udzielaj odpowiedzi tylko na załączonej karcie odpowiedzi: 

 

w  zadaniach  wielokrotnego  wyboru  zaznacz  prawidłową  odpowiedź  X  
(w  przypadku  pomyłki  należy  błędną  odpowiedź  zaznaczyć  kółkiem,  a następnie 
ponownie zakreślić odpowiedź prawidłową), 

 

w zadaniach z krótką odpowiedzią wpisz odpowiedź w wyznaczone pole, 

6.  Test  składa  się  z  dwóch  części  o  różnym  stopniu  trudności:  I  część  –  poziom 

podstawowy, II część – poziom ponadpodstawowy. 

7.  Pracuj samodzielnie, bo tylko wtedy będziesz miał satysfakcję z wykonanego zadania. 
8.  Kiedy  udzielenie  odpowiedzi  będzie  Ci  sprawiało  trudność,  wtedy  odłóż  jego 

rozwiązanie  na  później  i  wróć  do  niego,  gdy  zostanie  Ci  czas  wolny.  Trudności  mogą 
przysporzyć Ci zadania: 16 – 20, gdyż są one na poziomie trudniejszym niż pozostałe. 

9.  Na rozwiązanie testu masz 90 min. 

Powodzenia 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

28 

ZESTAW ZADAŃ TESTOWYCH 

 

1.  Który z rozkazów spowoduje, że diody dołączone do portu P1 zapalą się tak, jak na 

rysunku?

 

a)  MOV P1,#55, 
b)  MOV P1,#85, 
c)  MOVX P1,A, 
d)  SETB P1. 

2.  Po wczytaniu stanu przełączników  w akumulatorze jest liczba ABH, ile przełączników 

było ustawionych? 
a)  2, 
b)  3, 
c)  4, 
d)  5. 

3.  Poniższy program spowoduje, że na diodach dołączonych do portu P1 będą pojawiały się 

kolejne liczby w kodzie: 
a)  krążąca jedynka w prawo, 
b)  krążąca jedynka w lewo, 
c)  krążące zero w prawo, 
d)  krążące zero lewo. 

 

MOV A,#80H 

 

 

CPL A 

 

CYKL: 

RR A  

 

 

MOV P1,A 

 

 

LCALL CZAS 

 

 

LJMP CYKL 

 

4.  Rysunek przedstawia wyświetlacz 8 segmentowy dołączony do portu P1 mikrokontrolera. 

Jaką liczbę należy wysłać na port, aby wyświetlić cyfrę 3? 

a)  1FH,

 

b)  17H, 
c)  4FH, 
d)  47H. 

 
 
 
 
 
 
 

 

 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

29 

5.  Po adresem A000H dołączona jest klawiatura (osiem klawiszy aktywnych zerem), który  

z fragmentów programu spowoduje skok pod adres DWA pod warunkiem, że naciśnięty 
był klawisz drugi:

 

MOV DPTR,#0A000H 
MOVX A,@DPTR 
a)  CJNE A,#2,SKOK 

LJMP DWA, 

b)  CJNE A,#0FBH,SKOK 

LJMP DWA, 

c)  CJNE A,#0FBH,DWA, 
d)  CJNE A,#02H,DWA. 

6.  W wyniku wykonania rozkazu MOV A,P1 zawartość akumulatora jest równa BBH, który 

klawisz był naciśnięty? 

 

a)  S4, 
b)  S7, 
c)  S10, 
d)  S13. 

7.  Litera A pojawi się na wskazanej pozycji wyświetlacza LCD pod warunkiem, że jej kod 

został wpisany: 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a)  do pamięci CGRAM pod adres 03H, 
b)  do pamięci DDRAM pod adres 03H, 
c)  do pamięci CGRAM pod adres 43H, 
d)  do pamięci DDRAM pod adres 43H. 

8.  Wyświetlacz  LCD  został  dołączony  do  mikrokontrolera  w  przestrzeni  adresowej  pod 

adresem  5500H.  Linia  RS  została  doprowadzona  z  wyświetlacza  LCD  jako  A0,  a  R/W 
jako A1 z magistrali adresowej. Odwołanie się do adresu 5501H oznacza: 
a)  zapis słowa sterującego, 
b)  zapis danej, 
c)  odczyt słowa statusowego, 
d)  odczyt danej. 

9.  Jaką wartość wpisać do DPTR i jakim rozkazem uzupełnić program testowania zajętości 

wyświetlacza dołączonego do mikrokontrolera pod adresem 50H (RS=A0, R/W=A1): 

 

MOV DPTR,#.............. 

CZEKAJ: 

………… 

 

JB ACC.7,CZEKAJ 

a)  50H, MOVX A,@DPTR, 
b)  50H, SETB ACC.7, 
c)  52H, MOVX A,@DPTR, 
d)  52H, SETB ACC.7. 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

30 

10. W opisie wyświetlacza LCD jest słowo sterujące: 

0  0 

Display ON/OFF control: 1– ON, 0–OFF 

Wysłanie jakiego słowa spowoduje załączenie wyświetlacza z migającym kursorem: 

a)  0FH, 
b)  0EH, 
c)  0BH, 
d)  0AH. 

11. Jaki znak i na którym wyświetlaczu zostanie wyświetlony po wykonaniu rozkazu  

MOV P1,#43H? 

 

a)  cyfra 3 na W4, 
b)  cyfra 3 na W3, 
c)  cyfra 4 na W4, 
d)  cyfra 4 na W3. 

12. Odwzorowanie danej cyfrowej w postaci sygnału analogowego będzie tym lepsze im: 

a)  liczba bitów przetwornika większa i częstotliwość przetwarzania większa, 
b)  liczba bitów przetwornika mniejsza i częstotliwość przetwarzania większa, 
c)  liczba bitów przetwornika większa i częstotliwość przetwarzania mniejsza, 
d)  liczba bitów przetwornika mniejsza i częstotliwość przetwarzania mniejsza. 

13. Częstotliwość przebiegu analogowego generowanego na wyjściu 8– bitowego 

przetwornika C/A w wyniku wykonania programu realizującego wysyłanie danej cyfrowej 
w ciągu 10 cykli (f

XTAL

=12MHz) wynosi: 

a)  390,625 Hz. 
b)  4687,5 Hz. 
c)  390,625 kHz. 
d)  4687,5 kHz. 

 
 
 
 
 
 
 
 
 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

31 

14. Jaki przebieg uzyskamy na wyjściu 8– bitowego przetwornika C/A dołączonego do 

mikrokontrolera pod adresem A000H w wyniku wykonania następującego programu: 

 

MOV DPTR,#0A000H 

 

MOV R1,#64 

CYKL1: 

MOV A,R1 

CYKL2: 

MOVX @DPTR,A 

 

ADD A,R1 

 

JNC CYKL2 

 

SJMP CYKL1 

 
 

 

a) 

 

 

b) 

 

 

 

c) 

 

 

d) 

  

 
15. Do portu P5 dołączone są przełączniki binarne, a pod adresem 9000h dołączone są diody. 

Napisz  program  zapalający  diody  odpowiadające  przełącznikom  w  stanie  1  logicznej, 
a gaszący diody odpowiadające przełącznikom w stanie 0 logicznego. 

 
16. Jakie słowa należy wysłać do wyświetlacza LCD w celu zdefiniowania następującego 

znaku? 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17. Uzupełnij program wysyłania tablicy zdefiniowanej TABLICA: DB ‘Tekst’, zakładając, 

że wyświetlacz został już zainicjowany, podprogram testowania zajętości wyświetlacza 
znajduje się pod adresem BUSY, adres wyświetlacza 8800H (RS=A0, R/W=A1): 

 

MOV R7,#5 

;licznik ilości znaków do wysłania 

 

MOV DPTR,#TABLICA 

;wpis  adresu  tablicy  z  tekstem  do 
wyświetlenia 

 

MOV A,#0 

;akumulator  zawiera  numer  wysyłanego 
znaku z tablicy (offset) 

SEND: 

PUSH ACC 

;zachowanie stanu akumulatora na stosie 

 

MOVC A,@A+DPTR 

;pobranie znaku 

 

LCALL DISPL 

;wywołanie 

podprogramu 

wysyłania 

znaku 

 

POP ACC 

;przywrócenie offsetu 

 

INC A 

;następny znak z tablicy 

 

 
  t 

 

 

 

                

 

 

 

                

 

 

 
  t 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

32 

 

DJNZ R7,SEND 

 

 

 

 

DISPL: 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RET 

 

18. W przestrzeni adresowej pamięci XRAM pod adresem B000H  i B001H podłączone są 

klawisze jak na rysunku: 

 

klawisze S1–S9 dołączone pod adresem B000H mają być odczytane jako cyfry 0...7, a S1  
i  S2  pod  adresem  B001H  jako  8  i  9.  Napisz  program  który  odczyta  stan  klawiatury  
i  wyświetli  na  wyświetlaczu  LCD  numer  naciśniętego  klawisza.  Wyświetlacz  LCD 
znajduje  się  pod  adresem  C000H,  jest  właściwie  zainicjowany,  a  pod  adresem  BUSY 
znajduje się podprogram testowania zajętości. 

19. Napisz  program  generujący  na  wyjściu  8–  bitowego  przetwornika  C/A  (adres  A000H) 

przebieg trapezoidalny jak na rysunku: 

 

20. Jaka jest częstotliwość wygenerowanego w zadaniu 19 sygnału analogowego? 

 
 
 
 
 
 
 

 

 

U(t)

 

 

 

 

 

U

 

max

 

 

 

 

 

 

 

2

U

MAX

 

 

 

 

 

 

t

 

 

 

 

t

 

 

 

0

 

 

 

1

 

 

 

2

 

 

 

3

 

 

 

FD

 

 

 

FE

 

 

 

FF

 

 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

33 

KARTA ODPOWIEDZI 

 
 

Imię i nazwisko …………………………………………………….. 

 
Badanie układów zewnętrznych mikrokontrolera

 

 

 
Zakreśl poprawną odpowiedź lub wpisz odpowiedź. 

 

Nr 

zadania

 

Odpowiedź 

Punkty 

1.   

 

2.   

 

3.   

 

4.   

 

5.   

 

6.   

 

7.   

 

8.   

 

9.   

 

10.  

 

11.  

 

12.  

 

13.  

 

14.  

 

15.  

 

 

16.  

 

 

17.  

 
 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

34 

18.  

 
 

 

19.  

 
 

 

20.  

 

 

 

background image

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 

 

35 

6. LITERATURA 

 

1. 

Dyrcz K., Kowalski C. T., Zarczyński Z.: Podstawy techniki mikroprocesorowej, 
Oficyna Wydawnicza Politechniki Wrocławskiej, 1999. 

2. 

Janiczek J., Stępień A.: Mikrokontroler 80(C)51/52, Wydawnictwo Elektronicznych 
Zakładów Naukowych, Wrocław 1995. 

3. 

Janiczek J., Stępień A.: Laboratorium systemów mikroprocesorowych cz. I i II, 
Wydawnictwo Elektronicznych Zakładów Naukowych, Wrocław 1995. 

4. 

Rydzewski A.: Mikrokomputery jednoukładowe rodziny MCS–51,Wydawnictwa 
Naukowo– Techniczne, Warszawa 1992.  

5. 

Starecki T.: Mikrokontrolery 8051 w praktyce, Wydawnictwo BTC, Warszawa 2002 

6. 

http://www.adatronik.com.pl