80 likes | 185 Views
Digitální učební materiál. Větvení programu. Mikroprocesory PIC 16Fxx. Zdrojový kód (program) pro obsluhu více tlačítek přiřazených k více LED. (rozsvícení a zhasnutí ovládají různá tlačítka). Mikroprocesory PIC 16Fxx. PIC 16F84A Větvení programu.
E N D
Větvení programu Mikroprocesory PIC 16Fxx Zdrojový kód (program) pro obsluhu více tlačítek přiřazených k více LED. (rozsvícení a zhasnutí ovládají různá tlačítka)
Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Vícenásobné větvení programu budeme provádět postupným -cyklickým testováním všech vstupů (tlačítek). • V případě stisknutého tlačítka vyvoláme rozsvícení příslušné LED. • V případě uvolněného tlačítka přeskočíme instrukci rozsvícení LED • a postoupíme k testu uvolnění tlačítka. Při uvolněném tlačítku se vykoná příkaz k zhasnutí LED, při stlačeném se tato instrukce přeskočí a přejdeme k testu dalšího tlačítka. • Po testu posledního tlačítka vrátíme program na začátek cyklu. • Uvedeným způsobem můžeme testovat libovolný počet tlačítek.
Nastav I/O Test Tl3 Test Tl4 Test Tl1 Test Tl2 0 0 0 0 1 1 1 1 Rozsviť LED1 Rozsviť LED2 Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Úkol: Stiskem příslušného tlačítka Tl1,3 se rozsvítí LED1,2 a stiskem tlačítka Tl2,4 LED1,2 zhasne. Vývojový diagram: Rozsviť LED1 Zhasni LED2 Zhasni LED1
Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Úkol: Stiskem Tl1 se rozsvítí LED1, stiskem Tl3 se rozsvítí LED2. Stiskem Tl2 zhasne LED1, stiskem Tl4 zhasne LED2. ;******************************************************************** ; FUNKCE START/STOP ČTYŘI TLAČÍTKA PIC 16F84A ;******************************************************************** ; tlačíko Tl1 rozsvítí LED1, Tl2 rozsvítí LED2, Tl3 zhasne LED1 a Tl4 zhasne LED2 ;******************************************************************** org 000 status bsf status,5 ;přepne na stránku 1 movlw 0fh movwf trisa ;Tl1 na RA0, Tl2 na RA1, Tl3 na RA2, Tl4 na RA3 movlw 00h movwf trisb ;LED1-RB0, LED2-RB1 bcf status,5 ;návrat na stránku 0 clrf porta ;vynulování vstupů clrf portb ;zhasnutí všech LED
Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Úkol: Stiskem Tl1 se rozsvítí LED1, stiskem Tl2 se rozsvítí LED2. Stiskem Tl3 zhasne LED1, stiskem Tl4 zhasne LED2. loop btfsc porta,0 ;test Tl1, při 0 přeskočí nasl.instrukci bsf portb,0 ;rozsvítí LED1 btfsc porta,1 ;test Tl2, při 0 přeskočí nasl.instrukci bcf portb,0 ;zhasne LED1 btfsc porta,2 ;test Tl3, při 0 přeskočí nasl.instrukci bsf portb,1 ;rozsvítí LED2 btfsc porta,3 ;test Tl4, při 0 přeskočí nasl.instrukci bcf portb,1 ;zhasne LED2 goto loop ;návrat na začátek smyčky end
Mikroprocesory PIC 16Fxx PIC 16F84A Větvení programu Kontrolní otázky: 1) Která instrukce testující vstup posune program na následující instrukci při podmínce = 1? btfscportx.x 2) Která instrukce testující vstup přeskočí následující instrukci při podmínce = 0? btfscportx.x
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.