Aula1 - Conceitos Básicos, Histórico, Arquitetura de Microprocessadores, Microcontrolador 8051, Programação.
Aula1 - Conceitos Básicos, Histórico, Arquitetura de Microprocessadores, Microcontrolador 8051, Programação.
Aula1 - Conceitos Básicos, Histórico, Arquitetura de Microprocessadores, Microcontrolador 8051, Programação.
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:
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
memria;
MICROPROCESSADORES E MICROCONTROLADORES
Microprocessador: geralmente implementado em um nico
componente.
MICROPROCESSADORES E MICROCONTROLADORES
1976 - 1o microcontrolador Intel 8048
1980 Intel 8051
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.
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)
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 )
FFH
APENAS
APENAS
128b
ENDEREAMENTO
ENDEREAMENTO
ALTO
INDIRETO
DIRETO
80H
7FH
(SFR)
80H
ENDEREAMENTO
128b
DIRETO E
BAIXO
INDIRETO
00H
rea A:
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
INDIRETO
(SFR)
80H
Instrues :
MOVX A,@DPTR
MOVX @DPTR,A
Exemplo :
Programao de
Microprocessadores
Microprocessadores so
Mquinas de Estado
Seqenciais Sncronas
que operam mediante a
execuo de uma
seqncia de cdigos
binrios armazenados em
memria.
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.
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
Fluxograma
Bloco de Deciso
Equivale s Instrues que
decidem sobre o Fluxo do
Programa.
F
X = 0?
V
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
Incio
FIM
O Bloco de Incio de
Programa no equivale a uma
Instruo especfica do
Instruction SET.
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.
Execute
SUBB
A, direct
ADD
A, Rn
INC
DEC
DA
Execute
A, Rn
ORL
A, direct
XRL
A, #data
CLR
CPL
RL
SWAP
Execute
MOV
A, Rn
MOVX
A,@DPTR
PUSH
direct
XCH
A, Rn
MOVC
POP
A, @A+DPTR
direct
rel
CJNE
A, direct, rel
JC
rel
JNC
rel
JB
bit, rel
JNB
bit, rel
DJNZ
Rn, rel
F
X = 0?
V
JNZ
rel
Instrues de Sub-Rotina
LCALL
RET
RETI
addr16
ACALL
addr11
addr16
SJMP
rel
JMP
@A+DPTR
AJMP
addr11
Modos de Endereamento do
8051
1. Endereamento Imediato
Opera sobre o dado localizado na prpria instruo
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
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
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