Obsah 1
Základní popis ............................................................17
2
Uspoøádání pamìti .....................................................27
3
PORTY .........................................................................45
4
Pamì EEPROM a FLASH .........................................58
5
Èasové moduly...........................................................65
6
Funkèní moduly CAPTURE/COMPARE/PWM (moduly CCP1/CCP2) .................................................80
7
Modul synchronního sériového portu (MSSP) ............................................90
8
Modul Univerzální synchronní/asynchronní pøijímaè/vysílaè (USART) ........................................133
9
Funkèní modul A/D pøevodníku ..............................151
10
Komparátory .............................................................162
11
Modul referenèního napìtí pro komparátory ......................................................169
12
Speciální vlastnosti CPU .........................................171
13
Popis instrukcí .........................................................193
14
Elektrické parametry mikrokontrolérù PIC16F873/874/876/877 ............................................212
15
AC a DC parametry v grafech .................................239
P1
Pøíloha Instrukce
P2
Pøíloha Registry
Podrobný obsah CHARAKTERISTIKA A POROVNÁNÍ ØADY PIC16F87X A PIC16F87XA ............. 11 TYPY POUZDER A PØIØAZENÍ VÝVODÙ PIC16F87X ......................................... 14 TYPY POUZDER A PØIØAZENÍ VÝVODÙ PIC16F87XA ...................................... 15
1
Základní popis .............................................. 17
1.1
TYPOVÁ
1.2
VÝVOJOVÉ
1.3
INSTRUKÈNÍ
CYKLUS
1.4
PROVÁDÌNÍ
INSTRUKCÍ ............................................................................ 25
2
Uspoøádání pamìti ....................................... 27
2.1
ORGANIZACE
PROGRAMOVÉ PAMÌTI ........................................................... 27
2.2
USPOØÁDÁNÍ
PAMÌTI DAT
2.3
REGISTRY ............................................................................................. 28
2.3.1 2.3.1.1 2.3.1.2 2.3.1.3 2.3.1.4 2.3.1.5 2.3.1.6 2.3.1.7 2.3.1.8
Speciální systémové registry ........................................................................ 28 STATUS REGISTR ........................................................................................... 34 REGISTR OPTION_REG ................................................................................. 35 REGISTR INTCON ........................................................................................... 36 REGISTR PIE1 ................................................................................................. 38 REGISTR PIR1 ................................................................................................ 39 REGISTR PIE2 ................................................................................................. 40 REGISTR PIR2 ................................................................................................ 41 REGSITR PCON .............................................................................................. 43
2.4
REGISTRY PCL A PCLATH ................................................................... 43
2.4.1 2.4.2
STACK zásobník adres ............................................................................. 43 Stránkování programové pamìti .................................................................. 43
3
PORTY ........................................................... 45
3.1
REGISTR TRISA A PORT A .................................................................... 45
3.2
REGISTR TRISB A PORT B .................................................................... 47
3.3
REGISTR TRISC A PORT C .................................................................... 50
3.4
REGISTR TRISD A PORT D .................................................................... 52
4
SLUÈITELNOST ........................................................................... 19 PROSTØEDKY
......................................................................... 19
............................................................................... 25
........................................................................ 27
Oldøich Peroutka: Mikrokontroléry PIC16F87X
A
3.5
REGISTR TRISE A PORT E ..................................................................... 52
3.6
PARALELNÍ
MIKROPROCESOROVÝ
ØÍZENÝ PORT
PSP (PORTY D A E) ........................................................ 54
4
Pamì EEPROM a FLASH ........................... 58
4.1
REGISTR EEADR ................................................................................. 58
4.2
SYSTÉMOVÉ REGISTRY EECON1 A EECON2 .......................................... 58
4.3
ÈTENÍ
DAT Z PAMÌTI
4.4
ZÁPIS
DAT DO PAMÌTI
4.5
ÈTENÍ Z PROGRAMOVÉ
4.6
ZÁPIS
4.7
KONTROLA
4.8
OCHRANA
4.8.1 4.8.2
Datová pamì EEPROM .............................................................................. 63 Programová pamì FLASH .......................................................................... 63
4.9
FUNKCE
EEPROM .............................................................. 59 EEPROM ............................................................ 61 PAMÌTI
FLASH .................................................... 61
DO PROGRAMOVÉ PAMÌTI
FLASH ................................................. 63
PROVEDENÉHO ZÁPISU (VERIFIKACE) .......................................... 63
PROTI NEÁDOUCÍMU ZÁPISU ...................................................... 63
BÌHEM OCHRANY
PROGRAMOVÉHO KÓDU
........................................................................... 63
4.9.1 4.9.2
Datová pamì EEPROM .............................................................................. 63 Programová pamì FLASH .......................................................................... 63
5
Èasové moduly ............................................. 65
5.1
FUNKÈNÍ MODUL TIMER0 (ÈASOVAÈ 0) ................................................... 65
5.1.1 5.1.2 5.1.2.1 5.1.3 5.1.4
Funkce modulu TIMER0 ............................................................................... 65 Pøeddìliè a dìliè po .................................................................................... 66 PØEPÍNÁNÍ PØIØAZENÍ PØEDDÌLIÈE ................................................................... 66 Pøeruení od modulu TIMER0 ...................................................................... 67 Pouití modulu èasovaèe TIMER0 s vnìjím hodinovým signálem (na vývodu RA4/T0CKI) ............................. 67
5.2
FUNKÈNÍ MODUL TIMER1 (ÈASOVAÈ 1) ................................................... 71
5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.5.1 5.2.5.2
Funkce modulu TIMER1 ............................................................................... 71 Oscilátor funkèního modulu TIMER1 ........................................................... 73 Pøeruení od modulu èasovaèe TIMER1 ..................................................... 73 Funkce modulu TIMER1 v reimu èasovaè .................................................. 74 Funkce modulu TIMER1 v reimu èítaè ....................................................... 74 SYNCHRONNÍ ÈÍTAÈ ........................................................................................... 74 ASYNCHRONNÍ ÈÍTAÈ ......................................................................................... 74
A
Obsah
5
5.2.5.3 5.2.6 5.2.6.1 5.2.7 5.2.8 5.2.9
ÈASOVÁNÍ S NESYNCHRONIZOVANÝM VNÌJÍM HODINOVÝM SIGNÁLEM ......................... 74 Funkce modulu TIMER1 v reimu asynchronní èítaè .................................. 75 ÈTENÍ A ZMÌNA OBSAHU REGISTROVÉHO PÁRU TMR1L A TMR1H V REIMU ASYNCHRONNÍ ÈÍTAÈ ............................................................................. 75 Nulování registrù TIMER1 s pouitím modulù CCP ..................................... 76 Nulování registrù modulu TIMER1 ............................................................... 76 Pøeddìliè modulu TIMER1 ........................................................................... 76
5.3
FUNKÈNÍ MODUL TIMER2 (ÈASOVAÈ 2) ................................................... 77
5.3.1 5.3.2
Funkce modulu èasovaèe TIMER2 .............................................................. 77 Pøeddìliè a dìliè po .................................................................................... 77
6
Funkèní moduly CAPTURE/COMPARE/PWM (moduly CCP1/CCP2) ................................... 80
6.1
FUNKÈNÍ
MODUL
CCP1 ......................................................................... 80
6.2
FUNKÈNÍ
MODUL
CCP2 ......................................................................... 81
6.3
MODUL CCPX
6.3.1 6.4.2 6.4.3 6.4.4 6.3.2 6.3.3
Konfigurace vývodù CCP1/CCP2 ................................................................ 83 Nastavení èasovaèe TIMER1 pro reim COMPARE ................................... 84 Funkèní reim programové pøeruení .......................................................... 84 Speciální funkce ........................................................................................... 84 Pøeddìliè ....................................................................................................... 85 Nastavení modulu TIMER1 pro reim CAPTURE ........................................ 85
6.4
MODUL CCPX
6.4.1
Konfigurace vývodù CCP1/CCP2 ................................................................ 85
6.5
MODUL CCPX V REIMU PWM ............................................................... 86
6.5.1 6.5.2 6.5.3
Nastavení CCP1 do reimu PWM ................................................................ 86 Perioda PWM ............................................................................................... 87 Støída sepnutí modulu CCP v reimu PWM ................................................. 87
7
Modul synchronního sériového portu (MSSP) .............................. 90
7.1
REIM SPI ........................................................................................... 90
7.1.1 7.1.2 7.1.3 7.1.4 7.1.5
Funkce .......................................................................................................... 94 Povolení SPI ................................................................................................. 96 Typické zapojení ........................................................................................... 96 Øídicí reim (MASTER) ................................................................................ 97 Øízený reim (SLAVE) .................................................................................. 98
6
VE FUNKÈNÍM REIMU
VE FUNKÈNÍM REIMU
CAPTURE ...................................... 83
COMPARE ..................................... 85
Oldøich Peroutka: Mikrokontroléry PIC16F87X
A
7.1.6 7.1.7 7.1.8
Synchronizovaný øízený reim (SLAVE) ...................................................... 98 Stav SLEEP ................................................................................................ 100 Vliv signálu RESET .................................................................................... 100
7.2
FUNKCE
7.2.1 7.2.1.1 7.2.1.2 7.2.1.3 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7 7.2.7.1 7.2.8 7.2.9
Øízený reim SLAVE ............................................................................... 102 ADRESOVÁNÍ .................................................................................................. 103 PØÍJEM V ØÍZENÉM REIMU SLAVE ................................................................ 104 VYSÍLÁNÍ V ØÍZENÉM REIMU SLAVE ............................................................. 105 Podpora volání obecnou adresou .............................................................. 107 Stav SLEEP ................................................................................................ 108 Vliv RESETu ............................................................................................... 108 Øídicí reim MASTER ............................................................................. 108 Reim s více øídicími obvody na sbìrnici (Multi-Master) ............................ 109 Podpora øídicího reimu I2C (MASTER) .................................................... 109 FUNKCE MODULU I2C V ØÍDICÍM REIMU (MASTER) ........................................... 110 Generátor rychlosti pøenosu ........................................................................ 111 Prùbìhy signálù na sbìrnici I2C v reimu MASTER pøi podmínce START .................................................... 112 PØÍZNAKOVÝ BIT WCOL ................................................................................. 113 Prùbìhy signálù na sbìrnici I2C v reimu MASTER pøi opakované podmínce START ................................................................ 114 PØÍZNAKOVÝ BIT WCOL ................................................................................. 114 Vysílání na sbìrnici I2C v øídicím reimu (MASTER) .................................. 116 PØÍZNAKOVÝ BIT BF (SSPSTAT<0.) .............................................................. 117 PØÍZNAKOVÝ BIT WCOL (SSPCON<7>) ........................................................ 117 PØÍZNAKOVÝ BIT ACKSTAT (SSPCON2<6>) ................................................ 117 Pøíjem na sbìrnici I2C v øídicím reimu (MASTER) .................................... 119 PØÍZNAKOVÝ BIT BF (SSPSTAT<0.) .............................................................. 119 PØÍZNAKOVÝ BIT SSPOV (SSPCON<6>) ...................................................... 120 PØÍZNAKOVÝ BIT WCOL (SSPCON<7>) ........................................................ 121 Popis impulzu ACK (potvrzení pøíjmu) ....................................................... 121 PØÍZNAKOVÝ BIT WCOL (SSPCON<7>) ........................................................ 121 Popis podmínky STOP ............................................................................... 122 PØÍZNAKOVÝ BIT WCOL (SSPCON<7>) ........................................................ 123 Rozhodnutí o øízení linky CLK .................................................................... 125 Pøíkaz SLEEP ............................................................................................. 125 Vliv RESETu ............................................................................................... 125 Komunikace s více øídicími obvody na sbìrnici I2C, kolize na sbìrnici I2C, rozhodnutí o øízení sbìrnice .................................. 125 KOLIZE NA SBÌRNICI BÌHEM PROVÁDÌNÍ PODMÍNKY START .................................. 126 KOLIZE NA SBÌRNICI BÌHEM OPAKOVANÉ PODMÍNKY START ................................. 129
7.2.9.1 7.2.10 7.2.10.1 7.2.11 7.2.11.1 7.2.11.2 7.2.11.3 7.2.12 7.2.12.1 7.2.12.2 7.2.12.3 7.2.13 7.2.13.1 7.2.14 7.2.14.1 7.2.15 7.2.16 7.2.17 7.2.18 7.2.18.1 7.2.18.2 A
MODULU V ØÍDICÍM REIMU
(MSSP) SBÌRNICE I2C ....................... 101
Obsah
7
7.2.18.3 KOLIZE NA SBÌRNICI I2C BÌHEM PODMÍNKY STOP ............................................. 130
7.3
DOPORUÈENÉ
8
Modul Univerzální synchronní/asynchronní pøijímaè/vysílaè (USART) ........................... 133
8.1
BRG
ZAPOJENÍ SBÌRNICE
I2C ................................................... 131
GENERÁTOR RYCHLOSTI
PØENOSU MODULU
USART .................................................................. 136 USART .................................................. 137
8.2
ASYNCHRONNÍ
8.2.1 8.2.2 8.2.3
Asynchronní vysílaè modulu USART ......................................................... 141 Asynchronní pøijímaè modulu USART ........................................................ 143 Nastavení 9bitového reimu s detekcí adresy ........................................... 143
8.3
ØÍDICÍ
SYNCHRONNÍ REIM
MODULU
8.3.1 8.3.2
8.4
8.4.2
USART (MASTER) ............................................................. 146
Synchronní vysílání dat v øídicím (MASTER) reimu modulu USART ............................................. 146 Synchronní pøíjem dat v øídicím (MASTER) reimu modulu USART ............................................. 147
ØÍZENÝ
SYNCHRONNÍ REIM
MODULU
8.4.1
REIM MODULU
USART (SLAVE) ................................................................. 149
Synchronní vysílání dat v øízeném (SLAVE) reimu modulu USART ............................................... 149 Synchronní pøíjem dat v øízeném (SLAVE) reimu modulu USART ............................................... 149
9
Funkèní modul A/D pøevodníku ................ 151
9.1
POADAVKY
9.2
VÝBÌR
9.3
KONFIGURACE
9.4
A/D
9.5
NA VZORKOVÁNÍ .................................................................. 155
HODINOVÉHO SIGNÁLU PRO
PØEVOD
FUNKCE
ANALOGOVÝCH VÝVODÙ
PØEVOD
....................................... 157
.................................................... 157
...................................................................................... 158
A/D PØEVODNÍKU SLEEP ............................................................................... 159
MODULU
VE STAVU
RESET ........................................................................ 160
9.6
VLIV
9.7
PØESNOST/CHYBA
9.8
DOPORUÈENÍ
9.9
ZÁVISLOST
8
A/D
SIGNÁLU
VÝSLEDKU
PRO ZAPOJENÍ
A/D A/D
PØEVODU
............................................ 160
PØEVODNÍKU
......................................... 161
VSTUPNÍ SIGNÁL/VÝSTUPNÍ ÈÍSLO ............................................. 161
Oldøich Peroutka: Mikrokontroléry PIC16F87X
A
10
Komparátory ............................................... 162
10.1
KONFIGURACE
10.2
FUNKCE KOMPARÁTORÙ ....................................................................... 164
10.3
REFERENÈNÍ
10.3.1 10.3.2
Externí referenèní napìtí ............................................................................ 165 Vnitøní referenèní napìtí ............................................................................. 165
10.4
REAKÈNÍ
10.5
VÝSTUP
KOMPARÁTORU
........................................................................ 165
10.6
VSTUPY
KOMPARÁTORU
........................................................................ 166
10.7
FUNKCE
KOMPARÁTORÙ BÌHEM STAVU
10.8
VLIV RESETU ................................................................................... 167
10.9
PODMÍNKY
11
Modul referenèního napìtí pro komparátory ......................................... 169
12
Speciální vlastnosti CPU ........................... 171
12.1
KONFIGURAÈNÍ
12.2.2 12.2.3
Krystalový oscilátor/keramický rezonátor ................................................... 174 Vnìjí krystalový oscilátor .......................................................................... 174
12.2
NASTAVENÍ A VOLBA OSCILÁTORU ........................................................... 175
12.2.1
Typy oscilátorù ........................................................................................... 175
12.3
RESET ............................................................................................ 176
12.2.4 12.3.1 12.3.2 12.3.3 12.3.4 12.3.5 12.3.6
RC oscilátor ................................................................................................ 177 Power-On Reset (POR) .............................................................................. 179 RESET Power-up Timer (PWRT) ............................................................... 180 Oscillator Start-up Timer (OST) .................................................................. 180 Brown-out Reset (BOR) ............................................................................. 180 Co se dìje pøi zapnutí napájení .................................................................. 180 Pøíznakový registr napájení PCON ......................................................... 180
12.4
PØERUENÍ ......................................................................................... 184
12.4.1 12.4.2 12.4.3
Pøeruení INT ............................................................................................. 185 Pøeruení pøi pøeteèení èasovaèe TIMER0 ................................................ 185 Pøeruení pøi zmìnì stavu na portu RB (RB<7:4>) ................................... 185
A
KOMPARÁTORÙ ................................................................ 164
NAPÌTÍ KOMPARÁTORU ........................................................ 164
DOBA KOMPARÁTORÙ ............................................................... 165
SLEEP ........................................ 167
PRO PROPOJENÍ ANALOGOVÝCH VSTUPÙ .................................... 167
BITY
............................................................................. 171
Obsah
9
12.5
ULOENÍ
12.6
WATCHDOG TIMER (WDT) ................................................................... 186
12.7
STAV SLEEP .................................................................................... 189
12.7.1 12.7.2
Probuzení ze stavu SLEEP ..................................................................... 189 Pouití pøeruení k probuzení obvodu ze stavu SLEEP .......................... 189
12.8
IN-CIRCUIT DEBUGGER ......................................................................... 190
12.9.1
Ovìøení (VERIFIKACE) oblasti s kódovou ochranou ................................. 190
12.10
ID ADRESY ......................................................................................... 190
12.11
IN-CIRCUIT SERIAL PROGRAMMING (PROGRAMOVÁNÍ
12.9
OCHRANA A KONTROLA PROGRAMOVÉHO KÓDU ......................................... 191
12.12
PROGRAMOVÁNÍ NÍZKÝM NAPÌTÍM (LOW VOLTAGE PROGRAMMING REIM LVP) ......................................... 193
13
Popis instrukcí............................................ 193
13.1
POPIS
14
Elektrické parametry mikrokontrolérù PIC16F873/874/876/877 .............................. 212
15
AC a DC parametry v grafech ................... 239
OBSAHU REGISTRÙ PØI PØERUENÍ
INSTRUKCÍ
............................................. 186
V KONCOVÉM ZAPOJENÍ)
190
................................................................................. 195
Knihy nakladatelství BEN technická literatura ...................................... 251 Kontaktní adresy na firmu BEN technická literatura ............................ 254
10
Oldøich Peroutka: Mikrokontroléry PIC16F87X
A