Microprocessador 8051
Aula 01
Prof Afonso Ferreira Miguel
Sistemas Processados
Fundamentos de computação: (cont.)

Programa (Software): conjunto de instruções arranjadas
de forma organizada que apresenta função específica
(Ex: Programas Básicos, Aplicativos, Utilitários, etc.);
 Firmware: Programa que está armazenado em memória
não volátil (ROM);
 Hardware: partes eletrônicas de um microcomputador;
 Microcontrolador: microcomputador integrado num único
chip (microprocessador + periféricos);
Sistemas Processados
 Periféricos


Circuitos acessórios ao computador que
realizam tarefas específicas;
Exemplos:
•
•
•
•
Timers;
CCP (Comparação, Captura e PWM);
Conversores Analógico-Digital e Digital-Analógico;
Portas de comunicação (USART, I2C, SPI, USB,
CAN,...).
Arquiteturas
 von
Neumann
“Instruções e dados compartilham a mesma
unidade física de memória”
Hamacher – Computer Organization
Arquiteturas - von Neumann
BUS
uP
AX
BX
CX
DX
tempA
tempA
=0
tempB
A
Entrada A
Entrada B
Saída Z
Memória
IR=MOV AX,0
0
MOV AX,0
MOV
AX,0
IP = 0
1
MOV BX,1
MOV
BX,1
MA = 0
MD=MOV AX,0
2 ADD AX,BX
3
JMP 22
JMP
4
54
.
...
...
O
46
74
L
...
...
A
Inst.
Dados
Arquiteturas
 Harvard
“Instruções e dados são armazenados em
memórias diferentes”
Heuring – Computer Systems Disignd and Architecture
Vantagem: Instruções e dados podem ser acessados
simultaneamente, aumentando o desempenho!
Arquiteturas
Memória de
Programa
 Harvard
BUS
uP
IR=MOV AX,0
IP = 0
IP CTRL
tempA
tempA
=0
tempB
Entrada B
Saída Z
MOV AX,0
MOV
AX,0
1
MOV BX,1
MOV
BX,1
2 ADD AX,BX
3
Inst.
JMP 22
JMP
AX
BX
Entrada A
0
CX
DX
MA = 0
MD=MOV AX,0
Memória de
Dados
40
14
.
...
...
O
42
34
L
...
...
A
Dados
Instruction Set
 Definição:
Conjunto de instruções que um
processador compreende;
 Cada
processador possui seu próprio
conjunto de instruções, inviabilizando, na
maioria dos casos, a portabilidade.
Instruction Set
 Ciclo
de execução de uma instrução em
processadores seqüenciais
Fetch 0
...
Fetch 1
Decod 0
Decod 1
Exec 0
Exec 1
Primeira instrução
Tempo perdido
entre uma
instrução e outra
Instruction Set
 Pipeline

de Instrução
Ciclo de execução de uma instrução em
processadores seqüenciais com Pipeline.
Fetch 0
Fetch 1
Fetch 2
Fetch 3
Dec 0
Dec 1
Dec 2
Dec 3
Exec 0
Exec 1
Exec 2
...
Exec 3
Na maioria das vezes, uma
instrução é executada
imediatamente após a outra.
Instruction Set
 CISC

– Complex Instruction Set Computing
Computação onde o número de instruções é
muito grande;
 RISC

Computação onde um número reduzido de
instruções estão disponíveis.
Instruction Set
 Considerações




sobre RISC e CISC
Uma única instrução CISC pode equivaler a
várias instruções RISC;
Uma instrução CISC precisa realizar passos
semelhantes aos realizados pelas RISC
equivalentes (não há ganho de desempenho);
CISC minimiza o número de acessos a
memória de programa;
RISC simplifica a decodificação de
instruções, deixando esta etapa mais rápida.
Instruction Set
 Vantagens


CISC:
Apesar do conjunto de instruções ser muito
grande, oferece um número maior de
instruções (“ferramentas”) ao programador
Assembly;
Menor quantidade de instruções são
necessárias para desenvolver um programa
(programas ocupam menos memória).
Instruction Set
 Vantagens



RISC:
Etapa de decodificação tão simples que pode,
em alguns casos, ser eliminada;
Com um número menor de instruções, os
parâmetros destas podem ser agregados no
opcode (código de máquina de uma
instrução), simplificando inclusive o FETCH.
Simplificação dos circuitos eletrônicos.
Quem é melhor?
RISC x CISC
Microcontrolador 8051 (MCS-51)

Família INTEL MSC-51 – CISC/von Neumann






Membro original é o 8051;
CPU de 8 bits otimizada para aplicações de controle;
Poderosa capacidade de processamento booleano,
incluindo lógica individual de bits;
64 Kbytes de endereçamento de memória de
programa;
64 Kbytes de endereçamento de memória de dados;
4 Kbytes de memória de programa interna.
Microcontrolador 8051 (MCS-51)
 Família





INTEL MSC-51
128 bytes de memória RAM de dados interna;
32 linhas de I/O bidirecionais endereçáveis
individualmente;
2 Timers/Contadores de 16 bits;
5 entradas de interrupções (3 internas e 2
externas) com 2 níveis de prioridade;
1 oscilador interno de clock.
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Philips/Signetics 8051 Family
Product Name Process ROM
RAM
Pins 8-bit Ports Serial I/O Timers
Special
8031/51
NMOS
4K
128
40
4
UART
2
Industry Standard
8032/52
NMOS
8K
256
40
4
UART
3
Industry Standard
8XC751
CEPROM 2K
64
24
2+3/8
I2C
1
24 Pin Skinny DIP
8XC752
CEPROM 2K
64
28
2+5/8
I2C
1
8-bit A/D,PWM
8XC31/51
CEPROM 4K
128
40
4
UART
2
20,24, 30MHz
8XCL410
SACMOS 4K
128
40
4
I2C
2
LowVolt/Power (1.8 volts)
80/3C851
EEPROM 4K
128
40
4
UART
2
256 EEPROM
8XC550
CEPROM 4K
128
40
4
UART
2
8-bit A/D, WD
8XC451
CEPROM 4K
128
68
7
UART
2
7 I/O Ports
8XC652
CEPROM 8K
256
40
4
UART,I2C
2
8K ROM, I2C Serial Bus
8XC52
CEPROM 8K
256
40
4
UART
3
Industry Standard
8XC053/054
CEPROM 8K/16k 192
42
4
2
TV Display (OSD), D/A
8XC562
CEPROM 8K
256
68
6
UART
4
8-bit A/D, PWM, WD, T2
8XC552
CEPROM 8K
256
68
6
UART,I2C
4
10-bit A/D, PWM, WD, T2
8XC654
CEPROM 16K
256
40
4
UART,I2C
2
16K ROM, I2C Serial Bus
8XC524
CEPROM 16K
512
40
4
UART, I2C 3
16K, 512 bytes, WD
8XC528
CEPROM 32K
512
40
4
UART,I2C
32K ROM, 512 RAM, WD
--
3
Microcontrolador 8051 (MCS-51)

Pinagens
Microcontrolador 8051 (MCS-51)

Organização
de Memória
Microcontrolador 8051 (MCS-51)

Memória de programa Externa
Microcontrolador 8051 (MCS-51)

Memória de dados Interna
FFh
Acessível somente por
endereçamento indireto (128 bytes
superiores)
80h
7Fh
Acessível por endereçamento
direto e indireto (128bytes
inferiores)
00h
FFh
Acessível por endereçamento
direto (SFRs: Portes, Bits de
controles dos Timers,
Acumulador, etc)
80h
80h
Microcontrolador 8051 (MCS-51)

128 bytes
inferiores
da RAM
7Fh
30h
2Fh
Endereçamento por byte
Endereçável
por bit e/ou byte
20h
1Fh
R7
Banco 3
18h
17h
R0
R7
Banco 2
Valor inicial do SP
(Stack Pointer:
ponteiro de pilha) após
um sinal de Reset.
10h
0Fh
R0
R7
Banco 1
08h
07h
R0
R7
Banco 0
00Hh
R0
Microcontrolador 8051 (MCS-51)
 Program
Status Word
bits
7
(PSW) =
C
6
5
4
3
2
AC F0 RS1 RS0 OV
1
0
-
P
RS1 RS0 Banco Selecionado Registradores Selecionados Endereços de Memória Selecionados
0
0
0
R0 a R7
00h a 07h
0
1
1
R0 a R7
08h a 0Fh
1
0
2
R0 a R7
10h a 17h
1
1
3
R0 a R7
18h a 1Fh
Microcontrolador 8051 (MCS-51)

Registradores
de Funções
Especiais
(SFRs)
Registradores
A ou ACC
B*
DPL
DPH
IE*
IP
SCON*
SBUF
PSW*
PCON
TCON*
TMOD
TH0
TL0
TH1
TL1
P0*
P1*
P2*
P3*
Endereço
E0h
F0h
82h
83h
A8h
B8h
98h
99h
D0h
87h
88h
89h
8Ch
8Ah
8Dh
8Bh
80h
90h
A0h
B0h
Nome dos Registradores
Acumulador
Registrador B
Byte menos significativo do Ponteiro de Dados
Byte mais significativo do Ponteiro de Dados
Habilitador de Interrupções
Priorizador de Interrupções
Controlador da Comunicação Serial
Buffer de Dados Serial
Palavra de Status de Programa
Controle de Potência
Controle do Timer/Contador
Modo de operação de Timer/Contador
Byte mais significativo do Timer/Contador 0
Byte menos significativo do Timer/Contador 0
Byte mais significativo do Timer/Contador 1
Byte menos significativo do Timer/Contador 1
Porte 0
Porte 1
Porte 2
Porte 3
Microcontrolador 8051 (MCS-51)

Regs de
Funções
Especiais
(SFRs)
Microcontrolador 8051 (MCS-51)

Modos de endereçamento



Particular On-chip Resources: This includes the
Accumulator (A), the Stack Pointer (SP), the Data
Pointer (DP), the Program Counter (PC), and the
Carry (C). Other On-chip Registers are Memorymapped while these have special Op-codes.
Immediate operands: The # sign is the designator.
These are 8-bits except for DPTR contents (16-bits).
Register operands: Designated as Rn, where n is
0..7. One of the four Register Banks is used (PSW
selected).
Microcontrolador 8051 (MCS-51)
 Modos


de endereçamento
Direct Operands: From 00 to FF Hex,
specifies one of the internal data addresses.
Indirect Address: Designated as @Ri, where
i is 0 or 1, uses the contents of R0 or R1 in
the selected Register Bank to specify the
address. Other form is @A, using
Accumulator contents.
Microcontrolador 8051 (MCS-51)
Instruction Set : Arithmetic
Mnemonics
Operands
Bytes/Cycles
ADD
A, Rn
1/1
ADDC
A, direct
2/1
SUBB
A, @Ri
1/1
A, #data
2/1
INC
A
1/1
DEC
Rn
1/1
direct
2/1
@Ri
1/1
INC
DPTR
1/2
MUL
AB
1/4
DIV
AB
1/4
DA
A
1/1
Microcontrolador 8051 (MCS-51)
Instruction Set : Logic
Mnemonic
Operands
ANL
A, Rn
1/1
ORL
A, direct
2/1
XRL
A, @Ri
1/1
A, #data
2/1
direct, A
2/1
direct, #data
3/2
C, bit
2/2
C, /bit
2/2
CLR
A
1/1
CPL
C
1/1
bit
2/1
Bytes/Cycles
Microcontrolador 8051 (MCS-51)
Instruction Set : Logic (cont'd)
Mnemonic
Operands
RL
A
1/1
RLC
A
1/1
RR
A
1/1
RRC
A
1/1
SWAP
A
1/1
SETB
C
1/1
CLR
bit
Bytes/Cycles
CPL
2/1
Microcontrolador 8051 (MCS-51)
Instruction Set : Data Transfer
Mnemonic
Operands
Bytes/Cycles
MOV
A, Rn
1/1
A, direct
2/1
A, @Ri
1/1
A, #data
2/1
Rn, A
1/1
Rn , direct
2/2
Rn, #data
2/1
direct, A
2/1
direct, Rn
2/2
direct, direct
3/2
direct, @Ri
2/2
direct, #data
3/2
Microcontrolador 8051 (MCS-51)
Instruction Set : Data Transfer (cont'd)
Mnemonic
Operands
MOV
@Ri, A
1/1
@Ri, direct
2/2
@Ri, #data
2/1
DPTR, #data16
3/2
C, bit
2/1
bit, C
2/2
A,@DPTR
1/2
@DPTR,A
1/2
A,@Ri
1/2
@Ri,A
1/2
MOVX
Bytes/Cycles
Microcontrolador 8051 (MCS-51)
Instruction Set: Data Transfer
Mnemonic
Operands
MOVC
A, @A+DPTR
1/2
A, @A+PC
1/2
PUSH
direct
2/2
POP
direct
2/2
XCH
A, Rn
1/1
A, direct
2/1
A, @Ri
1/1
A, @Ri
1/1
XCHD
(cont'd)
Bytes/Cycles
Microcontrolador 8051 (MCS-51)
Instruction Set : Branching
Mnemonic
Operands
Bytes/Cycles
LCALL
addr16
3/2
ACALL
addr11
2/2
RET
-
1/2
RETI
-
1/2
LJMP
addr16
3/2
AJMP
addr11
2/2
SJMP
rel
2/2
JMP
@A+DPTR
1/2
JZ
rel
2/2
JNZ
rel
2/2
Microcontrolador 8051 (MCS-51)
Instruction Set : Branching
Mnemonic
Operands
CJNE
A, direct, rel
3/2
A, #data, rel
3/2
Rn, #data, rel
3/2
@Ri,#data,rel
3/2
Rn, rel
2/2
direct, rel
3/2
NOP
-
1/1
JC
rel
2/2
JNC
rel
2/2
JB
bit, rel
3/2
JNB
bit, rel
3/2
JBC
bit, rel
3/2
DJNZ
(cont'd)
Bytes/Cycles
Microcontrolador 8051 (MCS-51)

Ferramentas de desenvolvimento IAR
Microcontrolador 8051 (MCS-51)

Portas de IO



Four 8-bit I/O ports;
Most have alternate functions;
Quasi-bidirectional:
• Soft pull-up when port latch contains a
1. Can be used as inputs (30kohm
average pull-up).
Microcontrolador 8051 (MCS-51)

Porta P0

As an I/O port:
• No strong pull-up, outputs act as open drain.

As a multiplexed data bus:
•
•
•
•

Tristate bus with strong pull-ups.
8-bit instruction bus, strobed by PSEN.
Low byte of address bus, strobed by ALE.
8-bit data bus, strobed by WR and RD.
3.2 mA outputs (about 8 LS-TTL loads).
Microcontrolador 8051 (MCS-51)
 Porta

P1
As an I/O port:
• Standard quasi-bidirectional.

Alternate functions:
• Only on some derivatives.

1.6 mA outputs (about 4 LS-TTL loads).
Microcontrolador 8051 (MCS-51)
 Porta

P2
As an I/O port:
• Standard quasi-bidirectional.

Alternate functions:
• High byte of address bus for external program and
data memory accesses.

1.6 mA outputs (about 4 LS-TTL loads).
Microcontrolador 8051 (MCS-51)

Porta P3

As an I/O port:
• Standard quasi-bidirectional.

Alternate functions:
•
•
•
•

Serial I/O
- TXD, RXD
Timer clocks - T0, T1
Interrupts
- INT0, INT1
Data memory - RD, WR
1.6 mA outputs (about 4 LSTTL loads).
Microcontrolador 8051 (MCS-51)

Valores após
o RESET
REGISTRO
VALOR
REGISTRO
VALOR
PC
0000 H
TMOD
00 H
ACC
00 H
TCON
00 H
B
00 H
TH0
00 H
PSW
00H
TL0
00 H
SP
07 H
TH1
00 H
DPTR
0000 H
TL1
00 H
P0 a P3
FF H ou
11111111 B
SCON
00 H
IP
0XX00000 B
SBUF
indeterminado
IE
00 H
PCON (CMOS)
0XXX0000 B
Microcontrolador 8051 (MCS-51)

Ligando o 8051 – Circuito de RESET típico
Microcontrolador 8051 (MCS-51)

Ligando o 8051 – Clock
Download

Pegue aqui o PPT do 8051-Aula1