Author
buidieu
View
217
Download
0
Embed Size (px)
SEL-614 MICROPROCESSADORES E
APLICAES
Prof: Adilson Gonzaga
Microprocessador
Circuito integrado (chip) capaz de executar instrues.
HISTRICO
1971Intel Corporation lanou no mercado o microprocessador 4004(3.000 transistores )
O microprocessador um dispositivo lgico programvel em um nico
chip de silcio, concebido sob a tecnologia VLSI (circuito integrado em
alta escala).
Microprocessador
HISTRICO
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.
Unidades bsicas de um Microprocessador:
Unidade Lgica Aritmtica (ULA) - responsvel pela realizao das
operaes lgicas e aritmticas.
Microprocessador: parte principal de um microcomputador
executa instrues
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).
Memria de armazenamento de
programa (no
Unidade lgica e Aritmtica (ULA)
Unidade Central de Processamento
(CPU-Microprocessador)
Unidade de Memria
Unidade de Entrada e
Sada(IO)
ARQUITETURA DE MICROCOMPUTADORES
programa (no voltil)
Registradores
Unidade de Controle (UC)
Memria de armazenamento de
dados (voltil)
Entrada de Informao
Sada de Informaes
MICROPROCESSADORES E MICROCONTROLADORES
Microcomputador: computador digital com velocidade erecursos limitados, e tipicamente constitudo por:
unidade central de processamento CPU;
memria;
circuitos de entrada e sada. circuitos de entrada e sada.
Suas aplicaes so tambm limitadas quando comparadass de um computador de maior porte.
MICROPROCESSADORES E MICROCONTROLADORES
Microprocessador: geralmente implementado em um nicocomponente.
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 de uso geral
microcomputadores e controles lgicos de uso especficos
MICROPROCESSADORES E MICROCONTROLADORES
Microcontroladores: possuem em um nico componente:
a unidade central de processamento
memria (ROM e RAM);
perifricos dedicados (serial, paralela, timer, etc...).
1976 - 1o microcontrolador Intel 80481980 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.
perifricos dedicados (serial, paralela, timer, etc...).
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: 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 VCC RST
P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0
PO RT0
ENDEREOS (LOW)E
DADOS
XTAL1
XTAL2
ALE
EA
PSEN P1.7P1.6P1.5P1.4
POR
P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7
RxD TxD INT0INT1T0T1WRRD
FUNESSECUNDRIAS
PORT3
P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0
PORT2
ENDEREOS (HIGH)
P1.4P1.3P1.2P1.1P1.0
RT1
Diagrama em Blocos do 8051
Organizao da memria da famlia MCS-51
Memrias de dados e de programas separadas.
FFFFH
EXTERNA
FFFFH
MEMRIA DE PROGRAMA MEMRIA DE DADOS
(Read/Write)(Read only)
EXTERNA
000000
FFH
INTERNA
EA=0
INTERNAEXTERNA
EA=1
0000
PSEN RD WR
SFR
RAM
Mapeamento de memria de programa externa
Mapeamento completo ( 64 Kb externo )
Memria de Programa
O endereamento feito com 8 bits
Chips com 128 bytes de RAM no possuem a rea I (Apenas Endereamento Indireto)
APENAS
ENDEREAMENTO
INDIRETO
APENAS
ENDEREAMENTO
DIRETO
(SFR)
ENDEREAMENTO
DIRETO E
128b
ALTO
128b
7FH
80H
FFH
80H
FFH
I D
Memria de Dados Interna (RAM Interna)
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,...)).
INDIRETOBAIXO
00H A
Exemplos:
a. Escrever 0AAh no endereo 80h da RAM Interna (rea D)
MOV 80h,#0AAh
Memria de Dados Interna (RAM Interna)
APENAS
ENDEREAMENTO
INDIRETO
APENAS
ENDEREAMENTO
DIRETO
(SFR)
ENDEREAMENTO
DIRETO E
128b
ALTO
128b
BAIXO
7FH
8H:
FFH
80H
FFH
I D
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
INDIRETOBAIXO
00H A
Acesso atravs de endereo de 16 bits espao de endereo de 64K
bytes
espao todo indiretamente enderevel pelo ponteiro de dados DPTR.
Memria de Dados Externa
Instrues :
MOVX A,@DPTRMOVX @DPTR,A
a. Armazenar 3Fh na posio 34CBh da memria externa :
Acesso atravs de endereo de 16 bits
Exemplo :
Memria de Dados Externa
MOV DPTR,#34CBhMOV A,#3FhMOVX @DPTR,a
b. Ler o contedo da posio 13F4h da memria externa :
MOV DPTR,#13F4hMOVX A,@DPTR
Programao de Microprocessadores
Microprocessadores so Mquinas de Estado Seqenciais Sncronasque operam mediante a que operam mediante a execuo de uma seqncia de cdigos binrios armazenados em memria.
As ordens ou comandos compreendidos por um determinado Microprocessador, so INSTRUESseqencialmente armazenadas na Memria.
Ao conjunto de Instrues compreendidos por um determinado Microprocessador d-se o nome de 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 Mostram a seqncia de
execuo das Instrues.
Cada Bloco do Fluxograma possui apenas uma linha de Fluxo de Entrada e uma ou duas de
Bloco de Processo
Equivalem s Instrues que realizam alguma operao do tipo:- Movimento de Dados- Operao Aritmtica- Operao Lgica
Execute
de Entrada e uma ou duas de sada
Fluxograma
Bloco de Deciso
Equivale s Instrues que decidem sobre o Fluxo do
X = 0?
V
F
decidem sobre o Fluxo do Programa.
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 executar uma Sub-rotina armazenada em outro lugar da Memria.
Observe que quando a sub-rotina termina, o fluxo do programa continua normalmente.
Fluxograma
Incio
FIM
Bloco de Incio de Programa Bloco de Fim de Programa
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
Ler o dado da Memria
O programa ao lado deve Ler um Dado da memria, verificar se igual a zero. Se no for zero, da Memria
Dado = 0?
Parar
V
F
igual a zero. Se no for zero, continua em LOOP. Se for zero para o programa.
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
ADD A, RnSUBB A, direct
Instrues Aritmticas
Execute
ADD A, RnSUBB A, direct
INC A
DA A
DEC A
Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Processo
Instrues Lgicas
ANL A, Rn ORL A, direct
Execute
ANL A, Rn ORL A, direct
XRL A, #data
CLR A CPL A
RL A SWAP A
Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Processo
Instrues de Transferncia de Dados
MOV A, Rn MOVC A, @A+DPTR
Execute
MOV A, Rn
MOVX A,@DPTR
MOVC A, @A+DPTR
PUSH direct POP direct
XCH A, Rn
Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Deciso
Instrues de Desvio
X = 0?
V
F
JZ rel JNZ rel
CJNE A, direct, rel
JC rel JNC rel
JB bit, rel JNB bit, rel
DJNZ Rn, rel
Codificao Assembly do 8051 Instrues equivalentes ao Bloco de Processo Pr-definido
LCALL addr16
Instrues de Sub-Rotina
ACALL addr11LCALL addr16 ACALL addr11
RET
RETI
Codificao Assembly do 8051 Instrues equivalentes a Mudana de Fluxo
Instrues de Saltos
LJMP addr16 AJMP addr11LJMP addr16 AJMP addr11
SJMP rel
JMP @A+DPTR
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
Registrador A
ADD A,#30h
Registrador A
30h00 + 30h
Modos de Endereamento do 8051
00
Memria Registrador A Programa Operao
00 30+
ADD A,#30h
20 ADD A,#30h
Registrador A
30
30
Endereo
(hexa)
Contedo
(hexa)
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 ARegistrador A
00
Contedo do Endereo 30h
20
ADD A,30h
2000 + 20
Registrador A
Modos de Endereamento do 8051
00
Memria Registrador A Programa Operao
00 20+
ADD A,30h
ADD A,30h
Registrador A
20
2030
Endereo
(hexa)
Contedo
(hexa)
Modos de Endereamento do 8051
3. Endereamento Indireto
Opera sobre o dado cujo endereo est armazenado em um Registrador apontado na instruo
Exemplo: ADD A,@R0
Identificado atravs do sinal @
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 ARegistrador A
00
Contedo do Endereo 30h
20
ADD A,@R0
00 + 20
Registrador R0
30h20
Registrador A
Modos de Endereamento do 8051
00
Memria Registrador A Programa Operao
00 20+
ADD A,@R0
ADD A,@R0
Registrador A
20
2030
Endereo
(hexa)
Contedo
(hexa)
Registrador R0
30h
Exemplo de um Programa Assembly do 8051
Incio
Ler o dado da Memria
ORG 0
LOOP:
MOV A,30Hda Memria
Dado = 0?
Parar
V
F
MOV A,30H
CJNE A,#00,LOOP
AQUI: SJMP AQUI
Exemplo de um Programa Assembly do 8051
ORG 0
LOOP: MOV A,30H
CJNE A,#00,LOOP
AQUI: SJMP AQUI
Mnemnicos (Programa Assembly)
COMPILADOR
AQUI: SJMP AQUI
Cdigo Compilado (Opcode)
Exemplo de um Programa Assembly do 8051
Memria de Programa
E5
30
00
01 30
B4
00
FB
80
01
02
03
04
05
Endereo Contedo
06 FE