Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
ČVUT – V Praze Fakulta elektrotechnická, katedra měření Podklad k přednášce Y38PMM, Je určen pouze pro studenty ČVUT – FEL jako pomůcka při studiu předmětu Y38PMM Dokument obsahuje pouze grafická zobrazení a hlavní hesla. Nenahrazuje účast na přednášce. Rotace textu „trojhmat“ CRTL Shift +
Mikroprocesory v přístrojové technice
1
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
Vyučující: Ing. Jan Fischer, CSc. , přednášky Ing. Jan Pohanka, cvičení
Programování jednočipových mikropočítačů a mikrořadičů Y38PMM
2
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
výuková lab. 318 blok A3 tel. 22435 2130 pro komunikaci používat pouze studentskou adresu FEL xuziv_jmé
[email protected] (ostatní je spam)
POHANJAN @FEL.CVUT.CZ tel. 22435 2058
Ing. Jan Pohanka , míst. 050
[email protected] , tel 22435 2179
Ing. Jan Fischer, CSc. , kat. měření, míst. 441/1
Kontakty
3
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
? kolik máte doma mikroprocesorů ?
Mikroprocesor vestavěný v přístroji či zařízení
Mikroprocesorem řízený přístroj
Přístroj: spotřební elektronika, automatizace, měřicí technika, prodejní automaty
Přístrojová technika - přístroj
Mikroprocesory v přístrojové technice -
Oblast zájmu předmětu
4
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
tzv. Bílá elektronika myčka, lednička, mraznička, pračka, mikrovlnná trouba, mixér, vysavač činnosti: ovládací vstupy, snímání ( teplota, hladina, průtok,..) akční členy - ovládání motoru, solenoidových ventilů, komunikace s obsluhou Osvětlení - řízení zářivky - zabudovaný mikrořadič 5
Přístroj - ve spotřební elektronice: mobilní telefon, PDA, dig.fotoaparát, kamera, CD + MP3 přehrávač, televizor, DVD přehrávač, činnosti: vstup - výstup signálu, digitalizace, komprese, ukládání, přenos
Největší spotřeba mikroprocesorů, resp. mikrokontrolérů spolu s autom. průmyslem.
uP ve spotřební a domácí elektronice
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
6
Domovní automatizace regulace. regulátor teploty, řízení klimatizace Regulátor topení - snímání teploty v místnostech, venkovní teploty, rychlosti větru, ovládání kotle ,... Rozpočítávací „měřič“ tepla - na radiátoru ústředního topení Automatizace - regulace, regulátor teploty, řízení klimatizace Ovládání světel , komunikace - standard D.A.L.I. Dálkové ovládání vrat - garáže - ( komunikace, kódy, akční členy, bezpečnost osob - snímání přítomnosti osob a „síly“ zavírání ) Zabezpečovací technika Přístupové systémy - čtečky karet, klávesnice, komunikace Zabezpečovací systémy- snímače pohybu, zvuku - např. tříštění skla, optické závory, komunikace, signalizace, přenos dat SMS, ? přenos redukovaného obrazu ( Nový studijní obor na ČVUT -FEL: Inteligentní budovy
uP řízený přístroj - domovní automatizace
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
7
Prodejní automaty - na potraviny,…( snímač mincí, zobrazení, akční členy..) Stojan benzinové pumpy ( snímač - průtokoměr, komunikace, zobrazení, čtečka karet). Automatické váhy ( supermarket) snímač síly - tenzometry, zobrazení, komunikace- přeprogramování ceny, tisk Prodejní automat jízdenek ( MHD, ČD,..) Přenosná čtečka karet - (restaurace) - klávesnice, zobrazení, bezdrátová komunikace, tisk. Přístupové systémy - vstupenky, lanovky, vleky… čtečka - optická , RFID,.., komunikace, akční členy - otevírání závory Hrací automaty: ( sem patří !!! bohužel i tzv. výherní -hrací automaty vstup, snímání množství mincí v zásobníku, generace pseudonáhodných čísel, ovládání akčních členů, programovatelný stupeň výhry automatu).
uP řízený přístroj - prodej, služby
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
8
(řízení motoru- vstřikování,.. řízení brzd ABS, AES, palubní počítač, tempomat,..) Sběr dat: teploty ( olej, voda,..) , tlak, klepání motoru,spaliny,.. Doplňkové funkce - řízení stěračů, nastavování polohy volantu, sedaček, stahování oken ( snímání proudu - bezpečnost) Regulace - zadání žádané hodnoty, snímání polohy, ovládání motorků, snímání proudu motorku, řízení klimatizace Naklápění reflektorů- uP + výkon. budič + krokový motorek Ovládání zábavní elektroniky - rozhlas. přijímač, přehrávač, navigace Komunikace: rozhraní CAN - základní komunikač. rozhraní - (systémová, zábavní) rozhraní LIN - periferie - ovládání motorků v oknech,.. nově - rozhraní Flex ray - např. přímé ovládání brzd
Automobilní elektronika - palubní přístroje:
uP - automobilní elektronika - „automotive“
ext. paměti Flash, pam. karty
klávesnice
tlačítka
vstupy
analogové logické
rozhraní RS232, USB, Ethernet
LED 7- segment LCD- segment graf.
zobrazení
výstupy
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
mikropočítač mikrořadič ( microcontroller)
řízené obvody vstupy, výstupy, A/D, D/A
analogové logické
Blokové schéma přístroje řízeného uP
9
LCD
LED
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
10
Další druhy mikropočítačů a mikrořadičů- architektura, vlastnosti 32- bitové mikroprocesory řady ARM Cortex M3 (provedení STM32) Signálové procesory ADSP -BF53x Blackfin
Návrh mikropočítače • Připojování vstupních a výstupních obvodů • Obvody pro komunikaci s obsluhou, připojení vstupních bloků tlačítek, klávesnic, výstupních bloků -LED, LCD • Připojení A/D, D/A převodníků
Použití jednočip. mikropočítače 8051, architektura, programování Logické obvody ( řady CMOS, druhy, napěťové úrovně, použití) Paměti ( SRAM, EPROM, FLASH, FIFO, Dual port..) Systémové sběrnice mikropočítačů, připojování obvodů na sběrnice
Náplň předmětu - přednášky Y38PMM
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
Cvičení 1. + 2. Použití jednočipového mikropočítače 8051, programování „Napálení“ programu do AT89C2051, realizace na kontaktním. poli. Další cvičení 3 -13 - použití ARM Cortex M3 - STM32F103 ( WWW.ST.COM) programování v C, návaznost na předchozí předmět s ARM7 Generace PWM, použití interního převodníku A/D přístroj - osciloskop Řízení krokových motorků, polohovací mechanismus measure.feld.cvut.cz informace výuka, balalářská etapa, stránka předmětů Y38PMM
Náplň předmětu - cvičení Y38PMM
11
RS 232
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
nepájivé kontaktní pole
STM32F103
PC + RAID 7
Programování v C IDE RAID7, firmy Raisonance www.raisonance.com procesor STMF32F103 firmy STMicroelectronics www.stm.com, www.stm.com/STM32 GNU C, IDE volné (omezení simulace na kód délky 32 kByte) překlad , download, RUN, výpisy na RS232 ( možná varianta pro simulaci - KEIL Microvision)
Vývojové nástroje pro Y38PMM
12
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
13
• Domácí práce zapůjčení vývoj desky(?? podle situace) možnost použití IDE Keil, Microvision, příprava programů a simulaci RAID7 simulace možná, menší pohodlí další informace na www stránkách, measure.feld.cvut.cz návody
• Aktivní účast na cvičeních, odevzdání úloh podle plánu, samostatná práce (ne plagiátorství !!!) • Zápočet v zápočtovém týdnu, ve zkouškovém období není možný přístup do laboratoře • Test v 9. týdnu na přednášce+ test v zápočtovém týdnu, testy - náplň podle přednášek a cvičení • Úlohy až 50 bodů, test. v sem. + testy až 50 b.
Podmínky klas. zápočtu, Y38PMM
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
Architektura - 8 bitového procesoru, původ Intel 8051 obvykle používané označení 8051 nebo jen´51 ve skutečnosti jádro 8x52 architektura používaná několika desítkami výrobců Atmel, Philips NXP, Silicon laborartories, Cypress, Texas Instruments, Analog Devices, Siemens- Infinieon, ........
Procesory s jádrem 8051
14
osc
CPU
interrupt control
ext. int.
P2
Address / Data
P0
P1
I/O port
256 B RAM
P3
counter inputs
TxD RxD
serial port UART
Timer 0, 1, 2
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
bus control
8 KB Flash
Blokové schéma AT89 C52
Blokové schéma AT89C52
15
osc
CPU
interrupt control
bus control
8 KB Flash
P2
Address / Data
P0
P1
I/O port
256 B RAM
Blokové schéma AT89 C52
P3
TxD RxD
serial port UART
Timer 0, 1, 2
counter inputs
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
16
Funkce jako - jednočipový mikropočítač (jediný obvod)- int. paměř programu a dat nebo jako mikropoč. s externí pamětí (připojení na sběrnici BUS) Deska na cvičeních - ext. paměť programu v EPROM 2764 a ext. paměť dat v 6264 spolupráce s CPU prostřednictvím sběrnice - BUS BUS adres. signály, datové signály, říd. signály /PSEN, /RD, /WR
CPU - central processing unit I/O port - vstupně/výstupní brány Flash 8k- vnitřní paměť programu RAM 256B vnitřní paměť dat UART - sériový port (COM)
ext. int.
Význam a funkce bloků AT89C52
7 8
9
10
11 12
P1.6/ P1.7 RST
P3.0/RxD
P3.1/TxD
24 23 22 21
17 18
19 20
P3.7/RD XTAL2
XTAL1
VSS
P2.0/A8
P2.1/A9
P2.2/A10
P2.4/A12 P2.3/A11
PSEN P2.7/A15 P2.6/A14 P2.5/A13
EA ALE/PR OG
P0.7/AD7
P0.6/AD6
P0.5/AD5
P0.3/AD3 P0.4/AD4
17
Vss zem ( GND ground) Vcc - napájení , +5 V, RST - Reset celého procesoru XTAL 1,2 - krystal - oscilátor
Signály externí sběrnice: /WR, /RD, říd. sig. zápisu a čtení A15 - A8, adresové signály AD8 -AD0 mux. adresové/datové s.
P1.7 - MSB, P1.0 - LSB atd. UART výst. TxD, vst. RxD přeruš.vst. /INT0, /INT1 akt. L T0, T1 vstupy čítačů
Brány P1 ( P0.7 až P0.0) P1 ( P1.7 až P1.0) P2 ( P2.7 až P2.0) P3 ( P3.7 až P3.0)
Signály procesoru:
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
25
16
P3.6/WR
P3.5/T1
27 26
14 15
29 28
31 30
P3.4/T0
13
32
6
P1.5
P3.2/INT0 P3.3/INT1
34 33
5
PDIL
36 35
3 4
P1.2 P1.3 P1.4 37
P0.0/AD0
39 38
2
P1.1/T2EX P0.1/AD1 P0.2/AD2
VCC
40
1
P1.0/T2
Vývody AT89C52
SECONDAR Y FUNCTIONS
RxD TxD INT0 INT1 T0 T1 WR RD
RST EA PSEN ALE
XTAL2
XTAL1
VCC
ADDRESS BUS
ADDRESS AND DATA BUS
37
4
P1.3
PDIL
38
3
P1.2
P0.7/AD7 EA ALE/PR OG
34 33 32 31 30 29 28 27 26 25 24 23 22 21
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
P1.5 P1.6/ P1.7 RST P3.0/RxD P3.1/TxD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD XTAL2 XTAL1 VSS
18
P2.0/A8
P2.1/A9
P2.2/A10
P2.4/A12 P2.3/A11
P2.5/A13
P2.7/A15 P2.6/A14
PSEN
P0.6/AD6
P0.5/AD5
35
5
P1.4
P0.3/AD3 P0.4/AD4
P0.1/AD1 P0.2/AD2
39
2
36
VCC P0.0/AD0
40
1
P1.0/T2 P1.1/T2EX
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
VSS
Signály AT89C52
POR T 3
POR T 0 POR T 1 POR T 2
7 8
9
10
11 12
P1.6/ P1.7 RST
P3.0/RxD
P3.1/TxD
24 23 22 21
17 18
19 20
P3.7/RD XTAL2
XTAL1
VSS
P2.0/A8
P2.1/A9
P2.2/A10
P2.4/A12 P2.3/A11
PSEN P2.7/A15 P2.6/A14 P2.5/A13
EA ALE/PR OG
P0.7/AD7
P0.6/AD6
P0.5/AD5
P0.3/AD3 P0.4/AD4
( využití v úloze)
19
hradlovat čítač, číst stav pinu, přerušit spádovou hranou
Někdy možnost použít vstupní pin ve více funkcích současně
P2.7 a sig. sběrnice AD15
hradlování čítače T0, brána P.3.0, a přerušovací vstup /INT0
UART výst.TxD a brána P3.1 vstup RxD a P3.0
nepostačuje pro všechny signály, proto - sdílení pinů:
Pouzdro DIL 40,
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
25
16
P3.6/WR
P3.5/T1
27 26
14 15
29 28
31 30
P3.4/T0
13
32
6
P1.5
P3.2/INT0 P3.3/INT1
34 33
5
PDIL
36 35
3 4
P1.2 P1.3 P1.4 37
P0.0/AD0
39 38
2
P1.1/T2EX P0.1/AD1 P0.2/AD2
VCC
40
1
P1.0/T2
Pouzdro AT89C52
PSEN ALE/PROG EA/ VPP RST
VSS
VCC
XTAL1
OSCILLATOR
PD
TIMING AND CONTROL
B REGISTER
RAM ADDR REGISTER
XTAL2
ALU
P1.0 - P1.7
PORT 1 DRIVERS
PORT 1 LATCH
PSW
TMP2
PORT 0 LATCH
TMP1
TIMERS
SFRs
PORT 2 LATCH
PORT 2 DRIVERS
P3.0 - P3.7
PORT 3 DRIVERS
8
ROM/EPROM
PORT 3 LATCH
STACK POINTER
P2.0 - P2.7
8
DPTR'S MULTIPLE
PROGRAM COUNTER
PC INCREMENTER
BUFFER
PROGRAM ADDRESS REGISTER
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
ACC
RAM
PORT 0 DRIVERS
P0.0 - P0.7
Vnitřní blokové schéma CPU řady 51
16
20
0000
FFFF
00
80 7F
FF
RAM
REG. SP. FUNKCÍ
interní paměť dat
DATA
0000
FFFF
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
paměť prog.
CODE
Paměťový model uP řady 8051
Prostory CODE ( pouze čtení) , DATA, XDATA
Paměťový model mikropočítače 8051
externí paměť dat
XDATA
21
0000
1000 0FFF
AT89C52 1FFF
EA=1
FFFF
CODE
00
80 7F
RAM (128B)
REG. SP. FUNKCÍ
DATA
0000
RAM (128B)
ext.pam. dat
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
EA=0
FF
ext. pam. prog.
FFFF
Pamět. prostory u AT89C52 XDATA
AT89C52 navíc - 128B RAM - DATA, 8KB vnitřní paměti FLASH -CODE, povolení vnitřní FLASH vstup /EA= L
Paměťový model mikropočítače AT89C52
22
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
80
FF
128B
nepřímo adres. dat. pam. ( pouze u xx52 verzí)
paměť RAM + speciální funkční registry SFR
adresový prostor DATA
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
reg. banka 3
bitově adresovatelná paměť
speciální funkční registry
Paměťový model - prostor DATA
23
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
80
FF
paměť RAM 128 Byte v prostoru DATA
128B
nepřímo adres. dat. pam. ( pouze u xx52 verzí)
128 Byte paměti RAM
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
reg. banka 3
bitově adresovatelná paměť
speciální funkční registry
Prostor DATA, paměť RAM u 8051
24
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
80
FF
registry R0 až R7
128B
nepřímo adres. dat. pam. ( pouze u xx52 verzí)
128 Byte paměti RAM Registry R0 - R7, banka 0, R0 na adr. 00
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
reg. banka 3
bitově adresovatelná paměť
speciální funkční registry
Registry R0 - R7
25
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
80
FF
128B
nepřímo adres. dat. pam. ( pouze u xx52 verzí)
26
bitově adresovatelná.paměť bit 00,01,02 ....celk. 128 bitů
128 Byte paměti RAM Registry R0 - R7, banka 0, R0 na adr. 00
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
reg. banka 3
16 x 8 bitů = 128 bitů
bitově adresovatelná paměť 16 Byte =
speciální funkční registry
Bitově adresovatelná paměť RAM
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
80
FF
128B
nepřímo adres. dat. pam. ( pouze u xx52 verzí)
(pouze) nepřímo adres. paměť RAM -128 Byte
27
bitově adresovatelná.paměť bit 00,01,02 ....celk. 128 bitů
128 Byte paměti RAM Registry R0 - R7, banka 0, R0 na adr. 00
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
reg. banka 3
bitově adresovatelná paměť 128 Byte nepřímo adres. pam (např. MOV A, @R0)
speciální funkční registry
Doplňková - pouze nepřímo adr. paměť RAM (8x52)
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
80
FF
128 Byte přímo i nepřímo adres. pam
128B
nepřímo adres. dat. pam. ( pouze u xx52 verzí)
28
Přímo i nepřímo adr. pam. RAM - 128 Byte
(pouze) nepřímo adres. paměť RAM -128 Byte
bitově adresovatelná.paměť bit 00,01,02 ....celk. 128 bitů
128 Byte paměti RAM Registry R0 - R7, banka 0, R0 na adr. 00
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
reg. banka 3
bitově adresovatelná paměť
speciální funkční registry
Prostor DATA přímo i nepřímo adr. RAM
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
80
FF
128B
nepřímo adres. dat. pam. ( pouze u xx52 verzí)
29
Nepřímo adr. pam 256 Byte
Přímo i nepřímo adr. pam. RAM - 128 Byte
(pouze) nepřímo adres. paměť RAM -128 Byte
bitově adresovatelná.paměť bit 00,01,02 ....celk. 128 bitů
128 Byte paměti RAM Registry R0 - R7, banka 0, R0 na adr. 00
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
reg. banka 3
bitově adresovatelná paměť celkem 256 Byte nepřímo adres. pam RAM
speciální funkční registry
Celá oblast nepřímo adr. paměti RAM
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
80
FF
128B
nepřímo adres. dat. pam. ( pouze u xx52 verzí)
přímo adr. MOV 80h, #0Fh
30
Spec. funkční registry pouze přímo adresovatelné v prostoru DATA
Nepřímo adr. pam 256 Byte
Přímo i nepřímo adr. pam. RAM - 128 Byte
(pouze) nepřímo adres. paměť RAM -128 Byte
bitově adresovatelná.paměť bit 00,01,02 ....celk. 128 bitů
128 Byte paměti RAM Registry R0 - R7, banka 0, R0 na adr. 00
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
bitově adresovatelná paměť spec. funkč. registrybrány, čítače, UART, řízení, řadič reg. banka 3 přerušení,
speciální funkční registry
Prostor DATA, Speciální funkční registry - SFR
20 1F 18 17 10 0F 08 07 00
30 2F
80 7F
FF
17 0F 07
7F
R0
R7
10 07 00
70
zápisník, data
SP P0
31
• na P1.0 a P1.1 nejsou PULL - UP rezistory - není schopen generovat na výstupu úroveň H
• vývody -port P1 a necelý P3
• malé pouzdro DIL20
• pouze 128B RAM
Jednočip. mikropočítač AT89C2051 použití v první samostatné úloze
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
reg. banka 0
reg. banka 1
reg. banka 2
reg. banka 3
bitově adresovatelná paměť
speciální funkční registry
Prostor DATA, jednočip. mikropočítač AT89C2051
P2 (FFh)
P3 (FFh)
IP
T2MOD
SPSR
RCAP2L
RCA2H
RCA2H
TL2
bitově. adresov.
0 (8)
1 (9)
3 (B)
4 (C)
5 (D)
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
2 (A)
88h TCON (00h) TMOD (00h) TL0 (00h) TL1 (00h) TH0 (00h) TH1 (00h) 80h P0 (FFh) SP (07h) DPL (00h) DPH (00h) DP1L (00h) DP1H (00h)
98h SCON (00h) SBUF (xx) 90h P1 (FFh)
A0h
A8h
B0h
B8h
C8h T2CON (00h) C0h
PSW (00h)
ACC (00h)
E0h D8h
D0h
B (00h)
F0h E8h
F8h
Prostor SFR - (DATA) u AT89S8252
6 (E)
WMCON
TH2
7 (F)
PCON
32
87h
8Fh
97h
9Fh
A7h
AFh
B7h
BFh
C7h
CFh
D7h
E7h DFh
F7h EFh
FFh
P2
LSB
SCON
LSB bitová adresa
P1
TCON
LSB
LSB
LSB
F0h
MSB
P0
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
SETB P1.0 totéž, ale i bajtovou adresu (P1 equ 90h) překladač nejdříve vezme z tabulky symbolů- P1 odpovídá hodnota 90h
33
Adresování SFR (např. brána P1 na adrese 90h) MOV 90h, #00h ; zapiš do SFR na adr. 90h přímá data 00h SETB 90h nastav bit v s bit. adr. 90h (nejnižší bit-LSB- brány P1) 90h bitová adresa od začátku (obtížně se pamatuje) SETB 90h.0 nastav bit na bitové adrese, která odpovídá nejnižšímu bitu na bajtové adrese 90h (určení y souřadnice -bajt, a x souřadnice -bit), bitovou adresu určí překladač
B
MSB
AFh
Adresování SFR MSB
A8h A7h
MSB
A0h 90h
MSB
90h 8Fh
MSB
88h 87h
LSB
80h
34
8- bitové registry; IP,IE,TMOD, TCON, SCON,PCON
16- bitové registry (THx, TLx)
8 bitový reg.; vyrovnávací registr pro vysíl. /příjem
CY, AC, F0, RS1, RS0, OV,- , P
8 bitový reg.; výsledky arit., log. operací
8-bitové registry; čtení, zápis na porty procesoru
16 - bitový registr (DPH, DPL); adresace XDATA
8 bitový reg.
8 bitové registry; 4 banky, přepínané v PSW
8 bitový reg., pomoc. reg. pro násobení/ dělení
8 bitový registr; funkce střadače
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
sériový buffer SBUF hodnoty časovačů řídicí registry ...........
střadač ACC .............. registr B ............. registry R0..R7 ......... ukazatel zásobníku - SP datový ukazatel - DPTR porty P0..P3 .............. stavový registr PSW
Registry speciálních funkcí - SFR
- datový ukazatel (data pointer), 16- bitový registr, který se používá pro adresování v programové a externí datové paměti
- programový čítač; 16 - bitový registr, který obsahuje adresu následující instrukce
- Carry flag - přenosový bit; indikuje přenos z MSB při operacích ALU
- registrový pár; používá se při násobení a dělení
DPTR
PC
C
AB
35
- osm obecných registrů v právě aktivní bance
R0 - R7
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
- střadač
A
Přehled rezervovaných symbolů
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
(skoky, volání podprogramu,návrat z podprogramu a z přerušení,...)
• předání řízení (skoky)
(mezi registry, styk s programovou a externí datovou pamětí)
• přesuny dat
(AND,OR, XOR, bitové rotace, nastavování/nulování bitu
• logické operace
(sčítání, odečítání, násobení, dělení,...)
• aritmetické operace
Přehled instrukčního souboru 8051
36
# @R0, @R1, @DPTR, @A+PC
relativní adresa:
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
8 bitů se znaménkem (+127 až -128)
data (skok) se adresují přes ukazatel
nepřímé adresování:
operand je přímo zadán, je součástí instrukce
přímá data :
bitově adresovatelná paměť RAM a vybrané SFR
bitové adresy:
adresy vnitřní datové paměti (0-127) a SFR registry (128 -255)
bajtové adresy:
A,C,DPTR, registry speciálních funkcí -SFR
rezervované symboly:
Instrukční soubor 8051 - Operandy instrukcí
37
obecná instrukce pro přesun (18 variant)
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
POP vyzvednutí dat ze zásobníku PUSH uložení dat do zásobníku
práce se zásobníkem:
MOVC přesun z programové paměti (CODE) MOVX přesun z/do externí datové paměti (XDATA)
speciální přesuny dat:
MOV
obecné přesuny dat:
Instrukční soubor 8051 - Přesuny dat
38
ADD prosté sečtení ADDC sčítání s přenosem z nižšího řádu INC přičtení jedničky (inkrementace)
DIV
dělení obsahu střadače registrem B
násobení obsahu střadače obsahem registru B
DA
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
dekadická korekce po sčítání dvou BCD čísel
dekadická korekce:
dělení:
MUL
násobení:
SUBB odečítání s výpůjčkou DEC odečtení jedničky (dekrementace)
odčítání:
sčítání:
Instrukční soubor 8051 - Aritmetické instrukce
39
logický součin logický součet nonekvivalence
SETB CLR CPL RL RLC RR RRC
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
nastavení bitu do log. 1 vynulování bitu bitový doplněk rotace bitů vlevo rotace bitů vlevo přes C rotace bitů vpravo rotace bitů vpravo přes C
bitové operace:
AND ORL XOR
logické operace:
Logické instrukce a instrukce pracující s bity
40
skok uvnitř 2kB stránky dlouhý skok ( v rámci 64 kB) obecná inst. skoku (překladač - AJMP nebo LJMP)
ACALL LCALL CALL RET
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
volání podprogramu uvnitř 2 kB stránky dlouhé volání podprogramu obecná inst. volání podprogramu (překladač ...) návrat z podprogramu
volání podprogramu:
JB, JNB skok, je/není-li zadaný bit nastaven JBC skok a vynulování bitu, je-li zadaný bit nastaven JC, JNC skok je/není-li nastaven bit přenosu C JZ, JNZ skok je/není-li obsah střadače nulový DJNZ sniž obsah registru o 1;dále JNZ
podmíněné skoky:
AJMP LJMP JMP
nepodmíněné skoky:
Instrukční soubor 8051- Předání řízení
41
skok uvnitř 2kB stránky dlouhý skok ( v rámci 64 kB) obecná inst. skoku (překladač - AJMP nebo LJMP)
volání podprogramu uvnitř 2 kB stránky dlouhé volání podprogramu obecná inst. volání podprogramu (překladač ...) návrat z podprogramu
RETI
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
návrat z přerušení
návrat z přerušení:
ACALL LCALL CALL RET
volání podprogramu:
JB, JNB skok, je/není-li zadaný bit nastaven JBC skok a vynulování bitu, je-li zadaný bit nastaven JC, JNC skok je/není-li nastaven bit přenosu C JZ, JNZ skok je/není-li obsah střadače nulový DJNZ sniž obsah registru o 1;dále JNZ
podmíněné skoky:
AJMP LJMP JMP
nepodmíněné skoky:
Instrukční soubor 8051- Předání řízení
42
; reset vektor - skok na vlastni zacatek programu
; Pomocne promenne pro cekaci smycku ;
; LED - buzena proti napajeni ; pocet cyklu cekaci smycky ; adresa ulozeni programu
Init: mov SP,#70h Start: clr LED call Cekej setb LED call Cekej jmp Start
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
; opakuj v nekonecne smycce
; zhasni LED
pro stack vyuzij hornich 15 byte pameti ; rozsvit LED
cseg at PROG_PAM+100h ; rezervujeme prostor prvnich 256 bajtu na prerus.
cseg at PROG_PAM jmp Init
dseg at 30h WaitLo: ds 1 WaitHi: ds 1
LED equ P1.5 POCET equ 35000 PROG_PAM equ 0A000h
; Program pro blikani LED diody na vyvojove desce MIP s 8051. ; Program slouzi pro blikani LED pripojene na nastaveny pin portu P1. ; Strida blikani je 1:1. LED je zapojena proti napajeno. ; perioda blikani nastavena cekaci funkci Cekej, kde pocet ; cekacich cyklu udava konstanta POCET
Demonstrační program, blik, hlavní smyčka
43
end
Před. 1, Y38PMM, ČVUT -FEL, Praha, Jan Fischer
WaitHi,#HIGH(POCET)+1; inicializace prodlevy WaitLo,#LOW(POCET)+1
Znovu: nop djnz WaitLo,Znovu djnz WaitHi,Znovu ret
Cekej: mov mov
;**************************************************************************************************** ;* Procedura cekani - konstantni doba dana konstantou POCET ;* zadne vstupni a vystupni parametry ;****************************************************************************************************
Demonstrační program, blik, podprog. čekání
44