Você está na página 1de 46

Microprocessador 8051

Aula 01
Prof Afonso Ferreira Miguel

Sistemas Processados
Fundamentos de computao: (cont.)

Programa (Software): conjunto de instrues arranjadas


de forma organizada que apresenta funo especfica
(Ex: Programas Bsicos, Aplicativos, Utilitrios, etc.);
Firmware: Programa que est armazenado em memria
no voltil (ROM);
Hardware: partes eletrnicas de um microcomputador;
Microcontrolador: microcomputador integrado num nico
chip (microprocessador + perifricos);

Sistemas Processados
Perifricos

Circuitos acessrios ao computador que


realizam tarefas especficas;
Exemplos:

Timers;
CCP (Comparao, Captura e PWM);
Conversores Analgico-Digital e Digital-Analgico;
Portas de comunicao (USART, I2C, SPI, USB,
CAN,...).

Arquiteturas
von Neumann

Instrues e dados compartilham a mesma


unidade fsica de memria
Hamacher Computer Organization

BUS

Arquiteturas - von Neumann


uP

AX
BX
CX
DX
tempA
tempA
=0
Entrada A

tempB
Entrada B

Sada Z

IR=MOVAX,0

Memria

MOV
MOV AX,0
AX,0

IP =0

MOV BX,1
MOV
BX,1

MA =0

2 ADD
ADD AX,BX
AX,BX

MD=MOVAX,0

JMP
JMP 22

4
4
5

.
...
...
O

6
4
4
7

L
...
...
A

Inst.

Dados

Arquiteturas
Harvard

Instrues e dados so armazenados em


memrias diferentes
Heuring Computer Systems Disignd and Architecture

Vantagem: Instrues e dados podem ser acessados


simultaneamente, aumentando o desempenho!

Arquiteturas
BUS

Harvard

uP

IR=MOVAX,0

IP =0

tempA
tempA
=0

tempB

IP
CTRL
AX
BX

Entrada A

Entrada B

Sada Z

CX
DX
MA =0
MD=MOVAX,0

Memria
de
0 MOV
MOV AX,0
AX,0
Program
1 MOV
MOV BX,1
a BX,1

2 ADD
ADD AX,BX
AX,BX
3

Inst.

JMP 22
JMP

Memria
de Dados
0
4
4
1

.
...
...
O

2
4
4
3

L
...
...
A

Dados

Instruction Set
Definio: Conjunto de instrues que um

processador compreende;
Cada processador possui seu prprio

conjunto de instrues, inviabilizando, na


maioria dos casos, a portabilidade.

Instruction Set
Ciclo de execuo de uma instruo em

processadores seqenciais
Fetch 0

Fetch 1

Decod 0

Decod 1

Exec 0

Exec 1

Primeira instruo
Tempo perdido
entre uma
instruo e outra

...

Instruction Set
Pipeline de Instruo

Ciclo de execuo de uma instruo em


processadores seqenciais 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


instruo executada
imediatamente aps a outra.

Instruction Set
CISC

Complex Instruction Set Computing

Computao onde o nmero de instrues


muito grande;

RISC

Computao onde um nmero reduzido de


instrues esto disponveis.

Instruction Set
Consideraes sobre RISC e CISC

Uma nica instruo CISC pode equivaler a


vrias instrues RISC;
Uma instruo CISC precisa realizar passos
semelhantes aos realizados pelas RISC
equivalentes (no h ganho de desempenho);
CISC minimiza o nmero de acessos a
memria de programa;
RISC simplifica a decodificao de
instrues, deixando esta etapa mais rpida.

Instruction Set
Vantagens CISC:

Apesar do conjunto de instrues ser muito


grande, oferece um nmero maior de
instrues (ferramentas) ao programador
Assembly;
Menor quantidade de instrues so
necessrias para desenvolver um programa
(programas ocupam menos memria).

Instruction Set
Vantagens RISC:

Etapa de decodificao to simples que pode,


em alguns casos, ser eliminada;
Com um nmero menor de instrues, os
parmetros destas podem ser agregados no
opcode (cdigo de mquina de uma
instruo), simplificando inclusive o FETCH.
Simplificao dos circuitos eletrnicos.

Quem melhor?

RISC x CISC

Microcontrolador 8051 (MCS-51)

Famlia INTEL MSC-51 CISC/von Neumann

Membro original o 8051;


CPU de 8 bits otimizada para aplicaes de controle;
Poderosa capacidade de processamento booleano,
incluindo lgica individual de bits;
64 Kbytes de endereamento de memria de
programa;
64 Kbytes de endereamento de memria de dados;
4 Kbytes de memria de programa interna.

Microcontrolador 8051 (MCS-51)


Famlia INTEL MSC-51

128 bytes de memria RAM de dados interna;


32 linhas de I/O bidirecionais endereveis
individualmente;
2 Timers/Contadores de 16 bits;
5 entradas de interrupes (3 internas e 2
externas) com 2 nveis 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

UART

Industry Standard

8032/52

NMOS

8K

256

40

UART

Industry Standard

8XC751

CEPROM 2K

64

24

2+3/8

I2C

24 Pin Skinny DIP

8XC752

CEPROM 2K

64

28

2+5/8

I2C

8-bit A/D,PWM

8XC31/51

CEPROM 4K

128

40

UART

20,24, 30MHz

8XCL410

SACMOS 4K

128

40

I2C

LowVolt/Power (1.8 volts)

80/3C851

EEPROM 4K

128

40

UART

256 EEPROM

8XC550

CEPROM 4K

128

40

UART

8-bit A/D, WD

8XC451

CEPROM 4K

128

68

UART

7 I/O Ports

8XC652

CEPROM 8K

256

40

UART,I2C

8K ROM, I2C Serial Bus

8XC52

CEPROM 8K

256

40

UART

Industry Standard

8XC053/054

CEPROM 8K/16k 192

42

TV Display (OSD), D/A

8XC562

CEPROM 8K

256

68

UART

8-bit A/D, PWM, WD, T2

8XC552

CEPROM 8K

256

68

UART,I2C

10-bit A/D, PWM, WD, T2

8XC654

CEPROM 16K

256

40

UART,I2C

16K ROM, I2C Serial Bus

8XC524

CEPROM 16K

512

40

UART, I2C 3

16K, 512 bytes, WD

8XC528

CEPROM 32K

512

40

UART,I2C

32K ROM, 512 RAM, WD

--

Microcontrolador 8051 (MCS-51)

Pinagens

Microcontrolador 8051 (MCS-51)

Organizao
de Memria

Microcontrolador 8051 (MCS-51)

Memria de programa Externa

Microcontrolador 8051 (MCS-51)

Memria de dados Interna


FFh
Acessvel somente por
endereamento indireto (128 bytes
superiores)
80h
7Fh
Acessvel por endereamento
direto e indireto (128bytes
inferiores)
00h

FFh
Acessvel por endereamento
direto (SFRs: Portes, Bits de
controles dos Timers,
Acumulador,etc)
80h
80h

Microcontrolador 8051 (MCS-51)

128 bytes
inferiores
da RAM

7Fh
30h
2Fh

Endereamento por byte


Enderevel
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) aps
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

(PSW) = C

AC F0 RS1 RS0 OV

RS1 RS0 Banco Selecionado Registradores Selecionados Endereos de Memria 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 Funes
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*

Endereo
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 Interrupes
Priorizador de Interrupes
Controlador da Comunicao Serial
Buffer de Dados Serial
Palavra de Status de Programa
Controle de Potncia
Controle do Timer/Contador
Modo de operao 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
Funes
Especiais
(SFRs)

Microcontrolador 8051 (MCS-51)

Modos de endereamento

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 endereamento

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

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

1/1

Microcontrolador 8051 (MCS-51)


Instruction Set : Logic
Mnemonic

Operands

Bytes/Cycles

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

1/1

CPL

1/1

bit

2/1

Microcontrolador 8051 (MCS-51)


Instruction Set : Logic (cont'd)
Mnemonic

Operands

Bytes/Cycles

RL

1/1

RLC

1/1

RR

1/1

RRC

1/1

SWAP

1/1

SETB

1/1

CLR

bit

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 aps
o RESET

REGISTR
O

VALOR

REGISTRO

VALOR

PC

0000 H

TMOD

00 H

ACC

00 H

TCON

00 H

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 tpico

Microcontrolador 8051 (MCS-51)

Ligando o 8051 Clock