David Matouek
PRÁCE S MIKROKONTROLÉRY
ATMEL AT89C2051 1. díl
Praha 2002
Komerèní vyuití stavebních návodù je povoleno jen s písemným souhlasem autora a nakladatelství. Soubory na CD ROM nejsou volnì iøitelné.
David Matouek
PRÁCE S MIKROKONTROLÉRY ATMEL AT89C2051 1. díl Recenze: Jiøí Kopelent Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnoována jakoukoli formou (tisk, fotokopie, mikrofilm nebo jiný postup), zadána do informaèního systému nebo pøenáena v jiné formì èi jinými prostøedky. Autor a nakladatelství nepøejímají záruku za správnost titìných materiálù. Pøedkládaná zapojení a informace jsou zveøejnìny bez ohledu na pøípadné patenty tøetích osob. Nároky na odkodnìní na základì zmìn, chyb nebo vynechání jsou zásadnì vylouèeny. Vekerá práva vyhrazena. © Ing. David Matouek, 2002 © Nakladatelství BEN technická literatura, Vìínova 5, Praha 10 David Matouek: Práce s mikrokontroléry Atmel AT89C2051 1. díl BEN technická literatura, Praha 2002 2. vydání ISBN 80-7300-094-6
OBSAH CO NAJDETE NA DOPROVODNÉM CD ............................................ 6 1 1.1 1.2
ÚVOD .................................................................................. 7 Základní pojmy terminologie ............................................................ 8 Standardní registry a jejich význam ................................................................................... 11
2 2.1 2.2 2.3
ZÁKLADNÍ CHARAKTERISTIKY MIKROØADIÈÙ AT89C2051 ............................................. 13 Význam jednotlivých vývodù mikroøadièe AT89C2051 .................. 15 Základní odlinosti oproti procesoru 8051 ..................................... 16 Programování pamìti Flash .............................................................. 17
3 3.1
PROGRAMÁTOR A VÝVOJOVÝ KIT PRO AT89C2051 ...... 21 Programátor ........................................................................................ 22
3.1.1 3.1.2
Výkres desky ploných spojù .................................................................... 25 Ovládání programátoru ............................................................................. 28
4 4.1 4.2 4.3
PROGRAMÁTORSKÝ MODEL AT89C2051 ........................ 35 Rozdìlení pamìového prostoru ...................................................... 36 Základní registry ................................................................................. 39 Banky registrù R0 a R7 .................................................................... 40
5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12
INSTRUKÈNÍ SOUBOR ..................................................... 41 Operandy instrukcí ............................................................................. 42 Typy skokù .......................................................................................... 43 Zavedené symboly ............................................................................. 44 Pøesuny dat ......................................................................................... 46 Bitové operace .................................................................................... 46 Skoky a vìtvení programu ................................................................. 47 Instrukce pro podporu podprogramù .............................................. 48 Logické operace ................................................................................. 49 Aritmetické operace ........................................................................... 51 Prázdná instrukce èasování ........................................................... 56 Instrukce versus porty ....................................................................... 56 Vedlejí efekty instrukcí ..................................................................... 57
6 6.1
ASSEMBLER ASM51 A SIMULÁTOR SIM51ENG .............. 59 Základní pojmy pøi práci s ASM51 .................................................... 60
6.1.1 6.1.2 6.1.3 6.1.4
Symboly .................................................................................................... 60 Návìtí ...................................................................................................... 61 Bitové adresování ..................................................................................... 61 ASCII literály ............................................................................................. 61
3.2
A
Vývojový kit ......................................................................................... 30
D. MATOUEK: Práce s mikrokontroléry Atmel AT89C2051
3
6.1.5 6.1.6 6.1.7
Komentáø ................................................................................................... 61 Lokaèní èítaè $ .......................................................................................... 61 Èísla a operátory ....................................................................................... 62
7 7.1 7.2 7.3 7.4 7.5 7.6
ZÁKLADY POUÍVÁNÍ PARALELNÍHO PORTU P1/P3 ...... 71 Vnitøní zapojení portù ........................................................................ 72 Buzení osmi LED ................................................................................ 73 Buzení 7segmentového displeje ....................................................... 76 Ètení stavu spínaèù ........................................................................... 80 Maticová klávesnice ........................................................................... 84 8bitový D/A pøevodník ........................................................................ 88
8 8.1 8.2 8.3 8.4 8.5
MÉNÌ TRADIÈNÍ POUITÍ PORTÙ P1/P3 ......................... 93 Zmnoení vstupù a výstupù 2051 ..................................................... 94 Displej se sériovou sbìrnicí .............................................................. 98 Displej v multiplexním reimu ......................................................... 104 Univerzální pøípravek ....................................................................... 112 Pouití zabudovaného komparátoru .............................................. 114
8.5.1 8.5.2 8.5.3
Mìøení kapacity nebo odporu .................................................................. 114 Mìøení teploty ......................................................................................... 120 Mìøení napìtí A/D pøevodník za pár upù ......................................... 120
9 9.1 9.2
PØERUOVACÍ SYSTÉM A JEHO POUITÍ .................... 127 Pøeruení (interrupt) ......................................................................... 128 Generátor signálu s výbìrem tvaru prùbìhu pøes pøeruení ...... 132
10 10.1 10.2 10.3 10.4 10.5 10.6 10.7
ÈÍTAÈ/ÈASOVAÈ A JEHO POUITÍ ................................ 137 Popis èítaèù/èasovaèù ..................................................................... 138 Reie spojená s èasovaèem ............................................................ 140 Nejjednoduí aplikace zvukové efekty ...................................... 141 PWM regulace jasu pomocí èasovaèe ........................................... 146 Mìøení odporu a kapacity mezipøevodem na kmitoèet ................ 153 Mìøení napìtí mezipøevodem na kmitoèet ..................................... 161 D/A pøevodník vytvoøený èasovaèem ............................................. 161
11 11.1 11.2 11.3
SÉRIOVÝ KANÁL A JEHO POUITÍ ................................ 165 Reimy sériového kanálu (portu) .................................................... 166 Pøípravek ATRS232 ........................................................................... 168 Sériový port a PC ............................................................................. 170
6.2 6.3 6.4 6.5 6.6
4
Direktivy (pseudoinstrukce) ASM51 ................................................. 64 Ovládání ASM51 ................................................................................. 69 Utilitka HEX2BIN ................................................................................. 69 Ovládání Sim51ENG ........................................................................... 69 Ve je freeware! .................................................................................. 69
D. MATOUEK: Práce s mikrokontroléry Atmel AT89C2051
A
11.4
Ovládání sériového portu v operaèních systémech MS-DOS a Windows ......................................................................... 171
11.4.1 11.4.2
Borland C++ a MS-DOS .......................................................................... 171 C++ Builder a Windows ........................................................................... 171
11.5.1
Realizace ovládacího programu pro Windows ........................................ 175
11.6.1
Realizace ovládacího programu pro Windows ........................................ 181
12 12.1
PERSPEKTIVNÍ PERIFERNÍ OBVODY ............................ 187 Obvody se sbìrnicí Microwire ........................................................ 188
12.1.1 12.1.2 12.1.3
TLC549 (8bitový A/D pøevodník se sériovým výstupem) ......................... 189 M5451B7 (35segmentový budiè LED displeje) ........................................ 193 93C66 (sériová E2PROM s kapacitou 4 Kb) ............................................ 203
12.2.1 12.2.2
PCF8591 (8bitový A/D a D/A pøevodník) ................................................. 209 Pøípravek ATPCF8591 ............................................................................ 214
12.3.1
LM331 ..................................................................................................... 219
13 13.1
DALÍ RYSY AT89C2051 ................................................ 221 Úsporný reim .................................................................................. 222
13.1.1
Problém s reimem Power-Down ............................................................ 223
13.2.1 13.2.2
TL77xxA (Power-On Reset) .................................................................... 224 MAX690A (Watchdog, Power-On Reset, Power-Fail a zálohovací zdroj) ................................................................ 226 Praktické pouití hlídacího obvodu záloha registru v pamìti E2PROM .......................................................... 227
11.5 11.6
12.2 12.3
13.2
13.2.3
Pøíjem jednoho bajtu ........................................................................ 173
Programovatelný generátor signálu ............................................... 178
Obvody se sbìrnicí I2C .................................................................... 206
Pøevodníky napìtí kmitoèet .......................................................... 219
Hlídací obvody Watchdog, Power-On Reset a Power-Fail ........... 223
14 14.1 14.2 14.3
ATPROG 2.1 PROGRAMÁTOR AT89C2051 ..................... 237 Výhody a nevýhody ATPROG 2.1 ................................................... 238 Popis konstrukce ATPROG verze 2.1 ............................................. 240 Testovací program ATP2DEBUG.EXE ............................................ 244
14.3.1
Jak programátor s pomocí programu ATP2DEBUG oivíme? ................. 245
14.4.1
Základy pouívání programu ATPROG2.EXE ......................................... 246
14.5.1 14.5.2
Autorská práva ........................................................................................ 248 Programovací algoritmus ........................................................................ 248
14.4
14.5 14.6
Ovládací program pro ATPROG 2.1 ................................................ 245 Závìreèné poznámky ....................................................................... 248
Objednejte si programátor pøímo od autora! ................................. 248
PØEHLED PØÍPRAVKÙ ATMEL ................................................... 249 PLONÉ SPOJE ........................................................................... 249 LITERATURA ............................................................................... 251
A
D. MATOUEK: Práce s mikrokontroléry Atmel AT89C2051
5
CO NAJDETE NA DOPROVODNÉM CD-ROM Doprovodné CD-ROM obsahuje vechny informace potøebné pro snadnou práci s knihou. Tyto informace lze rozdìlit do logických celkù, které se nacházejí v oddìlených adresáøích: n
adresáø ATPROG obsahuje program ATPROG.EXE, který se pouívá k ovládání programátoru popsaného v kapitole 3,
n
adresáø ATPROG21 obsahuje program ATPROG2.EXE, který se pouívá k ovládání programátoru popsaného v kapitole 14,
n
adresáø BEN obsahuje off-line verzi www stránek nakladatelství BEN technická literatura (aktualizováno ke konci záøí 2002), jejich souèástí je poèítaèová verze titìného katalogu Edièního plánu podzim 2002,
n
adresáø DOKUMENT obsahuje dokumentaci vybraných integrovaných obvodù, které jsou v knize pouívány, ve formátu PDF. Najdete zde té samorozbalitelný archiv programu Acrobat Reader verze 5.0, který slouí k prohlíení PDF souborù,
n
adresáø FOTO obsahuje, jak sám název napovídá, fotografie hotových pøípravkù. Kadý byl nafocen z nìkolika pohledù, aby byla lépe dokumentována jejich moná stavba,
n
adresáø KATALOG obsahuje elektronický ceník firmy GM Electronic staený z Internetu (z konce záøí 2002) a poèítaèovou podobu titìného katalogu v PDF. Aktualizovanou verzi lze získat na URL: http://www.gme.cz. Orientaèní ceny vech souèástek byly brány z tohoto katalogu. Navíc byly na CD umístìny informace o programátorech XELTEK,
n
adresáø NASTROJE obsahuje programy ASM51, HEX2BIN a SIM51ENG pouívané pro pøeklad a ladìní programù pro mikroøadiè AT89C2051,
n
adresáø OBECNICE je off-line podoba www stránek pøedního èeského prodejce obvodù (Zásilková sluba ELEKTRONIC OBECNICE), programovacích kitù a programátorù Atmel,
n
adresáø PROGRAMY obsahuje zdrojové i pøeloené formy vech programù realizovaných v knize,
n
adresáø SPOJE obsahuje klié ploných spojù vech pøípravkù popsaných v knize ve formátu TIF a navíc ve zdrojovém formátu BRD programu EAGLE je verze 2.6, aby si ètenáøi pøípadnì mohli ploné spoje upravit podle vlastních pøedstav. Nìkteré spoje jsme jetì v redakci dodateènì upravovali (vedení nìkterých spojù, zvìtování úchytných ploek pro souèástky,
), take finální verze je uloena pouze ve formátu TIF (je shodná s klié otitìnými v knize).
6
D. MATOUEK: Práce s mikrokontroléry Atmel AT89C2051
A