Střední odborná škola a Střední odborné učiliště informatiky a spojů, Brno, Čichnova 23
Pracovní sešit
MIKROKONTROLERY PIC16F84
Určeno pro obory Mechanik elektronik, Digitální telekomunikační technika IV. ročník (rozsah 21 hodin – 3 vyučovacích dnů praxe) Verze 1
Radek Šefraný
Brno 2006
Obsah
Úvodem ...................................................................................................................................... 3 1.
Základní použití a zapojení mikrokontrolorů PIC.............................................................. 4 1.1. Trochu teorie neuškodí............................................................................................... 4 1.2. Základní znalosti o mikrokontrolerech PIC ............................................................... 5
2.
Vývojová deska EduKit84 ................................................................................................. 9 2.1. Základní popis vývojové desky.................................................................................. 9 2.2. Displej ...................................................................................................................... 10 2.3. Tlačítka..................................................................................................................... 11
3.
Základní instrukce a programování.................................................................................. 12 3.1. Programovací příkazy pro mikrokontrolery............................................................. 12 3.2. První krůčky programování...................................................................................... 14 Přehled použitých instrukcí:................................................................................................. 25 Přehled instrukcí nastavující Z bit v SWR registru:............................................................. 26 Poznámky:............................................................................................................................ 27
-2-
Úvodem Pracovní sešit má Vám studentům sloužit k poznámkám nové látky, ale hlavně k jejímu opakování. Máte zde za úkol doplňovat text, dokreslovat schémata či vývojové diagramy. Tím tak docílíte samostatnou prací úspěšné zvládnutí studijní látky, která je v tomto sešitu shrnuta.
Pracovní sešit je rozdělen do tří kapitol, které jsou časově rozvrženy na 3 x 7 vyučovacích hodin a přizpůsoben praktickému vyučování. Kapitola první – Základní použití a zapojení mikrokontrolorů PIC Kapitola druhá – Vývojová deska EduKit84 Kapitola třetí – Základní instrukce a programování Přeji Vám hodně úspěchů při práci a dalším vzdělávání.
autor Radek Šefraný
-3-
1. Základní použití a zapojení mikrokontrolorů PIC 1.1.
Trochu teorie neuškodí
1. Doplňte následující tvrzení: Mikrokontroler patří do skupiny programovatelných ............................. . Mikrokontoler patří mezi ……....čipové mikropočítače. Mikrokontroler Microchip PIC16F84 je postavený na jádru typu ……… . ……………… je základní programovací jazyk pro mikrokontolery PIC. Mikrokontolery pracují s napětím v rozsahu ……….V.
2. Doplňte následující tvrzení: Jak se nesprávně označují mikrokontolery ................................ ................................
Napište, kde všude se s jednočipovými mikropočítači můžeme setkat a jejich využití: o
o
o
o
-4-
1.2.
Základní znalosti o mikrokontrolerech PIC
1. Dokreslete obrázky náhradních schémat podle zadání:
¨ vstup/výstup* s úrovní
vstup/výstup* s úrovní
LOW
HIGH
vstup/výstup* s úrovní
vstup/výstup* s úrovní
LOW
HIGH
¨
*Nehodící škrkněte -5-
2. Doplňte správně údaje Přiřaďte správné označení názvů registrů a vstupů/výstupů na schématu.
1 3 2
4
5
6
7
Propojte čísla se správným výrazem 1
Vstupy/výstupy RA
2
Vstupy/výstupy RB
3
TRIS registr A
4
TRIS registr B
5
Registr W
6
Port A
7
Port B
-6-
3. Doplňte správně údaje
0 0 1 1 0
1 1 1 0 0 1 0 0 1 0 1 0 1
0 0 1 1 0 0 0 1
a) Určete vstupy/výstupy na pinech RA a RB za pomocí TRIS registrů (doplňte do tabulky) RA0
RA1
RA2
RA3
RA4
RB0
RB1
RB2
RB3
RB4
b)
RB5
RB6
RB7
RB6
RB7
Určete logické úrovně na vstupech/výstupech RA a RB RA0
RA1
RA2
RA3
RA4
RB0
RB1
RB2
RB3
RB4
-7-
RB5
4. Zakreslete správně údaje dle zadání
a) Nastavte RA 4,3 a RB 7,5,4,1 jako vstupy, RA 2,1,0 a RB 6,5,2,0 jako výstupy. b) Výstupy RA 2,0 a RB 6,0 nastavte na logickou úroveň 1, ostatní na logickou úroveň 0. c) Označte na RA a RB vstupy/výstupy a jejich logické hodnoty.
-8-
2. Vývojová deska EduKit84 2.1.
Základní popis vývojové desky 3
2
1
4
5
7
9
6
8 10
1
Konektor pro napájení ( 8-15V stejnosměrné napětí/ 100mA).
2
Resetovaní tlačítko mikrokontroléru PIC16F84.
3
Mikrokontrolér PIC16F84.
4
Samostatná LED (rozsvítí se, pokud na 4bitu portu A jako výstup bude log. 0, bude-li tam log.1 zhasne).
-9-
5
Sedmisegmentový displey (viz. podkapitola Displej).
6
Tlačítka 0-7 (viz. podkapitola Tlačítka).
7
LED dioda indikující přepnutí spínače P1 na režim mikrokontoléru PIC16F84.
8
Přepínač P1 sloužící ke změně režimu mezi emulátorem a PIC16F84.
9
LED dioda indikující přepnutí spínače P1 na režim emulátor.
10
Konektor pro připojení MU Alpha.
2.2.
Displej
Pokud na portu A nastavíme výstupy, pak definujeme který znak sedmisegmentového displeje má být aktivní: bit 0 = 1. znak displeje (nejnižší hodnota – vpravo) bit 1 = 2. znak dipleje bit 2 = 3. znak displeje bit 3 = 4. znak displeje (nejvyšší hodnota – vlevo) bit 4 = samostatná LED dioda (viz. předchozí podkapitola) Aktivaci provedeme logickou 0. bit 3
bit 2
bit 1
-10-
bit 0
Pokud budou na portu B nastaveny výstupy, pak: bit 0 = segment A bit 1 = segment B bit 2 = segment C bit 3 = segment D bit 4 = segment E bit 5 = segment F bit 5 bit 6 = segment G bit 7 = desetinná tečka bit 6
bit 0
bit 1
bit 2
Aktivace segmentu provedeme logickou 0. bit 4 bit 3
2.3.
Tlačítka
Pokud budou na portu B nastaveny vstupy, pak lze číst stav tlačítka: bit 0 = tlačítko 0 bit 4 = tlačítko 4 bit 1 = tlačítko 1 bit 5 = tlačítko 5 bit 2 = tlačítko 2 bit 6 = tlačítko 6 bit 3 = tlačítko 3 bit 7 = tlačítko 7 Logická 0 znamená stisknuté tlačítko.
-11-
bit 7
3. Základní instrukce a programování 3.1.
Programovací příkazy pro mikrokontrolery
1. Vyberte správné zadání konstanty a zakroužkujte jej. a) D'100'
100
100D
b) '00111001'
B'00111001'
00111001B
c) d10
.10
'd10'
d) 8ex0
x8e
0x8e
e) 9fh
h9f
H9f
f) B'00011100'
b00011100
00011100b
2. Přiřaďte k daným písmenům (z příkladu 1) danou soustavu A
desítková
B
desítková
C
binární
D
binární
E
hexadecimální
F
hexadecimální
-12-
3. Přiřaďte instrukci do správné sady instrukcí RETURN
Instrukce provádějící aritmetické a logické operace
GOTO
Instrukce provádějící aritmetické a logické operace
SLEEP
Instrukce pro přenos dat
MOVLW
Instrukce pro přenos dat
CLRW
Instrukce pro práci s podprogramy přerušením
ANDLW
Instrukce pro práci s podprogramy přerušením
MOVF
Instrukce skoků v programu
BTFSS
Instrukce skoků v programu
NOP
Instrukce nulování a nastavení
BSF
Instrukce nulování a nastavení
CALL
Zvláštní instrukce
IORLW
Zvláštní instrukce
-13-
3.2.
První krůčky programování
1. K zadanému příkladu udělejte vývojový diagram. Příklad 1.: – při stisku tl. rozsviďte LED Naprogramujte mikroprocesor tak, aby na RA 3/0 byly připojeny tlačítka, a na RB 3/0 LED diody. Na stisk tlačítka 1 (RA0) se rozscítí LED dioda 1 (RB0).
-14-
2. Naprogramujte emulator podle zadání a popište jednotlivé řádky instrukcí org
000
;*********************
; ................................................................ .................................................................
movlw 0f
; ................................................................
tris
; ................................................................
5
movlw 00
; ................................................................
tris
; ................................................................
6
movlw 00
; ................................................................
movwf 06 ; ................................................................ ;************************************************************** loop
movf
05,0
; ................................................................
movwl 06 ; ................................................................ ;************************************************************** goto loop ; ................................................................ ;************************************************************** end
; ................................................................
Lze nahradit návěští i jiným způsobem adresování? ........................................................................................................................... ...........................................................................................................................
-15-
3. Naprogramujte emulator podle zadání a popište jednotlivé řádky instrukcí Příklad2.: Indikace stisku tlačítka Na vstupy RA3/0 budou připojeny tlačítka, na výstupy RB7/0 LED diody. Při stisku tláčítka bude na vstupu logická úroveň H. Led se rozsvítí, bude-li na výstupu logická úroveň L. LED diody na výstupech RB7/4 budou stále zhasnuté – nebudou reagovat na tlačítka. Po zapnutí programu nesmí žádná LED dioda svítit. Pomocí zadání a podle vývojového diagramu sestav program a vyzkoušej jeho funkci.
Indikace stisku tlačítka
Zhasni LED 2
NE Je stisknuté tlačítko 2?
Nastav vstupy a výstupy podle zadání
ANO Rozsviť LED 2
NE
Je stisknuté některé tlačítko?
Zhasni LED 3
ANO
NE Je stisknuté tlačítko 3?
Zhasni LED 0
ANO NE
Rozsviť LED 3
Je stisknuté tlačítko 0?
ANO Rozsviť LED 0
Zhasni LED 1
NE Je stisknuté tlačítko 1?
ANO Rozsviť LED 1
-16-
náveští
instrukce
komentář
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
-17-
náveští
instrukce
komentář
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
-18-
4. Navrhněte vývojový diagram a program pro tento příklad Příklad3.: Indikace stisku tlačítka II. Na vstupy RA3/0 budou připojeny tlačítka, na výstupy RB7/0 LED diody. Při stisku tláčítka bude program testovatzměnu stavu tlačítek. Vývojový diagram:
-19-
náveští ...
instrukce .....................
komentář
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
-20-
náveští
instrukce
komentář
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
-21-
5. Navrhněte vývojový diagram aprogram pro tento příklad Příklad3.: Indikace stisku tlačítka III Navrhněte program, který bude snímat stav tlačítka tak, že po stlačení a uvolnění tlačítka TL1 se rozsvítí LED dioda a po stlačení tlačítka a uvolnění tlačítka Tl2, LED dioda zhasne Vývojový diagram:
-22-
náveští ...
instrukce .....................
komentář
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
-23-
náveští
instrukce
komentář
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
...............
.....................................
.......................................................................
-24-
Přehled použitých instrukcí: Instrukce
Popis instrukce
ANDLW
konstanta
provede logický součin-AND W registru a zadané konstanty
ANDWF
adresa_registru,cílový_registr
provede logický součin-AND registru s obsahem W registru (cílový reg.=0, pak zápis do W, je-li=1, přepíše se tentýž reg.)
BCF
adresa_registru,bit_registru
nastaví daný bit daného registru na stav log 0
BSF
adresa_registru,bit_registru
nastaví daný bit daného registru na stav log 1
BTFSC
adresa_registru,bit_registru
testování daného bitu v daném registru (pokud je bit=1, vykoná se následující instrukce, jeli=0, pak následující instrukci přeskočí–NOP)
BTFSS
adresa_registru,bit_registru
testování daného bitu v daném registru (pokud je bit=0, vykoná se následující instrukce, jeli=1, pak následující instrukci přeskočí-NOP)
COMF
adresa_registru,cílový_registr
provede negaci všech bitů registru (cílový registr=0, pak zápis do W, je-li=1, přepis téhož registru)
CLRF
adresa_registru
zápis hodnoty 00h do zadaného registru
CLRW
nulování W registrů
END
konec programu
GOTO
adresa_paměti_programu
skok z instrukce na danou adresu
IORLW
konstanta
provede logický součet-OR W registru a zadané konstanty
IORWF
adresa_registru,cílový_registr
provede logický součet-OR registru s obsahem W registru (cílový reg.=0, pak zápis doW, jeli=1, přepíše se tentýž reg.)
MOVF
adresa_registru,cílový_registr
naplnění registru
MOVLW
konstanta
naplnění W registru osmibitovou konstantou
MOVWF
adresa_registru
naplnění mikrokontroléru z W registru
-25-
cílového
registru
z uvedeného
Instrukce
Popis instrukce
NOP
instrukce neprovede žádnou operaci (proběhne 1 cyklus hodin)
ORG
adresa_paměti_programu
začátek adresy programu
RLF
adresa_registru,cílový_registr
provádí rotaci registru o jeden bit vlevo přes C bit (cílový reg.=0, pak zápis doW, je-li=1, přepíše se tentýž reg.)
RRF
adresa_registru,cílový_registr
provádí rotaci registru o jeden bit vpravo přes C bit (cílový reg.=0, pak zápis doW, je-li=1, přepíše se tentýž reg.)
SWAPF
adresa_registru,cílový_registr
provede záměnu spodního a horního půlbytu (cílový reg.=0, pak zápis doW, je-li=1, přepíše se tentýž reg.)
TRIS
adresa_tris_registr
zapsání obsahu W registru do TRIS registru
XORLW
konstanta
provede funkci exklusive OR mezi zadanou konstantou
XORWF
adresa_registru,cílový_registr
provede funkci exklusive OR mezi W registrem daným registrem (cílový reg.=0, pak zápis doW, je-li=1, přepíše se tentýž reg.)
Přehled instrukcí nastavující Z bit v SWR registru:
ANDWF COMF CLRW IORWF IORLW MOVF SWAPF XORLW XORWF
-26-
W a
Poznámky:
-27-
Poznámky:
-28-
Doporučená literatura: 1.
HRBÁČEK, J., Moderní učebnice programování PIC -1.díl . 1 dotisk 1.vyd. Praha: Nakladatelství BEN, 2005.96 s. ISBN 80-7300-136-5.
2.
VACEK, V., Učebnice programování PIC. 2. dotisk 1.vyd. Praha: Nakladatelství BEN, 2002.144 s. ISBN 80-86056-87-2.
3.
VACEK, J., VLČEK J., Praktické použití procesoru PIC. 2. dotisk 1.vyd. Praha: Nakladatelství BEN, 2001.72 s. B. ISBN.
Internetové adresy 1.
ASIX s.r.o., 1991-2006 Dostupný z WWW:
2.
Microchip Technology Inc., 2006 Dostupný z WWW:
-29-