90 likes | 187 Views
Digitální učební materiál. Větvení programu. Mikroprocesory PIC 16Fxx. Zdrojový kód (program) pro obsluhu jednoho tlačítka. Mikroprocesory PIC 16Fxx. PIC 16F84A Větvení programu. Větvení programu probíhá na základě:. 1) testu hodnoty na vstupu (pinu). 2) testu hodnoty stavu bitu registru.
E N D
Větvení programu Mikroprocesory PIC 16Fxx Zdrojový kód (program) pro obsluhu jednoho tlačítka.
Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Větvení programu probíhá na základě: 1)testu hodnoty na vstupu (pinu) 2)testu hodnoty stavu bitu registru • výsledek operace je 0 (status,2) • došlo k přetečení (status,0,1) • program přerušila nějaká událost (intcon)
Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Úkol 1:Stiskem tlačítka se rozsvítí LED, uvolněním tlačítka LED zhasne. Zdrojový kód pro nastavení vstupů a výstupů: ;********************************************************* ; FUNKCE DRÁT PIC 16F84A ;********************************************************* ;Tlačíko na RA0, LED na RB0. ;Při stisku tlačítka svítí LED. ;********************************************************* bsf status,5 ;přepnout na stránku 1 bsf trisa,0 ;nastaveni vstupu clrf trisb ;nastavení výstupu bcf status,5 ;návrat na stránku 0 clrf porta ;vymazáni vtupu clrf portb ;vymazání výstupu - LED nesvítí
Nastav I/O Je stisknuté tlačítko? NE ANO Rozsviť LED Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Úkol : Po stisku tlačítka se rozsvítí LED, uvolněním tlačítka LED zhasne. BTFSSadresa registru,číslo bitu Bit Test F(registr) Přeskoč následující instrukci, je-li bit registru v„1“. příklad:btfss porta,0 BTFSCadresa registru, číslo bitu Přeskoč následující instrukci, je-li bit registru v„0“. příklad:btfsc 0Bh,5
Nastav I/O Zhasni LED Je stisknuté tlačítko? NE ANO Rozsviť LED Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu GOTOadresa (jdi na…..) Návěštím označíme začátek cyklu (nemusíme zjišťovat číslo řádku). Pomocí instrukce GOTO a návěští uzavřeme cyklus pro nepřetržité vykonávání programu.
Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Finální zdrojový kód: (stejnou funkci lze realizovat několika způsoby) org 000 bsf status,5 ;přepnout na stránku 1 bsf trisa,0 ;nastaveni vstupu clrf trisb ;nastavení výstupu bcf status,5 ;návrat na stránku 0 clrf porta ;vymazáni vstupu clrf portb ;vymazání výstupu - LED nesvítí loop btfss porta,0 ;test stisknutí tlačítka goto zhasni ;při "0" skoč na zhasni bsf portb,0 ;při "1" rozsviť LED goto loop ;vrať se na začátek cyklu zhasni bcf portb,0 ;zhasni LED goto loop ;vrať se na začátek cyklu end
Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Kontrolní otázky: 1) Jakou instrukcí otestujeme hodnotu jednoho bitu? Instrukcí btfss a btfsc. 2) Co vykonává instrukce GOTO? Vyvolá skok programu na zadanou adresu. 3) K čemu používáme návěští? K označení začátku podprogramu (cyklu). Je to přehlednější než pracovat s adresou.
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.