janiczek.pdf

(1267 KB) Pobierz
2457310 UNPDF
Spis
treści
Spis treści:
1.
Dlaczego mikrokontrolery '51 ?
3
2.
Co jest w środku ?
7
3.
Od mikrokontrolera 8051 do 80515/535
15
4.
Jak odczytywać i zapisywać dane z pamięci programu ROM
i zewnętrznej pamięci danych RAM
21
4.1
Odczyt danych z pamięci programu
24
4.2
Odczyt/zapis danych do zewnętrznej pamięci RAM
27
4.3
Dołączanie zewnętrznych pamięci do mikrokontrolera
30
5.
Działanie mikrokontrołera
33
6.
RAM czy SFR ?
41
6.1
Gdzie są rejestry R0 .. R7 ?
43
6.2
Co zawierają rejestry specjalne SFR ?
47
6.3
Bit, bajt, słowo
52
7.
Porty
57
8.
Przerwania
69
9.
Liczniki
81
10.
Arytmetyka mikrokontrolerów
87
10.1
Instrukcje arytmetyczne - rejestr statusowy PSW
89
10.2
Dodawanie
91
10.3
Odejmowanie
93
10.4
Porównania
95
10.5
Mnożenie
98
10.6
Dzielenie
99
10.7
Korekcja dziesiętna
100
U.
Programy, podprogramy, segmenty
105
12.
Port szeregowy
113
13.
Przetwornik analogowo-cyfrowy w mikrokontrolerze
SAB 80151/535
125
13.1
Wybór wejścia pomiarowego
127
13.2
Jaki podzakres pomiarowy
129
2457310.029.png 2457310.030.png 2457310.031.png 2457310.032.png 2457310.001.png 2457310.002.png 2457310.003.png 2457310.004.png 2457310.005.png 2457310.006.png 2457310.007.png 2457310.008.png 2457310.009.png 2457310.010.png 2457310.011.png 2457310.012.png 2457310.013.png 2457310.014.png
Spis treści
1. Dlaczego mikrokontrolery '51 ?
13.3
Pomiar
133
1. Dlaczego mikrokontrolery '51 ?
13.4
Przykład pomiaru napięcia
135
14.
Licznik T2 w 8051 i SAB 80515/535
137
Gwałtowny rozwój elektroniki spowodował, że komputery nie wywołują
już dreszczyka emocji. Stały się wręcz niezbędne i niezastąpione, a ich awarie
wprowadzają chaos w życiu codziennym. Bardzo złożone i rozbudowane kom-
putery, a tym samym bardzo drogie, przeznaczone są dla celów militarnych,
obliczeń naukowych oraz symulacji zjawisk fizycznych, chemicznych, meteoro-
logicznych itp. W tej grupie znajdują się również komputery tworzące tzw. e-
fekty specjalne w kinematografii i telewizji, do kreowania sztucznego, wirtual-
nego świata. Na drugim biegunie znajdują się proste, niedrogie, powszechnie
stosowane sterowniki mikroprocesorowe. Można znaleźć je na przykład w:
• sprzęcie powszechnego użytku, np. w odbiornikach radiowych i te-
lewizyjnych, magnetowidach; służą do programowania funkcji, czasu
włączenia i wyłączenia odbiornika, cyfrowego sterowania parame-
trami odbioru lub odtwarzania itd.
• technice motoryzacyjnej do kontroli i sterowania silników spalino-
wych z zapłonem iskrowym i samoczynnym, urządzeń klimatyzacyj-
nych, układów antypoślizgowych (np. ABS), testowania stopnia zu-
życia niektórych elementów, np. amortyzatorów,
• aparatach fotograficznych i kamerach video do określania optymal-
nych warunków naświetlania błony filmowej lub korekcji układów
optycznych sprzężonych z fotoelementami, ustawienia ostrości,
• artykułach gospodarstwa domowego, np. w automatycznych pralkach
do nadzoru temperatury i ilości wody, środków piorących, czasu
trwania poszczególnych faz prania (wstępne, zasadnicze i płukanie).
14.1
Licznik T2 w 8052
140
14.2
Licznik T2 w SAB 80515/535
143
14.2.1 Jak uzyskać długie odcinki czasu ?
147
14.2.2 Modulacja okresu i współczynnika wypełnienia
impulsów (PWM)
150
14.2.3 Zapamiętanie wartości chwilowej licznika 12
153
15.
Obniżanie poboru mocy
159
16.
Watchdog w 50151/535
163
17.
Narzędzia programowania
169
17.1
Asembler firmy Keil
,
171
17.2
Wybrane polecenia asemblera
173
17.3
Deklaracje segmentów
174
17.4
Polecenia przypisania symbolowi wartości
176
17.5
Polecenia inicjacji i rezerwacji obszarów pamięci
178
17.6
Linker
180
Dodatek A. Alfabetyczna lista instrukcji - gdzie szukać w książce
184
Dodatek B. Tematyczna lista instrukcji - gdzie szukać w książce
186
Z pewnym uproszczeniem można założyć, że komputer klasy 1BM-PC
złożony jest z następujących elementów (rysunek 1-1):
• mikroprocesora realizującego wymagane programem obliczenia,
• pamięci programu i danych,
• różnego typu pamięci masowych takich jak: HDD, FDD, CD-ROM,
• układu bezpośredniego dostępu do pamięci (DMA) przy wymianie
danych bez pośrednictwa mikrokontrolera,
• układu kontrolera przerwań wraz z kontrolerem priorytetów,
• układów czasowych i liczników taktowanych wewnętrznym genera-
torem komputera,
• układów wejściowo-wyjściowych do komunikacji komputera z oto-
czeniem, przyjmowania danych i wysyłania efektów ich przetwarza-
nia, np. wejść-wyjść cyfrowych, interfejsu szeregowego (RS232), rów-
noległego (Centronics), a także układów sieciowych (Novell),
• układów lub dodatkowych kart przetworników A/C i C/A,.
Dodatek C. Rejestry i rejestry specjalne SFR - układ alfabetyczny
189
Dodatek D. Rejestry i rejestry specjalne SFR - układ tematyczny
190
Literatura
193
2457310.015.png 2457310.016.png 2457310.017.png 2457310.018.png 2457310.019.png 2457310.020.png 2457310.021.png 2457310.022.png 2457310.023.png 2457310.024.png 2457310.025.png
1. Dlaczego mikrokontrolery '51 ?
1. Dlaczego mikrokontrolery '51 ?
klawiatury, myszki itp.
karty graficznej zawierającej sterownik monitora oraz monitor np.
LCD,
innych kart zgodnie z wymaganiami użytkownika, np. dźwiękowej.
przy realizacji komputerów osobistych. To co jest zaletą w dużych systemach
jest wadą w małych. Rozproszone, małe systemy kontrołno-pomiarowe oprócz
samego mikroprocesora wraz z pamięcią programu i danych potrzebują najczę-
ściej także:
• wejść i wyjść cyfrowych,
• układu czasowego lub licznika taktowanego zewnętrznym sygnałem,
• łącza szeregowego do komunikacji z nadrzędnym komputerem,
• prostego kontrolera przerwań,
• układu redukcji mocy przy zasilaniu bateryjno-akumulatorowym,
• generatora taktującego, stabilizowanego rezonatorem kwarcowym.
pamięć
danych
pamięć
programu
kontroler
przerwań
układ
DMA
A
układy
koprocesor
arytmetyc7 ny
*
*
Producenci mikroprocesorów oferują również wszystkie, niezbędne układy ze-
wnętrzne. W prostych systemach komputerowych ich możliwości nie są wyko-
rzystywane. Należy również pamiętać, że każdy z układów zajmuje miejsce na
płytce drukowanej, wymaga niezbędnych połączeń z innymi układami. Kom-
plikuje to konstrukcję płytek drukowanych, zmniejsza niezawodność systemu
oraz, co jest równie ważne, zwiększa pobór prądu z zasilacza w porównaniu z
jednym układem, który pełniłby te same funkcje. Względy te oraz postęp w
technologii wytwarzania układów scalonych spowodowały, że niektóre elemen-
ty peryferyjne wykonano łącznie z mikroprocesorem na jednej płytce krzemu.
W ten sposób w 1977 roku firma Intel opracowała pierwszy 8-bitowy mikropro-
cesor jednoukładowy o symbolu 8048. Trzy lata później na rynku pojawił się
także 8-bitowy mikroprocesor jednoukładowy 8051, który zapoczątkował po-
wstanie całej rodziny mikroprocesorów oznaczonych symbolem '51. Ze wzglę-
du na możliwości i pełnione funkcje mikroprocesory jednoukładowe nazwano
mikrokontrolerami. Mówiąc o 8-bitowym mikrokontrolerze mówi się o wielko-
ści, liczbie linii magistrali danych, sposobie przetwarzania i przesyle informacji.
<
••
mikroproce sor
\
ejściowo\
wyjściowe
i
pamięć masowa:
FDD, HDD, CD-ROIV
i
układy czasówo-licznikowe
i
>•
interfejsy: szeregowy,
równoległy, siecic
karta graficzna, sterownik
monitora, monitor
Obecnie rodzina mikrokontrolerów '51 liczy kilkadziesiąt typów i znajdu-
je się w ofercie dużych jak i mniejszych, światowych producentów mikroproce-
sorów takich jak: Intel, AMD, Philips, Signetics, Siemens, Oki, Matra/Harris,
Dallas, Atmel itd.
wejścia-wyjścia cyfrowe
i
przetworniki A/C i C/J \
i
karta muzyczna,...
Mikrokontroler 8051 w zamierzeniach jego twórców nie był strukturą
zamkniętą i już od początku przygotowany był do rozbudowy. Pierwsza zmia-
na wprowadzona przez samą firmę Intel związana była z rozszerzeniem we-
wnętrznej pamięci RAM oraz pamięci programu i wprowadzenie trzeciego u-
kładu czasowego, licznika T2(8052). Kolejne zmiany były już tylko kwestią cza-
su.
I
klawiatura, myszka,...
Rys. 1-1
Uproszczony schemat blokowy komputera klasy IBM-PC.
Mikroprocesor jako programowalny układ scalony o dużym stopniu in-
tegracji zawiera jedynie jednostkę arytmetyczno-logiczną i część układu stero-
wania. Pozostałe elementy traktowane są jako układy zewnętrzne. W rozbudo-
wanych komputerach taki podział ułatwia zadanie konstruktorom sprzętu i
oprogramowania ze względu na budowę modułową. Taką koncepcję przyjęto
Podstawowymi zaletami mikrokontrolera 8051 są:
• stała lista instrukcji, niezależnie od rozbudowy układów wewnętrz-
nych,
• sprzętowe procedury mnożenia i dzielenia,
2457310.026.png
1. Dlaczego mikrokontrolery Ł 51 ?
2 Co jest w środku ?
• wewnętrzna pamięć programu i danych,
• dwa programowalne układy czasowo-licznikowe,
• niezależny od jednostki arytmetyczno-logicznej układ transmisji sze-
regowej,
• duża liczba, jak na tamte czasy, wejść i wyjść cyfrowych,
• wewnętrzny generator sterujący działaniem mikrokontrolera,
• priorytetowy, 2-poziomowy układ kontroli przerwań, wystarczający
przy niewielkiej liczbie wewnętrznych układów.
2. Co jest w środku ?
Mikroprocesor jest układem o dużym stopniu scalenia (dużej skali inte-
gracji), którego działanie zależy od programu, ciągu rozkazów. Program może
być dowolnie zmieniany przez użytkownika w ramach dostępnej listy rozka-
zów. Dla mikrokontrolerów rodziny '51 lista rozkazów jest stała, nie zależy od
liczby wewnętrznych układów i liczy 111 instrukcji. Realizowany program i
przetwarzane dane przechowywane są w:
• pamięci stałej programu, której zawartość nie jest zmieniana w trakcie
wykonywania programu; oprócz samego programu w pamięci tej
przechowywane są również niektóre stałe, tablice kodujące itp.,
• pamięci danych, której zawartość jest ciągle modyfikowana, zmienia-
na; pamięć ta zawiera dane do obliczeń i wyniki tych obliczeń.
Wielu konstruktorom mikroprocesorowych sterowników brakowało
możliwości szybkiej wymiany danych, współpracy z innymi zewnętrznymi u-
kładami na wspólnej szynie (np. tryb DMA-bezpośredniego dostępu do pamię-
ci) oraz współpracy z wolniej (w stosunku do mikrokontrolera) działającymi
układami zewnętrznymi lub pamięciami. Obie wady zostały częściowo usunię-
te. Tryb DMA wprowadziła firma Philips w mikrokontrolerach PCF
8xC592/598. Programowanie czasu trwania sygnałów RD (ReaD) i WR
(WRite) sterujących zewnętrznymi pamięciami RAM możliwe jest w mikrokon-
trolerach firmy Dallas, np. DS8xC320 lub DS8xC5xO. Firma ta wprowadziła w
mikrokontrolerze DS8xC530 dodatkowy wewnętrzny układ RTC (Real Time
Clock) oraz rozbudowane i energooszczędne tryby pracy, co jest szczególnie
ważne przy zasilaniu bateryjnym.
Im bardziej złożone obliczenia lub sterowanie tym większa liczba danych musi
być przechowywana w pamięci danych. Ze względu na niezbyt dużą we-
wnętrzną pamięć danych w mikrokontrolerach rodziny '51, konieczne jest dołą-
czenie zewnętrznej pamięci danych. Ten sam problem występuje w przypadku
pamięci programu. Mikrokontrolery rodziny '51 umożliwiają dołączenie zew-
nętrznych pamięci programu i danych, tak jak przedstawiono to na rysunku
2-1.
Nowe konstrukcje mikrokontrolerów 16-bitowych, np. 8xC251 firmy Intel
lub 8xC51XA firmy Philips, są zgodne układowo i programowo z mikrokontro-
lerem 8051. To świadczy o zakresie zastosowań mikrokontrolerów rodziny '51,
przyzwyczajeniach programistów, niezbyt wysokich kosztach oprogramowania
wspomagającego testowanie i uruchamianie oraz bardzo bogatej biblioteki o-
programowania, kompilatorów języków wyższego poziomu itd.
mikrokontroler
wewnętrzna
pamięć
programu
jednostka
arytmetyczno-
-logiczna
wewnętrzna
pamięć
danych
adresy ł
Mikrokontroler 8051 potęgą jest i basta.
zewnętrzna
pamięć
programu
zewnętrzna
pamięć
danych
sterowanie
układ sterowania
układy
wejściowe
układy
wyjściowe
generator
:E_I
-.t,,.„> * wviścia"
I wejścia
cyfrowe
zewnętrzne
sygnały
sterujące
' wyjścia"
cyfrowe
Rys. 2-1
Magistrale mikrokontrolera 8051.
iż.
2457310.027.png
2. Co jest w środku ?
2. Co jest w środku ?
Wewnętrzna lub zewnętrzna pamięć programu jest pamięcią typu ROM
(Read Only Memory). Jej zawartość jest ustalana w trakcie produkcji mikrokon-
trolera. Takie rozwiązanie jest możliwe jedynie w przypadku długich, liczących
co najmniej kilka tysięcy mikrokontrolerów z tym samym programem. Jeśli se-
rie są krótsze, a w szczególności są to pojedyncze egzemplarze, prototypy, jako
pamięci wykorzystuje się:
• pamięci EPROM, programowane elektrycznie ale kasowane optycznie
przez naświetlanie promieniami UV (promieniowanie ultrafioletowe);
wiele pamięci jednokrotnie programowanych (OTP) jest wykonywa-
nych jako pamięci EPROM,
• pamięci flash ROM, programowane i kasowane elektrycznie, które są
znacznie tańsze niż pamięci EPROM, a ich kasowanie trwa kilkanaście
ms (kasowanie pamięci EPROM trwa zwykle kilka minut).
• magistrala sterująca jest bardzo zróżnicowana. Liczba linii tworzących
tę magistralę zależy od typu układu. Dla pamięci jest to 1 lub 2 linie, dla
układu sterowania znacznie więcej, zależnie od typu mikrokontrolera
(liczników, przerwań itp.).
Struktura wewnętrzna mikrokontrolera 8051 jest bardziej złożona niż
przedstawiono to na rysunku 2-1. Złożoność jest efektem większej liczby we-
wnętrznych elementów niż udostępnionych użytkownikowi, programiście. Są
to przede wszystkim dodatkowe rejestry wykorzystywane przez jednostkę a-
rytmetyczno-logiczną w trakcie wykonywania niektórych wewnętrznych prze-
słań, bufory portów PO .. P3, układy korekcji stanu licznika rozkazów, rejestry
dekodujące realizowane instrukcje itd. Schemat blokowy mikrokontrolera 8051
przedstawia rysunek 2-2.
Oba typy pamięci mogą być pamięciami zarówno wewnętrznymi jak i ze-
wnętrznymi.
Mikrokontroler 8051 oferowany jest przez wiele firm w obudowie z 40
wyprowadzeniami. Jeśli policzyć wszystkie elementy struktury wewnętrznej
mikrokontrolera, które mikrokontroler wykorzystuje do komunikowania się z
układami zewnętrznymi, tzn.:
• 8-bitową magistralę danych,
• 16-bitową magistralę adresową,
• linie sterujące dostępem do zewnętrznej pamięci programu (EA,
PSEN ) i zewnętrznej pamięci danych (RD, WR),
• cztery 8-bitowe porty pełniące rolę wejść lub wyjść cyfrowych (PO, .. ,
P3),
• wejście i wyjście układu transmisji szeregowej,
• po dwie linie sterujące pracą każdego z dwóch wewnętrznych liczni-
ków,
• dwa wejścia zewnętrznych przerwań,
• dwie linie do dołączenia rezonatora kwarcowego, jedna linia sprzęto-
wego zerowania mikrokontrolera oraz dwa wyprowadzenia do dołą-
czenia zasilania mikrontrolera,
to okaże się, że liczba wyprowadzeń mikrokontrolera jest znacznie mniejsza niż
wymienione potrzeby. Takie rozwiązanie jest możliwe wskutek pełnienia wielu
różnych funkcji przez jedno i to samo wyprowadzenie:
• porty PO i P2 służą do przesyłania adresów do zewnętrznej pamięci
programu i danych,
• przez port PO przesyłane są dodatkowo wszystkie dane z/do ze-
wnętrznej pamięci programu i danych,
• port P3 pełni rolę wejść wewnętrznych liczników, łącza szeregowego,
wejść kontrolera przerwań oraz steruje kierunkiem przesyłem danych
z/do zewnętrznej pamięci danych (linie RD, WR ).
Do przechowywania danych, które są zmieniane w trakcie wykonywania
programu służą pamięci RAM (Random Access Memory). Wewnętrzna pamięć
RAM w mikrokontrolerze 8051 liczy tylko 128 bajtów, a w mikrokontrolerze
8052 i nowszych zwykle 256 bajtów. Rozmiar zewnętrznej pamięci danych zale-
ży tylko od potrzeb użytkownika ale nie może przekroczyć 64 KB(ajtów). Pro-
blem polega na tym, że do wymiany danych z zewnętrzną pamięcią RAM kon-
struktorzy mikrokontrolera przewidzieli tylko 2 rozkazy do zapisu danych i 2
rozkazy do ich odczytu. We wszystkich wymianach bierze udział wyłącznie
jeden wyspecjalizowany wewnętrzny rejestr. Powoduje to znaczne spowolnie-
nie wykonywanego programu. Dlatego jeśli czas wykonywania obliczeń ma być
krótki, to do przechowywania danych należy wykorzystywać tylko we-
wnętrzną pamięć danych.
Magistrale (adresowa, danych i sterująca) występujące w mikrokontrole-
rach rodziny '51 mają różną wielkość, w zależności od tego, czy dotyczą wnę-
trza mikrokontrolera, czy komunikują się z zewnętrznymi pamięciami
(rysunek 2-1):
• magistrala adresowa:
—> jeśli współpracuje z wewnętrzną lub zewnętrzną pamięcią programu
ROM oraz z zewnętrzną pamięcią danych RAM liczy 16 linii, co po-
woduje, że maksymalna wielkość tych pamięci ograniczona jest do
2 = 64 KB(ajtów); pełny adres zawierają 2 bajty,
-> jeśli współpracuje z wewnętrzną pamięcią danych RAM i we-
wnętrznymi układami peryferyjnymi (liczniki, łącze szeregowe itp.)
liczy tylko 8 linii; z tego powodu wewnętrzna pamięć RAM ograni-
czona jest do 2 =256 bajtów,
• wewnętrzną i zewnętrzną magistralę danych tworzy 8 linii; dane prze-
syłane są więc bajtowo,
2457310.028.png
Zgłoś jeśli naruszono regulamin