170 likes | 267 Views
Základy mikroprocesorové techniky. 12 . Týden – Periferie 8051. Garant: Prof. Zdeněk Bohuslávek, CSc. Přednášející: Ing. Jiří Nesládek Podklady: http ://www.rabaka.net/ ZMT. Přerušovací systém. Přerušení se používá pro snazší komunikaci procesoru s periferiemi;
E N D
Základy mikroprocesorové techniky 12. Týden – Periferie 8051 Garant: Prof. Zdeněk Bohuslávek, CSc. Přednášející: Ing. Jiří Nesládek Podklady: http://www.rabaka.net/ZMT
Přerušovací systém • Přerušení se používá pro snazší komunikaci procesoru s periferiemi; • Když periferie potřebuje obsloužit, požádá procesor o přerušení právě prováděného programu; • Procesor v takovém případě dokončí rozpracovanou instrukci, uloží stav PC na vrchol zásobníku a provede skok do podprogramu obsluhujícího danou periferii – interrupt handler; • Při vstupu do obslužné rutiny přerušení procesor automaticky zakáže zpracovávání dalších přerušení stejné důležitosti – priority; • Obslužná rutina přerušení na rozdíl od běžného podprogramu nekončí instrukcí RET, ale musí se použít instrukce RETI; • RETI stejně jako RET vyjme z vrcholu zásobníku návratovou adresu a naplní jí do PC, ale navíc ještě povolí zpracování dalších případných přerušení se stejnou nebo nižší prioritou;
Přerušovací systém Interrupt handler Hlavní program MOV DPTR,#tabznak MOV A,31 CJNE A,#01,Next MOV A,30H ANL A,#0F0H Next: MOV A, 30H Uložení PC,zákaz přerušení PUSH PSW PUSH A POP A POP PSW RETI Žádosto přerušení Obnovení PC,povolení přerušení
b7 b6 b5 b4 b3 b2 b1 b0 EA – – ES ET1 EX1 ET0 EX0 Přerušení 8051 • IE – registr povolení přerušení (adresa A8H); • Příznak globální maskování všech přerušení – EA; • 5 zdrojů přerušení: • Dva vstupy vnějších přerušení (EX0, EX1) – konfigurovatelná citlivost na sestupnou hranu resp. úroveň log. 0; • Od dvou čítačů/časovačů (ET0, ET1); • Od sériového kanálu (ES) – společné přerušení pro události „přijat znak“ i „znak odeslán“.
b7 b6 b5 b4 b3 b2 b1 b0 – – – PS PT1 PX1 PT0 PX0 Přerušení 8051 • IP – registr priority přerušení (adresa B8H); • 8051 rozlišuje dvě úrovně přerušení – nižší a vyšší; • Pokud procesor zpracovává přerušení nižší úrovně, může být přerušen pouze přerušením vyšší úrovně. Přerušení stejné nebo nižší úrovně musí čekat na dokončení ve frontě;
Registr IE Registr TCON Registr IP Priority Žádosto přerušenís vyššíprioritou 1 1 EX0 Registr IE IT0 IT1 PS PT0 PX1 PX0 PT1 2 2 EA 3 3 INT0 TR0 4 4 Vektorpřerušení IE0 5 5 TF0 EX1 Žádosto přerušenís vyššíprioritou INT1 TR1 IE1 ES Vektorpřerušení TF1 TI 1 Registr SCON RI Přerušení 8051
Přerušení 8051 • Každý zdroj přerušení má pevně definovanou adresu (vektor přerušení), na kterou procesor po přijetí žádosti o přerušení, dokončení rozpracované instrukce a uložení návratové adresy do zásobníku předá řízení; • Vektory přerušení jsou od sebe vzdáleny pouze 8 adresových míst (viz tabulka) a proto na nich obvykle bývá uložena pouze instrukce nepodmíněného skoku na vlastní obslužný podprogram.
start bit datové bity stop bit klidováúroveň 0 b0 b1 b2 b3 b4 b5 b6 b7 1 t Sériový kanál • Plně duplexní asynchronní sériová komunikace • Duplexní = je schopen současně přijímat i vysílat; • Asynchronní = rámcová synchronizace přijímače se odvozuje od tzv. start-bitu. • Rámec se skládá z: • Start bitu – odpovídá hodnotě 0, generuje synchronizační hranu; • Přenášeného znaku – 8 nebo 9 bitů; • Stop bitu – odpovídá hodnotě 1, vyvádí signál do klidové úrovně.
b7 b6 b5 b4 b3 b2 b1 b0 SM0 SM1 SM2 REN TB8 RB8 TI RI Režimy sériového kanálu • SCON – Řídící registr sériového kanálu 9. datový bit Příznak odeslanéhoresp. přijatého znaku. Povolení příjmu.
start bit datové bity (registr SBUF) stop bit TxD nebo RxD 0 b0 b1 b2 b3 b4 b5 b6 b7 1 t TI nebo RI TB8 nebo RB8 t start bit datové bity (registr SBUF) stop bit TxD nebo RxD 0 b0 b1 b2 b3 b4 b5 b6 b7 b8 1 t TI nebo RI t Časování sériového kanálu Mód 1 Mód 2 a 3
Čítače/časovače • 8051 obsahuje dva čítače/časovače; • Čítač/časovač je tvořen hardwarovým čítačem, jehož stav je softwarově dostupný v registrech TH0,TL0 resp. TH1, TL1; • Jestli hovoříme o funkci čítače nebo časovače závisí pouze na zvoleném použití – zdroji čítacího signálu; • Čítač: • čítá externí události – sestupné hrany signálů T0 resp. T1; • stav externího signálu je vzorkován a vyhodnocován jednou v každém strojním cyklu kmitočet externího signálu musí být menší než 1/24 kmitočtu oscilátoru mikroprocesoru; • Časovač: • generuje časové intervaly odvozené od taktu oscilátoru mikroprocesoru.
b7 b6 b5 b4 b3 b2 b1 b0 GATE C/T M1 M0 GATE C/T M1 M0 čítač/časovač 1 čítač/časovač 0 Čítače/časovače – režimy • TMOD – Registr určující režim činnosti čítačů/časovačů • GATE – hradlování hodin čítače; • C/T – výběr hodin čítače (čítač – externí, časovač – oscilátor); • M1,M0 – režim čítače/časovače viz dále.
Čítače/časovače – řízení • TCON – Řídící registr čítačů/časovačů • TFn – přetečení časovače; • TRn – hradlování hodin čítače; • IEn – příznak žádosti o přerušení ze vstupu INTn; • ITn – konfigurace citlivosti vstupu vnějšího přerušení:log. 1 – hranová, log. 0 – úrovňová. b7 b6 b5 b4 b3 b2 b1 b0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 řízení čítačů/časovačů řízení vnějších přerušení
fosc/ 12 TLn5 bitů THn8 bitů C/T TFn přerušení Tn TRn INTn 1 & GATE Čítače/časovače – režim 0 • 13-ti bitový čítač/časovač – zpětně kompatibilní s 8048; • THn čítá hodinové impulzy vydělené 5-ti bitovým předděličem tvořeným spodními bity čítače TLn; • Výhodnější je požívat režim 1, viz dále.
fosc/ 12 TLn8 bitů THn8 bitů C/T TFn přerušení Tn TRn INTn 1 & GATE Čítače/časovače – režim 1 • 16-ti bitový čítač/časovač; • Tento režim je shodný s režimem 0 s tím rozdílem, že se čítač TLn je plně 8-mi bitový.
fosc/ 12 TLn8 bitů C/T TFn přerušení Tn TRn THn8 bitů INTn 1 & GATE Čítače/časovače – režim 2 • 8-ti bitový čítač/časovač s přednastavením; • Čítač TLn čítá a po přetečení je nastaven na hodnotu THn; • Programové nastavení registru THn neovlivňuje aktuální stav TLn.
TR1 TH08 bitů TF1 přerušení C/T fosc/ 12 TL08 bitů TF0 přerušení T0 TR0 INT0 & 1 GATE Čítače/časovače – režim 3 • V tomto režimu se čítač/časovač 0 rozdělí na dva 8-mi bitové číatče; • Čítač TH0 využívá řídící příznaky čítače/časovače 1, který se v tomto režimu používá pro generování hodin pro sériový kanál.