110 likes | 240 Views
Digitální učební materiál. přerušení. Mikroprocesory PIC 16Fxx. Obvod přerušení - TMR0 (Blikání LED pomocí časovače). 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
E N D
přerušení Mikroprocesory PIC 16Fxx Obvod přerušení - TMR0 (Blikání LED pomocí časovače)
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 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) INTF - příznak vnějšího přerušení (ručně nulovat) RBIF - příznak přerušení od portu B (ručně nulovat) Povolení - enable 0 - zakázat 1 - povolit Příznak - flag 0 - nebyl 1 - byl
Mikroprocesory PIC 16Fxx přerušení Přerušení Přerušení je funkce, která po předem nastavené akci přeruší aktuální činnost procesoru, skočí na 4. řádek programu a vykoná podprogram přerušení. Poté se procesor vrátí zpět a pokračuje, kde skončil. Na 4. řádku se nachází rutina, která do pomocných registrů uloží pracovní registr W a další tři důležité registry - STATUS, PCLATH a FSR a skočí na podprogram obsluhy přerušení. Zde se obvykle zjistí, jaký typ přerušení proběhl a provede se příslušná akce. Při návratu z přerušení se opět obnoví uložené registry a příkazem RETFIE se procesor vrátí přesně do místa, kde byl před přerušením, a pokračuje zde dál.
Mikroprocesory PIC 16Fxx přerušení Vlastní sytém přerušení vypadá takto: TOIF & TOIE SLEEP INTF & INTE požadavek na vykonání přerušení 1 & RBIF & RBIE EEIF GIE & EEIE
Mikroprocesory PIC 16Fxx přerušení Program pro blikání LED pomocí přerušení od přetečení časovače: Jeho výhodou je přesný čas cyklu bez ohledu na běh programu. Pro nastavení delšího času není vnořená další smyčka, ale zapnutá předdělička. ;******************************************************************* ;Přerušení o TMR - PIC 16F84A ;******************************************************************* goto main nop nop nop ;sem skočí program při přerušení - nevykoná žádnou instrukci goto obsluha ;první instrukce musí až sem ******************************************************************** rozsvit bsf portb,1 ;podprogram rozsvícení goto zpet zhasni bcf portb,1 ;podprogram zhasnutí goto zpet ********************************************************************
Mikroprocesory PIC 16Fxx přerušení main bsf status,5 ;hlavní program movlw ffh movwf trisa clrf trisb movlw d4h movwf option ;povolení timeru s předděličkou bcf status,5 movlw a0h movwf intcon ;povolení přerušení - obecné + timer nekon goto nekon ;nekonečná smyčka - tady čeká na přerušení obsluha nop btfss portb,1 ;test, jestli svítí LED goto rozsvit goto zhasni zpet bcf 0Bh,2 ;výmaz příznaku bsf 0Bh,7 ;znovupovolení generálního přerušení retfie ;návrat z přerušení
Mikroprocesory PIC 16Fxx přerušení • Kontrolní otázky: • Co je přerušení? • Přerušení je funkce, která po předem nastavené akci přeruší aktuální činnost procesoru, skočí na 4. řádek programu a vykoná podprogram přerušení. Poté se procesor vrátí zpět a pokračuje, kde skončil. • Jaká událost vyvolá přerušení? • přetečení TMR0 • ukončení zápisu do EEPROM • změna stavu na RB7-4 • impulz na RB0
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.