Základy mikroprocesorové techniky
-
Upload
magee-valdez -
Category
Documents
-
view
25 -
download
0
description
Transcript of Základy mikroprocesorové techniky
![Page 1: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/1.jpg)
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
![Page 2: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/2.jpg)
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;
![Page 3: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/3.jpg)
Přerušovací systém
MOV DPTR,#tabznak
MOV A,31
CJNE A,#01,Next
MOV A,30H
ANL A,#0F0H
Next: MOV A, 30H
Hlavní program
Žádosto přerušení
Interrupt handler
PUSH PSW
PUSH A
POP A
POP PSW
RETI
Uložení PC,zákaz přerušení
Obnovení PC,povolení přerušení
![Page 4: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/4.jpg)
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“.
EA – – ES ET1 EX1 ET0 EX0
b7 b6 b5 b4 b3 b2 b1 b0
![Page 5: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/5.jpg)
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ě;
– – – PS PT1 PX1 PT0 PX0
b7 b6 b5 b4 b3 b2 b1 b0
![Page 6: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/6.jpg)
Přerušení 8051
EX0
TR0
EX1
TR1
ES
Registr IE
EA
Registr IE
PX0
PT0
PX1
PT1
PS
Registr IP Priority
1
2
3
4
5
1
2
3
4
5
Žádosto přerušenís vyššíprioritou
Žádosto přerušenís vyššíprioritou
Vektorpřerušení
Vektorpřerušení
IE0
IT0
INT0
IE1
IT1
INT1
1
TF1
TF0
TI
RI
Re
gis
tr S
CO
N
Registr TCON
![Page 7: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/7.jpg)
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.
Zdroj přerušení Adresa
IE0 Vnější přerušení 0 0003H
TF0 Čítač/časovač 0 000BH
IE1 Vnější přerušení 1 0013H
TF1 Čítač/časovač 1 001BH
RI+TI Sériový kanál 0023H
![Page 8: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/8.jpg)
Sériový kanál
b0 b1 b2 b3 b4 b5 b6 b70 1 t
start bit stop bitdatové bity
klidováúroveň
• 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ě.
![Page 9: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/9.jpg)
Režimy sériového kanálu• SCON – Řídící registr sériového kanálu
SM0 SM1 SM2 REN TB8 RB8 TI RI
b7 b6 b5 b4 b3 b2 b1 b0
Mód SM0, SM1 Typ přenosu Bitová rychlost
0 0 0 Synchronní 8-mi bitový fosc / 12
1 0 1 Asynchronní 8-mi bitový časovač 1
2 1 0 Asynchronní 9-ti bitový fosc / 32, fosc / 64
3 1 1 Asynchronní 9-ti bitový časovač 1
Příznak odeslanéhoresp. přijatého znaku.
9. datový bit
Povolení příjmu.
![Page 10: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/10.jpg)
Časování sériového kanálu
b0 b1 b2 b3 b4 b5 b6 b70 1 t
t
TxDnebo
RxD
TInebo
RI
start bit stop bitdatové bity (registr SBUF)
b0 b1 b2 b3 b4 b5 b6 b80 1 t
t
TxDnebo
RxD
TInebo
RI
start bit stop bitdatové bity (registr SBUF)
b7
TB8nebo
RB8
Mód
1M
ód 2
a 3
![Page 11: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/11.jpg)
Čí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.
![Page 12: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/12.jpg)
Čí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.
GATE C/T M1 M0 GATE C/T M1 M0
b7 b6 b5 b4 b3 b2 b1 b0
čítač/časovač 1 čítač/časovač 0
![Page 13: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/13.jpg)
Čí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á.
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
b7 b6 b5 b4 b3 b2 b1 b0
řízení čítačů/časovačů řízení vnějších přerušení
![Page 14: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/14.jpg)
Čí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.
1&
C/T
TRn
GATE
fosc / 12
Tn
INTn
TLn5 bitů
THn8 bitů
TFn přerušení
![Page 15: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/15.jpg)
Čí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ý.
1&
C/T
TRn
GATE
fosc / 12
Tn
INTn
TLn8 bitů
THn8 bitů
TFn přerušení
![Page 16: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/16.jpg)
Čí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.
1&
C/T
TRn
GATE
fosc / 12
Tn
INTn
TLn8 bitů
THn8 bitů
TFn přerušení
![Page 17: Základy mikroprocesorové techniky](https://reader036.fdocument.pub/reader036/viewer/2022082417/56812a47550346895d8d8673/html5/thumbnails/17.jpg)
Čí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.
1&
C/T
TR0
GATE
fosc / 12
T0
INT0
TL08 bitů
TH08 bitů
TF0 přerušení
TF1 přerušení
TR1