Você está na página 1de 45

SEL-614

MICROPROCESSADORES E
APLICAES

Prof:

Adilson Gonzaga

HISTRICO
Microprocessador
Circuito integrado (chip) capaz de executar instrues.

1971
Intel Corporation lanou no mercado o microprocessador 4004
(3.000 transistores )

HISTRICO
Microprocessador
O microprocessador um dispositivo lgico programvel em um nico
chip de silcio, concebido sob a tecnologia VLSI (circuito integrado em
alta escala).
Age sob o controle de um programa armazenado em memria,
executando operaes aritmticas, lgica booleana, tomadas de deciso,
alm de entrada e sada de dados, permitindo a comunicao com outros
dispositivos perifricos.

Microprocessador:

parte principal de um microcomputador


executa instrues

Unidades bsicas de um Microprocessador:


Unidade Lgica Aritmtica (ULA) - responsvel pela realizao das
operaes lgicas e aritmticas.
Unidade de Controle (UC) - responsvel pela decodificao e execuo das
instrues, fornecendo os sinais de temporizao adequados para as
diversas partes do processador e do prprio computador.
Registradores - armazenamento da Informao Binria (dados, endereos
e instrues).

ARQUITETURA DE MICROCOMPUTADORES

Unidade Central de
Processamento
(CPUMicroprocessador)

Unidade de
Memria

Unidade lgica e
Aritmtica (ULA)

Memria de
armazenamento de
programa (no
voltil)

Sada de
Informaes

Registradores

Unidade de
Controle (UC)

Unidade de
Entrada e
Sada
(IO)

Memria de
armazenamento de
dados (voltil)

Entrada de
Informao

MICROPROCESSADORES E MICROCONTROLADORES

Microcomputador: computador digital com velocidade e


recursos limitados, e tipicamente constitudo por:

unidade central de processamento CPU;

memria;

circuitos de entrada e sada.

Suas aplicaes so tambm limitadas quando comparadas


s de um computador de maior porte.

MICROPROCESSADORES E MICROCONTROLADORES
Microprocessador: geralmente implementado em um nico
componente.

unidade central de processamento CPU;

Mquina seqencial de uso geral, cujo comportamento no


tempo determinado por um programa externo colocado em
memria.

Associado a CIs perifricos, ele pode gerar:


microcomputadores e controles lgicos de
uso especficos
microcomputadores de uso geral

MICROPROCESSADORES E MICROCONTROLADORES
1976 - 1o microcontrolador Intel 8048
1980 Intel 8051

Microcontroladores: possuem em um nico


componente:

a unidade central de processamento

memria (ROM e RAM);

perifricos dedicados (serial, paralela, timer, etc...).

Os microcontroladores apresentam:
menor desempenho que os microprocessadores,
custo muito baixo (alguns dlares tipicamente),
destinados a aplicaes onde as dimenses, custo, tamanho e
consumo do produto so muito importantes.

 O 8051 membro da famlia MCS-51, e constitui o ncleo de todos os


dispositivos MCS-51

 um sistema de um chip nico,

que alm do microprocessador de 8

bits pode conter:


. Memria de Programa e Memria de Dados
. Portas de I/O
. Comunicao Serial
. Contadores/ Timers
. Lgica para Controle de Interrupo
. etc 0

Configurao dos pinos do 8051


VSS
XTAL1

XTAL2

EA
PSEN
ALE

FUNES
SECUNDRIAS

RxD
TxD
INT0
INT1
T0
T1
WR
RD

P
O
R
T
3

P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7

VCC

RST
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0

P
O
R
T
0

ENDEREOS (LOW)
E
DADOS

P
O
R
T
1

P
O
R
T
2

ENDEREOS (HIGH)

Diagrama em Blocos do 8051

Organizao da memria da famlia MCS-51


Memrias de dados e de programas separadas.
MEMRIA DE PROGRAMA

MEMRIA DE DADOS

(Read only)

(Read/Write)
FFFFH

FFFFH

EXTERNA
EXTERNA

INTERNA
FFH
SFR
EA=0

EA=1

EXTERNA

INTERNA

RAM
00

0000

0000
PSEN

RD

WR

Memria de Programa
Mapeamento de memria de programa externa
Mapeamento completo ( 64 Kb externo )

Memria de Dados Interna


(RAM Interna)
FFH

O endereamento feito com 8 bits


Chips com 128 bytes de RAM no possuem
a rea I (Apenas Endereamento Indireto)

FFH
APENAS

APENAS

128b

ENDEREAMENTO

ENDEREAMENTO

ALTO

INDIRETO

DIRETO

80H
7FH

(SFR)

80H

ENDEREAMENTO

128b

DIRETO E

BAIXO

INDIRETO

00H

rea A:

128 bytes inferiores (00h a 7Fh) , acessveis por endereamento direto e

indireto (existe em toda a famlia MCS-51)


rea D :

SFR (special function register) acessvel por endereamento direto (80h a

FFh) tambm existe em todos os membros da famlia MCS-51


rea I :

128 bytes superiores (80h a FFh acessvel somente por endereamento

indireto, s existe nos chips de 256 bytes de RAM interna (8032,8052,...)).

Memria de Dados Interna


(RAM Interna)
Exemplos:
FFH

a. Escrever 0AAh no
endereo 80h da RAM
Interna (rea D)

FFH
APENAS

APENAS

128b

ENDEREAMENTO

ENDEREAMENTO

ALTO

INDIRETO

DIRETO

8H:
7FH

MOV 80h,#0AAh

ENDEREAMENTO

128b

DIRETO E

BAIXO
00H

b. Escrever 0AAh no endereo 80h da RAM (rea


I de um microcontrolador com 256 bytes de RAM
interna)
MOV R0,#80h
MOV @R0,#0AAh

INDIRETO

(SFR)

80H

Memria de Dados Externa


Acesso atravs de endereo de 16 bits

espao de endereo de 64K


bytes

espao todo indiretamente


enderevel pelo ponteiro
de dados DPTR.

Instrues :
MOVX A,@DPTR
MOVX @DPTR,A

Memria de Dados Externa


Acesso atravs de endereo de 16 bits

Exemplo :

a. Armazenar 3Fh na posio 34CBh da memria externa :


MOV DPTR,#34CBh
MOV A,#3Fh
MOVX @DPTR,a
b. Ler o contedo da posio 13F4h da memria externa :
MOV DPTR,#13F4h
MOVX A,@DPTR

Programao de
Microprocessadores
Microprocessadores so
Mquinas de Estado
Seqenciais Sncronas
que operam mediante a
execuo de uma
seqncia de cdigos
binrios armazenados em
memria.

As ordens ou comandos compreendidos por um


determinado Microprocessador, so INSTRUES
seqencialmente armazenadas na Memria.
Ao conjunto de Instrues compreendidos por um
determinado Microprocessador d-se o nome de
INSTRUCTION SET.
Cada Microprocessador tem seu prprio Instruction Set que
em geral, diferente do Instruction Set de outro
Microprocessador de fabricantes diferentes.

Uma seqncia de Instrues do Instruction Set, armazenadas


na memria e que realiza alguma operao, recebe o nome de
PROGRAMA.

Cada Instruo do Microprocessador um cdigo binrio


formada em geral por um ou mais Bytes.
A cada cdigo binrio equivalente a uma Instruo est
associado um Mnemnico para facilitar a compreenso da
funo que a Instruo executa.
Ao conjunto de Instrues e seus Mnemnicos equivalentes
d-se o nome de LINGUAGEM ASSEMBLY.

Fluxograma
Para a documentao lgica de um Programa em Assembly
utiliza-se um Fluxograma ou Diagrama de Blocos.
Cada bloco do Fluxograma equivale a um sub-conjunto do
Instruction Set do Microprocessador.

O Fluxograma uma forma de se implementar


logicamente um programa, antes que o mesmo seja
codificado na Linguagem Assembly do
Microprocessador.

Fluxograma
Linhas de Fluxo do Programa

Bloco de Processo

Execute

Mostram a seqncia de
execuo das Instrues.
Cada Bloco do Fluxograma
possui apenas uma linha de Fluxo
de Entrada e uma ou duas de
sada

Equivalem s Instrues que


realizam alguma operao do tipo:
- Movimento de Dados
- Operao Aritmtica
- Operao Lgica

Fluxograma
Bloco de Deciso
Equivale s Instrues que
decidem sobre o Fluxo do
Programa.
F
X = 0?
V

Se a funo dentro do bloco


for Verdadeira(V) o programa
continua abaixo, se for
Falsa(F) o programa muda o
fluxo.

Fluxograma
Processo Pr-definido
Equivale s Instrues que mandam
executar uma Sub-rotina armazenada
em outro lugar da Memria.
Observe que quando a sub-rotina
termina, o fluxo do programa continua
normalmente.

Fluxograma
Bloco de Incio de Programa

Bloco de Fim de Programa

Incio
FIM

O Bloco de Incio de
Programa no equivale a uma
Instruo especfica do
Instruction SET.

O Bloco de FIM equivale a


uma instruo que termina o
Programa. chamado de FIM
LGICO do Programa.

Exemplo de Fluxograma de um
Programa de Microprocessador
Incio
O programa ao lado deve Ler um
Dado da memria, verificar se
igual a zero. Se no for zero,
continua em LOOP. Se for zero para
o programa.

Ler o dado
da Memria

Dado = 0?
F
V

Parar

Codificao Assembly
Para Codificar um Programa escrito atravs de um
Fluxograma, deve-se escolher o Microprocessador, ou
seja, conhecer seu Conjunto de Instrues.

Os Microcontroladores da famlia MCS-51 sero os


dispositivos a serem aplicados nesta disciplina.

Codificao Assembly do 8051


Instrues equivalentes
ao Bloco de Processo
Instrues Aritmticas

Execute

SUBB

A, direct

ADD

A, Rn

INC

DEC

DA

Codificao Assembly do 8051


Instrues equivalentes
ao Bloco de Processo
Instrues Lgicas
ANL

Execute

A, Rn

ORL

A, direct

XRL

A, #data

CLR

CPL

RL

SWAP

Codificao Assembly do 8051


Instrues equivalentes
ao Bloco de Processo
Instrues de Transferncia de Dados

Execute

MOV

A, Rn

MOVX

A,@DPTR

PUSH

direct

XCH

A, Rn

MOVC

POP

A, @A+DPTR

direct

Codificao Assembly do 8051


Instrues equivalentes
ao Bloco de Deciso
Instrues de Desvio
JZ

rel

CJNE

A, direct, rel

JC

rel

JNC

rel

JB

bit, rel

JNB

bit, rel

DJNZ

Rn, rel

F
X = 0?
V

JNZ

rel

Codificao Assembly do 8051


Instrues equivalentes
ao Bloco de Processo Prdefinido

Instrues de Sub-Rotina
LCALL
RET
RETI

addr16

ACALL

addr11

Codificao Assembly do 8051


Instrues equivalentes a
Mudana de Fluxo
Instrues de Saltos
LJMP

addr16

SJMP

rel

JMP

@A+DPTR

AJMP

addr11

Modos de Endereamento do
8051
1. Endereamento Imediato
Opera sobre o dado localizado na prpria instruo

Identificado atravs do sinal


Exemplo:

ADD A,#30h
O dado 30h somado ao Registrador A

Modos de Endereamento do
8051
1. Endereamento Imediato
ADD A,#30h
Registrador A
00

ADD A,#30h
Registrador A
00

+ 30h

30h

Modos de Endereamento do
8051
ADD A,#30h
Memria

Registrador A

Programa

00
30

20

Operao
00

30

ADD A,#30h

Registrador A
Endereo

Contedo

(hexa)

(hexa)

30

Modos de Endereamento do
8051
2. Endereamento Direto
Opera sobre o dado cujo endereo est na instruo

Exemplo:

ADD A,30h
O dado armazenado no endereo 30h
somado ao Registrador A

Modos de Endereamento do
8051
2. Endereamento Direto
ADD A,30h
Registrador A
ADD A,30h

00
Contedo do
Endereo 30h
20

Registrador A
00

+ 20

20

Modos de Endereamento do
8051
ADD A,30h
Memria

Registrador A

Programa

00
30

20

Operao
00

20

ADD A,30h

Registrador A
Endereo

Contedo

(hexa)

(hexa)

20

Modos de Endereamento do
8051
3. Endereamento Indireto
Opera sobre o dado cujo endereo est armazenado em
um Registrador apontado na instruo

Identificado atravs do sinal


Exemplo:

ADD A,@R0
O dado armazenado no endereo apontado pelo
Registrador R0 somado ao Registrador A

Modos de Endereamento do
8051
3. Endereamento Indireto
ADD A,@R0
Registrador A
00

ADD A,@R0

Registrador R0
30h
Contedo do
Endereo 30h
20

Registrador A
00

+ 20

20

Modos de Endereamento do
8051
ADD A,@R0
Memria

Registrador A

Programa

00
30

20

Operao
00

20

ADD A,@R0

Registrador R0
30h
Registrador A
Endereo

Contedo

(hexa)

(hexa)

20

Exemplo de um Programa
Assembly do 8051
Incio

ORG 0
LOOP:

Ler o dado
da Memria

MOV A,30H

Dado = 0?

CJNE A,#00,LOOP

F
V

Parar

AQUI:

SJMP AQUI

Exemplo de um Programa
Assembly do 8051
Mnemnicos (Programa Assembly)
ORG 0
LOOP:

MOV A,30H
CJNE A,#00,LOOP

AQUI:

SJMP AQUI

Cdigo Compilado (Opcode)

COMPILADOR

Exemplo de um Programa
Assembly do 8051
Memria de
Programa
00

E5

01

30

02

B4

03

00

04

FB

05

80

06
Endereo

FE
Contedo