1 / 10

Digitální učební materiál

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

callia
Download Presentation

Digitální učební materiál

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Digitální učební materiál

  2. přerušení Mikroprocesory PIC 16Fxx Obvod přerušení - TMR0 (Blikání LED pomocí časovače)

  3. 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.

  4. 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

  5. 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.

  6. 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

  7. 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 ********************************************************************

  8. 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í

  9. 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

  10. 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.

More Related