120 likes | 292 Views
Preru šovací systém uP 8051. Harvardská architektúra. Druhy prerušení a ich priorita. Externé prerušenie INT0 ( P3.2 ) Prerušenie pretečením čítača T0 ( vstup čí ta č a T0 P3.4 ) Externé prerušenie INT1 ( P3.3 ) Prerušenie pretečením čítača T1 ( vstup čítača T1 P3.5 )
E N D
Druhy prerušení a ich priorita • Externé prerušenie INT0 ( P3.2 ) • Prerušenie pretečením čítača T0 ( vstup čítača T0 P3.4 ) • Externé prerušenie INT1 ( P3.3 ) • Prerušenie pretečením čítača T1 ( vstup čítača T1 P3.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 INT0, INT1, prijatie sériovej informácie, pretečenie časovača TF0, TF1, ...). • 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
0000H JMP (skok na hlavný program) 0001H 30 ( nižší bajt adresy ) 0002H 00 ( vyšší bajt adresy ) 0003H JMP ( skok na podprogram EXT 0 ) 0004H 67 ( nižší bajt adresy ) 8 0005H 00 ( vyšší bajt adresy ) - - - - - - Začiatok programu 000AH Koniec časti vyhradenej pre obsluhu EXT 0 Vektorové adresy prerušení 000BH JMP ( skok na podprogram TF 0 ) Hlavný program : 000CH 00 ( nižší bajt adresy ) 8 000DH 01( vyšší bajt adresy ) - - - - - - 0012H Koniec časti vyhradenej pre obsluhu TF 0 EXT 0 : 0013H JMP ( skok na podprogram EXT 1 ) 0014H 30 ( nižší bajt adresy ) RETI 8 0015H 01( vyšší bajt adresy ) TF 0 : - - - - - - RETI 001AH Koniec časti vyhradenej pre obsluhu EXT 1 EXT 1 : 001BH JMP ( skok na podprogram TF1 ) 001CH 60 ( nižší bajt adresy ) RETI 8 001DH 01( vyšší bajt adresy ) TF1 : - - - - - 0022H Koniec časti vyhradenej pre obsluhu TF1 RETI 0023H JMP ( skok na podprogram RI &TI ) RI & TI 0024H 80 ( nižší bajt adresy ) 8 0025H 01( vyšší bajt adresy ) - - - - - RETI 002BH Koniec časti vyhradenej pre obsluhu RI & TI END Oblasť vektorov Adresa iROM 0000H 0030H 0067H 0100H 0130H 0160H 0180H
Špeciálne registre pracujúce s prerušením adresa • TCON – riadenie čítačov apríznaky stavu žiadostí o prerušenie • SCON – riadenie sériového kanálu • IE – register povolenia prerušení • IP – register nastavenia priority prerušení 88h 98h A8h B8h
Povolenie prerušení Register prerušení IE ( Interrupt enable ) ( adresa A8h ) • EA – enable all centrálne povolenie prerušení • ES - enable serial povolenie sériového kanálu • ET1 – enable Timer1 povolenie časovača T1 • EX1 – enable external1 povolenie externého prerušenia 1 • ET0 – enable Timer0 povolenie časovača T0 • EX0 - enable external0 povolenie externého prerušenia 0 • LOG 1 – povolené LOG 0 - zakázané
Riadenie časovačov a príznaky prerušení Externé prerušenia Register TCON ( adresa 88h ) • TF0 – Timer0 Flag príznak pretečenia časovača T0 • TF1 – Timer1 Flag príznak pretečenia časovača T1 • IE0 - Interrupt External 0 príznak externého prerušenia EX0 • IE1 – Interrupt External 1 príznak externého prerušenia EX1 • IT0 – typ externého prerušenia EX0 ( 1 – dobežná hrana ) • IT1 - typ externého prerušenia EX1 ( 0 – úroveň LOG0 ) • TR0, TR1 – štartovací bit pre čítače ( 1 – štart, 0 – stop )
Riadenie priority prerušení Register priority prerušení IP ( Interrupt Priority )(adresa B8h) • PS – Priority Serial priorita prerušenia sériového kanálu • PT1 – Priority Timer1 priorita prerušenia časovača T1 • PX1 – Priority External1 priorita externého prerušenia 1 • PT0 - Priority Timer0 priorita prerušenia časovača T0 • PX0 - Priority External0 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
PX0 PT0 PX1 PT1 PS Riadenie priority prerušení