Mikrořadiče pro přístrojovou techniku

Mikrořadiče pro přístrojovou techniku
Mikrořadiče pro přístrojovou techniku
Doc. Jan Fischer
Katedra měření
ČVUT v Praze, FEL
Evropský sociální fond
Praha & EU: Investujeme do vaší budoucnosti
1
Oblast zájmu předmětu
Mikroprocesory v přístrojové technice Přístrojová technika, pojem „přístroj“
Přístroj: spotřební elektronika, prvky automatizace, měřicí technika,
prodejní automaty
Mikroprocesorem řízený přístroj
Mikroprocesor vestavěný v přístroji či zařízení
? kolik máte doma mikroprocesorů ?
2
uP ve spotřební a domácí elektronice
Největší spotřeba mikroprocesorů, resp. mikrokontrolérů spojená s
automobilovým průmyslem.
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
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č
3
uP řízený přístroj v měřicí technice
Měřicí technika
Přístroje: Multimetr, osciloskop, logický analyzátor, měřič impedance,
generátor, reflektometr na měření metalických a optických tras
Osciloskop (zcela jiná konstrukce oproti původnímu osciloskopu výkonný počítač + rychlé A/D převodníky),
Spektrální analyzátor - digitalizace signálu + Fourier. transformace,
metody číslicového zpracování signálu
Elektroměr - digitalizace u, i, výpočet odebrané energie, dálkové
ovládání - HDO („noční proud“ ) komunikace, ovládání relé
4
uP řízený přístroj - domovní automatizace
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
5
uP řízený přístroj - prodej, služby
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
6
uP - automobilní elektronika - „automotive“
Automobilní elektronika - palubní přístroje:
(ří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
7
Blokové schéma přístroje řízeného uP
analogové
logické
vstupy
tlačítka
klávesnice
ext. paměti
Flash, pam. karty
řízené obvody
vstupy, výstupy,
A/D, D/A
mikropočítač
mikrořadič
( microcontroller)
analogové
logické
výstupy
LED
zobrazení
LED
7- segment
LCD- segment
graf.
LCD
rozhraní
RS232, USB,
Ethernet
8
Náplň předmětu – problematika
Použití jednočip. mikropočítače 8051, architektura, programování
Systémové sběrnice mikropočítačů, připojování obvodů na sběrnice
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ů
Další druhy mikropočítačů a mikrořadičů- architektura, vlastnosti
32- bitové mikroprocesory řady ARM Cortex M3 (provedení STM32)
Signálové procesory ADSP -BF53x Blackfin
9
Mikroprocesory pro vestavné aplikace – rysy
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Široké spektrum procesorů pro vestavné aplikace
od 4 – bitových po 32 – bitové
Historický typ – jádro 8051, stále využívané desítkami výrobců
Atmel AT89C 51,…
jiná řada Atmel AVR, AT Mega www.atmel.com
Motorola – Freeescale rodina 68HC08, ( 68HCS908,…) rodina 68HCS12
a vyšší typy http://www.freescale.com/
ST Microelectronics STM8 8- bitový proc. www.st.com/stm8
firma Microchip , procesory PIC, www.microchip.com
Texas Instruments MSP430 16 bitový procesor, nízká spotřeba,
www.ti.com/MSP430
japonské firmy Fujitsu, Nes, Renesas, 8, 16 bitové proc.
Signálové procesory Analog Devices, Texas Instruments, Freescale
aplikace – jednočipové, nebo i externími sběrnicemi
možnost připojení externí SDRAM, možnost oprač. systému ( uCLinux.,
Linux)
Texas Instruments – kombinace DSP a procesoru ARM v jednom pouzdře
10
Hlavní bloky procesoru pro vestavné aplikace
•
•
•
•
•
•
•
•
•
•
•
•
•
CPU – vlastní jádro procesoru
vnitřní paměť programu (ve formě ROM, Flash nebo SRAM)
vnitřní paměť dat – SRAM
Generátor hodinového signálu , vnější s XTAL ( krystalem), vnitřní RC –
méně přesné – jednotky procent, možná kalibrace
resetovací obvod ( Reset, Por,..)
dohlížecí obvod Watch dog
monitorovací obvod – kontrola napájení, monitorování teploty čipu,
zálohování napáj. vybrané SRAM
obvod reálného času RTC (Real Time Clock)
jednotky čítačů, časovačů, (jednotky PCA – programmable counter array,
funkce input capture, output compare, high speed output) ,generátory
PWM,
vnitřní sběrnice,
číslicové vstupně výstupní piny,
analogové vstupy,
analogové výstupy
11
Procesory s jádrem ARM pro vestavné aplikace
•
•
•
•
•
•
•
•
Nyní trend – používat jádro ARM (firma ARM www. ARM. COM)
nejdříve jádro ARM 7, a především, jádro –
pro vestavné aplikace – jednočipová varianta
ARM Cortex M3,
ARM Cortex M0
další typy jádro ARM Cortex M4 (funkce DSP),ARM 9, ARM 11, ARM Cortex
A9
vyšší typy – již spolupráce s externími paměťmi prostřednictvím sběrnic
externí SDRAM, 32, 64 a více MByte, portování Linux, nebo omezená verze
uCLinux ( procesory bez MMU – memory Management Unit),
12
Mikrořadič STM8S105
Mikrořadič, jednočipový
mikropočítač pro vestavné
aplikace 8- bitový
obdobné periferie jako
vyšší procesory
I2C, SPI, ADC, PWM, Čítače
13
Mikrořadič s jádrem ARM Cortex- M3 (STM32F103)
Mikrořadič STM32F103 s jádrem
32 – bitového procesoru
ARM Cortex – M3
Procesorové jádro ARM
+ paměti
+ periferie
Periferie podobné jako
8- bitového mikrořadiče
STM8S
14
Signálový procesor ADSP BF533
Signálový procesor Analog Devices , Blackfin, pro vestavné zpracování
signálu a obrazu (zpracování zvukového a obrazového signálu)
Použití – „set top box“, digitální fotoaparát, elektro – akustická zařízení
15
Signálový procesor - mikrořadič ADSP BF504
Signálový procesor - ADSP BF504 F, použití jako typický mikrořadič pro
vestavné aplikace
Jádro signálového procesoru Blackfin (jako v BF533), ale doplněno
periferiemi pro vestavné aplikace, odstraněno připojení na externí paměti
Vhodné pro vestavné zpracování signálu, řídicí aplikace (např. řízení motorků)
16
První seznámení s mikroprocesory a mikrořadiči
Pro první seznámení s procesory pro vestavné aplikace – vhodné začít s
jednoduššími 8 – bitovými typy mikroprocesorů a mikrořadičů
Mikrořadiče s jádrem 8051, (resp. 8052), postupný vývoj, procesorové jádro
´51 zůstává, avšak nové typy doplněny řadou periferií typických pro vyšší
typy mikrořadičů
Mikrořadiče s jádrem ´51 stále vyráběny (v současnosti min. 10 výrobců),
doplněny dalšími paměťmi a periferiemi:
• paměť EEPROM
• komplexní čítačové jednotky
• komunikační řadiče (CAN, USB, LIN, bezdrátové komunikace)
• analogové komparátory
• převodníky A/D analogo – číslicové
• převodníky číslicovo – analogové
• řadiče LCD
17
Procesory s jádrem 8051
Nejznámější a nejrozšířenější 8- bitová architektura procesoru – mikrořadiče
pro přístrojové a vestavné aplikace
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, ........
18
Vývojové nástroje
Programování v asembleru 51
IDE Microvision 3 firmy KEIL www.keil.com
demoverze IDE, volná, do 2kByte kódu
překlad, simulace, odladění na HW
nainstalovat doma IDE, seznámení s uP
AT89S8252
+ 8KByte RAM
RS 232
nepájivé kontaktní
pole
PC + IDE Keil
Microvision 3
19
Blokové schéma 8051
ext. int.
Blokové schéma I 8051
counter
inputs
interrupt
control
128 B
RAM
4 KB
ROM
Timer
0, 1
8051
CPU
osc
bus
control
serial port
UART
I/O port
P0
P2
P1
P3
TxD RxD
Address / Data
20
Blokové schéma AT89C52
ext. int.
Blokové schéma AT89 C52
counter
inputs
interrupt
control
256 B
RAM
8 KB
Flash
Timer
0, 1, 2
8051
CPU
osc
bus
control
serial port
UART
I/O port
P0
P2
P1
P3
TxD RxD
Address / Data
21
Význam a funkce bloků AT89C52
ext. int.
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)
Blokové schéma AT89 C52
counter
inputs
interrupt
control
Timer
0, 1, 2
256 B
RAM
8 KB
Flash
CPU
osc
bus
control
serial port
UART
I/O port
P0
P2
P1
P3
TxD RxD
Address / Data
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
22
Vývody AT89C52
P1.0/T2
1
40
VCC
P1.1/T2EX
2
39
38
P0.0/AD0
37
P0.1/AD1
P0.2/AD2
6
36
35
P0.3/AD3
P0.4/AD4
7
8
34
33
P0.5/AD5
9
32
P0.7/AD7
P3.0/RxD
10
P3.1/TxD
11
12
31
30
EA
ALE/PR OG
PSEN
13
29
28
P3.5/T1
14
15
27
26
P3.6/WR
16
25
P3.7/RD
XTAL2
17
18
24
23
P2.2/A10
XTAL1
19
20
22
21
P2.1/A9
P1.2
P1.3
P1.4
3
4
P1.5
P1.6/
P1.7
RST
P3.2/INT0
P3.3/INT1
P3.4/T0
VSS
5
PDIL
P0.6/AD6
P2.7/A15
P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11
P2.0/A8
Signály procesoru:
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)
P1.7 - MSB, P1.0 - LSB atd.
UART výst. TxD, vst. RxD
přeruš.vst. /INT0, /INT1 akt. L
T0, T1 vstupy čítačů
Signály externí sběrnice:
/WR, /RD, říd. sig. zápisu a čtení
A15 - A8, adresové signály
AD8 -AD0 mux. adresové/datové s.
Vss zem ( GND ground)
Vcc - napájení , +5 V,
RST - Reset celého procesoru
XTAL 1,2 - krystal - oscilátor
23
Signály AT89C52
VCC
VSS
XTAL1
P1.0/T2
1
40
VCC
P1.1/T2EX
2
39
P0.0/AD0
3
38
P1.3
4
37
P0.1/AD1
P0.2/AD2
P1.4
5
36
P1.5
6
35
P0.3/AD3
P0.4/AD4
P1.6/
P1.7
7
8
34
P0.5/AD5
33
P0.6/AD6
RST
9
32
P0.7/AD7
31
EA
POR T 0
P1.2
ADDRESS AND
DATA BUS
XTAL2
RxD
TxD
INT0
INT1
T0
T1
WR
RD
POR T 1
POR T 2
RST
EA
PSEN
ALE
POR T 3
SECONDAR Y FUNCTIONS
P3.0/RxD
10
PDIL
P3.1/TxD
11
30
ALE/PR OG
P3.2/INT0
P3.3/INT1
12
29
PSEN
13
28
P3.4/T0
14
P3.5/T1
15
27
26
P2.7/A15
P2.6/A14
P3.6/WR
16
25
P3.7/RD
XTAL2
17
24
18
23
P2.2/A10
XTAL1
19
22
P2.1/A9
VSS
20
21
P2.0/A8
P2.5/A13
P2.4/A12
P2.3/A11
ADDRESS BUS
24
Pouzdro AT89C52
P1.0/T2
1
40
VCC
P1.1/T2EX
2
39
38
P0.0/AD0
Pouzdro DIL 40,
nepostačuje pro všechny signály,
proto - sdílení pinů:
37
P0.1/AD1
P0.2/AD2
6
36
35
P0.3/AD3
P0.4/AD4
7
8
34
33
P0.5/AD5
9
32
P0.7/AD7
hradlování čítače T0, brána P.3.0, a
přerušovací vstup /INT0
P3.0/RxD
10
P3.1/TxD
11
12
31
30
EA
ALE/PR OG
P2.7 a sig. sběrnice AD15
PSEN
13
29
28
P3.5/T1
14
15
27
26
P3.6/WR
16
25
P3.7/RD
XTAL2
17
18
24
23
P2.2/A10
XTAL1
19
20
22
21
P2.1/A9
P1.2
P1.3
P1.4
3
4
P1.5
P1.6/
P1.7
RST
P3.2/INT0
P3.3/INT1
P3.4/T0
VSS
5
PDIL
P0.6/AD6
P2.7/A15
P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11
UART výst.TxD a brána P3.1
vstup RxD a P3.0
Někdy možnost použít vstupní pin
ve více funkcích současně
hradlovat čítač, číst stav pinu,
přerušit spádovou hranou
( využití v úloze)
P2.0/A8
25
Vnitřní blokové schéma CPU řady 51
P0.0 - P0.7
PORT 0
DRIVERS
P2.0 - P2.7
PORT 2
DRIVERS
VCC
VSS
RAM ADDR
REGISTER
PORT 0
LATCH
RAM
PORT 2
LATCH
ROM/EPROM
8
B
REGISTER
STACK
POINTER
ACC
PROGRAM
ADDRESS
REGISTER
TMP1
TMP2
BUFFER
ALU
SFRs
PSW
PC
INCREMENTER
TIMERS
8
16
PROGRAM
COUNTER
PSEN
ALE/PROG
EA/ VPP
RST
DPTR'S
MULTIPLE
TIMING
AND
CONTROL
PD
PORT 1
LATCH
PORT 3
LATCH
PORT 1
DRIVERS
PORT 3
DRIVERS
OSCILLATOR
XTAL1
XTAL2
P1.0 - P1.7
P3.0 - P3.7
26
Paměťový model mikropočítače 8051
Prostory CODE ( pouze čtení) , DATA, XDATA
Paměťový model uP řady 8051
CODE
FFFF
FFFF
interní
paměť
dat
paměť
prog.
FF
80
7F
0000
XDATA
DATA
00
externí
paměť
dat
REG.
SP.
FUNKCÍ
RAM
0000
27
Paměťový model mikropočítače AT89C52
AT89C52 navíc - 128B RAM - DATA, 8KB vnitřní paměti FLASH -CODE,
povolení vnitřní FLASH vstup /EA= L
CODE
Pamět. prostory u AT89C52
FFFF
XDATA
FFFF
ext. pam.
prog.
ext.pam.
dat
DATA
AT89C52
1FFF
1000
0FFF
0000
FF
EA=1
EA=0
80
7F
00
REG.
SP.
FUNKCÍ
RAM
(128B)
RAM
(128B)
0000
28
Paměťový model - prostor DATA
FF
80
7F
speciální
funkční
registry
FF
adresový prostor DATA
nepřímo adres.
dat. pam.
( pouze u xx52
verzí)
SP
P0
zápisník, data
paměť RAM + speciální
funkční registry SFR
128B
30
2F
20
1F
18
17
10
0F
08
07
00
80
7F
70
17
0F
07
10
07
00
bitově
adresovatelná
paměť
reg. banka 3
reg. banka 2
reg. banka 1
R7
R0
reg. banka 0
29
Prostor DATA, paměť RAM u 8051
FF
80
7F
speciální
funkční
registry
FF
128 Byte paměti RAM
nepřímo adres.
dat. pam.
( pouze u xx52
verzí)
SP
P0
zápisník, data
128B
30
2F
20
1F
18
17
10
0F
08
07
00
80
7F
70
17
0F
07
10
07
00
bitově
adresovatelná
paměť
reg. banka 3
paměť RAM
128 Byte
v prostoru
DATA
reg. banka 2
reg. banka 1
R7
R0
reg. banka 0
30
Registry R0 - R7
FF
80
7F
speciální
funkční
registry
FF
nepřímo adres.
dat. pam.
( pouze u xx52
verzí)
SP
P0
128 Byte paměti RAM
Registry R0 - R7,
banka 0, R0 na adr. 00
zápisník, data
128B
30
2F
20
1F
18
17
10
0F
08
07
00
80
7F
70
17
0F
07
10
07
00
bitově
adresovatelná
paměť
reg. banka 3
reg. banka 2
reg. banka 1
R7
R0
reg. banka 0
registry
R0 až R7
31
Bitově adresovatelná paměť RAM
FF
80
7F
speciální
funkční
registry
FF
nepřímo adres.
dat. pam.
( pouze u xx52
verzí)
SP
P0
zápisník, data
128B
30
2F
20
1F
18
17
10
0F
08
07
00
128 Byte paměti RAM
Registry R0 - R7,
banka 0, R0 na adr. 00
bitově adresovatelná.paměť
bit 00,01,02 ....celk. 128 bitů
80
7F
70
17
0F
07
10
07
00
bitově
adresovatelná
paměť
16 Byte =
16 x 8 bitů =
128 bitů
reg. banka 3
reg. banka 2
reg. banka 1
R7
R0
reg. banka 0
32
Doplňková - pouze nepřímo adr. paměť RAM (8x52)
FF
80
7F
speciální
funkční
registry
FF
nepřímo adres.
dat. pam.
( pouze u xx52
verzí)
SP
P0
zápisník, data
128B
30
2F
20
1F
18
17
10
0F
08
07
00
80
7F
70
17
0F
07
10
07
00
bitově
adresovatelná
paměť
128 Byte nepřímo
adres. pam
(např. MOV A, @R0)
128 Byte paměti RAM
Registry R0 - R7,
banka 0, R0 na adr. 00
bitově adresovatelná.paměť
bit 00,01,02 ....celk. 128 bitů
(pouze) nepřímo adres.
paměť RAM -128 Byte
reg. banka 3
reg. banka 2
reg. banka 1
R7
R0
reg. banka 0
33
Prostor DATA přímo i nepřímo adr. RAM
FF
80
7F
speciální
funkční
registry
FF
nepřímo adres.
dat. pam.
( pouze u xx52
verzí)
SP
P0
zápisník, data
128B
30
2F
20
1F
18
17
10
0F
08
07
00
80
7F
17
0F
07
10
07
00
bitově adresovatelná.paměť
bit 00,01,02 ....celk. 128 bitů
(pouze) nepřímo adres.
paměť RAM -128 Byte
70
bitově
adresovatelná
paměť
128 Byte paměti RAM
Registry R0 - R7,
banka 0, R0 na adr. 00
128 Byte
přímo i nepřímo
adres. pam
Přímo i nepřímo adr. pam.
RAM - 128 Byte
reg. banka 3
reg. banka 2
reg. banka 1
R7
R0
reg. banka 0
34
Celá oblast nepřímo adr. paměti RAM
FF
80
7F
speciální
funkční
registry
FF
nepřímo adres.
dat. pam.
( pouze u xx52
verzí)
SP
P0
zápisník, data
128B
30
2F
20
1F
18
17
10
0F
08
07
00
80
7F
70
17
0F
07
10
07
00
bitově
adresovatelná
paměť
celkem 256 Byte
nepřímo adres.
pam RAM
128 Byte paměti RAM
Registry R0 - R7,
banka 0, R0 na adr. 00
bitově adresovatelná.paměť
bit 00,01,02 ....celk. 128 bitů
(pouze) nepřímo adres.
paměť RAM -128 Byte
Přímo i nepřímo adr. pam.
RAM - 128 Byte
reg. banka 3
reg. banka 2
Nepřímo adr. pam 256 Byte
reg. banka 1
R7
R0
reg. banka 0
35
Prostor DATA, Speciální funkční registry - SFR
FF
80
7F
speciální
funkční
registry
FF
nepřímo adres.
dat. pam.
( pouze u xx52
verzí)
SP
P0
zápisník, data
128B
30
2F
20
1F
18
17
10
0F
08
07
00
80
7F
70
17
0F
07
10
07
00
bitově
adresovatelná
paměť
spec. funkč. registrybrány, čítače, UART,
řízení, řadič
reg. banka 3
přerušení,
reg. banka 2
reg. banka 1
R7
R0
reg. banka 0
přímo adr.
MOV 80h, #0Fh
128 Byte paměti RAM
Registry R0 - R7,
banka 0, R0 na adr. 00
bitově adresovatelná.paměť
bit 00,01,02 ....celk. 128 bitů
(pouze) nepřímo adres.
paměť RAM -128 Byte
Přímo i nepřímo adr. pam.
RAM - 128 Byte
Nepřímo adr. pam 256 Byte
Spec. funkční registry pouze přímo adresovatelné
v prostoru DATA
36
Prostor DATA, jednočip. mikropočítač AT89C2051
FF
80
7F
speciální
funkční
registry
SP
P0
Jednočip. mikropočítač AT89C2051 použití v první samostatné úloze
• pouze 128B RAM
zápisník, data
• malé pouzdro DIL20
30
2F
20
1F
18
17
10
0F
08
07
00
7F
• vývody -port P1 a necelý P3
70
17
0F
07
10
07
00
bitově
adresovatelná
paměť
• na P1.0 a P1.1 nejsou PULL - UP
rezistory - není schopen generovat
na výstupu úroveň H
reg. banka 3
reg. banka 2
reg. banka 1
R7
R0
reg. banka 0
37
Prostor SFR - (DATA) u AT89S8252
F8h
FFh
F0h
E8h
B (00h)
F7h
EFh
E0h
D8h
ACC (00h)
E7h
DFh
D0h
PSW (00h)
D7h
C8h T2CON (00h)
C0h
T2MOD
RCAP2L
RCA2H
RCA2H
TL2
CFh
TH2
C7h
B8h
IP
BFh
B0h
P3 (FFh)
B7h
A8h
A0h
AFh
SPSR
A7h
P2 (FFh)
98h SCON (00h) SBUF (xx)
90h
P1 (FFh)
9Fh
bitově.
adresov.
0 (8)
1 (9)
97h
WMCON
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)
2 (A)
3 (B)
4 (C)
5 (D)
8Fh
PCON
6 (E)
87h
7 (F)
38
LSB
MSB
P0
80h
LSB
MSB
TCON
88h
87h
P1
90h
8Fh
A0h
90h
LSB
MSB
LSB
MSB
SCON
A8h
A7h
AFh
P2
F0h
B
LSB
MSB
LSB
MSB
Adresování SFR
bitová adresa
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č
SETB P1.0 totéž, ale i bajtovou adresu (P1 equ 90h) překladač
nejdříve vezme z tabulky symbolů- P1 odpovídá hodnota 90h
39
Registry speciálních funkcí - SFR
střadač ACC ..............
registr B
.............
registry R0..R7 .........
ukazatel zásobníku - SP
datový ukazatel - DPTR
porty P0..P3 ..............
stavový registr PSW
8 bitový registr; funkce střadače
8 bitový reg., pomoc. reg. pro násobení/ dělení
8 bitové registry; 4 banky, přepínané v PSW
8 bitový reg.
16 - bitový registr (DPH, DPL); adresace XDATA
8-bitové registry; čtení, zápis na porty procesoru
8 bitový reg.; výsledky arit., log. operací
CY, AC, F0, RS1, RS0, OV,- , P
sériový buffer SBUF
hodnoty časovačů
řídicí registry ...........
8 bitový reg.; vyrovnávací registr pro vysíl. /příjem
16- bitové registry (THx, TLx)
8- bitové registry; IP,IE,TMOD, TCON, SCON,PCON
40
Přehled rezervovaných symbolů
A
- střadač
R0 - R7
- osm obecných registrů v právě aktivní bance
DPTR
- datový ukazatel (data pointer), 16- bitový registr, který se
používá pro adresování v programové a externí datové
paměti
PC
- programový čítač; 16 - bitový registr, který obsahuje adresu
následující instrukce
C
- Carry flag - přenosový bit; indikuje přenos z MSB při
operacích ALU
AB
- registrový pár; používá se při násobení a dělení
41
Přehled instrukčního souboru 8051
• aritmetické operace
(sčítání, odečítání, násobení, dělení,...)
• logické operace
(AND,OR, XOR, bitové rotace, nastavování/nulování bitu
• přesuny dat
(mezi registry, styk s programovou a externí datovou pamětí)
• předání řízení (skoky)
(skoky, volání podprogramu,návrat z podprogramu a z přerušení,...)
42
Instrukční soubor 8051 - Operandy instrukcí
rezervované symboly:
<název>
A,C,DPTR, registry speciálních funkcí -SFR
bajtové adresy:
<adresa>
adresy vnitřní datové paměti (0-127) a SFR registry (128 -255)
bitové adresy:
<adresa bitu>
bitově adresovatelná paměť RAM a vybrané SFR
přímá data :
# <hodnota>
operand je přímo zadán, je součástí instrukce
nepřímé adresování:
@R0, @R1, @DPTR, @A+PC
data (skok) se adresují přes ukazatel
relativní adresa:
8 bitů se znaménkem (+127 až -128)
43
Instrukční soubor 8051 - Aritmetické instrukce
sčítání:
ADD prosté sečtení
ADDC sčítání s přenosem z nižšího řádu
INC
přičtení jedničky (inkrementace)
odčítání:
SUBB odečítání s výpůjčkou
DEC odečtení jedničky (dekrementace)
násobení:
MUL
násobení obsahu střadače obsahem registru B
DIV
dělení obsahu střadače registrem B
dělení:
dekadická korekce:
DA
dekadická korekce po sčítání dvou BCD čísel
44
Logické instrukce a instrukce pracující s bity
logické operace:
AND
ORL
XOR
logický součin
logický součet
nonekvivalence
bitové operace:
SETB
CLR
CPL
RL
RLC
RR
RRC
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
45
Instrukční soubor 8051- Předání řízení
nepodmíněné skoky:
AJMP
LJMP
JMP
skok uvnitř 2kB stránky
dlouhý skok ( v rámci 64 kB)
obecná inst. skoku (překladač - AJMP nebo LJMP)
podmíněné skoky:
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
volání podprogramu:
ACALL
LCALL
CALL
RET
volání podprogramu uvnitř 2 kB stránky
dlouhé volání podprogramu
obecná inst. volání podprogramu (překladač ...)
návrat z podprogramu
návrat z přerušení:
RETI
návrat z přerušení
46
Demonstrační program, blik, hlavní smyčka
; 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
LED
equ P1.5
POCET equ 35000
PROG_PAM equ 0A000h
dseg at 30h
WaitLo: ds
1
WaitHi: ds
1
cseg at PROG_PAM
jmp Init
; LED - buzena proti napajeni
; pocet cyklu cekaci smycky
; adresa ulozeni programu
; Pomocne promenne pro cekaci smycku
;
; reset vektor - skok na vlastni zacatek programu
cseg at PROG_PAM+100h ; rezervujeme prostor prvnich 256 bajtu na prerus.
Init:
mov SP,#70h
Start: clr LED
call Cekej
setb LED
call Cekej
jmp Start
pro stack vyuzij hornich 15 byte pameti
; rozsvit LED
; zhasni LED
; opakuj v nekonecne smycce
47
Demonstrační program, blik, podprog. čekání
;****************************************************************************************************
;* Procedura cekani - konstantni doba dana konstantou POCET
;*
zadne vstupni a vystupni parametry
;****************************************************************************************************
Cekej: mov
mov
WaitHi,#HIGH(POCET)+1; inicializace prodlevy
WaitLo,#LOW(POCET)+1
Znovu: nop
djnz WaitLo,Znovu
djnz WaitHi,Znovu
ret
end
48
Jak postupovat při vývoji programu
Nainstalovat IDE
Ověřit funkčnost na testovacím programu
Seznámit se s architekturou 8051 – lit.
program blikání LED, čtení tlačítka, modifikace blikání podle tlačítka
možno plně ověřit pomocí simulátoru
simulace výstupu – indikace stavu P1.x (P1.7 až P1.4)
simulace vstupu – zaškrtnutím stavu vstupu na P1.x (P1.3 až P1.0)
AT89C2051 – příprav a programu, překlad, „napálení“ do vnitřní paměti
Flash. program – blikání LED podle vstupu – tlačítko.
49
Dva způsoby tvorby programu
A) Základní program bez využití
symbolů a symbolických adres
B) Program s využitím symbolů a
symbolických adres
MOV
Titlulek: MOV DPTR,# Txt_U
; Vypis uvodniho titulku
DPTR, 01C4h
; Vypis uvodniho titulku
ACALL 0294h
; volani programu pro vypis textu
MOV
3Fh ,# 00h
; vynulovani pocitadla bliknuti
SETB 90h.5
; zhasni LED - zapojene proti
Ucc
ACALL 018Eh ; cekej
CLR
90h.5
; rozsvit LED
CALL
Sendrss
; volani programu pro vypis textu
Start:
MOV Pruch, #00
;vynulovani pocitadla bliknuti
Aznovu:
SETB LED
; zhasni LED - zapojene proti Ucc
CALL Cekej
; cekej
; rozsvit LED
CLR LED
50
Srovnání variant tvorby programu
A) Základní program bez využití
symbolů a symbolických
adres
Programátor musí přehled o
umístění jednotlivých
proměnných, adresách , kam se
skáče,...
změna jednoho parametru nutnost přepisování ve více
místech programu
Komplikovaná modifikace
programu
B) Program s využitím symbolů a
symbolických adres
Snaha minimalizovat přímé číselné
konstatnty v těle programu, ale
nahradit je symbolickými
konstatntami.
Symbolická jména proměnných i
pevných konstatnt umístěných v
paměti.
Snadná modifikovatelnost
OPAK EQU 55H
....
MOV RO, # OPAK
DJNZ R0, ZAC
MOV R0, # 55H
DJNZ R0, ZAC
51
Symbol, symbolické adresy
•
•
•
•
•
Místo číselných adres a číselných konstant
symbolické adresy a symbolické konstanty.
Překladač dosadí příslušnou hodnotu symbolu podle zadání nebo
počitadla adres při překladu.
Symbol je jméno, které se definuje, aby reprezentovalo hodnotu,
textový blok, adresu nebo jméno registru.
Symboly mohou reprezentovat číselnou konstantu a výraz
Symboly začínají písmenem nebo spec znaky _, ? (nesmí začínat číslicí)
•
•
•
vyhodnocení symbolu 16 bitově
možno rozsah 0 až 65535 (bez znaménka)
nebo -32768 až +32767 dvojkový doplněk
•
52
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement