Digitální učební materiál Autor: Ing. Peter Podoba Předmět/vzdělávací oblast: Digitální technika Tematická oblast: Mikroprocesorová technika Téma: Časová smyčka – zdrojový kód Ročník: 4. Datum vytvoření: srpen 2013 Název: VY_32_INOVACE_11.1.09.ELE Anotace: Princip vytvoření časové smyčky. Instrukce pro vytvoření časové smyčky. Materiál inovativním způsobem zužuje vztah mezi teoretickou a praktickou výukou. Vlastní schémata 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 Časové smyčky Jednoduchá časová smyčka (zdrojový kód)
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Vývojový diagram čekací smyčky. Čekání Čítač = 0 1 Čítač = počáteční hodnota Konec čekání Čítač = Čítač - 1 začátek podprogramu zadání počáteční hodnoty dekrementace čítače test Status,3 konec podprogramu – instrukce návratu
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Jako čítač (paměťové místo, v kterém budeme snižovat hodnotu) můžeme použít volně přístupný registr. V našem případě 10h. Tento registr na začátku smyčky naplníme počáteční hodnotou pomocí instrukce MOVWF 10h. Při dekrementaci musíme opět uvádět adresu registru. Volat tyto pomocné registry jejich adresou by při rozsáhlém programu plném různých pomocných registrů, bylo velice nepřehledné. Proto je vhodné si tyto registry pojmenovat. ;********************************************************* Citac EQU 10h Tato direktiva se píše do úvodu kódu a registru na adrese 10h přiřazuje jméno Citac. Naplnění čítače: MOVWF Citac
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Další instrukce, kterou budeme potřebovat, je testování hodnoty čítače. Nejdříve obsah čítače přesuneme do pracovního registru. movf Citac,0 movf f,d = zkopíruj obsah registru f : d=0 do W, d=1 zpět do registru f. Poté prověříme prostřednictvím registru STATUS, zda je obsah pracovního registru nula. (testujeme bit 2 – Zero) btfsc status,2
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Zdrojový kód čekací smyčky: ;******Nastavení I/O********** citac EQU 10h ;*************************** loop bsf portb,0 goto pauza bcf portb,0 goto loop pauza movlw ffh movwf citac smycka movf citac,0 btfsc status,2 return decf citac,1 goto smycka Čekání Čítač = 0 1 Čítač = počáteční hodnota Konec čekání Čítač = Čítač - 1
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Uvedený kód rozbliká LED s frekvencí asi 500 Hz. Instrukce DECF f,d provede dekrementaci obsahu registru f a výsledek uloží do toho samého registru (d = 1). Instrukce RETURN vrátí běh programu na instrukci následující po instrukci, která vyvolala podprogram. Návratových instrukcí je několik a každá z nich má svoje specifické využití.
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Kontrolní otázky: K čemu slouží direktiva EQU? Direktiva EQU slouží k pojmenování registru vlastním jménem pro snadnou orientaci v programu. Co udělá instrukce DECF f,d? Dekrementuje – odečte 1 z registru na adrese f a výsledek zapíše do: d = 1 registru F d = 0 pracovního registru W
Použité zdroje: HRBÁČEK, Jiří. Moderní učebnice programování jednočipových mikrokontrolérů PIC - 1. díl. 1. vyd. Praha: BEN – technická literatura, 2004. ISBN 80-7300-136-5. HRBÁČEK, Jiří. Moderní učebnice programování jednočipových mikrokontrolérů PIC.- 2. díl 1. vyd. Praha: BEN - technická literatura, 2007, 141 s. ISBN 978-80-7300-137-7. PIC16F84A Data Sheet 18-pin Enhanced FLASH/EEPROM 8-bit Microcontroller [on line]. 2004 [cit. 2013-02-03]. Dostupné z: http://www.microchip.com/TechDoc.aspx?type=datasheet Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Peter Podoba.