Preruovac systm u P 8051 Harvardsk architektra Druhy












- Slides: 12
Prerušovací systém u. P 8051
Harvardská architektúra
Druhy prerušení a ich priorita • • • Externé prerušenie INT 0 ( P 3. 2 ) Prerušenie pretečením čítača T 0 ( vstup čítača T 0 P 3. 4 ) Externé prerušenie INT 1 ( P 3. 3 ) Prerušenie pretečením čítača T 1 ( vstup čítača T 1 P 3. 5 ) Prerušenie od sériového kanálu • Prerušenia sú zoradené podľa priority od najvyššej po najnižšiu. Je však možné poradie priority aj zmeniť podľa potreby • Prerušenie je vlastne reakcia procesora na danú udalosť (napr. zmena logického stavu na vstupe INT 0, INT 1, prijatie sériovej informácie, pretečenie časovača TF 0, TF 1, . . . ). • Návrat z podprogramu obsluhy prerušenia sa vykonáva inštrukciou RETI, ktorá je poslednou inštrukciou podprogramu.
Priebeh inštrukčného cyklu • Procesor vykonáva inštrukcie hlavného programu postupne jednu za druhou • Na konci každého inštrukčného cyklu testuje, či sa vyskytla žiadosť o prerušenie • Ak procesor zaregistruje takúto udalosť, opúšťa hlavný program a odskakuje na tzv. vektorovú adresu príslušného typu prerušenia • Vektorová adresa je miesto v pamäti programu, kde sa nachádza buď samotný podprogram obsluhy prerušenia alebo častejšie je tam skoková inštrukcia na príslušný podprogram
Vektorové adresy prerušení Typ prerušenia Názov prerušenia Vektorová adresa prerušenia 0003 H IE 0 Externé prerušenie 0 TF 0 Prerušenie od časovača/čítača 0 000 BH IE 1 Externé prerušenie 1 0013 H TF 1 Prerušenie od časovača/čítača 1 001 BH Prerušenie od sériového portu 0023 H RI & TI
Oblasť vektorov Adresa 0000 H 0030 H 0067 H i. ROM 0180 H 30 ( nižší bajt adresy ) 0002 H 00 ( vyšší bajt adresy ) 0003 H JMP ( skok na podprogram EXT 0 ) 0004 H 67 ( nižší bajt adresy ) 0005 H 00 ( vyšší bajt adresy ) Vektorové adresy prerušení 000 AH Koniec časti vyhradenej pre obsluhu EXT 0 Hlavný program : 000 BH JMP ( skok na podprogram TF 0 ) 000 CH 00 ( nižší bajt adresy ) 000 DH 01 ( vyšší bajt adresy ) EXT 0 : TF 0 : EXT 1 : RETI 0160 H 0001 H ------ RETI 0130 H JMP (skok na hlavný program) Začiatok programu RETI 0100 H 0000 H TF 1 : 0012 H Koniec časti vyhradenej pre obsluhu TF 0 0013 H JMP ( skok na podprogram EXT 1 ) 0014 H 30 ( nižší bajt adresy ) 0015 H 01 ( vyšší bajt adresy ) 8 -----001 AH Koniec časti vyhradenej pre obsluhu EXT 1 001 BH JMP ( skok na podprogram TF 1 ) 001 CH 60 ( nižší bajt adresy ) 001 DH 01 ( vyšší bajt adresy ) ----- RI & TI 0022 H Koniec časti vyhradenej pre obsluhu TF 1 0023 H JMP ( skok na podprogram RI &TI ) 0024 H 80 ( nižší bajt adresy ) 0025 H 01 ( vyšší bajt adresy ) END 8 ------ RETI 8 ----002 BH Koniec časti vyhradenej pre obsluhu RI & TI 8 8
Špeciálne registre pracujúce s prerušením adresa 88 h 98 h A 8 h B 8 h • • TCON – riadenie čítačov a príznaky stavu žiadostí o prerušenie SCON – riadenie sériového kanálu IE – register povolenia prerušení IP – register nastavenia priority prerušení
Povolenie prerušení Register prerušení IE ( Interrupt enable ) ( adresa A 8 h ) EA • • • – – ES EA – enable all ES - enable serial ET 1 – enable Timer 1 EX 1 – enable external 1 ET 0 – enable Timer 0 EX 0 - enable external 0 • LOG 1 – povolené ET 1 EX 1 ET 0 EX 0 centrálne povolenie prerušení povolenie sériového kanálu povolenie časovača T 1 povolenie externého prerušenia 1 povolenie časovača T 0 povolenie externého prerušenia 0 LOG 0 - zakázané
Riadenie časovačov a príznaky prerušení Externé prerušenia Register TCON ( adresa 88 h ) TF 1 • • • TR 1 TF 0 TR 0 IE 1 IT 1 IE 0 IT 0 TF 0 – Timer 0 Flag príznak pretečenia časovača T 0 TF 1 – Timer 1 Flag príznak pretečenia časovača T 1 IE 0 - Interrupt External 0 príznak externého prerušenia EX 0 IE 1 – Interrupt External 1 príznak externého prerušenia EX 1 IT 0 – typ externého prerušenia EX 0 ( 1 – dobežná hrana ) IT 1 - typ externého prerušenia EX 1 ( 0 – úroveň LOG 0 ) • TR 0, TR 1 – štartovací bit pre čítače ( 1 – štart, 0 – stop )
Riadenie priority prerušení Register priority prerušení IP ( Interrupt Priority ) (adresa B 8 h) – • • • – – PS PT 1 PX 1 PT 0 PX 0 PS – Priority Serial priorita prerušenia sériového kanálu PT 1 – Priority Timer 1 priorita prerušenia časovača T 1 PX 1 – Priority External 1 priorita externého prerušenia 1 PT 0 - Priority Timer 0 priorita prerušenia časovača T 0 PX 0 - Priority External 0 priorita externého prerušenia 0 • Prerušenia môžu mať vyššiu alebo nižšiu prioritu • Nastavením príslušného príznaku (1) sa danej žiadosti o prerušenie priradí vyššia priorita
Prerušovací systém 8051
Riadenie priority prerušení PX 0 PT 0 PX 1 PT 1 PS












