Autor: Ing. Peter Podoba
Předmět/vzdělávací oblast: Digitální technika
Tematická oblast: Mikroprocesorová technika
Téma: Nastavení I/O PIC 16F84A
Ročník: 4.
Datum vytvoření: listopad 2012
Název: VY_32_INOVACE_11.1.02.ELE
Anotace:
Input, Output, TRIS, STATUS, PORT.Materiál inovativním způsobem zužuje vztah mezi teoretickou a praktickou výukou. Výstřižky získané pomocí nástroje Windows 8 provázejí žáka krok za krokem úzce specializovaným tématem a usnadňují jeho porozumění. Multimediální výuka se stává názornější a podporuje zájem a aktivitu i u slabších žáků.
Metodický pokyn:
Prezentace je primárně určena pro výklad v hodině, v odborném výcviku tvoří vhodný doplněk při odborných instruktážích před zahájením praktických činností, ale díky své názornosti může být využita i k samostudiu a pro distanční formu vzdělávání. Vyžaduje použití multimediálních prostředků – PC, dataprojektoru, popř. interaktivní tabule. Otázky na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i jako samostatný test.
Mikroprocesory PIC 16Fxx
Zdrojový kód (program) pro
konfiguraci vstupů a výstupů
Nastavení vstupů a výstupů
Mikroprocesory PIC 16Fxx
Základem pro dobře napsaný program je:
Nastavení vstupů a výstupů
3) vhodné vývojové prostředí
1) znalost základní struktury mikroprocesoru
2) znalost příslušných instrukcí mikroprocesoru
Mikroprocesory PIC 16Fxx
Pro zavedení programu do mikroprocesoru potřebujeme:
Nastavení vstupů a výstupů
• převede zapsaný sled instrukcí do strojového kódu (soubor s příponou .hex)
• odhalí chybně napsané instrukce a nebo nelogický sled instrukcí (této části říkáme Debuger)
• zpravidla je součástí vývojového prostředí
Kompilátor - překladač
Mikroprocesory PIC 16Fxx
Pro zavedení programu do mikroprocesoru potřebujeme:
Nastavení vstupů a výstupů
• HW, pomocí kterého nahrajeme soubor *.hex do paměti procesoru
Programátor
• SW obsluhující dané zařízení
Mikroprocesory PIC 16Fxx
ASSEMBLER – jazyk symbolických adres
Nastavení vstupů a výstupů
• každý dílčí krok algoritmu má svůj specifický název - instrukci
• každá instrukce musí obsahovat parametry, se kterými má pracovat
• stejné instrukce se mohou opakovat s různými parametry
Například: jednoduchou instrukci „připrav čaj“ zapsanou ve vyšším programovacím jazyku (např. C++) rozepíšeme v assembleru následovně:
• připrav konvici• připrav šálek• připrav čaj• dej vařit vodu• po varu vypni konvici• zalij čaj v šálku
Mikroprocesory PIC 16Fxx
Program pro konfiguraci I/O PIC 16F84A(RA0, RA1 budou vstupy, RA2-4, RB0-7 budou výstupy)
Nastavení vstupů a výstupů
org 000 Povinná direktiva určující kam se uloží první instrukce programu. Program se začne vykonávat od této adresy (v našem případě od 000).
bsf 03h,5 Bit Set f – nastavení příslušného bitu do 1. „f“ je označení kteréhokoli registru – v parametrech musí být uvedena jeho adresa.
V uvedeném příkladu tato instrukce přepne RP0 registru STATUS do 1 a umožní od této chvíle přístup do stránky 1 paměti.
Mikroprocesory PIC 16Fxx
Program pro konfiguraci I/O PIC 16F84A(RA0, RA1 budou vstupy, RA2-4, RB0-7 budou výstupy)
Nastavení vstupů a výstupů
movlw 03h Instrukce přesunu (move) konstanty (l) do pracovního registru (w). Pracovní registr má adresu 000, a proto nemusí být udávána jeho adresa v parametrech. Musí tam být ale uvedena konstanta l (nejčastější zápis čísel je v hexadecimálním tvaru).
movwf 85h Instrukce přesunu obsahu pracovního registru (w) do registru TRISA (adresa 85h).U speciálních registrů je možno zapsat adresu pomocí jména registru (movwf trisa).
Mikroprocesory PIC 16Fxx
Program pro konfiguraci I/O PIC 16F84A(RA0, RA1 budou vstupy, RA2-4, RB0-7 budou výstupy)
Nastavení vstupů a výstupů
movlw 00h - zápis konstanty do pracovního registru
movwf 86h - naplnění registru TRISB konstantou z W
(clrw) - alternativní způsob zápisu samých 0 do pracovního registru. „clr“ – vyčištění registru- clrf – zde je nutné uvést adresu registru, který má být vymazán
bcf 03h,5 - nastaveni příslušného bitu do 0 - tato instrukce přepne RP0 registru STATUS do 0 a umožní od této chvíle návrat do stránky 0 paměti
Mikroprocesory PIC 16Fxx
Program pro konfiguraci I/O PIC 16F84A(RA0, RA1 budou vstupy, RA2-4, RB0-7 budou výstupy)
Nastavení vstupů a výstupů
org000bsf03h,5movlw 03hmovwf 85hmovlw 00hmovwf 86hbcf03h,5
Takto bude vypadat zdrojový kód našeho programu:
org 000bsf status,5movlw 03hmovwf trisaclrwmovwf trisbbcf status,5
a nebo:
Přepínání zápisu do stránky 0 a 1 pomocí Satus zabrání neúmyslnému překonfigurování I/O po čas běhu programu.
Mikroprocesory PIC 16Fxx
Program pro konfiguraci I/O PIC 16F84A(RA0, RA1 budou vstupy, RA2-4, RB0-7 budou výstupy)
Nastavení vstupů a výstupů
Zdrojový kód v assembleru Zdrojový kód přeložený do souboru .hex (strojový kód)
Mikroprocesory PIC 16Fxx
Kontrolní otázky:
Nastavení vstupů a výstupů
1) Jakou instrukcí změníme hodnotu jednoho bitu?
Instrukcemi bsf a bcf s uvedením adresy registru a čísla bitu.
2) Jaké základní instrukce přesunu znáš?
movlw a movwf
3) Co se stane, vynecháme-li v programu přepnutí do stránky 1?
Hodnota konstanty se zapíše místo na adresu 85(6)h na adresu 05(6)h, i když je v parametrech zapsaná adresa TRIS registrů.
Použité zdroje:
HRBÁČEK, Jiří. Moderní učebnice programování jednočipových kontrolérů PIC 1. díl. 1. vyd. Praha: BEN, 2004. ISBN 80-7300-136-5.
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Peter Podoba.