1
Arquitetura 8051
Microcontroladores 8051
José Carlos Barbosa
(Touca)
UPE – Poli
IFPE
2
Agenda
Características do Microcontrolador 8051
Arquitetura 8051
Memória interna
Área de RAM
Clock e Reset
Temporização
MICROCONTROLADORES E SUAS APLICAÇÕES
Microprocessador
É um dispositivo eletrônico capaz de
executar tarefas especificas gravadas em
sua memória de código.
Estes dispositivos podem usar alguns
circuitos para fazer interface com o
mundo real para executar determinada
tarefa.
MICROCONTROLADORES E SUAS APLICAÇÕES
Arquitetura Simplificada
CPU e seus
elementos
básicos: RAM,
ROM, periféricos
e fonte de
alimentação.
CPU
ROM
RAM
Circuitos de
Interface
O
S
C
I
L
A
D
O
R
R
E
S
E
T
“BUS” DE ENDEREÇOS
“BUS” de Dados
Controle
Auxiliar
Mundo interior do microprocessador
(Mp)
MICROCONTROLADORES E SUAS APLICAÇÕES
Arquitetura
Vias de controle de endereço – Serve
para o Mp selecionar qual posição de
memória ou periférico deseja se
comunicar.
Vias de controle auxiliar – permitir que o
Mp acione qual elemento deseja se
comunicar.
Ex: enquanto se comunica com a RAM deixa a ROM
desligada.
MICROCONTROLADORES E SUAS APLICAÇÕES
Vias I/O –
São as portas que
permitem a comunicação com o
mundo exterior.
CPU – É o “cérebro” do chip e
pode estabelece comunicação com
todas as vias seguindo as diretivas
gravadas na ROM.
MICROCONTROLADORES E SUAS APLICAÇÕES
Observações
Oscilador – É o “pulso” da CPU que
permite que o microcontrolador
realize suas tarefas de maneira
sincronizada e com velocidade
predefinida.
Reset e Interrupções– São tipo de
interrupções que serão tratada mais
tarde.
MICROCONTROLADORES E SUAS APLICAÇÕES
Diferença entre microcontrolador e
microprocessador
Microprocessador – Ele é constituído
da CPU (ULA, program counter,
registradores e etc).
Microcontrolador – Contém um Mp,
9
Características do 8051
8051 Introduzido no mercado pela Intel no início da
década de 80 (1981)
Atualmente produzido por várias companhias em
muitos varientes
É o microcontrolador mais frequente (produção e
utilização) – (40% do mercado)
Microcontrolador de 8 bits
10
Microcontroladores e Fabricantes
•Atmel
•ARM
•Intel
•8bit
•8XC42
•MCS48
•MCS51
•8xC251
•16bit
•MCS96
•MXS296
•National Semiconductor
•COP8
•Microchip
•12bit instruction PIC
•14bit instruction PIC
•PIC16F84
•16bit instruction PIC
•NEC
•Motorola
•8bit
•68HC05
•68HC08
•68HC11
•16bit
•68HC12
•68HC16
•32bit
•683xx
•Texas Instruments
•TMS370
•MSP430
•Zilog
•Z8
•Z86E02
11
8051
Part Number
Fabricante
ROM
RAM
Pinos I/O
Timers
Interrupções
Vcc
Package
8051
Intel
4K
128
32
2
6
5v
40
8031
Intel
128
32
2
6
5v
40
8751
Intel
4K
128
32
2
6
5v
40
8052
Intel
8K
256
32
3
8
5v
40
AT89C51
Atmel
4K
128
32
2
6
5v
40
AT89C1051
Atmel
1K
64
15
1
3
3v
20
AT89C2051
Atmel
2K
128
15
2
6
3v
20
DS50008
Dallas
8K
128
32
2
6
3v
40
DS5000T8
Dallas
32K
128
32
2
6
3v
40
12
Arquitetura 8051 Standard
CPU CISC de 8 bits (8 bit Data bus, 16 bit Address bus)
ULA 8 bits
Registradores 8 bits
4Kbytes de ROM de programa
ROM => 8051
EPROM => 8751
ROMLESS => 8031
FLASH => AT89C51 (Atmel)
256 bytes de SRAM
128 bytes de SFRs
128 bytes de usuário+pilha
64 kbytes de ROM externa
64 kbytes de RAM externa
13
Arquitetura 8051 Standard
Periféricos embarcados
2 Timers de 16 bits com 4 modos funcionais
4 ports paralelos
1 Canal de comunicação serial
5 fontes de interrupção independentes
2 externas
2 timers
1 canal serial
Set de instruções fortemente voltado para controle
112 instruções básicas
Instruções aritméticas;
Instruções lógicas
Instruções movimentação
Instruções saltos e desvios
Instruções controle interno
14
Pinagem 8051
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
(RXD)P3.0
(TXD)P3.1
(T0)P3.4
(T1)P3.5
XTAL2
XTAL1
GND
(INT0)P3.2
(INT1)P3.3
(RD)P3.7
(WR)P3.6
Vcc
P0.0(AD0
)P0.1(AD1)
P0.2(AD2
)P0.3(AD3)
P0.4(AD4)
P0.5(AD5)
P0.6(AD6)
P0.7(AD7)
EA/VPP
ALE/PROG
PSEN
P2.7(A15)
P2.6(A14
)P2.5(A13
)P2.4(A12
)P2.3(A11
)P2.2(A10)
P2.1(A9)
P2.0(A8)
8051
8031
8751
AT89C51
15
Pinagem 8051
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.0
P2.0
P2.0
P2.0
P2.0
P2.0
P2.0
P1.0
P1.0
P1.0
P1.0
P1.0
P1.0
P1.0
P1.0
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RST
XTAL1
XTAL2
Vcc
GND
PSEN
EA/VPP
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
A8
A9
A10
A11
A12
A13
A14
A15
RXD
TXD
INT0
INT1
T0
T1
WR
RD
ALE/PRG
PORT 0
PORT 2
PORT 1
PORT 3
16
CPU
Onchip
RAM
Onchip
ROM for
program
code
4 I/O Ports
Timer 0
Serial
Port
OSC
Interrupt
Control
External interrupts
Timer 1
Timer/Counter
Bus
Control
TxD RxD
P0 P1 P2 P3
Counter
Inputs
Arquitetura Microcontrolador 8051
17
ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0
XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P
18
ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0
XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P
ROM
19
ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0
XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P
RAM
Usuário
SFRs
20
ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0
XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P
ULA
21
ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0
XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P
PORTS
22
ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0
XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P
Decodificação e
controle
23
ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P ACC B IP IE SBUF SCON TH1 TL1 TH0 TL0 TMOD TCON DPH DPL SP BYTE ENDEREÇÁVEL BIT e BYTE ENDEREÇÁVEL BANCO REGISTRADORES DRIVERS R A M D E C O D E R S FR ’s D E C O D E R CY ROTATE CONTROL INTERRUPT CONTROL SERIAL PORT TIMER CONTROL PARITY P CY, AC, OV U LA PROGRAM CONTROL PCH PCL CONTROL PLA CONTROL ENGINE INSTRUCTION DECODER CONTROL OSC & TIMING CIRCUITRY P1 P3 P R O G R A M M E M O R Y A D D R E S S D E C O D E R DRIVERS P2 P0
XTAL1 XTAL2 EA ALE PSEN P1.0 – P1.7 P3.0 – P3.7 P2.0 – P2.7 P0.0 – P0.7 RST VCC GND 4K x 8 EPROM (8751) ROM MASK (8051) ROMLESS (8031) FLASH (AT89C51) AC F0 RS1 RS0 OV P