Autor: Ing. Peter Podoba Předmět/vzdělávací oblast: Digitální technika Tematická oblast: Mikroprocesorová technika Téma: Obvod přerušení od INT RB0 Ročník: 4. Datum vytvoření: říjen 2013 Název: VY_32_INOVACE_11.1.14.ELE Anotace: Nastavení parametrů vnějšího přerušení programu. Materiál inovativním způsobem zužuje.
Download ReportTranscript Autor: Ing. Peter Podoba Předmět/vzdělávací oblast: Digitální technika Tematická oblast: Mikroprocesorová technika Téma: Obvod přerušení od INT RB0 Ročník: 4. Datum vytvoření: říjen 2013 Název: VY_32_INOVACE_11.1.14.ELE Anotace: Nastavení parametrů vnějšího přerušení programu. Materiál inovativním způsobem zužuje.
Autor: Ing. Peter Podoba Předmět/vzdělávací oblast: Digitální technika Tematická oblast: Mikroprocesorová technika Téma: Obvod přerušení od INT RB0 Ročník: 4. Datum vytvoření: říjen 2013 Název: VY_32_INOVACE_11.1.14.ELE Anotace: Nastavení parametrů vnějšího přerušení programu. 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. Mikroprocesory PIC 16Fxx přerušení Obvod přerušení – INT RB0 (Změna rychlosti blikání LED pomocí tlačítka) Mikroprocesory PIC 16Fxx přerušení Obvod přerušení Mikroprocesor PIC16F84A má několik zdrojů, které mohou vyvolat přerušení. • přetečení TMR0 • ukončení zápisu do EEPROM • změna stavu na RB7-4 • impulz na RB0 Po přijetí přerušení program skočí na adresu 004h programové paměti. Po resetu nebo zapnutí napájecího napětí začne program na adrese 000h. Do adresy programu přerušení zbývají 4 adresové místa, kam se ukládají instrukce skoku na začátek hlavního programu. Mikroprocesory PIC 16Fxx INTCON 0Ch, 8Ch GIE - povolení jakéhokoli přerušení EEIE - přerušení po dokončení zápisu do EEPROM Povolení - enable 0 - zakázat 1 - povolit TOIE - přerušení po přetečení časovače TMR0 INTE - přerušení od vývodu INT - RB0 RBIE - přerušení od změny na portu B TOIF - příznak přetečení TMR0 (ručně nulovat) Příznak - flag 0 - nebyl 1 - byl INTF - příznak vnějšího přerušení (ručně nulovat) RBIF - příznak přerušení od portu B (ručně nulovat) Mikroprocesory PIC 16Fxx přerušení Vlastní sytém přerušení vypadá takto: TOIF & TOIE INTF SLEEP & INTE 1 & RBIF & RBIE EEIF GIE & EEIE požadavek na vykonání přerušení Mikroprocesory PIC 16Fxx přerušení Program pro změnu rychlosti blikání LED pomocí přerušení od vstupu RB0: Po stisku tlačítka připojeného na RB0 začne LED blikat dvojnásobnou rychlostí. Pro blikání LED využijeme program z lekce o přerušení pomocí TMR0. ;******************************************************************* ;Přerušení od INT RB0 - PIC 16F84A ;******************************************************************* goto main ;jdi na hlavní program nop nop nop nop ;tady začíná přerušení goto obsluha ;první instrukce přerušení obsluha btfsc goto btfsc goto return intcon,1 tlac intcon,2 blik ;test zda přišlo přerušení od tlačítka ;vykonej akci stisku tlačítka ; test zda přišlo přerušení od časovače ;vykonej akci časovače ;vrať se do hlavního programu Mikroprocesory PIC 16Fxx přerušení Program pro změnu rychlosti blikání LED pomocí přerušení od vstupu RB0: main nekon bsf movlw movwf clrf bsf movlw movwf bcf movlw movwf goto status,5 ffh trisa trisb portb,0 d7h option status,5 b0h intcon nekon ;hlavní program ;povolení timeru s předděličkou ;povolení přerušení - obecné + timer + intRB0 ;nekonečná smyčka Mikroprocesory PIC 16Fxx přerušení Program pro změnu rychlosti blikání LED pomocí přerušení od vstupu RB0: tlac rych pom int nop btfsc goto goto bsf movlw movwf goto bsf movlw movwf bcf bcf bsf retfie portb,0 rych pom status,5 96h option int status,5 d7h option status,5 0Bh,1 0Bh,7 ;test stisku tlačítka ;nastaví přerušení sestupnou hranou + dělič ;nastaví přerušení náběžnou hranou + dělič ;návrat z přerušení Mikroprocesory PIC 16Fxx přerušení Program pro změnu rychlosti blikání LED pomocí přerušení od vstupu RB0: blik nop btfss goto goto bcf bsf retfie portb,1 rozsvit zhasni 0Bh,2 0Bh,7 rozsvit bsf goto portb,1 zpet zhasni bcf goto portb,1 zpet zpet ;akce časovače ;test, jestli svítí LED ;výmaz příznaku ;znovupovolení generálního přerušení ;návrat z přerušení 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.