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 TMR0 Ročník: 4. Datum vytvoření: říjen 2013 Název: VY_32_INOVACE_11.1.13.ELE Anotace: Nastavení parametrů vnitřního přerušení programu. Materiál inovativním způsobem zužuje vztah.

Download Report

Transcript 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 TMR0 Ročník: 4. Datum vytvoření: říjen 2013 Název: VY_32_INOVACE_11.1.13.ELE Anotace: Nastavení parametrů vnitřního přerušení programu. Materiál inovativním způsobem zužuje vztah.

Slide 1

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 2

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 3

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 4

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 5

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 6

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 7

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 8

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 9

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.


Slide 10

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 TMR0

Ročník:

4.

Datum vytvoření:

říjen 2013

Název:

VY_32_INOVACE_11.1.13.ELE

Anotace:

Nastavení parametrů vnitřní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. Otázky
na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i
jako samostatný test.

Mikroprocesory PIC 16Fxx

Obvod přerušení - TMR0
(Blikání LED pomocí časovače)

přerušení

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í

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
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 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
main

nekon

bsf
movlw
movwf
clrf
movlw
movwf
bcf
movlw
movwf
goto

obsluha nop
btfss
goto
goto
zpet
bcf
bsf
retfie

status,5
ffh
trisa
trisb
d4h
option
status,5
a0h
intcon
nekon

;hlavní program

portb,1
rozsvit
zhasni
0Bh,2
0Bh,7

;test, jestli svítí LED

přerušení

;povolení timeru s předděličkou
;povolení přerušení - obecné + timer
;nekonečná smyčka - tady čeká na přerušení

;výmaz příznaku
;znovupovolení generálního přerušení
;návrat z přerušení

Mikroprocesory PIC 16Fxx

přerušení

Kontrolní otázky:

1) 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.

2) 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.