Strednı prumyslova skola, Na Trebesıne 2299, 108 00, Praha 10
Za klady automatickč ho rızenı ~ monoliticke mikropocıtace ~ Ing. Pavel Voka c
Praha 2000
Za klady automatickč ho rızenı ý monolitickč mikropocıtace
1. Obsah 1.
Obsah ................................................................................................................................................... 2
2.
Za kladnıpojmy .................................................................................................................................... 3
3.
2.1.
Architektura monolitickych mikropocıtacu.................................................................................. 3
1.2.
Rozde lenı monolitickych mikropocıtacu...................................................................................... 4
C a sti monolitickych mikropocıtacu...................................................................................................... 5 3.1.
Procesorova jednotka ................................................................................................................... 5
1.2.
Pame Ř........................................................................................................................................... 5
1.3.
Zdroj synchronizacnıch pulsu...................................................................................................... 6
1.4.
Prerusovacıpodsystč m ................................................................................................................. 6
1.5.
Vstupne vystupnıbra ny................................................................................................................ 6
1.6.
Analogovč vystupnıobvody......................................................................................................... 7
1.7.
Analogovč vstupnıobvody........................................................................................................... 8
1.8.
C ıtacovy podsystč m ..................................................................................................................... 9
1.9.
Sč riovč komunikacnırozhranı...................................................................................................... 9
C asovac WATCHDOG .......................................................................................................................... 10
4.
5.
6.
2.
1.11.
Obvod rea lnč ho casu .............................................................................................................. 10
1.12.
Specia lnıperiferie .................................................................................................................. 10
Instrukcnısoubor monolitickych mikropocıtacu................................................................................ 11 1.1.
Instrukce presunu ....................................................................................................................... 11
1.2.
Aritmetickč a logickč instrukce.................................................................................................. 12
1.3.
Instrukce rızenıprogramovč ho toku........................................................................................... 12
1.4.
R ıdıcıinstrukce .......................................................................................................................... 13
Aplikace monolitickych mikropocıtacu............................................................................................. 14 5.1.
Volba vhodnč ho typu mikropocıtace.......................................................................................... 14
1.2.
Vyvoj a lade nıprogramu............................................................................................................ 14
1.3.
Oblasti pouz itı monolitickych mikropocıtacu............................................................................ 14
Monolitickč mikropocıtace rady 8051................................................................................................ 15 6.1.
Organizace pame ti...................................................................................................................... 15
1.2.
C ıtace / casovace ........................................................................................................................ 17
Pouz ita literatura ................................................................................................................................ 21
-2-
Strednıprumyslova skola Praha 10, Na Trebesıne 2299
2. Za kladnıpojmy Monolitickymikropoc ıtac Monoliticky mikropocıtac je pocıtac, ktery ma vsechny za kladnı ca sti integrovanč v jednom pouzdre. Monolitickč mikropocıtace se pouz ıvajıjako rıdıcıprvky v be z nych prumyslovych vyrobcıch (naprıklad doma cıspotrebice, spotrebnıelektronika apod.). Prestoz e jsou konstrukcne pome rne sloz itč , je jejich cena vzhledem ke znacnč sč riovosti vyroby nızka . Pri realizaci i jednoduchych rıdıcıch funkcı byva jejich pouz itı casto levne jsınez realizace tč z e funkce z jednodussıch elektronickych souca stek. Poc ıtac Pojmem pocıtac oznacujeme stroj na zpracova nıinformace na za klade predem zadanč ho programu. V historii se objevila rada ruznych principuna nichz takovč to stroje pracovaly (mechanickč , elektronickč s analogovym zpracova nım dat apod.), dnes pocıtace pracujıtč me r vyhradne cıslicovym zpusobem na elektronickč m za klade . Program Program je posloupnost konecnč ho poctu krokuvedoucıch k vyresenı ólohy. Byva zapsa n v ne jakč m programovacım jazyce, ktery je pro clove ka (programa tora) srozumitelny. Instrukce Pri prenosu programu do pocıtace je nutnč jej prevč st z programovacıho jazyka na posloupnost instrukcı(tzv. strojovy kod), kterym “rozumı…pocıtac. Instrukce je predpis k provedenıurcitč elementa rnıoperace realizovatelnč prımo technickym vybavenım pocıtace.
2.1. Architektura monoliticky ch mikropocıtacu Ja drem pocıtace je procesorova jednotka, ktera prova dıposloupnost instrukcıdanou programem. Pameíobsahuje program pro procesorovou jednotku a data s nimiz ma procesorova jednotka pracovat. Pomocıobvoduvstupnıho a vy stupnıho rozhranı je zajiste na komunikace pocıtace s okolnım prostredım (zada va nıdat, prevzetı vysledku,Š ).
procesorova jednotka
vstupnı a vystupnı rozhranı
pame ř
napa jecı zdroj
Komunikace mezi procesorovou jednotkou a periferiemi je zajiste na pomocıtzv. sbernice.
okolnıprostredı
Za kladnıstruktura vsech (nejen monolitickych) pocıtacuje obdobna (obr. 2.1).
Obr. 2.1: Blokovč schč ma poc ıtac e
Kaz da z uvedenych ca stı ma ruznč moz nosti realizace, ktera je za visla na poz adavcıch aplikace pro kterou je dany systč m urcen. Naprıklad osobnıpocıtace majıobvody vstupne /vystupnıho rozhranı konstruovanč pro komunikaci s clove kem (kla vesnice, monitor,Š ), rıdıcısystč my ý naprıklad systč m rızenı funkce z ehlicky ý musıobsahovat specia lnıobvody pro me renıruznych fyzika lnıch velicin a ovla da nıakcnıch orga nuapod.
-3-
Za klady automatickč ho rızenı ý monolitickč mikropocıtace
2.2. Rozdelenımonoliticky ch mikropocıtacu De lenıpodle koncepce procesoru Monolitickč mikropocıtace byvajınejcaste ji konstruova ny podle jednč ze dvou za kladnıch koncepcı: ·
Von Neumannova koncepce (obr. 2.2 A) predpokla da jeden univerza lnıpame Řovy prostor pro program i data. Pouz ıva se u univerza lnıch vypocetnıch systč mu, kde nelze predem urcit pome r velikosti programu a dat.
·
Harvardska koncepce (obr. 2.2 B) pouz ıva pro program a data odde lenč pame Řovč prostory. Pouz ıva se tam, kde jsou velikosti programu a dat predem zna my ý tedy zejmč na ve spotrebnı elektronice apod. Monolitickč mikropocıtace jsou ve tsinou konstruova ny podle tč to koncepce. radic c ıtac instrukce registr instrukce
aritmeticko logicka jednotka
vstupnı a vystupnı rozhranı
pame ř
A)
radic c ıtac instrukce registr instrukce
aritmeticko logicka jednotka
pame ř programu
pame ř dat
vstupnı a vystupnı rozhranı
B)
Obr. 2.2: Koncepce poc ıtac e: A) Von Neumannova, B) Harvardska
De lenıpodle s ırky zpracova vanych dat Sırkou zpracova vanych dat rozumıme velikost informace, kterou je pocıtac schopen najednou zpracovat. Monolitickč mikropocıtace jsou nejcaste ji konstruova ny jako 8-mi bitovř (zpracova vajı najednou 1 bajt informacı), vyra be jıse vsak i vykonne jsı 16-ti a 32 bitovř typy a mč ne vykonnč 4 bitovř mikropocıtace pro nejjednodussıaplikace. De lenıpodle rozs iritelnosti systČmu U ne kterych typumikropocıtacunenısbe rnice vyvedena na vyvody pouzdra ý nelze k nim tedy pripojit rozsirujıcıobvody. Tyto systč my se nazyvajı uzavr enř. U otevr eny ch systřmu je sbe rnice vyvedena na vyvody pouzdra a lze je tedy da le rozsirovat naprıklad o dalsıvstupne /vystupnıobvody, vne jsıpame ti apod. De lenıpodle urc enısystČmu Univerza lnı mikropocıtace jsou urceny pro siroky okruh aplikacı. Jsou vybavenč univerza lnımi periferiemi (vstupne /vystupnı bra ny, cıtace, casovace, komunikacnı kana ly, atd.). C asto jsou konstruova ny jako otevrenč . U celovř mikropocıtace jsou ve tsinou konstruova ny jako uzavrenč . Byvajıodvozeny od ne kterč ho z univerza lnıch typu, ale obsahujıspecia lnıperiferie pro danou aplikaci (naprıklad tonovy genera tor pro telefonnıprıstroje apod.).
-4-
Strednıprumyslova skola Praha 10, Na Trebesıne 2299
3. C a sti monolitickych mikropoc ıtac u 3.1. Procesorova jednotka Za kladnı ca stıprocesorovč jednotky je r adic (controller), ktery generuje rıdıcıimpulsy pro prenos informacı mezi jednotlivymi registry (pame Řovymi bunkami) procesoru. Registr instrukce uchova va operacnıkod pra ve prova de nč instrukce. Operacnıkod instrukce je dekodova n v dekodřru instrukce na logickč signa ly, ty jsou radicem da le zpracova ny na posloupnost rıdıcıch signa lu, zajisŘujıcıch prenos operanduz pame ti do procesoru, jejich prıpadnč zpracova nıv aritmeticko logickč jednotce a uloz enıvysledkudo cılovč ho registru.
rızenı prenosu na sbe rnici
datova sbe rnice
ALU
prıznaky R ADIC
Aritmeticko logicka jednotka (ALU á Arithmetic and Logic Unit) je kombinacnı obvod, ktery na za klade signa luvybe ru generovanych radicem prova dıurcitou operaci s jednım, dve ma, nebo i vıce operandy. Podle vysledkuprova de nč operace se mohou nastavit urcitč bity v prıznakovč m registru. Prıznakovč bity uchova vajıinformace o vysledku operace (naprıklad: doslo-li k pretecenıregistru, je-li vysledek nulovy, kladny nebo za porny apod.).
dekodč r instrukce
programovy c ıtac
registr instrukce
pame ř programu Obr. 3.1: Blokovč schč ma procesoru
V registru nazvanč m programovy cıtac (PC á Program Counter) je uloz ena adresa instrukce, ktera se bude prova de t. Programovy cıtac se po provedenıkaz dč instrukce inkrementuje o jednu adresu, cımz je zajiste n prısun dalsıinstrukce programu. Ma -li se provč st skokova instrukce (skok na jinou instrukci nez na sledujıcı), signa ly radice neinkrementujı cıtac, ale prenesou novou adresu do programovč ho cıtace.
3.2. Pameř V monolitickych mikropocıtacıch se pouz ıvajıdva za sadne odlisnč typy pame Řovych obvodu: Energeticky za vislČ pame ti Pameípro za pis a ctenı (RWM á Read Write Memory) slouz ıpro ukla da nızpracova vanych dat. V monolitickych mikropocıtacıch jsou zpravidla pouz ity pame ti statickč (nevyz adujıcıperiodickč obnovova nıobsahu) o velikosti ra du jednotek bajtuaz jednotek kilobajtu. Energeticky neza vislČ pame ti Energeticky neza vislč pame ti slouz ıpro ukla da nıprogramu. Nejpouz ıvane jsıtypy energeticky neza vislych pame tıjsou dva: Pameíurcena vy hradne pro ctenı (ROM á Read Only Memory). Jejıobsah je da n programovacı maskou pri vyrobe cipu. Pouz ıva se u mikropocıtacu, jejichz program se nebude nikdy me nit (naprıklad jiz zmıne ny systč m rızenı z ehlicky). Elektronicky mazatelna pameí(EEPROM á Electrically Erasable and Programmable Read Only Memory). Jejıobsah je moz nč opakovane programovat i mazat pomocıelektrickych impulsu. Nahrazujıstarsıpame ti typu EPROM (Erasable and Programmable Read Only Memory), jejichz maza nıse prova dı ultrafialovym sve tlem.
-5-
Za klady automatickč ho rızenı ý monolitickč mikropocıtace
3.3. Zdroj synchronizacnıch pulsu Zdroj synchronizace vytva rıdiskrč tnı casovou za kladnu nutnou pro prova de nıvsech operacı v mikropocıtaci. Obvod casovacıho genera toru byva integrova n prımo v pouzdre monolitickč ho mikropocıtace. Na jeho vyvody se pripojuje pasivnı casovacı prvek, jımz se volı kmitocet synchronizacnıho signa lu. Jako casovacıprvek se nejcaste ji pouz ıva krystal (kremenny vybrus), nebo keramicky kondenza tor.
3.4. PrerusovacıpodsystČm Pri zpracova nı óloh v rea lnč m case (tedy óloh typickych pro aplikace monolitickych mikropocıtacu) je nutnč reagovat na ruznč asynchronnı uda losti vznikajıcıpri regulacnım procesu (naprıklad: prekrocenı rozsahu ne jakč fyzika lnı veliciny, stisk nouzovč ho tlacıtka apod.). Ne kterč asynchronnıuda losti vznikajıi pri pra ci systč mu samotnč ho (naprıklad: prerusenı od ukoncenı A/D prevodu, sč riovč ho komunikacnıho kana lu apod.). Systč m prerusenızajisŘuje maxima lne rychlou odezvu na tyto uda losti tım, z e generuje poz adavek na obsluhu specia lnım podprogramem, jemuz preda rızenı. Po ukoncenıtohoto podprogramu se rızenıvracıpuvodnımu programu v mıste , kde doslo k jeho prerusenı. Pri programova nıobsluz nych podprogramuje nutnč dba t na uloz enı vsech hodnot registru a akumula toru, se kterymi podprogram pracuje a zajistit jejich na vrat na puvodnı hodnoty pred prerusenım. Pro ukla da nıte chto hodnot se pouz ıva tzv. za sobnık (stack). Protoz e moz nych zdrojuprerusenıbyva zpravidla vıce je v mikropocıtacıch implementova n tzv. prioritnı radic, ktery rozhoduje o tom, kterč prerusenıdostane pri zpracova nıprednost.
3.5. Vstupne vy stupnıbra ny Vstupne /vystupnıbra ny (I/O port á Input/Output port) jsou nejjednodussımi a nejcaste ji pouz ıvanymi obvody rozhranı mezi procesorovym ja drem a rea lnym prostredım. Bra na je nejcaste ji realizova na jako 8 jednobitovych vyvodu, kterč umoz nujıjak ctenı(naprıklad stavu koncovych spınacu) a za pis (naprıklad ovla da nıdvoustavovych akcnıch orga nu) logickych signa lu, tak i komunikaci s ruznymi rozsirujıcımi obvody (naprıklad inteligentnı me rıcıprvky, radice displejuapod.). Typickym prıkladem konstrukce vstupne /vystupnıho obvodu je zapojenıtranzistoru s “otevrenym kolektorem…(OC á Open Collector) a vstupnım odde lovacem. Princip funkce obvodu (obr. 3.2) je na sledujıcı: ·
·
pri pra ci obvodu ve vystupnım rez imu se data z vnitrnıdatovč sbe rnice prepisujıs na be z nymi hranami signa lu CLK na vystup D ý klopnč ho obvodu. Protoz e je zapojen invertujıcıvystup klopnč ho obvodu je pri zapsa nılogickč “1… na jeho vstup vystupnıtranzistor v rozepnutč m stavu, a tedy na vystupu obvodu se pres odpor RC dostane logicka “1…. V opacnč m prıpade je vystupnıtranzistor sepnut a vystup je tak spojen s logickou órovnı “0…. Ve vstupnım rez imu je nutnč nejdrıve zapsat na vystup logickou “1…ý tım dojde k rozepnutı vystupnıho tranzistoru a je tedy moz nč cıst logickč órovne na vstupu obvodu.
+UN RC sbe rnice za pis
D Q CLK
N
vyvod vstup/vystup
D “ klopny obvod
reset
c tenı
vstupnı odde lovac
Obr. 3.2: Zapojenı vstupne vystupnıho obvodu
-6-
Strednıprumyslova skola Praha 10, Na Trebesıne 2299
3.6. AnalogovČ vy stupnıobvody Pro vystup analogovych signa lu(naprıklad pro ovla da nıspojitych akcnıch orga nu) z mikropocıtace se vyuz ıva tzv. digita lne /analogovych prevodnıku(D/A á Digital Analog). D/A prevodnıky zajisŘujıtransformaci cıslicovych hodnot generovanych mikropocıtacem na ne jakou analogovou velicinou (zpravidla elektrickč nape tı, nebo elektricky proud). PWM kana l NejjednodussırealizacıD/A prevodnıku je tzv. pulsne sır kova modulace signa lu (PWM á Pulse Width Modulation). Jejıprincip je na sledujıcı: C ıslicovy signa l na vystupu mikropocıtace muz e nabyvat dvou nape Řovych órovnı U…0…a U…1… (odpovıdajıcıch logickym hodnota m “0…a “1…). Me nıme-li pri urcitč dobe trva nıperiody T pome r doby trva nıte chto dvou stavu, me nıse v za vislosti na ne m strednıhodnota nape tıvystupnıho signa lu (obr. 3.3) podle vztahu:
U S = (U "1" - U "0" ) ×
T1 T
(3.1)
U Uš1š US Uš0š
t T
U
kde T1 je doba trva nılogickč órovne “1….
Uš1š
Nez a doucıkmita nıvystupnıho signa lu je moz nč odstranit zarazenım jednoduchč ho RC filtru na vystup obvodu, jehoz casova konstanta TRC bude mnohem ve tsı nez doba periody signa lu T, neboli:
Uš0š
R × C >> T
Tš1š
(3.2)
US
Tš1š
t
T
Obr. 3.3: Pulsne sırkova modulace signa lu
Filtrova nıvystupnıho signa lu s RC filtrem vsak zpusobuje pome rne pomalou odezvu prevodnıku na skokovč zme ny vystupnıho signa lu. Paralelnı A/D prevodnık Jinou moz nostırealizace A/D prevodnıku je pr ımy pr evod cıselnř hodnoty na analogovou. Prımy prevod je rychlejsınez PWM kana l, avsak jeho vyroba je na kladne jsı. Prımy prevod se prova dıpomocıtzv. paralelnıch prevodnıku, kterč preva dı cıselnou hodnotu na analogovou hodnotu vystupnıho proudu. Schč ma n ý bitovč ho paralelnıho prevodnıku s odporovou sıtı R ó 2R a princip jeho funkce je zrejmy z obra zku 3.4.
n
R
R
R
n-1
1
2R
2R
R
2R
2R
2R
UN
0 I
Obr. 3.4: Paralelnın “ bitovyprevodnık s odporovou sıtıR “ 2R
-7-
Za klady automatickč ho rızenı ý monolitickč mikropocıtace
3.7. AnalogovČ vstupnıobvody Pro mer enı analogovy ch signa lu , resp. jejich spojitč hodnoty prevedenč na elektrickou velicinu, se vyuz ıva tzv. analogovo/digita lnıch prevodnıku(A/D á Analog Digital). A/D prevodnıky tedy zajisŘujıtransformaci spojitč hodnoty elektrickč veliciny na cıslicovou hodnotu zpracovatelnou mikropocıtacem. Stejne jako u D/A prevodnıkuexistuje i zde cela rada principujejich funkce. Komparac nıA/D prevodnık UR Komparacnı A/D prevodnıky jsou zaloz enč na soucasnč m porovna nı hodnoty vstupnıho UINP elektrickřho napetı s referencnı hodnotou napetı rozde lenou na kvanta. Tyto prevodnıky jsou velmi rychlč avsak technologicky pome rne na rocnč . Schč ma 3/2 R n ý bitovč ho komparacnıho A/D prevodnıku je na obra zku 3.5.
T2 =
Kn-1
R
K1
R
K0
KODER (LOGICKY KOMBINAC NI OBVOD)
R
A/D prevodnıky s D/A prevodem Principem A/D prevodnıkus D/A prevodem je kompenzace mer enř hodnoty (ve tsinou nape tı) zna mou promennou hodnotou referencnı veliciny. Prevodnık obsahuje D/A prevodnık a kompara tor, ktery porovna va hodnotu vstupnıho nape tıa nape tı referencnıho. Podle vystupnıho stavu kompara toru se vhodnym algoritmem nastavuje hodnota nape tı referencnıho. Integrac nıA/D prevodnık Za kladem integracnıho A/D prevodnıku (obr. 3.6) je integra tor, ktery po pevne stanovenou dobu T1 integruje vstupnı nape tı UI. Po jejım uplynutıse na vstup integra toru privede referencnı nape tı UR opacnč polarity a me rıse doba odintegrova nı T2 zpe t na nulu. Protoz e platı:
Kn bn bn-1
b1 b0
kompara tory
1/2 R
Obr. 3.5: n “ bitovyparalelnıA/D prevodnık
UI × T1 UR
(3.3)
lze snadno spocıtat hodnotu vstupnıho nape tı UI podle vztahu:
UI =
T2 ×U R T1
(3.4)
C UI R -UR
KOMPARATOR
-
òU
+ T1
R IDICI OBVODY
Obr. 3.6: Integrac nıA/D prevodnık
-8-
T2
t
Strednıprumyslova skola Praha 10, Na Trebesıne 2299
3.8. C ıtacovy podsystČm C ıtace jsou prvky, kterč se pouz ıvajıpri pocıta nıimpulsu, generova nı casovych intervalu, vytva renı casovych zpoz de nıapod. Jejich vnitrnıstruktura je pome rne jednoducha a proto jsou zaclene ny tč me r do kaz dč ho mikropocıtace. Pro ruznč aplikace jsou vhodna ruzna zapojenı cıtacu. C ıtac vne js ıch uda lostı V tomto zapojenı(obr. 3.7) je cıtac pouz it pro pocıta nıvne jsıch impulsu. Programove lze nastavit vychozıstav cıtace a prube z ne sledovat jeho obsah. C ıtac se velmi casto pouz ıva ve spojenı s prerusovacım systč mem, kdy po nacıta nı definovanč ho poctu impulsuvola prerusenı. C asovac V tomto zapojenı(obr. 3.8) je vstup cıtace pripojen na vnitrnı synchronizacnısigna l. Nastavenım poca tecnı hodnoty cıtace lze generovat prerusenı v casovych intervalech danych na sobkem poca tecnıho stavu cıtace a periody synchronizacnıho signa lu.
start / stop prerusovacı systč m
C ITAC vstup mikropoc ıtac e
Obr. 3.7: C ıtac vne jsıch uda lostı
genera tor hodinovč ho signa lu
prerusovacı systč m
C ITAC
Obr. 3.8: C asovac
3.9. SČriovČ komunikacnırozhranı Pri sč riovč m komunikaci jsou prena sena data vysılacem rozloz ena na posloupnost jednotlivy ch bitu , kterč se postupne vysılajına sbe rnici, odkud je prıjemce cte a sestavuje zpe t do puvodnıho tvaru. Z hlediska casovč ho rozloz enıtoku jednotlivych bituse sč riovy prenos de lına synchronnı (pro rychly prenos velkč ho objemu dat) a asynchronnı (pro komunikaci s pomalymi zarızenımi). Sč riovy prenos dat je nejcaste jsım zpusobem prenosu informacına ve tsıvzda lenosti, proto z duvodusjednocenıexistuje rada mezina rodnıch norem a doporucenı(napr.: RS-232C, RS-485, I2C,Š ), ktera predepisujıvlastnosti komunikacnıch obvodu, prenosovych mč diıa jejich zapojenı. SynchronnısČriovyprenos dat Pri synchronnım sč riovč m prenosu (obr. 3.9) je krome datovč ho signa lu prena sen navıc signa l synchronizacnı, ktery indikuje prıtomnost platnč ho bitu na sbe rnici. Dojde-li pri prenosu ke ztra te ne jakč ho bitu, je cely zbytek zpra vy prijat nespra vne , proto je jeste nutnč synchronizovat prıjemce se zdrojem celym znakem, odlisnym od ostatnıch. Prıjemce musıtento znak rozeznat, a po tč prijımat dalsıznaky jako informacnı. Be hem prenosu se synchronizacnıznaky vysılajıv urcitč m dohodnutč m odstupu, takz e je moz nč kontrolovat, zda nedoslo ke ztra te synchronizace. Prıklad datovč ho signa lu pri prenosu znaku 01001110B je zobrazen na obra zku 3.9. AsynchronnısČriovyprenos dat Pri asynchronnım sč riovč m prenosu (obr. 3.10) se vyuz ıva toho, z e dva signa ly o stejnč m kmitoctu zusta vajıv kra tkč m casovč m intervalu dostatecne dobre synchronizova ny.Vysılac na zaca tku prenosu znaku vysle jeden bit, ktery urcızaca tek prenosu, potom na sleduje posloupnost datovych bitua na za ve r jeden nebo dva ukoncovacıbity, kterč vytva rejıurcity cas pro zpracova nı doslč ho znaku. Prıklad datovč ho signa lu pri prenosu znaku 01001110B je zobrazen na obra zku 3.10.
-9-
zdroj dat
prıjemce dat datovy signa l
synchronizac nısigna l genera tor synchronizac nıch
pulsu datovysigna l bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7
bit 8
synchronizac nısigna l
Obr. 3.9: Synchronnısč riovy prenos dat
Za klady automatickč ho rızenı ý monolitickč mikropocıtace datovysigna l zdroj dat
prıjemce dat
datovy signa l
genera tor synchronizac nıch pulsu
startbit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7 bit 8 bit
stop-bity
genera tor synchronizac nıch pulsu
synchronizace genera toru synchronizac nısigna l
Obr. 3.10: Asynchronnısč riovyprenos dat
3.10. C asovac WATCHDOG C innost, kterou mikropocıtac prova dıje popsa na posloupnostıinstrukcı, kterč reagujına vne jsı podne ty snımanč vstupnımi obvody. Jestliz e dojde k preskocenıne jakč instrukce, nebo óplnč mu “zabloude nı…v programu nemuz e mikropocıtac vykona vat svou cinnost spra vne . Takovy stav muz e nastat naprıklad vlivem ruznych impulsugenerovanych stykaci silovych zarızenı, zdroji vysokofrekvencnıch rusivych signa lu, nebo i “neodhalenou…chybou v programu. Detekci te chto stavua na vrat mikropocıtace do vychozıho stavu zajisŘujıobvody nazyvanč “WATCHDOG…(doslova: “hlıdacıpes…). Princip jejich funkce je pome rne jednoduchy. Jde o samostatne be z ıcı casovac, jehoz vystup je pripojen na inicializacnı(reset) vstup mikropocıtace. Jestliz e casovac dokoncısvoji casovacıperiodu, vyvola reset celč ho mikropocıtace a tım jeho prechod do vychozıho stavu. Aby pri spra vnč m be hu programu k tomuto stavu nemohlo dojıt, je nutnč do programu (ve tsinou do hlavnıprogramovč smycky) zaclenit instrukci pro nulova nı casovace WATCHDOG. Pokud je jeho casova perioda spra vne nastavena ý tedy o ne co delsınez nejdelsı moz ny pruchod hlavnıprogramovou smyckou ý nenıreset vyvola n.
3.11. Obvod rea lnČho casu R ada aplikacı monolitickych mikropocıtacuvyz aduje, aby byl udrz ova n prehled o skutecnč m case, kterym se rıdılidč . Tento ókol resıspecia lnıintegrovanč obvody (RTC á Real Time Clock), kterč udrz ujı cas hodin, minut a sekund probıhajıcıho dne, prıpadne i kalenda r dnı, me sıcua rokuvcetne prestupnych. Pro jeho spra vnou funkci je nutna instalace za loz nıho zdroje energie pro udrz enıjeho nepretrz itč funkce v prıpade vypadku napa jenısystč mu. U ne kterych typumikropocıtacuje RTC obvod integrova n prımo v jeho pouzdre.
3.12. Specia lnıperiferie V predchozıch kapitola ch jsou popsa ny za kladnıuniverza lnı obvody, kterč jsou k dispozici u ve tsiny typumonolitickych mikropocıtacu. Existuje rada dalsıch (specializovanych) obvodu, kterč rozsirujı moz nosti aplikacı mikropocıtace. Nejcaste jsımi periferiemi tohoto typu jsou tonovč genera tory pro telekomunikacnıtechnologie, radice nejruzne jsıch displeju, obvody pro detekci vypadkunapa jecıho nape tıa dalsı.
- 10 -
Strednıprumyslova skola Praha 10, Na Trebesıne 2299
4. Instrukc nısoubor monolitickych mikropoc ıtac u Jak jiz bylo uvedeno, algoritmus podle kterč ho mikropocıtac pracuje je da n posloupnostıinstrukcı uloz enou v programovč pame ti. Posloupnost instrukcıtvorı tzv. strojovy kod, coz je nejniz sı óroven na kterč lze programovat (znamenalo by to popsat prımo obsah pame ti programu, s presnym uloz enım vsech instrukcıa operanduna spra vnych adresa ch). Kaz da instrukce se skla da z tzv. operacnıho kodu, ktery definuje urcitou operaci a operandu s nimiz ma instrukce pracovat. Naprıklad instrukce pro presun cısla 0Fh do akumula toru ma v instrukcnım souboru mikropocıtace Intel 8051 tvar ý viz. obra zek 4.1. 01110100
00001111 1. operand (0Fh) operac nıkod (74h)
Obr. 4.1: Strojovykod instrukce MOV A,#0Fh
Vytva renıprogramuprımym za pisem strojovč ho kodu je velmi na rocnč a navıc ma vysokou pravde podobnost vzniku nejruzne jsıch chyb v programu. Pro monolitickč mikropocıtace se nejcaste ji pouz ıva tzv. assembler, v ne mz jsou strojovč kody nahrazeny symbolickymi jmč ny, prıpadne ne ktery z vyssıch programovacıch jazyku(naprıklad jazyk C). Instrukce instrukcnıho souboru monolitickych mikropocıtaculze rozde lit do skupin, kterč jsou popsa ny v na sledujıcıch kapitola ch.
4.1. Instrukce presunu Presun dat mezi jednotlivymi pame Řovymi bunkami se prova dıjak uvnitr monolitickč ho mikropocıtace (nejcaste ji mezi registry procesorovč ho ja dra a pame tıdat), tak i mezi mikropocıtacem a externımi periferiemi. Pro urcenıkonkrč tnıpame Řovč bunky, s nız ma mikropocıtac pracovat je rozhodujıcıjejıadresa. Existuje rada zpusobu, jak tuto adresu zapsat ý tzv. zpusobuadresova nı. Implicitnıadresova nı Pri implicitnım adresova nıse adresa operandu neurcuje ý je urcena implicitne pouz itım urcitč instrukce. Tento zpusob adresova nıse pouz ıva obvykle pri pra ci s registry procesoru, nebo s jeho akumula tory. Prıklad: Instrukce pro vymaza nıobsahu akumula toru.
CLR A Bezprostrednıadresova nı Pri bezprostrednım adresova nı nenıoperandem instrukce adresa pame Řovč bunky ve kterč se operand nacha zı, ale jeho prıma hodnota. Prıklad: Presun hodnoty 25h do akumula toru.
MOV A,#25h PrımČ adresova nı Pri prımč m adresova nıje operandem instrukce prıma adresa operandu v adresovč m prostoru. Prıklad: Presun hodnoty z pame řovč bunky na adrese 25h do akumula toru.
MOV A,25h
- 11 -
Za klady automatickč ho rızenı ý monolitickč mikropocıtace NeprımČ adresova nı Pri neprımč m adresova nınenı operandem urcena adresa bunky, kde se nacha zıoperand, ale adresa bunky, kde se nacha zıadresa operandu. Prıklad: Presun hodnoty z pame řovč bunky jejızadresa je ulozena v pracovnım registru R1.
MOV A,@R1 Relativnıadresova nı Pri relativnım adresova nıje v adresovč ca sti instrukce uloz ena hodnota offsetu (posunutı) adresy operandu vzhledem k urcitč vztaz nč adrese. Prıklad: Presun hodnoty z vne jsıpame ti jejızadresa je da na offsetem adresy ulozenym v registru DPTR od poc a tku adresovč ho prostoru vne jsıpame ti.
MOV A,@DPTR
4.2. AritmetickČ a logickČ instrukce U ve tsiny monolitickych mikropocıtacuse aritmetickč a logickč instrukce prova de jıs jednım operandem uloz enym v hlavnım pracovnım registru a druhym operandem v be z nč m registru, nebo pame Řovč bunce. Za kladnımi logickymi instrukcemi, implementovanymi v kaz dč m mikropocıtace jsou: · · · · ·
logicky soucin (ANL) Š provede logicky soucin se vsemi bity obou operanduna stejnč pozici logicky soucet (ORL) Š provede logicky soucet se vsemi bity obou operanduna stejnč pozici logicka nonekvivalence (XRL) Š provede logickou nonekvivalenci se vsemi bity obou operanduna stejnč pozici logicky doplne k (CPL) Š provede logickou negaci vsech bituoperandu rotace a posun obsahu registru Š za kladnıinstrukce rotace a posunu prova dıposun kaz dč ho bitu na vyssı, nebo niz sı va hovou pozici operandu. Pri rotaci vpravo se bit na nejniz sı va hovč pozici kopıruje na na pozici nejvyssı, pri rotaci vlevo je bit z nejvyssı va hovč operace kopırova n na pozici nejniz sı.
Za kladnımi aritmetickymi instrukcemi jsou · scıta nı(ADD) · odcıta nı(SUBB) · na sobenı(MUL) · celocıselnč de lenı(DIV) U vykonne jsıch mikropocıtacubyva implementova n óplne jsısoubor aritmetickych instrukcı (naprıklad instrukce pro pra ci s rea lnymi cısly apod.). Vsechny typy majıve svč m instrukcnım souboru instrukce pro scıta nıa odcıta nı.
4.3. Instrukce rızenıprogramovČho toku Instrukce rızenıprogramovč ho toku se pouz ıvajıpri ve tvenı programu, vola nıpodprogramu, apod. Lze je rozde lit do na sledujıcıch skupin: Nepodmıne nyskok Bezpodmınecne me nıobsah cıtace instrukcıa tım prena sıaktua lnıbod programu na urcenč mısto. Prıklad: Instrukce JMP (JuMP “ skok).
Podmıne nyskok Umoz nuje ve tvenıprogramu na za klade splne nıne jakč podmınky. Prıklad: Instrukce JNZ (Jump if Not Zero “ skok nenı-li hodnota rovna nule).
- 12 -
Strednıprumyslova skola Praha 10, Na Trebesıne 2299 Instrukce vola nıpodprogramu a na vratu z nich Jejich cinnost je realizova na v soucinnosti se za sobnıkem. Pred preda nım rızenıpodprogramu se uloz ıhodnota na vratovč adresy do za sobnıku, po jeho skoncenıinstrukce na vratu uloz enou adresu zpe t do cıtace instrukcıa tım vra tı rızenına mısto, kde byl hlavnıprogram prerusen. Prıklad: Instrukce CALL (vola nıpodprogramu) a RET (na vrat z podprogramu).
4.4. R ıdıcıinstrukce R ıdıcıinstrukce jsou sva za ny s technickym vybavenım monolitickč ho mikropocıtace. Patrı mezi ne : · · ·
pra zdna instrukce (NOP) instrukce pro nastavova nıprovoznıho rez imu (STANBY,Š ) instrukce pro konfiguraci obvodumikropocıtace a dalsı
- 13 -
Za klady automatickč ho rızenı ý monolitickč mikropocıtace
5. Aplikace monolitickych mikropoc ıtac u 5.1. Volba vhodnČho typu mikropocıtace Pri konstrukci zarızenı, kterč bude rızeno monolitickym mikropocıtacem je nutnč provč st analyzu poz adovanych funkcı rızenı, stanovit potrebny vykon rıdıcıho mikropocıtace (je nutnč pocıtat i s urcitou rezervu) a z nabıdky na trhu zvolit vhodny typ mikropocıtace. Pri volbe vhodnč ho typu je krome vykonovych parametrunutnč prihlız et k na sledujıcım kritč riım: · · · · · ·
perspektivnost danč ho typu (nenıvhodnč pouz ıvat mikropoce, kterč se jiz presta vajıvyra be t) cena dostupnost na trhu znalost mikropocıtace (ovlivnuje dobu vyvoje aplikace) dostupnost, kvalita a cena vyvojovych prostredku kompatibilita s podobnymi typy jinych vyrobcu
5.2. Vy voj a ladenıprogramu Pri vyvoji programuje nejdrıve vhodnč zvolit vhodny programovacıjazyk. Vyssıprogramovacı jazyky sice nemajıtak efektivnıstrojovy kod jako programy psanč prımo v assembleru danč ho mikropocıtace, ale programy v nich napsanč jsou sna ze prenositelnč na jinč typy mikropocıtacu. Vlastnılade nıprogramu muz e probıhat mnoha zpusoby, naprıklad: lade nım funkce programu pri simulovanč m provozu na osobnım pocıtaci, lade nım aplikace na ruznych specia lnıch vyvojovych deska ch, prımym testova nım funkce naprogramovanč ho mikropocıtace, apod.
5.3. Oblasti pouzitımonoliticky ch mikropocıtacu Rozvoj mikropocıtacovych aplikacı ma prudce vzrustajıcıtendenci. To je da no nejen jejich relativne nızkou cenou, ale zejmč na jejich pruz nostı(rıdıcıfunkci lze ve znacnč m rozsahu me nit bez nutnosti za sahudo hardwaru). Vyhodou pri rızenı mikropocıtacem je i moz nost integrace vıce rıdıcıch funkcıdo jednoho mısta, nebo snadnč preda va nıinformacı mezi jednotlivymi rıdıcımi systč my. Nejcaste jsımi vyrobky v nichz je rızenımonolitickymi mikropocıtaci realizova no jsou: · · · · · ·
spotrebnıelektronika hracky automobily telekomunikacnıtechnika kancela rska technika prumyslova automatizace
- 14 -
Strednıprumyslova skola Praha 10, Na Trebesıne 2299
6. MonolitickČ mikropoc ıtac e rady 8051 Monoliticky mikropocıtac 8051 zacala spolecnost Intel vyra be t v roce 1980 a v ruznych modifikacıch se vyra bıdodnes. Mikropocıtac 8051 je 8-bitovy, s Harvardskou strukturou, casova nım odvozenym z jednoho zdroje hodinovč ho signa lu (typicky 12 Mhz a vıce). Ve tsina soucasnych typuobsahuje vnitrnıpame Ř dat o velikosti 128 nebo 256 B, programovou pame Ř typu EEPROM o velikosti 1 ý 4 kB, 2 cıtace/casovace, sč riovy komunikacnı kana l a ctyri 8-mi bitovč vstupne /vystupnıbra ny. Je-li potreba ve tsıpame Řovy prostor nez poskytuje jednocipova konfigurace, lze k mikropocıtaci pripojit vne jsıpame Ř programu nebo dat, pricemz kaz da muz e mıt velikost az 64 kB. Zjednodusenč blokovč schč ma mikropocıtace 8051je zobrazeno na obra zku 6.1. X1
X2
OSCILATOR GENERATOR HODIN
2 C ITAC E/ C ASOVAC E 16 BIT
PAMŤ T PROGRAMU
PAMŤ T
SE RIOVY KANAL
R IZENI VNŤ JS IHO PROSTORU
VSTUPNŤ / VYSTUPNI BRANY
DAT
CPU
R ADIC PR ERUS ENI
Obr. 6.1: Blokovč schč ma monolitickč ho mikropoc ıtac e 8051
6.1. Organizace pameti Vnitrnıpame ti programu a dat Jak jiz bylo uvedeno vyse, mikropocıtac 8051 ma odde lenč pame Řovč prostory pro program a data. Vnitr nı programova pameízacına adresou 00H, ze kterč se po inicializaci mikropocıtace zacne cıst prvnıinstrukce programu. U mikropocıtace 8051 jsou na zaca tku programovč pame ti pevne definova ny adresy, kde jsou uloz eny podprogramy pro obsluhu prerusenı. Pokud aplikace vyz aduje pouz itıprerusenıje nutnč hlavnıprogram uloz it az za tuto oblast a na adresu 00H vloz it instrukci pro skok na prvnıadresu hlavnıho programu. Prvnıch 128 bajtuvnitr nı datovř pameti RAM je tvoreno ctyrmi bankami tzv. pracovnıch registru (adresy 00H az 1FH), za nimi je umıste no 16 bajtubitove adresovatelnř oblasti (adresy 20H-2FH), zbyvajıcı ca st datovč pame ti (adresy 30H ý 7FH) je volne pouz itelna pro prımč i neprımč adresova nı. Dalsıch 128 adres (adresy 80H ý FFH) je vyuz ito pro adresova nıtzv. specia lnıch funkcnıch registru (SFR á Special Function Register). Je-li mikropocıtac vybaven rozsırenou datovou pame tıv oblasti adres 80H ý FFH, je tato ca st s ohledem na prekrytı s adresami SFR prıstupna pouze neprımym adresova nım. Podrobnč rozde lenıvnitrnıdatovč pame ti RAM je zobrazeno na obra zku 6.2.
- 15 -
Za klady automatickč ho rızenı ý monolitickč mikropocıtace
R7
20H 1FH
„
„
R0 R7
18H 17H
„
„
R0 R7
10H 0FH
„
„
R0 R7 R6 R5 R4 R3 R2 R1 R0
08H 07H 06H 05H 04H 03H 02H 01H 00H
zbyvajıcı vnitrnıpame ř RAM bitova oblast banka 3
„
P3 P2 P1 P0
B0H A0H 90H 80H
DPH DPL
83H DPTR “ hornıbajt 82H DPTR “ dolnıbajt
SBUF SCON
99H rızenısč riovč ho 98H komunikac nıho kana lu
TH1 TH0 TL1 TL0 TMOD TCON
banka 2
30H 2FH
banka 1
„
PC
banka 0
7FH
RDH 8CH 8BH 8AH 89H 88H
vstupne vstupne vstupne vstupne
/ vystupnıbra na 3 / vystupnıbra na 2 / vystupnıbra na 1 / vystupnıbra na 0
c ıtac / c asovac 1 “ hornıbajt c ıtac / c asovac 0 “ hornıbajt c ıtac / c asovac 1 “ dolnıbajt c ıtac / c asovac 0 “ dolnıbajt rızenı c ıtac u/ c asovac u
PCON
87H rızenınapa jenı
IE IP
A8H rızenı B8H prerusenı
SP
81H ukazatel za sobnıku
PSW
D0H stavovč slovo
B
F0H registr B
A
E0H akumula tor
Obr. 6.2: Rozde lenıvnitrnıpame ti RAM mikropoc ıtac e 8051
Specia lnıfunkc nıregistry Vsechny informace, dulez itč pro cinnost mikropocıtace a perifernıch obvoduintegrovanych na cipu, jsou uloz eny ve specia lnıch funkcnıch registrech. Za kladnıSFR, vztahujıcıse prımo k cinnosti mikroprocesoru, jsou na sledujıcı: ·
A ó akumula tor Š je za kladnıregistr aritmeticko logickč jednotky. Vz dy obsahuje jeden operand aritmetickč nebo logickč instrukce a ukla da se do ne j vysledek operace.
·
B ó pomocny registr pro na sobenıa de lenı Š pouz ıva se pro uloz enıdruhč ho operandu pri instrukcıch na sobenıa de lenı(prvnıoperand je uloz en v akumula toru), po provedenıoprace obsahuje ca st vysledku (napr. zbytek po celocıselnč m de lenı).
·
PSW ó stavovř slovo mikroprocesoru Š (PSW á Procesor Status Word) skla da se z osmi bitu, z nichz sedm je vyznamnych (obr. 6.3). b7
b6
b5
b4
b3
b2
b1
b0
C
AC
F0
RS1
RS0
OV
-
P
D7H
D6H
D5H
D4H
D3H
D2H
D1H
D0H
bit bitova adresa
Obr. 6.3: RozlozenıprıznakuPSW
bit C Š prenos (Carry) je nastaven pri aritmetickč operaci, pri kterč dojde k prenosu z osmč ho do deva tč ho bitu a pri ne kterych instrukcıch porovna nı. bit AC Š pomocny prenos (Auxilliary Carry) je nastaven dojde-li pri scıta nı k prenosu mezi ctvrtym a pa tym bitem akumula toru. Vyuz ıva se pouze pri dekadickč korekci po souctu dvou cısel v BCD kodu.
- 16 -
Strednıprumyslova skola Praha 10, Na Trebesıne 2299 bit F0 Š je uz ivatelsky prıznak, volne vyuz itelny v programu. byty RS1, RS0 Š Urcujıbanku registru, jez ma byt vyuz ıva na. Nastavenıaktua lnıbanky je na sledujıcıje patrnč z tabulky (obr. 6.4). bit OV Š prıznak pretecenı(Overflow) indikuje pretecenıpri instrukcıch pro scıta nı, odcıta nıa na sobenıindikuje pretecenı, pri instrukci de lenıindikuje de lenınulou. bit P Š (Parity Flag) indikuje lichou paritu akumula toru (je-li v akumula toru lichy pocet jednicek je nastaven na hodnotu “1…). Je aktualizova n po kaz dč instrukci.
RS0 0 1 0 1
RS1 0 0 1 1
banka 0 1 2 3
Obr. 6.4: Nastavenıaktua lnı banky pracovnıch registru
·
SP ó ukazatel za sobnıku Š (SP á Stack Pointer) je ukazatel na aktua lnıadresu za sobnıku umıste nč ho ve vnitrnıdatovč pame ti RAM. Pri plne nıje inkremetova n. Po inicializaci procesoru je nastaven na hodnotu 07H a ve ve tsine aplikacı musıbyt tato hodnota zme ne na.
·
DPL, DPH Š registry DHL a DPH tvorıniz sıa vyssıslabiku 16-ti bitovč ho ukazatele DPTR, ktery slouz ı k neprımč mu adresova nıvne jsıpame ti dat nebo programu. Registry je moz nč vyuz ıt jako be z nou pame Řovou bunku.
·
PC ó programovy cıtac, cıtac instrukcı Š u 8051 je 16-ti bitovy a nenıprogramove prımo prıstupny.
Za sobnık Za sobnık (Stack) je pameíova struktura typu LIFO (LIFO á Last In First Out), ze kterč se naposledy uloz ena data ctou jako prvnı. Uz ıva se k ukla da nı na vratovych adres pri vola nı podprogramu, ódajuuloz enych v registrech, kterč podprogram vyuz ıva apod.
6.2. C ıtace / casovace Mikropocıtac 8051 obsahuje dva 16-ti bitovč cıtace / casovace, jejichz obsah je prıstupny pomocı specia lnıch funkcnıch registruTL0, TH0 (cıtac 0) a TL1, TH1 (cıtac 1). Registry s indexem “L… obsahujıdolnı(Low) slabiku cıtace, registry s indexem “H…obsahujıhornı(high) slabiku cıtace. Je-li zdrojem signa lu vnitrnıoscila tor mikropocıtace, je cıtac ve funkci casovace (jeho obsah je inkrementova n jednou za 12 period oscila toru). Ve funkci cıtace vnejsıch uda lostı je obsah cıtace inkrementova n s na be z nymi hranami vne jsıch signa luTn. Maxima lnıkmitocet vne jsıho signa lu 1/24 kmitoctu vnitrnıho oscila toru. Konfiguraci cıtacu/ casovacuzajisŘujeme naprogramova nım registru TMOD. R ızenıjejich funkce pak naprogramova nım registru TCON. TMOD … registr konfigurace c ıtac u / c asovac u c ıtac / c asovac 1
c ıtac / c asovac 0
b7
b6
b5
b4
b3
b2
b1
b0
GATE
C/^T
M1
M0
GATE
C/^T
M1
M0
bit
Obr. 6.5: Rozlozenıbituregistru TMOD
Registr TMOD (Timer / counter MODe) je programu prıstupny na adrese 89H. Pro kaz dy cıtac / casovac obsahuje ctverici konfiguracnıch bitu(obr. 6.5) jejichz vyznam je na sledujıcı: pozna mka: Symbolem ”^ pred na zvem ne kterč ho bitu je oznac ena jeho negace.
bity GATE Š rızenıhradlova nı. Je-li bit GATE=1, potom cıtac / casovac je aktivova n pri vstupu ^INTn=1 a TRn=1 (TRn je bit z registru TCON ý viz. da le). C innost cıtace / casovace je v tomto rez imu ovla da na nejen programem (nastavenım bitu TRn), ale i vne jsım signa lem privedenym na vstup ^INTn. Je-li bit GATE=0, je cıtac / casovac ovla da n pouze programove (nastavenım bitu TRn). bity C/^T Š Volba cıtac / casovac (Counter / Timer). Je ý li hodnota bitu C/^T = 1 pracuje cıtac / casovac v rez imu cıtace vne jsıch uda lostı, v opacnč m prıpade v rez imu casovace. - 17 -
Za klady automatickč ho rızenı ý monolitickč mikropocıtace bity M1, M0 Š volba modu cıtace / casovace (obr. 6.6): M0 0 1 0 1
M1 0 0 1 1
mod 0 1 2 3
Obr. 6.6: Nastavenı moduc ıtac e / c asovac e
mod 0 Š osmibitovy cıtac THn cıta hodinovč impulsy vyde lenč 5-ti bitovym predde licem tvorenym spodnımi bity cıtace TLn a vytva rıtak 13-ti bitovy cıtac. Pri pretecenınastavıprıznakovy bit TFn registru TCON, ktery muz e byt vyuz it jako vnitrnızdroj prerusenıprocesoru. mod 1 Š je shodny s modem 0 s tım rozdılem, z e cıtace THn a TLn jsou osmibitovč a vytva rıtak 16-ti bitovy cıtac. mod 2 Š registr TLn pracuje jako osmibitovy cıtac, ktery se po pretecenıa nastavenıbitu TFn automaticky nastavına hodnotu zapsanou do registru THn.
mod 3 Š v tomto modu je funkce cıtace 0 rozde lena na dva samostatnč 8-mi bitovč cıtace TL0 a TH0. C ıtac TL0 vyuz ıva bity GATE, C/^T, TR0 a ^INT0 a TF0, cıtac TH0 pracuje v funkci casovace a vyuz ıva pouze bity TR1 a TF1. V tomto rez imu muz e cıtac 1 pracovat pouze jako genera tor prenosovč rychlosti pro sč riovy kana l, nebo byt vyuz it aplikaci, ktera nevyuz ıva prerusenı. Ovla da nı cıtace 1 je v tomto modu realizova no jeho nastavenım do modu 3, resp. zrusenım tohoto nastavenı(bit TR1 je vyuz it pro rızenı casovace TH0). TCON … registr rızenıc ıtac e / c asovac e c ıtac / c asovac 1 b7 b6
c ıtac / c asovac 0 b5 b4
ž 1
ž 0
b3
b2
b1
b0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
bit bitova adresa
Obr. 6.7: Rozlozenıbituregistru TCON
Registr TCON (Timer / counter CONtrol) se stejne jako registr TMOD skla da ze dvou ctveric bitu prıslusejıcıch prıslusnč mu cıtaci / casovaci (obr. 6.7). Programu je prıstupny na adrese 88H a vyznam jednotlivych bituje na sledujıcı: bity TF0, TF1 Š prıznak pretecenı cıtace / casovace. Pri prechodu procesoru do podprogramu obsluhujıcıho prerusenıod prıslusnč ho cıtace / casovace je automaticky nulova n. bity TR0, TR1 Š programovč spuste nı cıtace / casovace. Je-li nastaven prıslusny bit GATE je podmınkou spuste nı cıta nınavıc hodnota vstupnıho signa lu ^INTn. bity IE0, IE1 Š prıznak prijetıvne jsıho prerusenı. Podle nastavenıbituIT0 a IT1 je nastaven pri sestupnč hrane nebo órovni log. 0 vstupnıho signa lu ^INT0, resp. ^INT1. Po prechodu procesoru do obsluz nč ho podprogramu je bit IEn automaticky vynulova n. bity IT0, IT1 Š konfigurace aktivace vne jsıho prerusenı. Je-li ITn = 0, je z a dost o vne jsı prerusenıaktivova na logickou órovnı0 vstupnıho signa lu ^INTn (je-li tedy signa l ^INTn dlouhou dobu v órovni log. 0, muz e byt prerusenı vyvola no i ne kolikra t za sebou ý vz dy po skoncenı obsluz nč ho podprogramu). Je-li ITn = 1, je z a dost o vne jsıprerusenıaktivova na sestupnou hranou signa lu ^INTn.
6.3. Prerusenı Mikroprocesor 8051 ma pe t zdrojuprerusenı. Dve vne jsıprerusenı(^INT0, ^INT1) mohou byt vyvola na bu logickou órovnı signa lu (log. 0), nebo jeho sestupnou hranou (log. 1 à log. 0). Vznikne-li vne jsıprerusenı, nastavı se prıznak IE0 nebo IE1, ktery je automaticky nulova n pri vyvola nıobsluz nč ho podprogramu. Dalsıdva (vnitrnı) zdroje prerusenıpocha zıod cıtacu/ casovacu0 a 1. Vyvola -li se prerusenıod cıtace / casovace, je nastaven odpovıdajıcıprıznak TF0 nebo TF1, ktery se po vyvola nı obsluz nč ho podprogramu rovne z automaticky nuluje. Poslednım zdrojem prerusenıje sč riovy komunikacnı kana l, kde je prerusenı vyvola no logickym souctem prıznakuRI a TI. Aby bylo moz nč programove zjistit ktery z prıznakuprerusenı vyvolal,
- 18 -
Strednıprumyslova skola Praha 10, Na Trebesıne 2299 nejsou pri vyvola nıobsluz nč ho podprogramu automaticky vynulova ny. Jejich vynulova nı je pak nutnč zajistit v programu. Priority prerusenıjsou u mikroprocesoru 8051 pevne pride lenč v ra mci jednč ze dvou órovnı. Pokud probıha obsluz ny program ne jakč ho prerusenı, nemuz e byt da le prerusen prerusenım se stejnou órovnıpriority (i kdyz by jeho priorita byla v ra mci stejnč órovne vyssı), ale jen prerusenım s vyssı órovnı. V ra mci kaz dč órovne ma nejvyssıprioritu vne jsıprerusenı0, na sleduje casovac 0, pak vne jsıprerusenı1, casovac 1 a na poslednım mıste je prerusenıod sč riovč ho komunikacnıho kana lu. Je-li z ne jakč ho duvodu nutnč toto poradızme nit, je moz nč presunout ne ktera prerusenız niz sıdo vyssı órovne priorit. Systč m prerusenıje rızen konfiguracnımi bity ve dvou specia lnıch funkcnıch registrech IE a IP. IE … registr povolenıprerus enı b7
b6
b5
b4
b3
b2
b1
b0
EA
-
-
ES
ET1
EX1
ET0
EX0
bit
AFH
-
-
ACH
ABH
AAH
A9H
A8H
bitova adresa
Obr. 6.8: Rozlozenıbituregistru IE
Registr IE (Interrupt Enable) obsahuje pe t bituý pro povolenıkaz dč ho zdroje prerusenıjeden a jeden pro povolenıprerusova nıgloba lne (obr. 6.8). Nastavenım prıslusnč ho bitu na log. 1 se prerusenıpovoluje, nastavenı na log. 0 se zakazuje. Registr IE je prıstupny na adrese A8H, vyznam jeho jednotlivych bituje na sledujıcı: bit EA Š globa lnıpovolenıprerusenı(Enable All). bity EX0, EX1 Š povolenıvne jsıch prerusenı0 a 1 (Enable eXternal interrupt). O tom, zda bude prerusenı vyvola no sestupnou hranou signa lu nebo jeho órovnı, rozhoduje bit ITn v registru TCON. bity ET0, ET1 Š povolenıprerusenıod cıtace / casovace n (Enable Timer / counter). bit ES Š povolenıprerusenıod sč riovč ho komunikacnıho kana lu (Enable Serial comme ). IP … registr priority prerus enı b7
b6
b5
b4
b3
b2
b1
b0
-
-
-
PS
PT1
PX1
PT0
PX0
bit
-
-
-
BCH
BBH
BAH
B9H
B8H
bitova adresa
Obr. 6.9: Rozlozenıbituregistru IP
Registr IP (Interrupt Priority) obsahuje pe t bitupro nastavenı órovne priority prerusenı ý pro kaz dy zdroj prerusenıjeden bit (obr. 6.9). Nastavenım prıslusnč bitu na hodnotu log. 1 se prerusenıpresouva do vyssı órovne . Prıslusnost jednotlivych bituje na sledujıcı: bity PX0, PX1 Š nastavenı órovne priority vne jsıch prerusenı. bity PT0, PT1 Š nastavenı órovne priority prerusenıod cıtacu/ casovacu. bit PS Š nastavenı órovne priority prerusenıod sč riovč ho komunikacnıho kana lu. Vektory prerus enı K vyuz itıprerusovacıho systč mu je nutnč zna t adresy, na kterč je preda va no rızenıv prıpade vyvola nı prerusenı ý tzv. vektory pr erusenı. Tyto adresy jsou umıste nč na zaca tku programovč pame ti a jsou od sebe vzda lenč pouze 8 adres (obr. 6.10), proto se na ne ve tsinou ukla da jen instrukce nepodmıne nč ho skoku na vlastnıobsluz ny podprogram uloz eny v jinč ca sti programovč pame ti.
- 19 -
prıznak IE0 TF0 IE1 TF1 RI+TI
zdroj prerusenı vne jsıprerusenı0 c ıtac / c asovac 0 vne jsıprerusenı1 c ıtac / c asovac 1 sč rivykana l
adresa 0003H 000BH 0013H 001BH 0023H
Obr. 6.10: Vektory prerusenı8051
Za klady automatickč ho rızenı ý monolitickč mikropocıtace
6.4. SČriovy komunikacnıkana l Sč riova komunikace presahuje ra mec vyuky v tomto predme tu. Pro studium sč riovč komunikace s mikropocıtacem 8051 doporucuji naprıklad zdroj [2].
6.5. Vstupne / vy stupnıbra ny Mikropocıtac 8051 je vybaven ctyrmi 8-mi bitovymi vstupne vystupnımi branami, kterč oznacujeme P0 ý P3. Jednotlivč bity adresujeme identifika torem bra ny a poradım bitu uvedenym za teckou (napr. 0-ty bit bra ny 2 se oznacuje P2.0). Konstrukce obvoduje obdobna zapojenı uvedenč m na obr. 3.2. Ma -li tedy byt ne ktery bit vyuz it jako vstupnı, musıbyt v prıslusnč m bitu specia lnıho funkcnıho registru zapsa na log. 1 (funkce mikroprocesoru sama zajisŘuje, z e pri ctenı vystupunebude tato hodnota prepsa na ý ctenıprobıha prımo ze sbe rnice).
Klasicky mikroprocesor 8051 se vyra be l v pouzdre DIL se 40 vyvody, dnes se pouz ıva spıse pouzdro PLCC se 44 vyvody. Protoz e je vyvodumč ne nez je potreba pro vsechny funkce mikropocıtace, majıne kterč vyvody funkci kumulovanou. Funkce jednotlivych vyvoduje zna zorne na na obra zku 6.11.
6.7. OdvozenČ typy mikropocıtacu Dnes se vyra bıznacnč mnoz stvı mikropocıtacu kompatibilnıch s ja drem 8051 ý nazyva me je tzv. klony. Lisıse zejmč na mnoz stvım periferiı integrovanych na cipu mikropocıtace, typem a velikostıvnitrnıch pame tı, maxima lnıfrekvencı synchronizacnıho signa lu, spotrebou energie, apod. Vyra be jıse jak jednodussı mikropocıtace (v pouzdrech se 24-28 vyvody), tak i mikropocıtace vybavenč naprıklad AD a DA prevodnıky v pouzdrech s az 84 vyvody.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RESET P3.0 (RXD) P3.1 (TXD) P3.2 (^INT0) P3.3 (^INT1) P3.4 (T0) P3.5 (T1) P3.6 (^WR) P3.7 (^RD) XTAL2 XTAL1 GND
8051
6.6. Rozlozenıvy vodu mikropocıtace 8051 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 ^EA (VPP) ALE (^PROG) PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
Obr. 6.11: Rozlozenıvyvodumonolitickč ho mikropoc ıtac e 8051
Nejzna me jsımi vyrobci klonu8051 jsou firmy Intel, Philips, Siemens a Atmel. Katalogovč listy, vcetne rady prıkladuaplikacılze nalč zt na www stra nka ch uvedenych firem.
- 20 -
Strednıprumyslova skola Praha 10, Na Trebesıne 2299
7. Pouz ita literatura [1]
Pechal, S.: Monolitickč mikropocıtace, Praha, BEN ý technicka literatura, 1995
[2]
Skalicky, P.: Mikroprocesory rady 8051, 2. vyda nı, Praha, BEN ý technicka literatura, 1998
- 21 -