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