1) – Obter um do conjunto de instruções do 8051.

Propaganda
www.mackenzie.com.br
APOSTILA
MICROPROCESSADORES
PRIMEIRO SEMESTRE 2004
PROF. IVAIR REIS N. ABREU
www.ivair.com.br
Apostila de Microprocessadores
Ivair Reis N. Abreu
ÍNDICE
PLANEJAMENTO DIDÁTICO
4
1) - INTRODUÇÃO:
6
1.1) - Sistema Programável:
6
1.2) - Sistemas de Numeração:
6
1.3) - Estrutura de um microcomputador:
1.3.1) - Unidade Central de Processamento:
1.3.2) - Memória:
1.3.3) - Periféricos:
1.3.4) - Barramentos:
7
7
8
8
9
1.4) - Sinais envolvidos na escrita/leitura de dados na memória e periféricos:
9
1.5) - Arquitetura de um microprocessador:
10
1.6) - Conceito básicos:
1.6.1) - Temporização das Instruções - Ciclo de Instrução:
1.6.2) - Circuito de Inicialização:
1.6.3) - Interrupções:
1.6.4) - Acesso direto à memória (D.M.A):
1.6.5) - Multiplexação de sinais em microprocessadores:
1.6.6) – Sincronização de Dispositivos Lentos:
14
14
15
17
19
19
20
1.7) - Sistema Mínimo com o microprocessador 8085
1.7.1) - Principais características do 8085:
1.7.2) - Análise da arquitetura interna e pinagens:
1.7.3) - Sistema Mínimo com o 8085:
1.7.4) – Análise de 1 ciclo de temporização:
22
22
22
24
26
2.1) - Periféricos Paralelos:
2.1.1) - Utilização dos "latchs" como interface de saída:
2.1.2) - Utilização dos "latchs" como interface de entrada:
27
27
27
2.2) - Quadro comparativo entre Microprocessadores / Microcontroladores
30
2.3) - Arquitetura do Microcontrolador 8051:
2.3.1) - Descrição da pinagem:
2.3.2) - Descrição das funções internas:
30
31
32
2.4) - Sistema Mínimo com o 8051:
36
2.5) - Sistema Mínimo com o 8031 (ROMLESS):
36
3) - LINGUAGEM ASSEMBLER
2
39
3.1) - Introdução:
39
3.2) - Estrutura e diretivas da Linguagem Assembler:
40
Apostila de Microprocessadores
Ivair Reis N. Abreu
3.3) - Códigos de operação do microcontrolador 8051:
3.3.1) - Instruções de transferência de informação:
3.3.2) - Instruções Aritméticas:
3.3.3) - Instruções Lógicas:
41
41
44
45
3.4) - Exercícios de Linguagem Assembler do 8051:
49
3.5) - Projetos com o 8051:
50
3.5) - Projetos com o 8051:
51
4) - DISPLAY LCD PROGRAMÁVEL
52
4.1) - Introdução:
52
4.2) - Sistema mínimo com o display L.C.D. :
53
4.3) - Principais comandos utilizados:
53
4.4) - Escrita de dados no display:
56
4.5) - Exercícios:
56
5) - SISTEMA DE TEMPORIZAÇÃO E INTERRUPÇÃO DO 8051
57
5.1) - Sistema de Interrupção:
57
5.2) - Exercícios
57
5.3) - Aplicação de interrupção externa -> Sistema de Leitura direta de teclas.
58
5.4) - Exercício
59
5.5) - Sistema de temporização:
60
5.6) - Exercícios
61
7) - SISTEMA DE VARREDURA DE TECLADO/DISPLAY.
7.1) - Exercícios
8) – CONVERSORES ANALÓGICO / DIGITAIS E DIGITAIS / ANALÓGICOS
63
65
66
8.1) - Introdução:
66
8.2) – Conversor A/D ADC 0808
67
8.3) - Exercícios
67
Revisão:05/02/2004
3
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 1
Planejamento Didático
PLANEJAMENTO DIDÁTICO PEDAGÓGICO DA DISCIPLINA MICROPROCESSADORES
PRIMEIRO SEMESTRE 2004
TECNOLOGIA ELETRÔNICA
UNIDADE: FCEBI
DISCIPLINA: Microprocessadores
PROFESSOR: Ivair Reis Neves Abreu
DEPARTAMENTO: Eletrônica
ETAPA: 4
CÓDIGO
CARGA HORÁRIA: 8 aulas
CRÉDITOS
SEMESTRE LETIVO: segundo
OBJETIVOS: o aluno deverá adquirir os conceitos básicos de sistemas com microcontroladores ao
nível de projeto físico e programação em linguagem de montagem (e máquina) para teste do sistema
elaborado. Projetos básicos de sistemas práticos com microcontroladores deverão ser projetados.
EMENTA:
- Revisão de Conceitos de Microprocessadores
- Arquitetura do Microcontrolador 8051:
- Linguagem Assembler com as instruções do 8051:
- Projetos de Sistemas Práticos com Microcontroladores:
METODOLOGIA
Aula expositiva com auxílio de recursos audiovisuais (principalmente retroprojetor). O aluno deverá
constantemente participar através de aplicação de exercícios e projetos. Uma apostila envolvendo todos os
pontos abordados servirá de apoio didático durante as exposições. Trabalhos levarão o aluno a refletir sobre
pontos avançados não abordados diretamente na sala de aula.
CRITÉRIO DE AVALIAÇÃO:
Média = (0,2 x Lab + 0,8x P1) x 0,6 + P2 x 0,4
onde P1 = primeira prova semestral
P2 = segunda prova semestral.
Lab = laboratório
Média > 7 -> aluno aprovado
5,5 <= média <= 6.9 -> aluno aprovado se presença no curso > 80%
Calendário de Provas
P1
P2
4
-> 12/04/2004
-> secretaria
Apostila de Microprocessadores
Ivair Reis N. Abreu
CONTEÚDO PROGRAMÁTICO:
- Revisão de Conceitos de Microprocessadores (Arquitetura e Linguagem Assembler)
- Arquitetura do Microcontrolador 8051:
- Definir Arquitetura típica de microcontrolador
- Estudo da Arquitetura da família de microcontrolador 8051 da Intel.
- Sistema Mínimo com o 8051.
- Linguagem Assembler com as instruções do 8051:
- Definir código de operação de instruções e mneumônicos do 8051. Instruções de
transferência de informação, aritmética, lógica, transferência de controle e booleana.
- Estudo de rotinas típicas de controle: rotina de tempo, escrita e leitura de periféricos.
- Projetos de Sistemas Práticos com Microcontroladores:
- Alarme Residencial.
- Controle de Iluminação.
- Automação Industrial e Residencial.
- Estudo do Sistema de Interrupção do microcontrolador 8051. Aplicações.
- Estudo do Sistema de Temporização do microcontrolador 8051. Aplicações.
- Interface para teclados e displays com varredura. Aplicações.
- Interface para display de cristal líquido. Aplicações.
- Conversores A/D e D/A com microcontroladores
- Projetos completos de sistemas de controle com microcontroladores 8051.
BIBLIOGRAFIA
-
APLICAÇÕES PRÁTICAS DO MICRONTROLADOR 8051. Vidal Pereira da Silva Jr. - Érica
MICROCONTROLADORES 8051. Salvador P. Gimenez. Prentice Hall
DATABOOK EMBEDED APLICATIONS 8051. Intel.
THE 8051 FAMILY OF MICROCONTROLLERS. Richard H. Barnett. Prentice Hall.
THE 8051 MICROCONTROLLER. I. Schott Mackenzie. Prentice Hall.
APOSTILA MICROPROCESSADORES . Ivair Reis Neves Abreu
Internet:
www.microcontroller.com
www.8052.com
www.vidal.com.br
www.questlink.com
www.microchip.com
www.ti.com
www.zilog.com
5
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 2
1) - Introdução:
1.1) - Sistema Programável:
A grande utilização dos microprocessadores nos sistemas eletrônicos
atuais vem do fato de serem programáveis, ou seja, estes sistemas são
compostos por um conjunto físico (Hardware) que realizará determinada
tarefa, orientado por uma seqüência de instruções conhecidas por programa
(Software), proporcionando grande versatilidade e poder de processamento.
SISTEMA PROGRAMÁVEL
HARDWARE
/
\
SOFTWARE
\___ TAREFA FINAL
/
O objetivo final do curso será dotar o aluno da capacidade de
projetar o hardware e software básico (BIOS) do sistema acima.
Pelo fato da parte física do sistema ser padronizada, consegue-se
uma otimização na produção de tal forma a conseguirmos um custo bastante
reduzido, viabilizando seu consumo mesmo a nível residencial. Pode-se
citar os exemplos dos computadores pessoais padrão IBM-PC. Com uma
produção do computador em grande escala, consegue-se um sistema mínimo de
trabalho com valores próximos a U$ 1.0000,00, valor pequeno se
considerarmos o seu poder de processamento através da diversidade de
programa compatível ao mesmo. Um mesmo computador é capaz, sem alteração
nenhuma ao nível de máquina, de torna-se um poderoso processador de
texto, ou apenas trocando-se o programa a ser chamado, ser um grande
parceiro em um jogo de xadrez.
1.2) - Sistemas de Numeração:
Devido a facilidade de implementação do sinal binário (através de
chaves transistorizadas - saturada ou cortada), toda a informação dentro
do computador (com exceção de interfaces analógica/digitais) possui a
forma binária. Por isso, é fundamental o perfeito conhecimento dos
diversos sistemas de numeração, bem como a conversão entre cada base.
- Decimal -> base 10.
- Binário -> base 2 -> mais fácil de chavear (através de
transistores, chaves, etc.)
- Hexadecimal binário -> converte cada 4 números binários em
números de 0 (0000B) a F (1111B)
- Decimal binário (B.C.D.) -> converte cada 4 números binários em
números de 0 (0000B) a 9 (1001B)
6
Apostila de Microprocessadores
Ivair Reis N. Abreu
- Octal -> converte cada 3 números binários em números de 0 (000B)
a 7 (111B).
Conversões importantes:
Binário -> Decimal
<Binário -> Hexadecimal
<-
Ex:1) - 1010 0110 -> binário
-> hexadecimal
2) - 255 -> decimal
-> binário
3) - 2A0FH -> hexadecimal
-> decimal
1.3) - Estrutura de um microcomputador:
Os sistemas programáveis podem ter as suas estruturas resumidas a 3
blocos: Unidade Central de Processamento (C.P.U), Memória e Periféricos.
Figura 1
1.3.1) - Unidade Central de Processamento:
Bloco com capacidade de realizar tarefas orientadas por instruções.
É o principal elemento de decisão do computador, podendo ser comparado ao
cérebro se o ser humano fosse um computador.
Quando a C.P.U. está encapsulada em um único chip, temos um
microprocessador. Devido ao poder de processamento dos
microprocessadores atuais, temos sua utilização bem além dos tradicionais
computadores, como por exemplo câmaras fotográficas (que já possuem
disquetes ao invés dos tradicionais filmes químicos), aparelhos de som,
televisores, etc.
7
Apostila de Microprocessadores
Ivair Reis N. Abreu
1.3.2) - Memória:
Bloco semicondutor com capacidade de armazenar informações.
Armazena basicamente as instruções a serem processadas (através de seus
códigos de operação), variáveis (como resultados de operações da C.P.U.)
ou dados dos periféricos.
O programa a ser processado deve
necessariamente estar presente na memória (por isso o tamanho cada vez
maior das memórias voláteis - RAMs - dos computadores atuais, pois os
programas têm tamanhos cada vez maiores).
A memória dos computadores pode ser dividida em volátil (RAM
estática / dinâmica) e não voláteis (ROM / PROM / EPROM / E2PROM), onde
está armazenado a BIOS do sistema ou o FIRMWARE - software dedicado a uma
única função.
A estrutura de memória em computadores pode ser do tipo VonNeumann (estrutura de memória única onde podemos colocar programa e dados
na mesma área) e Harvard (estrutura com memória para área de programa
separada da área de dados – sinal de leitura diferenciado).
1.3.3) - Periféricos:
Bloco de comunicação do conjunto micro/memória com o meio exterior.
Pode ser caracterizado como entrada (teclado, mouse, etc.) ou saída
(monitor, impressora, plotter, etc.)
Quando temos a C.P.U., memória RAM e ROM e periféricos encapsulados
em um único chip, temos o MICROCONTROLADOR. Este, apesar de não ter o
mesmo poder de processamento dos microprocessadores atuais, é bastante
adequado a funções de controle de sistemas dedicados (eletrodomésticos,
controladores numéricos industriais, coletores de dados, etc.).
Exercícios / Pesquisa Complementares
1)– Verificar os seguintes dados do seu computador pessoal:
-
Tipo de Processador
Velocidade de Processamento
Capacidade da memória RAM
Periféricos disponíveis
2) – Pesquisar quais os principais processadores da Intel lançados (do
4004 ao Pentium 3 destacando a evolução entre cada processador).
8
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 3
1.3.4) - Barramentos:
- Bus endereço: carrega a informação binária da localização de um
dado de memória ou E/S. A capacidade de acesso é determinada pela
expressão 2n.
Ex: 8085 -> 16 bits na via de endereço -> 216 = 65512 kbytes
8088 -> 20 bits na via de endereço -> 1 Mbyte
- Bus dados: carrega a informação de instrução (através do código
de operação), variável do processamento ou dispositivo E/S. O tamanho
da via de dados determina respectivamente o máximo número de instruções
(e portanto o potencial de processamento) e a precisão do processamento
aritmético (através do cálculo de ponto flutuante).
Ex: 8085 -> 8 bits na via de dados -> 28 = 256 instruções e dados
com precisão de 8 bits.
8086 -> 16 bits na via de dados -> capacidade de até 65512
instruções (portanto mais versatilidade) e dados com precisão de 16 bits.
Instrução MOV
A,B
-> código de operação 78H (8085)
armazenado na memória que utiliza o barramento de dados para entrar no
microprocessador.
-
Tipos de Barramentos:
PCI, etc.)
serial (Ex.: I2C e SPI) e paralelo (ISA,
1.4) - Sinais envolvidos na escrita/leitura de dados na memória e periféricos:
__
- Sinal de Leitura (RD): sinal de saída do microprocessador
indicando a entrada de dados no mesmo. Coloca o barramento de dados como
entrada.
__
- Sinal de Escrita (WR): sinal de saída do microprocessador
indicando a saída de dados no mesmo. Coloca o barramento de dados como
saída.
_
- Sinal de Seleção entre memória/periféricos (IO/M): em nível alto
determina o endereçamento de periféricos. Em nível baixo o endereçamento
de memória.
Ex:
Instrução
MOV M,A
RD
->
WR
->
IO/M ->
Instrução IN 30H
RD
WR
->
->
9
Apostila de Microprocessadores
IO/M
Ivair Reis N. Abreu
->
1.5) - Arquitetura de um microprocessador:
Figura 2
- Unidade Lógica Aritmética (ULA): unidade responsável pela
realização de operações lógico/aritméticas no microprocessador. As
operações aritméticas são todas baseadas na soma (implementada através de
lógica 'OU EXCLUSIVO'). Toda lógica de decisão dos programas é baseada em
operações lógica/aritméticas. Por exemplo: a comparação entre duas
variáveis é implementada através da operação de subtração que por sua vez
é viabilizada pela operação de complemento de 2 ('A - B = A + /B + 1').
A complexidade da ULA do microprocessador determina a capacidade do mesmo
em realizar processamentos complexos (como tratamento de imagem ou som em
sistemas multimídia). Exemplos clássicos são os microprocessadores tipo
D.S.P. (Processador Digital de Sinais) ou os coprocessadores aritméticos
presentes na família de computadores PC até os microprocessadores 486-SX.
- Acumulador: principal registrador de auxílio da U.L.A. Bastante
acessado pelas instruções, é o registrador armazenador dos resultados da
U.L.A. O número de bits do acumulador pode ser do tamanho da via de
dados ou o dobro (para aumentar a precisão do resultado presente no
acumulador).
- Flag: registrador sinalizador de algumas condições do acumulador
(portanto do resultado) depois de realizadas operações lógico /
aritméticas. As condições encontradas normalmente são: zero, sinal,
"vai-um", "overflow", paridade, etc.
Ex: Flag do 8085:
______________________
| S | Z | - | AC | - | P | - | C |
10
Apostila de Microprocessadores
Ivair Reis N. Abreu
- S -> flag de sinal.
acumulador.
Indica a condição do oitavo bit do
S = 0 -> positivo
S=1 -> negativo
- Z -> flag indicar de zero.
Z = 1 -> zero no acumulador , Z = 0 -> número diferente
de zero.
- P -> flag de paridade.
P = 1 -> número par
Indica o número de '1' no acumulador.
, P = 0 -> número impar
- AC -> flag auxiliar carry.
segundo nibble do resultado.
Em 1 indica "vai um" entre primeiro e
- C -> flag carry principal.
acumulador.
Em 1 indica "estouro" ("overflow") do
Ex:
BBH + FAH
1 0 1 1 1 0 1 1
FLAG: S Z - AC - P - C
+
1 1 1 1 1 0 1 0
--------------Exemplo:
1) – Qual o conteúdo do Acumular e Flag da seguinte rotina?
no programa?
MOV
ADD
JZ
A,CAH
A,9DH
SALTO
Haverá salto
;CARREGA ACUMULADOR COM O NÚMERO CA
;SOMA A + 9D
;SALTA SE Z = 1
- Decodificador de Instruções: bloco lógico responsável por receber
o código de operação das diversas instruções e a partir deste gerar
sinais de controle externos e/ou internos, bem como sinais de
temporização, com o objetivo de executar a instrução. É implementado
através de lógica combinacional, onde as variáveis de entrada são o
código de operação do microprocessador e as variáveis de saída os
diversos sinais de controle e temporização internos/externos.
Exercícios / Pesquisa Complementares
1) – Pesquisar as principais características dos barramentos ISA e PCI do
computador PC.
2) – Pesquisar as principais características do barramento serial I2C
(site da Philips ou Microchip).
11
Apostila de Microprocessadores
Ivair Reis N. Abreu
3) – Pesquisar as principais características do co-processador aritmético
do processador Pentium II.
4) - Qual o conteúdo do Acumular e Flag da seguinte rotina?
no programa?
MOV
MOV
ADD
JNC
12
A,7AH
B,53H
A,B
SALTO
Haverá salto
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 4
- Registradores de uso geral: registradores para armazenamento de
dados ou endereços dentro do microprocessador. São implementados através
de "latchs" internos (podendo ser comparados a posições de memória dentro
do microprocessador). Quanto maior o número de registradores internos
maior é a velocidade de processamento, pois não é necessário o acesso à
memória externa para armazenamento de variáveis. É comum os
microcontroladores e os D.S.P.s possuírem algumas centenas de 'posições
de memória internas', diminuindo em muito o tempo de acesso à memória.
Outro exemplo bastante apropriado é a memória "caches" internas aos
microprocessadores 486 e PENTIUM.
- Contador de Programa (PC): registrador armazenador do endereço
da próxima instrução. Determina o fluxo do programa. Quando o
programador altera o valor do PC, necessariamente desvia o programa
(através de saltos sem retorno ou chamada de subrotinas).
Ex: Instrução: JMP 2000H -> carrega o PC com o endereço 2000H.
conteúdo anterior do PC é destruído (por isso o programa não consegue
voltar).
O
Instrução: CALL 2000H -> carrega o PC com o endereço 2000H.
Neste caso, o conteúdo anterior do PC
(PCH->SP-1 e PCL->SP-2) é salva
em uma região de memória (interna ou externa ao microprocessador)
conhecida por PILHA. Ao ser executada a instrução RET, o programa
retorna ao ponto em que foi chamado. A rotina acessada pela instrução
CALL é conhecida por subrotina. O conteúdo do registrador SP é
decrementado de dois para possibilitar o salvamento de outros parâmetros
na pilha (ou a chamada de outras subrotinas dentro de subrotinas)
Instrução: PUSH <registrador> -> guarda o conteúdo do
registrador na pilha. É utilizado para preservar o valor do registrador
ao retornar da sub-rotina.
POP
<registrador>
-> retorna com o valor do
registrador salvo na pilha.
0H LXI
1000H CALL
1003H :
2000H PUSH
2001H PUSH
2002H PUSH
SP,8000H
:
:
2000H
:
:
B
D
H
:
:
:
POP
POP
POP
RET
ÁREA DE PILHA
(SUBROTINA)
7FF8H =
7FF9H =
7FFAH =
7FFBH =
7FFCH =
7FFDH =
7FFEH =
7FFFH =
8000H
H
D
B
13
Apostila de Microprocessadores
Ivair Reis N. Abreu
- Apontador de Pilha (SP): registrador armazenador do endereço na
área de pilha do sistema. Será nesta área que serão armazenados
endereços de retorno das sub-rotinas, bem como parâmetros dos diversos
registradores.
1.6) - Conceito básicos:
1.6.1) - Temporização das Instruções - Ciclo de Instrução:
As atividades de um processador central são cíclicas. O
processador busca a instrução na memória, executa a tarefa ligada ao
código lido, busca a próxima instrução e assim por diante. A
temporização de um computador depende basicamente do sinal de clock que
sincroniza todas as operações do sistema. O clock é gerado a partir de
um oscilador com freqüência determinada normalmente por um cristal. Este
cristal pode estar interno ao microprocessador ou ser implementado
através de um C.I. dedicado a isto. A figura abaixo mostra um exemplo de
clock gerado internamente dentro do microprocessador 8085:
Figura 5
Chama-se ciclo de instrução o número de períodos de clock
necessários para executar uma instrução. O ciclo de instrução é composto
basicamente do ciclo de busca da instrução (onde o código de operação é
lido na memória) e ciclo de execução. O período de tempo necessário para
o microprocessador fazer um acesso externo (a memória ou periférico) é
conhecido por ciclo de máquina (representados pela letra 'M' no diagrama
de temporização da instrução). O ciclo de busca da instrução vai
depender do número de bytes necessários para a leitura da instrução (por
exemplo: o 8085 possui instruções de até 3 bytes que obviamente
necessitam de 3 ciclos de busca de códigos na memória). O tempo total
necessário para o ciclo de instrução é determinado pelo número de estados
14
Apostila de Microprocessadores
Ivair Reis N. Abreu
T (ou número de pulsos do clock) fornecidos pelo conjunto de instruções
do microprocessador.
Exercícios:
1) - Calcular os ciclos M1, M2 e o ciclo de instrução para a instrução
MOV A,B utilizando fc = 6 Mhz, n = 3, M1 = 4 clocks e M2 = 3 clocks.
2) - Idem para a instrução OUT 10h, fc = 1 Mhz, n=4, M1 = 4 clocks, M2 =
3 clocks e M3 = 3 clocks.
1.6.2) - Circuito de Inicialização:
Também conhecido por "reset", a entrada de inicialização nos
microprocessadores carrega o registrador de endereço PC com o endereço
inicial da área de programa (normalmente 0). Pode ser acionado com sinal
positivo (0 -> 1) ou negativo (1 -> 0). O manual do microprocessador
normalmente informa o tempo mínimo necessário para que o sinal de reset
fique ativo de tal forma a se determinar a constante RC do circuito. É
fundamental que o sinal de reset seje gerado cada vez que o
microprocessador seje ligado (reset automático) e em pequenas quedas de
rede (pois o microprocessador quando tem a tensão de alimentação abaixo
do nível mínimo recomendado, passa a executar tarefas fora do controle).
O circuito abaixo mostra o reset utilizado pelo 8085 (lógica positiva,
reset manual e automático). Nota-se a função do diodo em descarregar
rapidamente o capacitor em caso de queda de energia.
Figura 6
- Watch Dog: circuito supervisório que inicializa o
microprocessador a cada período de tempo configurável (1 ou 2 segundos
normalmente) se não receber um sinal do microprocessador. Desta forma o
programa do sistema deve, em um tempo menor que o tempo do W.D., gerar
este sinal. Se o programa se perder e não gerar o referido sinal, o W.D.
inicializará o microprocessador.
Exemplo:
1) - Determinar o mínimo valor de um capacitor para um circuito de reset
automático considerando:
15
Apostila de Microprocessadores
Ivair Reis N. Abreu
Vcc = 5V, Vreset = 2/3 Vcc
R = 100k
Freqüência: 100 Mhz
Número de clocks mínimo para reset: 100
2) – Calcular o período dos ciclos M1 (4 clocks), M2 (3 clocks) e o ciclo
de instrução para a instrução MOV A,B, freqüência do cristal de 6 Mhz.
3) – Idem para a instrução OUT 10h, fc = 1 Mhz e M1=4clocks, M1'= 3
clocks e M2 = 3 clocks.
16
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 5
1.6.3) - Interrupções:
Sinal de entrada no microprocessador gerado normalmente por
periféricos, fazendo o microprocessador parar seu processamento, salvar o
endereço atual, saltar para uma sub-rotina específica do periférico
(endereçado pelo vetor de interrupção, que pode ser fixo ou variável) e
posteriormente retornar ao ponto de parada (poderíamos comparar o
processo a uma chamada de sub-rotina através de um sinal de hardware).
Ex:
-Atendimento ao teclado: quando uma tecla é acionada, o
teclado gera um sinal positivo que ao entrar na interrupção do
microprocessador faz o mesmo parar o processamento, salvar o endereço
atual do PC na pilha e saltar para o endereço indicado no "vetor de
interrupção" (variável ou fixo).
-Interrupções disponíveis no 8085: 5 entradas de interrupções
ativadas em nível alto por um dispositivo externo. Neste caso, o 8085
interrompe a seqüência de execução do programa e salta para um endereço
pré-determinado (vetor de interrupção). As interrupções possuem os
seguintes vetores e prioridades:
Interrupções
+ priorit.
^
TRAP
|
|
RST6,5
|
|
RST6,5
|
|
RST5,5
|
|
INTR
Endereço
0024H
003CH
0034H
002CH
endereço fornecido por
um controlador de interrupção
Observa-se que a interrupção INTR necessita de um controlador de
interrupção (como o 8259 do IBM-PC) para gerar este endereço. Neste
caso, o microprocessador mostra o reconhecimento do endereço através do
sinal de saída INTRA.
17
Apostila de Microprocessadores
Ivair Reis N. Abreu
Figura 3
Dentro dos microprocessadores estão disponíveis registradores de
configuração que determinam interrupções pendentes e níveis de
prioridade.
No caso do IBM-PC, os vetores das 16 interrupções disponíveis para
periféricos (e programadas no 8259) são determinadas pelo sistema
operacional.
Exercícios / Pesquisa Complementares
1) - Levantar com o auxílio do Painel de Controle / Sistemas / Gerenciador de Sistemas / Propriedades os
vetores e periféricos do seu computador PC.
2) – Qual será o efeito para o computador se um modem for instalado na mesma interrupção / vetor do mouse?
3) – Explicar a diferença entre as instruções JMP 2000H e CALL 2000H.
4) – Quais as vantagens de utilizar sub-rotinas em programação.
18
Apostila de Microprocessadores
Ivair Reis N. Abreu
1.6.4) - Acesso direto à memória (D.M.A):
Sistema onde o barramento do computador é retirado do
microprocessador (colocando o mesmo em tri-state) e controlado através de
um outro microprocessador (multiprocessamento) ou através de um
controlador de D.M.A. (como o 8257) para transferência de dados entre
periféricos e memória.
Ex: 1) - Carga de programas de um "winchester" ou "floppy" para memória
RAM de um computador.
2) - Coprocessador aritmético nos computadores IBM-PC.
Figura 4
1.6.5) - Multiplexação de sinais em microprocessadores:
Consiste em um recurso de misturar 2 ou mais sinais em um terminal
do microprocessador com o objetivo básico de economizar pinagem do chip.
Um exemplo típico é a multiplexação da via de dados/endereço do 8085: os
8 bits de dados (D0-D7) são multiplexados no tempo com o byte menos
significativo de endereço (A0-A7). O sinal de controle "ALE" (sigla de
"Address Latch Enable") indica a natureza da informação presente naquele
instante.
ALE = 0 -> AD0-AD7 -> dados (D0-D7)
ALE = 1 -> AD0-AD7 -> endereços (A0-A7)
Ex:
19
Apostila de Microprocessadores
Ivair Reis N. Abreu
Figura 7
A separação da via de dados (D0-D7) da via de endereços (A0-A7) é
necessária pelo fato de termos diversos dispositivos de memória e
periférico com estes barramentos separados. A implementação desta
separação pode ser realizada com os latchs octais 74373 (unidirecional) e
74245 (bidirecional).
A figura abaixo mostra um circuito típico
utilizado na demultiplexação dos sinais de dados/endereço do 8085.
Figura 8
1.6.6) – Sincronização de Dispositivos Lentos:
O pino de entrada READY (em nível alto permite o funcionamento do
microprocessador e em nível alto o mesmo permanece em estado de espera –
“wait”). O dispositivo de sincronização de memória / periférico lento
20
Apostila de Microprocessadores
Ivair Reis N. Abreu
controla o sinal READY do processador de tal forma a fazer o mesmo
aguardar uma diferença de velocidade de acesso.
Ex: Qual o período de um pulso de espera (Wait State) para o acesso a uma
escrita no disco rígido considerando:
Ciclo de instrução de escrita: 10 clocks
Clock: 133 Mhz
Tempo de Acesso ao disco rígido: 100 microsegundos.
Exercícios / Pesquisa Complementares
1) - Determinar o mínimo valor de um capacitor para um circuito de reset
automático considerando:
Vcc = 3,3V
R = 10k
Freqüência: 500 Mhz
Número de clocks mínimo para reset: 500
2) – Qual o período de um pulso de espera (Wait State) para o acesso a
uma memória RAM rápida considerando:
Ciclo de instrução de escrita: 5 clocks
Clock: 500 Mhz
Tempo de Acesso a RAM: 15 nseg.
3) – Fazer um circuito de separação de dados / endereço de um processador
com um barramento AD0-AD15, com sinal de ALE. Colocar um Buffer para a
via de dados.
21
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 6
1.7) - Sistema Mínimo com o microprocessador 8085
1.7.1) - Principais características do 8085:
- 8 bits na via de dados (possui 246 instruções).
- 16 bits na via de endereço (acessa 64 k de memória e 256
periféricos).
- 5 entradas para interrupções.
- Interface serial.
- Controle de D.M.A.
- Controle de sincronização para periféricos lentos.
- Clock típico de 3 Mhz.
1.7.2) - Análise da arquitetura interna e pinagens:
Figura 9
1.7.2.1) - Descrição das principais funções internas:
- U.L.A: realiza operações aritméticas (soma, subtração, incrementação e
decrementação) e operações lógicas (AND, OR, OR EXCLUSIVO, Inversão,
deslocamentos bit a bit e comparação).
- FLAG:
registrador que sinaliza o resultado de operações da U.L.A.
- Acumulador: registrador de 8 bits com multiplas funções (armazena
resultados e operandos da U.L.A., dados de dispositivos de E/S, máscara
de interrupções, etc).
22
Apostila de Microprocessadores
Ivair Reis N. Abreu
- Registradores de uso geral: 6 registradores de 8 bits (armazenando
dados) podendo ser utilizados como pares de 16 bits (armazenando
endereços).
B C
/
Pares
Fixos
D E
\
H L -> par de registrador mais utilizado como
ponteiro de memória.
- Registrador contador de programa (PC): registrador de 16 bits com a
função específica de armazenar o endereço de busca da próxima instrução.
Quando carregado através de instrução altera o fluxo seqüencial do
programa ( realizando uma salto simples - instrução 'jump' - ou chamando
uma subrotina - instrução 'call').
- Registrador apontador de pilha (SP): registrador de 16 bits com a
função específica de armazenar o endereço final da área de memória
denominada "pilha" (onde são armazenados parâmetros de retorno das
subrotinas)
- Decodificador de instruções: bloco lógico interno com a função de
receber as instruções (códigos de operação que entram pela via de dados),
decodificando-as e gerando sinais de controle e temporização.
- Buffer de endereços alto (A8-A15): via de endereços mais
significativa formando junto com A0-A7 os 16 bits totais da via de
endereço.
- Controle Serial: o 8085 possui uma saída serial de dados (SOD)
controlada pela instrução SIM (coloca o oitavo bit do acumulador no pino
SOD) e uma entrada serial de dados (SID), controlada pela instrução RIM
(coloca o bit da entrada serial no oitavo bit do acumulador).
1.7.2.2) - Análise da pinagem do microprocessador 8085:
- Alimentações +5V e GND: alimentação única. Recomenda-se a colocação
de um capacitor cerâmico de desacoplamento com valor variando entre 10100 nF para eliminar ruídos.
- X1 e X2: pinos de entrada do cristal. Possui um oscilador interno
com a função de gerar um sinal de clock de 2 fases. Dispensa o circuito
dedicado gerador de clock.
- CLOCKOUT: saída de clock para periféricos.
freqüência do cristal ligado ao X1 e X2.
Tem a metade da
- RESETIN: entrada de reset do 8085. Inicializa o 8085 (colocando o PC
= 0000h e portanto buscando a primeira instrução) quando temos um nível
baixo por mais de 10 mseg.
23
Apostila de Microprocessadores
Ivair Reis N. Abreu
- RESETOUT: saída ativa em nível alto com a função de inicializar os
periféricos ligados ao 8085. Sincronizado com o sinal RESETIN.
- RD: saída ativa em nível baixo indicando processo de leitura de
memória ou periférico. Coloca o barramento de dados como entrada.
- WR: saída ativa em nível baixo indicando processo de leitura na
memória ou periférico. Coloca o barramento de dados como saída.
_
- IO/M: sinal de saída. Em nível alto indica acesso a periféricos. Em
nível baixo indica acesso a memórias.
- S0 e S1:
0
0
1
1
0
1
0
1
->
->
->
->
sinais de saída indicando status.
8085 parado
processo de
processo de
processo de
(HALT)
leitura
escrita
busca de instrução ("fetch")
- READY -> sinal de entrada com a função de sincronizar periférico ou
memória mais lenta que o 8085. Em nível alto habilita a operação do
8085. Em nível baixo para o 8085, fazendo-o permanecer em estado de
'WAIT'.
- HOLD: sinal de entrada. Em nível alto coloca barramentos de dado,
endereço e controle em "tri-state". Desta forma, um sistema externo
(controlador de D.M.A. ou um outro microprocessador mais prioritário)
assume um controle do barramento:
- HOLDA: saída ativa em nível alto indicando barramento em tri-state
para o controlador de D.M.A. ou para o microprocessador paralelo.
1.7.3) - Sistema Mínimo com o 8085:
FIGURA 10
24
Apostila de Microprocessadores
Ivair Reis N. Abreu
Exemplo:
1) – Projetar um sistema mínimo com o 8085 com as seguintes
características:
Clock – 4 Mhz
Reset automático / manual
5 periféricos ligados a 5 interrupções
Sistema DMA (representar em blocos)
Desabilitar sinal READY.
32 Kbytes de memória EPROM (2764)
32 Kbytes de memória RAM (6264)
8 Periféricos (endereço 00 – ff). Representar cada periférico por
um bloco.
Exercícios / Pesquisa Complementares
1) – Comparar o microprocessador Z80 com o 8085.
2) – Projetar um sistema mínimo com o 8085 com as seguintes
características:
Clock – 1 Mhz
Reset automático / manual
Desabilitar as interrupcões através de resistores de pull-down
Sistema DMA (representar em blocos)
Desabilitar sinal READY.
32 Kbytes de memória EPROM (27256)
32 Kbytes de memória RAM (62256)
8 Periféricos (endereço 00 – ff). Representar cada periférico por
um bloco.
3) – Projetar um sistema mínimo com o 8085 com as seguintes
características:
Clock – 2 Mhz
Reset automático / manual
Desabilitar as interrupcões através de resistores de pull-down
Sistema DMA (representar em blocos)
Desabilitar sinal READY.
16 Kbytes de memória EPROM (2764) – endereço 0-3fffh
32 Kbytes de memória RAM (62256) – endereço 8000h-bfffh
8 Periféricos (endereço 00 – ff). Representar cada periférico por
um bloco.
4) – Pesquisar no Painel de Controle do PC os endereços de memória e
periféricos do computador. Qual é a faixa de memória de vídeo?
5) – Projetar um banco de memória de um computador com 1 Mbytes tendo 512
K de eprom (271000) e 512 K de ram (621000).
25
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 7
1.7.4) – Análise de 1 ciclo de temporização:
Temporização da Instrução 'OUT <end>' (2 bytes) – Ex: OUT 20H (D3 20)
Figura 11
Exercício: Fazer um diagrama de tempo para a instrução IN 40H
26
Apostila de Microprocessadores
Ivair Reis N. Abreu
2) – Microcontroladores
2.1) - Periféricos Paralelos:
O periférico paralelo se caracteriza por controlar 2 ou mais sinais
simultaneamente. Uma forma simples de implementação é através de
"latchs" octais (8 flip-flops tipo D), como o 74LS373 apresentado na
figura abaixo:
Figura 12
2.1.1) - Utilização dos "latchs" como interface de saída:
Ex.: Projeto de acionamento de 8 lâmpadas de 100 W (de um sistema de
iluminação) com o "latch" 74LS373. Utilizar o sinal de endereço A8 para
selecionar o "latch". Fazer um programa para acender apenas a lâmpada 3.
Figura 13
2.1.2) - Utilização dos "latchs" como interface de entrada:
27
Apostila de Microprocessadores
Ivair Reis N. Abreu
Ex.: Projeto da leitura de 8 sensores de presença (tipo ultra-som
utilizado em alarmes) com o "latch" 74LS373. Utilizar o sinal de
endereço A8 em nível baixo para selecionar o "latch". Fazer um programa
para ler os 8 sensores e colocar sua condição na posição de memória
2000H.
Figura 14
Exemplo: Primeiro sensor controlando primeira lâmpada na o microprocessador 8085
IN
ANI
JZ
MOV
OUT
JMP
SALTA: MOV
OUT
FIM:
.....
20H
01
SALTA
A,#01
00
FIM
A,#00
00
Exercício:
1) - Fazer um programa para o primeiro sensor de um sistema (endereço 20H-3fH) ligue e desligue o quinto
motor (endereço 0-1fH).
28
Apostila de Microprocessadores
Ivair Reis N. Abreu
Exercícios / Pesquisa Complementares
1) – Representar o diagrama de tempo da instrução IN 20H do 8085 (lê o periférico de entrada de endereço
20h e coloca dado no acumulador).
2) – Utilizando os latchs 74373, fazer um sistema mínimo para o 8085 com as seguintes características:
Clock – 4 Mhz
Reset automático / manual
Desabilitar as interrupcões através de resistores de pull-down
Sistema DMA (representar em blocos)
Desabilitar sinal READY.
16 Kbytes de memória EPROM (2764) – endereço 0-3fffh
32 Kbytes de memória RAM (62256) – endereço 8000h-bfffh
Controle de 8 lâmpadas (endereço 0-1fh)
Entrada de 8 interruptores (endereço 20h-3fh)
3) – Fazer um controle de 8 motores (40h – 5fh) chaves 8 chaves (60h – 7fh). Fazer a quinta chave ligar ou
desligar os 8 motores.
29
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 8
2.2) - Quadro comparativo entre Microprocessadores / Microcontroladores
Características
Velocidade
Consumo
Memória de Programa
Memória de Dados
Arquitetura de Memória
Barramento
Aplicação
Microcontrolador
Lenta ( típico < 1Mhz)
Baixo (uA)
Pequena capacidade (kbytes)
Mínima (bytes)
Harvard (típica)
8 bits (dados)
fechada, firmware
Microprocessador
Rápida (típico > 1 Ghz)
Alto ( ventilador, fonte chav.)
Grande capacidade (mbytes)
Grande capacidade (mbytes)
Von- Newmann
> 64 bits (dados)
aberta, multimidia
2.2) - Família de Microcontroladores INTEL MCS-51:
A linha de microcontroladores MCS-51 de 8 bits sucedeu a antiga
família MCS-48. Os principais recursos destes microcontroladores são:
- Memória de Programa de 4 kbytes: ROM (8051), EPROM (8751).
Versão "romless" (8031).
- 256 bytes de RAM (registradores)
- 4 ports (latchs bidirecionais programáveis) com 8 bits.
- 2 temporizadores ("timers") de 16 bits
- 1 unidade serial assíncrona (UART) "full-duplex".
- 5 interrupções (2 externas, 2 "timers" e 1 "UART").
- Oscilador interno para geração de temporização.
- Acesso a até 64 Kbytes de RAM externa (dados) e 64 Kbytes de
EPROM (programa) externa através do controle de 2 sinais de leitura (PSEN
-> área de programa - RD -> área de dados). Esta estrutura é conhecida
como 'arquitetura HARVARD'.
- 256 instruções otimizadas para controle.
2.3) - Arquitetura do Microcontrolador 8051:
30
Apostila de Microprocessadores
Ivair Reis N. Abreu
Figura 15
2.3.1) - Descrição da pinagem:
- Vcc,Gnd:
alimentação única de 5 Vcc.
- X1-X2: conectada ao cristal externo (12 Mhz típico). O sistema
de temporização interno divide a freqüência do cristal por 12,
proporcionando um ciclo típico de máquina de 1 mseg.
- RST: entrada de inicialização ativa em nível alto
__
- EA ("external acess"): em nível baixo, desabita os 4 kbytes de
memória de programa interna. Toda a busca de instrução é realizada
externamente (através de uma EPROM). Em nível alto habilita a memória
interna.
31
Apostila de Microprocessadores
Ivair Reis N. Abreu
Figura 16
- ALE ("Address Latch Enable"): na utilização de memória de
programa externa, este pino tem a função de indicar a presença de
endereço (em nível alto) ou dado (em nível baixo) no barramento de
endereço/dado multiplexado (AD0-AD7).
____
- PSEN ("Program Strobe Enable"): em nível baixo indica leitura de
uma instrução da área de programa. Normalmente ligado ao pino RD da
memória de programa.
- Port P0 (P0.0-P0.7): seus 8 pinos podem ter dupla função. Se
não houver memória externa, são utilizados como sinais de entrada/saída
do "latch" bidirecional P0. Se houver memória externa, atua como 8
sinais multiplexados de dados/endereço (AD0-AD7). O sinal de ALE indica
a condição deste barramento.
- Port P1 (P1.0-P1.7):
bidirecional P1.
8 pinos de entrada/saída do "latch"
- Port P2 (P2.0-P2.7): seus 8 pinos também podem ter dupla função.
Se não houver memória externa com mais de 256 endereços, são utilizados
como sinais de entrada/saída do "latch" bidirecional P2. Se houver
necessidade de endereçamento maior que 8 bits, atua como 8 sinais de
endereço A8-A15.
- Port P3 (P3.0-P3.7):
P3.6
-
P3.0:
P3.1:
P3.2:
P3.3:
P3.4:
P3.5:
P3.6:
novamente, seus 8 sinais tem dupla função:
RxD (recepção serial) / port P3.0
TxD (transmissão serial) / port P3.1
INT0 (interrupção 0) / port P3.2
INT1 (interrupção 1) / port P3.3
T0 (entrada Timer 0) / port P3.4
T1 (entrada Timer 1) / port P3.5
WR (sinal de escrita da RAM externa)/port
P3.7: RD (sinal de leitura da RAM externa)/port
P3.7
2.3.2) - Descrição das funções internas:
- U.L.A.: unidade lógia aritmética de 8 bits, responsável pela
execução das 4 operações aritméticas básicas e das operações lógicas
tradicionais (AND, OR, OR EXCLUSIVE, INVERSÃO e SHIFT).
- Acumulador: registrador de 8 bits mais utilizado pelo
microcontrolador. Normalmente utilizado para colocar resultados da
U.L.A. ou fatores utilizados nas operações lógico / aritméticas. No caso
das operações de multiplicação, o registrador B também é utilizado para
colocação dos resultados, pois o resultado é apresentado em 16 bits.
- Flag PSW: registrador sinalizador das operações aritméticas da
U.L.A., configurador dos registradores R0-R7 e para uso geral. Abaixo é
mostrado a posição e nome de seus 8 bits:
32
Apostila de Microprocessadores
CY
Ivair Reis N. Abreu
AC
F0
RS1
RS0
OV
-
P
CY (PSW.7): indica presença de bit CARRY (vai um) nas operações
aritméticas da U.L.A.
AC (PSW.6): indica presença do bit Auxiliar Carry quando ocorre vai
um entre os 3 e 4 bits nas operações aritméticas da U.L.A..
F0 (PSW.5):
bit para uso livre do programador.
RS1 e RS0 (PSW.4 E PSW.3):
R0-R7 será acessado.
0
0
1
1
-
0
1
0
1
->
->
->
->
configura qual banco de registradores
primeiro banco
segundo banco
terceiro banco
quarto banco
Ex.: MOV PSW,#00001000B ;RS0=1 E RS1=1 -> SEGUNDO BANCO
OV (PSW.2): indica presença de bit CARRY (bit 8 ativado) nas
operações de multiplicação da U.L.A. Auxilia também as operações de
subtração.
P (PSW.0): indica paridade do acumulador. Se setado, indica
número par de '1' no acumulador. Caso contrário indica número ímpar.
- Contador de Programa (PC): registrador de 16 bits que guarda o
endereço da próxima instrução. Quando o 8051 é resetado, este
registrador é zerado, fazendo o 8051 buscar a primeira instrução da
memória.
- Apontador de Pilha (SP): registrador de 8 bits indicador do
endereço inicial da pilha do 8051. A pilha necessariamente tem que estar
localizada entre os endereços 30H e 7FH da área RAM interna do
microcontrolador. O tamanho da pilha deve ser suficiente para permitir
os diversos acessos de subrotinas do programa (considerando os
armazenamento dos endereços do PC e dos parâmetros da instrução PUSH).
- Ponteiro de Memória Externo (DPTR): registrador de 16 bits
utilizado para armazenar endereços de memória externa.
- Registrador B: registrador auxiliar nas operações de
multiplicação e divisão.
- Decodificador e Registrador de Instruções / Controle e
Temporização: sistema responsável pelo armazenamento, decodificação e
execução dos códigos de operação (bytes) das 256 instruções do 8051.
Controla os sinais externos de controle (reset, ALE, configuração da
memória interna de programa e sinal de leitura da memória externa).
- Timers: o 8051 possui 2 sistemas de temporização de 16 bits.
Maiores detalhes serão fornecidos nos capítulos subsequentes.
33
Apostila de Microprocessadores
Ivair Reis N. Abreu
- Unidade Serial: sistema para comunicação serial assíncrona fullduplex. Maiores detalhes serão fornecidos nos capítulos seguintes.
- Memória de Dados (SFR) e de Programa: o 8051 possui um estrutura
de acesso ao sistema de memória conhecida como HARVARD, onde o acesso a
memória de programa é diferenciado do acesso a memória de dados (através
de sinais de leitura distintos). Desta forma, o microcontrolador não
permite que um determinado programa fique localizado na área de dados ou
vice-versa. A grande vantagem deste sistema é a otimizacão do sistema no
acesso as instruções do programa e aos dados. O programa dos sistemas
com microcontroladores normalmente são dedicados (FIRMWARE). Observe que
este modo de acesso a memória é diferente dos microcomputadores padrão
IBM-PC, onde normalmente os programas localizam-se na área de dados (daí
o fato de cada vez mais ser importante uma grande área de memória RAM
dentro dos computadores).
- Memória de Dados (SRF): o 8051 possuir 256 bytes de memória de
dados interna e permite o acesso de mais 64 Kbytes de memória de dados
externa (unicamente através das instruções MOVX). Na maioria das vezes a
memória interna de dados é suficiente, pois as aplicações de controle
normalmente não exigem muita quantidade de memória volátil (já que os
programas não são armazenados na área de RAM).
A memória RAM interna é divida em 4 áreas:
- Área de Registradores R0-R7 (00-1FH): o 8051 possui 4 bancos de
registradores selecionados através dos bits RS1 e RS0 do registrador PSW.
Normalmente estes registradores armazenam endereços da área de rascunho
(modo de endereçamento indireto).
- Área Booleana (binária) (20H-2FH): 16 bytes endereçados bit a
bit (totalizando 128 bits). Pode-se acessar cada bit individualmente
indicando uma determinada condição binária (por exemplo: a tecla A de um
teclado foi acionada). Estes bits são acessados pelas instruções
booleanas do 8051.
- Área de Rascunho (30H-7FH):
localiza a pilha do sistema.
memória de uso geral onde se
- Área de Registradores Especiais (SFR) (80H-FFH): área onde se
localiza todos os registradores com função especial. O número destes
registradores varia de acordo com as funções disponíveis dentro do
processador. Os registradores especiais mais comuns são:
34
PO (80H): port P0.
P1 (90H).
P2 (A0H).
P3 (B0H).
ACC (E0H): acumulador.
B (F0H)
PSW (D0H): registrador de status
SP (81H): apontador de pilha
DPL (82H): byte menos significativo do registrador DPTR.
DPH (83H): byte mais significativo do registrador DPTR.
PCON (87H): registrador de controle de consumo do 8051.
Apostila de Microprocessadores
Ivair Reis N. Abreu
- IE (A8H): registrador de habilitação do sistema de
interrupções.
- IP (B8H): registrador indicador de prioridade do sistema
de interrupção.
- TMOD (89H): registrador de modo dos timers.
- TCON (88H): registrador de controle do timer 1
- T2CON (C8H): registrador de controle do timer 2.
- TL0 (8AH): byte inferior do timer 1.
- TH0 (8CH): byte superior do timer 1.
- TL1 (8DH): byte inferior do timer 2.
- TH1 (8BH): byte superior do timer 2.
Exercícios / Pesquisa Complementares
1) – Fazer um download de um arquivo .PDF com a arquitetura do 8051 (preferencialmente da Philips ou
Intel).
2) – Fazer um levantamento dos fabricantes que possuem microcontroladores com a arquitetura do 8051
(www.8052.com).
3) – Fazer um levantamento dos microcontroladores fabricados pela Philips e pela ATMEL.
4) – Obter um compilador para Assembler diferente do ASM51 utilizado no laboratório.
5) – Levantar o endereço de todos os registradores especiais do 8051.
35
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 9
2.4) - Sistema Mínimo com o 8051:
- 32 sinais de entrada/saída
FIGURA 17
- Interface serial (RxD e TxD), interrupções externas (INT0 e
INT1), "timer" duplo externo (T0 e T1).
FIGURA 18
2.5) - Sistema Mínimo com o 8031 (ROMLESS):
36
Apostila de Microprocessadores
Ivair Reis N. Abreu
- EPROM 4 kbytes (2732)
Exemplo:
1) – Sistema com o 8031 com as seguintes características:
37
Apostila de Microprocessadores
Ivair Reis N. Abreu
- Eprom Externa 27128.
- RAM 6264 (end. 0 – 1fffh).
- Clock de 11.059Mhz
- Reset automático e manual
- Alarme com uma chave liga/desliga, 4 sensores ultrasônicos, 1
lâmpada e 1 buzina.
- Comunicação serial.
2) – Sistema com o 8051 com as seguintes características:
-
Clock de 12 Mhz
Reset automático e manual.
Controle de 12 motores .
12 entradas de chaves.
Exercícios / Pesquisa Complementares
1) – Obter na internet um projeto com o 8051.
2) – Projetar um coletor de dados com o 8031 com as seguintes
características:
-
38
Eprom Externa 27128.
RAM 62512
Clock de 11.059Mhz
Reset automático e manual
8 ports para um teclado.
Comunicacao serial
Previsão de utilizar 2 ports para controle de um display.
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 10
3) - Linguagem Assembler
3.1) - Introdução:
A linguagem Assembler é uma linguagem de nível intermediária,
composta basicamente de mnemônicos (palavra representando o código de
operação da instrução), diretivas (pseudo-instruções), labels e
comentários. Pelo fato de estar bem próxima a linguagem de
microprocessador (linguagem de máquina composta de bits compreensível
pelo processador), exige um compilador (programa que converte o programa
fonte em linguagem de máquina) bastante simples e portanto rápido. É
ideal para utilização na área de projeto e testes de microprocessadores,
pois exige conhecimento da estrutura do microprocessador utilizado (ao
contrário das linguagens superiores transparentes a estrutura do
processador). Tem a desvantagem de não possuir a estrutura de linguagens
como PASCAL e C.
HARDWARE<-L.MÁQUINA<-L.ASSEMBLER<-L.SUPERIOR<-APLICATIVO
^
|
BITS
^
|
|
^
|
ESTRUTURAS
|
MENMEUMÔNICOS
PSEUDO-INSTRUÇÕES
LABELS
^
|
|
|
INTERATIVA
AO USUÁRIO
A medida que a linguagem fica mais interativa ao programador, o
compilador necessita de ser mais complexo e portanto mais lento.
- Instrução: código binário composto de 1 ou mais bytes com a função de
orientar o processador a realizar uma tarefa específica. Estes códigos
serão lidos seqüencialmente da memória e, através da via de dados,
entrarão no decodificador de instruções do microprocessador, gerando uma
série de sinais internos e externos de controle.
- Tamanho das instruções no 8085:
memória.
podem ocupar 1, 2 ou 3 bytes de
- 1 byte: o código de operação já especifica completamente a
função da instrução, não necessitando de complemento algum.
D7 D6 D5 D4 D3 D2 D1 D0 -> código de operação
Ex: MOV B,A (desloca o dado do acumulador para o registrador B) ->
não necessita de complemento
Código de operação -> 01000111 - 47H
- 2 bytes:
necessita de 1 byte de complemento
D7 D6 D5 D4 D3 D2 D1 D0 -> código de operação
39
Apostila de Microprocessadores
Ivair Reis N. Abreu
D7 D6 D5 D4 D3 D2 D1 D0 -> segundo byte
de compl.
Ex: MVI A,07 (carrega o acumulador com o dado 07)
Primeiro Byte (cód. operação) -> 00111110 - 3EH
Segundo Byte (complemento)
- 3 bytes:
-> 00000111 - 07H
necessita de 2 bytes de complemento
D7 D6 D5 D4 D3 D2 D1 D0 -> código de operação
D7 D6 D5 D4 D3 D2 D1 D0 -> primeiro complemento
D7 D6 D5 D4 D3 D2 D1 D0 -> segundo complemento
Ex: LXI H,2000H (carrega H com 20H e L com 00H)
Primeiro Byte (cód. operação) -> 00100001 - 21H
Segundo Byte (primeiro compl.)-> 00000000 - 00H
Terceiro Byte (segundo compl.)-> 00000010 - 20H
- Modos de endereçamento do 8051:
- Direto:
transferência do dado.
o dado do operando indica o endereço de
Ex:
MOV
A,50H ; o dado do endereço 50H da RAM interna do
8051 é transferido para o acumulador
- Registrador: o dado do operando Rn é transferido para o
destino.
Ex:
MOV
A,R6
transferido para o acumulador
- Imediato (#dado):
; o dado do registrador R6 é
o dado seguido de # é transferido para o
destino
Ex.: MOV
R1,#70H
- Indireto (@Rn): o dado armazenado no endereço da memória
com endereço guardado no registrado Rn é transferido para o destino
Ex.: MOV
MOV
R0,#50H
; o dado 50H é carregado em R0
A,@R0 ; o dado do endereço 50H é carregado no
acumulador.
3.2) - Estrutura e diretivas da Linguagem Assembler:
40
Apostila de Microprocessadores
Ivair Reis N. Abreu
Um programa em assembler é composto basicamente de comentários,
códigos de operação, operandos, pseudo-instruções (diretivas) e labels.
Os comentários são sempre precedidos de ponto e vírgula e tem a
função de documentar o programa, esclarecendo funções e procedimentos.
O "label" (rótulo) pode ser de 2 tipos: quando seguido de ':',
determinada com um nome um determinado endereço. Quando seguido da
expressão EQUATE (EQU), associa um nome a uma constante.
Uma linha em Assembler completa costuma ter a seguinte estrutura:
LABEL:
CÓDIGO DE OPERAÇÃO
Ex:
INICIO:
MOV
-------label cód.oper.
OPERANDO
;COMENTÁRIO
SP,70H
;CARREGA SP COM END. DA PILHA
---------------------------------operando
comentário
As pseudo-instruções (diretivas) são instruções especiais, não
codificáveis (para linguagem de máquina), com o objetivo de melhorar a
estrutura do programa e facilitar o processo de programação. As
diretivas mais utilizadas såo:
- ORG (origem): indica endereço inicial da memória onde devem ser
armazenadas as instruções posteriores. Um programa pode possuir mais de
uma diretiva ORG.
- EQU (equate): define equivalência entre nomes (labels) de dados
ou endereços que serão substituidos no processso de compilação para se
obter os códigos executáveis finais. Tem a função de otimizar possíveis
alterações nos dados e endereços nomeados pelo EQU.
- DB (define byte):
define valor a ser colocado na memória
- DS (define espaço): define número de espaços reservados na
memória para posterior utilização.
- END:
finaliza a edição do programa.
3.3) - Códigos de operação do microcontrolador 8051:
Com o objetivo de introduzir as instruções do 8051 da forma mais
didática possível, dividiremos os 256 mnemônicos em 5 grupos: instruções
de transferência de informação, aritméticas, lógicas, transferência de
controle e booleana.
3.3.1) - Instruções de transferência de informação:
Conjunto de instruções com o objetivo de transferir ou carregar
dados da área de memória/registradores. Normalmente são instruções
voltadas para a área de RAM interna, havendo apenas 4 instruções que
envolvem acesso a RAM externa.
41
Apostila de Microprocessadores
Ivair Reis N. Abreu
Utilizaremos a seguinte notação:
- Rn: registradores R0-R7 (banco selecionado em PSW)
- Ri: registradores R0-R1 utilizados para endereço indireto
- Direto: endereço direto da área de memória interna
- MOV destino,fonte
o destino
Ex.: MOV
Acumulador
MOV
MOV
MOV
MOV
A,R7
;transfere (copiando) o dado da fonte para
A,Rn
A,direto
A,@Ri
A,#dado
; copia o dado contido no registrador R7 para o
MOV
A,40h ; copia o dado do endereço 40h da RAM interna
; para o acumulador
MOV
A,P1
; copia o dado do PORT 1 (registrador
;localizado na área SFR da RAM interna) para
;o acumulador
MOV
A,@R0 ; copia o dado contido na área de RAM cuja o
; endereço esta em R0 para o acumulador
MOV
A,#40h ; carrega o dado 40h no acumulador
- MOV Rn,A
- MOV Rn,direto
- MOV Rn,#dado
Ex.:
MOV
MOV
A,07
R5,A
;carrega o dado 07 no registrador R5
MOV
R2,30H
;carrega o dado do endereço 30H no reg.R2
MOV
R3,#00
;carrega o dado 00 em R3
3333
Ex.:
42
MOV
MOV
MOV
MOV
MOV
direto,A
direto,Rn
direto,direto
direto,@Ri
direto,#dado
MOV
P1,A
;carrega o port P1 (SFR) com dado de A
MOV
45h,R0
MOV
45h,40h
;copia dado do end. 40h para o end. 45h
MOV
MOV
MOV
40h,#05h
R0,40h
50h,@R0
;carrega end. 50h com dado 05
Apostila de Microprocessadores
Ivair Reis N. Abreu
- MOV @Ri,A
- MOV @Ri,direto
- MOV @Ri,#dado
Ex.:
MOV
MOV
MOV
A,#0FFh
R1,#50h
@R1,A ;carrega dado FFH no end. 50h
MOV
MOV
R1,#60h
@R1,#00h
;zera posição 60h da memória
- MOV DPTR,#dado (16);carrega DPTR com dado de
;16 bits (pois a memória
;externa tem capac. de
;64k)
- Instruções de leitura de tabela: tabela é um conjunto de
constantes colocadas na área de programa com a finalidade de relacionar
uma variável com uma dado de saída. Por exemplo: os valores de seno de
0 a 90 graus podem ser tabelados ao invés de executar-se cálculos através
de processos numéricos. A tabela sempre é composta de um endereço
inicial e de uma variável conhecida por offset. Retomando o exemplo do
seno, o endereço inicial seria da tabela de seno e a variável seria o
grau de seno que desejamos conhecer.
- MOVC
A,@A+DPTR
;leitura de tabela da ROM com
endereço armazenado em A (offeset) + DPTR (início da tabela)
- MOVC
Ex.:
MOV
MOV
MOVC
ASCII:
MOV
.
.
.
DB
DB
DB
.
.
.
A,@A+PC
;idem com end. inicial em PC
DPTR,#ASCII ;carrega DPTR com inicio da
;tab.
A,#0
;indica 0 para conversão
A,@A+DPTR
;carrega A com valor de 0
;em ASCII
P1,a
30H
31H
32H
- Instruções de acesso a memória externa: a memória de dados
externa tem capacidade máxima de 16 bits com endereçamento através do
DPTR ou Ri (R0 ou R1).
- MOVX
A,@Ri ;le dado de mem. ext.
;endereçado por Ri
- MOVX
A,@DPTR
43
Apostila de Microprocessadores
Ivair Reis N. Abreu
- MOVX
@Ri,A
- MOVX
@DPTR,A
;escreve dado no acum. na
;memória ext.
- XCH A,Rn
;troca dados do acum. com reg.
- XCH A,direto
- XCH A,@Ri
- XCHD
Ex.:
A,@Ri ;troca apenas nibble inferior
MOV
MOV
XCH
A,#00H
30H,#5AH
A,30H
;ACUM=5AH e end. 30h=00H
MOV
MOV
MOV
XCHD
A,#0F5h
R0,#30h
@R0,#6Ah
A,@R0
;ACUM=FAH e end. 30H=65H
3.3.2) - Instruções Aritméticas:
A U.L.A. do 8051 tem condições de realizar as 4 operações
aritméticas básicas.
As operações normalmente envolvem o acumulador como um dos parâmetros e o
resultado normalmente são armazenados no acumulador. As operações
aritméticas normalmente afetam os bits do flag (PSW).
- Instruções de Soma:
-
ADD A,Rn
;Acum + Rn = Acum.
ADD A,direto
ADD A,@Ri
ADD A,#dado
ADDC
A,Rn
;Acum + Rn + Carry = Acum.
ADDC
A,direto
ADDC
A,@Ri
ADDC
A,#dado
ADDC
A,Rn
INC A
;Acum+1 = Acum
INC Rn
INC direto
INC @Ri
INC DPTR
- Instruções de Subtração:
- SUBB
- SUBB
- SUBB
44
A,Rn
A,direto
A,@Ri
;Acum - Rn = Acum.
Apostila de Microprocessadores
- SUBB
- DEC A
- DEC Rn
- DEC direto
- DEC @Ri
Ivair Reis N. Abreu
A,#dado
;Acum-1=Acum
- Multiplicação: o resultado de 16 bits é armazenado no Acumulador
(LSB) e no registrador B (MSB).
- MUL A,B
;multiplica dado de A por B
- Divisão: a parte inteira do resultado é armazenado no acumulador
e o resto no registrador B
- DIV A,B
;divide A por B
- Ajuste decimal: soma o número 6 ao nibble superior a 9.
Instrução para ajuste decimal.
- DA
A
3.3.3) - Instruções Lógicas:
A C.P.U. do 8051 realiza as seguintes operações lógicas: AND, OU,
OU EXCLUSIVO, COMPLEMENTAÇÃO, ROTAÇÃO (SHIFT REGISTER) PARA ESQUERDA E
ROTAÇÃO PARA DIREITA.
- Instruções AND:
-
ANL
ANL
ANL
ANL
A,Rn
A,direto
A,@Ri
A,#dado
;A ^ Rn = A
- Instruções OU:
-
ORL
ORL
ORL
ORL
A,Rn
A,direto
A,@Ri
A,#dado
;A OU Rn = A
- Instruções OU-EXCLUSIVO:
-
XRL
XRL
XRL
XRL
- Rotação:
A,Rn
A,direto
A,@Ri
A,#dado
;A OU-EXC Rn = A
divisão/multiplicação binária
- RR
A
;rotaciona todo os bits do
;acumulador 1 posição para a
;direita. O bit 1 é deslocado para
;o oitavo bit
45
Apostila de Microprocessadores
Ivair Reis N. Abreu
- RRC A
;o primeiro bit o acumulador é
;rotacionado para o carry e o bit
;deste para o oitavo bit do
;acumulador
- RL
- RLC A
A
;idem a RR mas invertendo a direção
;idem a RLC mas invertendo a dir.
- Complementação:
- CPL A
- CLR A
- SWAP
;complementa todos os bits do acum.
;zera acumulador
A
;troca os nibbles do acumulador
Exercícios / Pesquisa Complementares
1) – Obter um download do conjunto de instruções do 8051.
2) – Explicar a diferença entre as instruções abaixo:
mov
a,@r0
movx
a,@r0
3) – Fazer um programa para somar os dados da memória interna 30H com o
dado da memória externa 30h. Incrementar o resultado e fazer uma
operação OU exclusivo com o dado do registrador R3. Guardar o resultado
final no registrador R7.
46
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 11
3.3.4) - Instruções de Transferência de Controle:
Instruções que alteram o valor do PC (fluxo do programa) e utilizam
a pilha para salvamento de parâmetros. Podemos ter 2 tipos de salto no
programa: sem retorno (não há salvamento do PC na pilha) e com retorno
(tipo subrotina onde há o salvamento do PC na pilha).
- Instruções de Salto sem retorno: temos 3 tipos de instruções
"jump" que não salvam o conteúdo do PC. Normalmente pode-se apenas
utilizar a instrução JMP que o compilador transformará no tipo
conveniente (dependendo do tamanho do endereço):
- JZ
SJMP
end(8) ;carrega PC com endereço de 8 bits
AJMP
end(11);carrega PC com endereço de 11 bit
LJMP
end(16);carrega PC com endereço de 16 bit
JMP @A+DPTR ;carrega PC com endereço (A+DPTR)
JNZ end(8) ;se Z=0, salta para endereço
end(8) ;se Z=1, salta para endereço
- Instruções de chamada e retorno de subrotina: instruções que
carregam o PC com um determinado endereço mas salvam o endereço anterior
do PC na área de pilha (PCH -> (SP+1) e PCL -> (SP+2)). Por isso, podem
retornar através da instrução RET que resgatam o endereço do PC na pilha.
- ACALL
end(11) ;salta para a subrotina de endereço
PCH->(SP+1), PCL->(SP+2) e SP->SP+2
- LCALL
end(16)
;idem com end. de 16 bits
- RET
;resgata endereço da pilha, retornando ao
ponto da chamada de subrotina. SP->PCL,
SP-1->PCH e SP=SP-2
- RETI
;retorno de subrotinas de
interrupção.
- PUSH
direto
;salva na pilha (SP+1) dado direto
- POP direto
;resgata da pilha (SP-1) dado direto
indicado.
- Instruções de comparação: compara-se dois dados. Se diferentes,
saltam, caso contrário não. São instruções condicionais presentes nas
estruturas de decisão.
-
CJNE
CJNE
CJNE
CJNE
A,direto,end(8) ;se A
A,#dado,end(8) ;se A
Rn,#dado,end(8)
;se
@Ri,#dado,end(8) ;se
 direto, saltam
 #dado, saltam
Rn  #dado, saltam
(Ri)#dado, saltam
- Instruções para "loop" de contagem: instruções que permitem o
retorno a um determinado endereço se um determinado contador não chegar a
zero. Ao retornar, o conteúdo do contador é decrementado.
- DJNZ Rn,end(8)
- DJNZ
;decrementa Rn. Se Rn0,
;retorna ao endereço
direto,end(8) ;idem utilizando dado
;direto como contador.
47
Apostila de Microprocessadores
Ivair Reis N. Abreu
3.3.5) - Instruções Booleanas:
Instruções que envolvem processamento binário. Muito comuns em
operações de controle onde ligamos/desligamos equipamentos (motores,
solenóides, lâmpadas, leds, etc) ou lemos entradas (chaves, sensores,
etc) que estão ligados/desligados. Os bits do sistema se localizam em
duas áreas: área boolena da RAM interna (20H-2Fh, ou bits 0 a 127) e
bits dos registradores especiais (SFR). Os bits da área boolena podem
ser designados de 2 formas:
- 20.0 ou 0-> primeiro bit do primeiro byte da área boolena
- 2F.7 ou 7F-> último bit do último byte da área boolena
Os bits dos registradores especiais (SFR) podem ser designados
pelos nomes do registrador endereçado pela posiçao no bit ou pelo próprio
nome do bit:
- PSW.7 ou Cy-> bit carry do flag
O bit Cy (ou simplesmente C) é bastante utilizado nas instruções
boolenas.
-
CLR C
;zera bit Cy
CLR bit
;zera bit especificado
SETB
C
;seta bit Cy
SETB
bit
;seta bit especificado
CPL C
;complementa Cy
CPL bit
;complementa bit
ANL C,bit ;operação "and" entre o Cy e o bit
ANL C,/bit;operação "and" entre o Cy e o inverso
;do bit especificado
- ORL C,bit ;operação "OU" entre o Cy e o bit
- ORL C,/bit;operação "OU" entre o Cy e o inverso
;do bit especificado
- MOV C,bit ;copia bit especificado para o Cy
- MOV bit,C ;copia Cy para o bit
- JNC end(8);salta para o endereço especificado se
;Cy é zero
- JC
end(8);salta para o endereço especificado se
;Cy é um
- JB
bit,end(8) ;salta para o endereço espec.
;se bit=1
- JNB bit,end(8) ;salta para o endereço espec.
;se bit=0
- JBC bit,end(8) ;salta e zera o bit se o mesmo
;estiver setado
48
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 12
3.4) - Exercícios de Linguagem Assembler do 8051:
1) - Carregar o dado do PORT P1 nos registradores internos R0-R7 do
terceiro banco.
2) - Somar o dado do endereço 30H da memória interna com o dado 30H da
memória externa. Complementar o resultado e fazer uma operação AND com o
dado do PORT P1. Guardar o resultado no endereço 50H da memória interna.
3) - Carregar a memória RAM interna do 8051 com o dado AAH.
4) - Idem para uma área de memória RAM externa entre 8000H e FFFFH.
5) - Fazer uma rotina de 0,5 segundos, utilizando um 8051 com cristal de
12 Mhz. Piscar um led localizada em P1.0 com freqüência de 2 Hz.
6) - Fazer uma rotina de tempo genérica, utilizando um 8051 com cristal
de 12 Mhz. Esta rotina receberá pelo par de registradores R6 e R7 o
periodo de tempo em mseg.
7) - Zerar todos os bits dos ports P1 e P3 se o bit P0.0 estiver em nível
alto.
8) - Ler o bit P1.0 com uma rotina de "debouced" de 10 mseg. Se este bit
estiver em nível alto, acender de forma consecutiva 7 lâmpadas
controladas pelos outros bits do port P1 com intervalo de 1 segundo.
49
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 13
3.5) - Projetos com o 8051:
1) – Projetar um sistema mínimo com o 8051 para um sensor fotoelétrico
ligar 15 lâmpadas 1 minuto apos o sensor indicar condição de escuro e
desligar 1 minuto após o sensor indicar claridade.
2) – Projetar um sistema com o 8031 com as seguintes características:
- Alarme com 1 chave liga/desliga, 1 sensor ultra-sônico e 1 buzina
- Cristal de 12 Mhz
- Reset automático e manual
- Memória externa de programa 2764
- Fazer um programa para ativar o alarme se a chave liga/desliga
estiver ativa. Monitorar o sensor de tal forma que se o mesmo indicar
violação e 10 segundos depois de verificado a chave liga/desliga (no caso
de alarme ter sido desligado pelo dono), se o mesmo ainda estiver
ativado, disparar a buzina e desligá-la apenas se o alarme estiver
desativado.
3) – Idem para ligar a buzina por um período máximo de 5 minutos.
4) – Idem para 8 sensores.
50
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 14
3.5) - Projetos com o 8051:
3) - Projetar um forno de micro-ondas com o 8051 com as seguintes
caracteristicas:
- Cristal de 12 Mhz
- Reset automático
- Comunicação Serial
- Memória ROM de programa interna
- Entrada para chave da porta, 4 bits para o display de LCD
- Controle de teclado de 16 teclas através de 8 bits e de 1 chave
de início de operaçao.
- Controle de 1 motor para o prato, lâmpada de iluminação interna e
1 válvula de microondas.
- Firmware ativando o motor, a lâmpada e a válvula por 5 minutos se
forem acionada a tecla de início e se a porta estiver fechada.
4) - Fazer um projeto de uma máquina de lavar roupas utilizando o
microcontrolador 8031 com as seguintes características:
- 4 Kbytes de EPROM externa.
- Controle do relê de acionamento do motor principal, solenóide
para abrir a válvula de entrada de água fria e água quente, solenóide
para saída de água, solenóide para saída de detergente e amaciante, 4
leds para indicações gerais e 1 sonorizador.
- Entrada do sensor de nível máximo de água de 2 teclas de
programação para o usuário.
- Possibilidade de comunicação serial.
5) - Fazer um projeto de um FIRMWARE para o projeto acima com as
seguintes características:
- Inicializar o sistema desligando todas as saídas e acendendo o
primeiro led indicando espera de programação.
- Esperar a primeira tecla de programação estar ativada. Quando
estiver, ligar o solenóide para água fria ou quente, dependendo da
condição da segunda tecla de programação. Aguardar indicação do sensor
de nível máximo de água e desligar o solenóide em questão.
- Acionar solenóide para saída do detergente e amanciante por 1
minuto.
- Ligar o motor principal por 15 minutos.
- Abrir a válvula de saída de água por 5 minutos.
- Acionar led de fim de operação e acionar o sonorizador por 5
segundos.
51
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 15
4) - Display LCD programável
4.1) - Introdução:
Atualmente estão disponíveis no mercado uma grande variedade de
displays de Cristal Líquido com circuitos de controle e processamento
interno que visam facilitar o projeto de hardware e a rotina de
programação destes tipos de dispositivos de saída.
A figura a seguir mostra os principais controles destes tipos de
displays:
Arquitetura básica dos displays L.C.D.
Descrição dos sinais:
- D0-D7: barramento de dados com dupla função: envio dos comandos
de programação do display (posicionamento do cursor, endereço do caracter
a ser utilizado, etc.) e dos dados a serem escritos no display.
_
- C/D: em nível baixo, indica que o barramento de dados D0-D7
carrega a informação de controle (configuração geral do display). Em
nível alto, informação de dados (informação a ser mostrado no display).
Sinal normalmente ligado ao endereço A0 (endereço ímpar -> dado; endereço
par -> controle)
- E: sinal que em nível alto habilita o display. Nos modelos com
4 linhas, utilizamos um sinal E1 para a habilitação das 2 primeiras
linhas e um sinal E2 para a habilitação das 2 últimas linhas.
_
- R/W: sinal de entrada indicando em nível baixo processo de
escrita (barramento de dados como entrada) e em nível alto processo de
leitura (barramento de dados como saída).
- Vo:
entrada de tensão para controle de luminosidade do display
- Vss/GND: entrada de alimentação única de +5 Vcc.
Comercialmente, citamos abaixo alguns dos modelos disponíveis:
- Display 8 caracteres x
5 pontos horizontais
- Display 16x1, caracter
- Display 16x1, caracter
- Display 16x2, caracter
- Display 20x2, caracter
52
1 linha, caracter com 7 pontos verticais e
8x5
11x5
8x5
8x5
Apostila de Microprocessadores
-
Display
Display
Display
Display
20x4,
40x1,
40x2,
40x4,
Ivair Reis N. Abreu
caracter
caracter
caracter
caracter
8x5
8x5
8x5
8x5
4.2) - Sistema mínimo com o display L.C.D. :
Sistema mínimo com o display L.C.D com endereçamento de memória
Sistema Mínimo com o display L.C.D. utilizando Ports
4.3) - Principais comandos utilizados:
Com o sinal C/D colocado em nível baixo temos a configuração básica
do display. Os principais comandos são listados abaixo:
-
Configura display para 1 linha (8 bits) -> 30H
2 linhas (8 bits) -> 38H
Display ativado com cursor fixo -> 0EH
Display ativado com cursor intermitente -> 0CH
Cursor apagado -> 08H
Mensagem com deslocamento à esquerda -> 07H
Mensagem com deslocamento à direita -> 05H
Cursor com deslocamento à esquerda -> 04H
Cursor com deslocamento à direita -> 06H
53
Apostila de Microprocessadores
Ivair Reis N. Abreu
- Limpa display e retorna o cursor -> 01H
- Desloca somente cursor à esquerda -> 10H
- Desloca somente cursor à direita -> 14H
Exemplo:
1) - Inicializar display com 2 linhas, ligado com cursor intermitente,
deslocamento à esquerda e limpando o display.
;* PRIMEIRA MANEIRA DE IMPLEMENTAR UMA INICIALIZAÇÃO
MOV
MOV
MOVX
CALL
MOV
MOVX
CALL
MOV
MOVX
CALL
MOV
DPTR,#00
A,#38H
@DPTR,A
TEMPO15
A,#0CH
@DPTR,A
TEMPO15
A,#05H
@DPTR,A
TEMPO15
A,#01H
;COLOCA END.A0 (C/D) = 0 -> CONTR.
;2 LINHAS
;ESPERA 15 MSEG.
;DISPLAY INTERMITENTE
;DESLOCAMENTO A DIREITA
;* SEGUNDA MANEIRA DE IMPLEMENTAR UMA INICIALIZAÇÃO
MOV
R0,#00
;CARREGA CONTROLE
MOV
R3,#00
;INICIALIZA PONDEIRO
MOV
DPTR,#TAB_INI
;CARREGA INDEXADOR
VOLTA_IN:
MOV
A,R3
MOVC A,@A+DPTR
INC
R3
;INCREMENTA PONTEIRO
CJNE A,#0FFH,SALTO
;SE NAO CHEGOU NO FINAL SALTA
JMP
FIM_INI
;ENVIA DADO PARA INICIALIZACAO
SALTO:
MOVX @R0,A
;ENVIA DADO PARA O DISPLAY
CALL TEMPO15
JMP
VOLTA_IN
;PROXIMO DADO DA TABELA
FIM_INI:
RET
.
.
TAB_INI:
DB 38H,0CH,05H,01H,0FFH ; DADOS PARA INICIALIZAÇAO
END
2) - Idem para 1 linha, sem cursor, deslocamento à direita e limpando o
display.
Para o posicionamento do cursor/mensagem dentro do display basta
fornecermos como comando o endereçamento da tabela de endereçamento do
display fornecida abaixo:
1P
2P
3P ...... 39P 40P
1 L -> 80H 81H 82H
2 L -> C0H C1H C2H
A6H A7H
E6H E7H
Exemplo:
1) - Posicionar o cursor na primeira posição do display.
mov
mov
54
r0,#00
a,#80h
;controle
;posiciona cursor
Apostila de Microprocessadores
movx
Ivair Reis N. Abreu
@r0,a
2) - Posicionar o cursor no meio da primeira linha do display de 20
caracteres.
55
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 16
4.4) - Escrita de dados no display:
Para a escrita de dados no display, colocamos o comando C/D em
nível ALTO (endereço impar). O display necessita ser inicializado e o
cursor posicionado na posição do primeiro caractere. Uma vez posicionado
este caractere, automaticamente o display incrementa a posição do cursor,
não necessitando de reprogramações constantes do posicionamento do
display.
Exemplo:
1) - Escrever a letra ‘CASA’ no meio da primeira linha de um display 16 x
2.
mov
mov
movx
call
mov
mov
movx
call
mov
movx
call
mov
movx
call
mov
movx
call
ret
r0,#00
a,#85h
@r0,a
tempo15
ro,#01
a,#’c’
@ro,a
tempo15
a,#’a’
@ro,a
tempo15
a,#’s’
@ro,a
tempo15
a,#’a’
@ro,a
tempo15
;controle
;posiciona no meio do display
;dado
;escreve ‘c’ em ascii
;escreve ‘a’ em ascii
;escreve ‘s’ em ascii
;escreve ‘a’ em ascii
2) - Idem para a segunda linha
4.5) - Exercícios:
1) - Escrever a palavra ‘ENGENHARIA MACKENZIE’ no centro da primeira
linha de um display 2 x 16.
2) - Escrever seu nome completo (abreviado se necessário) centralizado na
primeira linha e seu código de matrícula centralizado na segunda linha.
3) - Fazer um projeto de um sistema com o 8031 com um display de 32
caracteres, RAM de 8Kbytes 6264 (endereço 2000h - 3fffh) e EPROM de
8kbytes 2764. Utilizar o endereço 0001H para acesso os registros de dado
do display e o endereço 0000H para controle. Fazer uma rotina para
escrever na primeira linha a palavra 'ENGENHARIA' e na segunda a palavra
'MACKENZIE'.
4) – Piscar com intervalo de 1 segundo as mensagens:
NOME
CODIGO
56
TURMA
SALA
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 17
5) - Sistema de Temporização e Interrupção do 8051
5.1) - Sistema de Interrupção:
O microcontrolador 8051 possui 5 interrupções, com a prioridade
mais alta podendo ser programada pelo registrador IP.
O nível de
prioridade 'default' e os vetores de interrupção são apresentados abaixo:
IE0
TF0
IE1
TF1
SRT
(interrupção externa 0)
(interrupção do timer 0)
(interrupção externa 1)
(interrupção do timer 1)
(interface serial)
->
->
->
->
->
0003H
000BH
0013H
001BH
0023H
- Registrador de habilitação do sistema de interrupção:
_________________________________________
IE:
| EA | x | x | ES | ET1 | EX1 | ET0 | EX0 |
EA:
em nível baixo, desabilita todas as interruções
ES:
em nível baixo, desabilita interrupção serial
ET1: em nível baixo, desabilita interrupção do timer 1
EX1: em nível baixo, desabilita interrupção externa 1
ET0: em nível baixo, desabilita interrupção do timer 0
EX0: em nível baixo, desabilita interrupção externa 0
- Registrador do nível de prioridade:
________________________________________
IP:
| x | x | x | PS | PT1 | PX1 | PT0 | PX0 |
PS: em
PT1:em
PX1:em
PT0:em
PX0:em
nível
nível
nível
nível
nível
alto,
alto,
alto,
alto,
alto,
interrupção
interrupção
interrupção
interrupção
interrupção
serial
timer 1
externa
timer 0
externa
prioridade
prioridade
1 prioridade
prioridade
0 prioridade
Ex.: 1) - Habilitar as interrupções TIMER0, EXT1 e SERIAL.
máxima para a unidade SERIAL.
Prioridade
2) - Desabilitar apenas a unidade SERIAL.
5.2) - Exercícios
1) - Supondo que a entrada da primeira interrupção externa (‘IE0’) seje
utilizada para contagem de eventos de 16 bits, fazer um programa para que
as posições de memória 30H e 31H sejam incrementadas a cada evento.
2) - Idem para a interrupção externa 1, sendo o contador implementado a
partir das posições de memória 40H e 41H.
3) - Supondo que um teclado externo interrompa o microcontrolador 8031
utilizando a interrupção externa 1, colocar o conteudo da tecla acionada
(armazenada na memória externa do teclado com endereço 0 - utilizar a
instrução MOVX) no endereço 50H da memória interna.
57
Apostila de Microprocessadores
Ivair Reis N. Abreu
4) - Idem para um conversor A/D utilizando a interrupção IE1 e endereço
de acesso 20H..
5) - Utilizando a entrada ‘IE0’, fazer uma rotina para o registrador R0
indicar o número de vêzes que um feixe luminoso é interrompido.
5.3) - Aplicação de interrupção externa -> Sistema de Leitura direta de teclas.
A chave é lida de forma direta pelo microcontrolador. Apesar da
grande simplicidade de programa para a leitura das chaves, apresenta como
desvantagem a ocupação ao nível de hardware de grande número de ports.
Ex.: Leitura de 16 chaves -> Port 1 e 2 (16 ports). Fazer um programa
para ler cada chave é colocar sua condição nos bits 20.0H a 21.7H.
Varredura direta de 16 teclas
Pode-se observar que o acionamento de qualquer tecla provoca uma
interrupção INT0. Portanto, o programa de tratamento das teclas deve-se
localizar no endereço da interrupção externa 0 (03H):
;* PROGRAMA DE LEITURA DE 16 TECLAS DOS PORTS P1 E P2
INICIO:
ORG
JMP
0
INICIO
ORG
JMP
3
LETEC ;SALTA PARA A LEITURA DAS TECLAS
ORG
MOV
MOV
30H
;INICIO NORMAL DO PROGRAMA
SP,#PILHA
IE,#10000001B
.
.
.
;* ROTINA DE TRATAMENTO DO TECLADO
LETEC:
PUSH PSW
MOV
C,P1.0
;LE TECLA 0
MOV
20.0,C
;COLOCA TECLA 0 NA AREA BOOLEANA
MOV
C,P1.1
MOV
20.1,C
.
.
.
MOV
C,P2.7
;LE ÚLTIMA TECLA
58
Apostila de Microprocessadores
MOV
POP
RETI
Ivair Reis N. Abreu
21.7,C
PSW
5.4) - Exercício
1) - Fazer um programa para ler 8 teclas localizadas no PORT P1 e
armazenar o resultado nos bits 23.0 a 23.7. Se a quarta chave estiver em
1, ligar um ventilador localizado no Port P2.0. Prever debouced de 10
mseg. Utilizar INT1 para interrupção.
59
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 18
5.5) - Sistema de temporização:
O microcontrolador da família 8051 possui 2 timers de 16 bits. Seu
número programado é incrementado por pulsos externos (dos pinos Tin1 e
Tin2) ou pelo clock interno de 1/12 fcristal. Quando o número do timer
chega a zero, a interrupção respectiva (TF0 - end. 000bH ou TF1 - end.
001bH) é acionada.
Registradores do sistema de temporização:
- Registrador TH0 e TL0:
registradores de 8 bits do timer 0
localizado na área de registradores especiais (SFR) que somados formam o
contador de 16 bits.
- Registrador TH1 e TL1:
registradores de 8 bits do timer 1
localizado na área de registradores especiais (SFR) que somados formam o
contador de 16 bits.
- Registrador de modo:
---------------------- ---------------------TMOD: | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
---------------------- ---------------------TIMER 1
TIMER 0
GATE: utilizado quando se deseja um controle do timer externo
através do pino externo INT0 ou INT1 (dependendo do timer utilizado).
Quando este bit está em 1 e o pino INT externo está setado, o bit TR1 do
registrador TCON controla o funcionamento do timer.
C/T: em nível alto, coloca o timer como contador dos pulsos da
entrada Tin1 (externa). Em nível baixo, o timer é acionada pelo sinal de
frequência 1/12 do oscilador interno.
M1
M0
:
controla modo de operação do timer
0
0
0
1
1
0
1
1
->
possuiu um divisor de 5 bits e um
contador de 8 bits
->
sem divisor, possuiu contador de 16 bits
->
contador de 8 bits (TH). O byte TH é
recarregado a cada ciclo em TL
->
para timer.
- Registrador de controle
______________________________________________
-----------------------------------------------------TCON: | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0|
----------------------- ------------------------------TF0: bit de status. Em nível alto indica overflow do
timer 0.
TR0: em nível alto habilita o funcionamento do timer 0.
ser setado para o timer operar.
60
Precisa
Apostila de Microprocessadores
Ivair Reis N. Abreu
IE0: bit de status. Em nível alto indica que houve
pulso na entrada do pino Tin0.
IT0: em nível alto indica pulso positivo na entrada do
pino Tin0. Em nível baixo indico pulso negativo.
Ex.: Configurar o timer 0 para temporização de 16 bits e timer 1 para
temporizador de 8 bits com carregamento automático. Colocar o número
0AB5H no timer 0 e 20H no timer 1.
5.6) - Exercícios
1) - Qual o tempo máximo possível de ser implementado pelos timer 0 e 1
se utilizarmos um cristal de 12 Mhz para o cristal externo.
2) - Idem ao exercício anterior utilizando um cristal de 1 Mhz externo.
3) - Se utilizarmos o timer 0 controlado pela entrada externa 0 (pino
T0), qual o tempo máximo de temporização se recebermos um sinal externo
quadrado de 1 Khz?
61
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 19
4) - Fazer uma rotina para a cada 100 mseg (supor que o cristal do
microcontrolar é de 6 Mhz) a posição da chave localizada no port P1.0
seja colocada na posição de memória booleana 20.0H. Se a chave estiver
em nível alto, ligar um motor localizado no port P1.1. Caso contrário,
desligar o mesmo motor. Utilizar o timer 0 para implementar a
temporização.
5) - Fazer uma rotina para a cada 10 mseg (supor que o cristal do
microcontrolador é de 12 Mhz) as posições de 4 chaves localizadas nos
ports P1.0, P1.1, P1.2 e P1.3 sejam colocadas nas posições booleanas
20.0H, 20.1H, 20.2H e 20.3H e controlem 4 motores localizados nos ports
P1.4, P1.5, P1.6 e P1.7. Utilizar o timer 1 para implementar a
temporização.
6) - Fazer com que as posições 30 H e 31 H sejam incrementadas a cada 1
mseg. Usar o timer 1 para implementar a temporização. Utilizar cristal
de 12 Mhz.
7) - Utilizando o timer 0 programado para 10 mseg. fazer com que a
posição 40 H e 41 H sejam incrementadas a cada 10 mseg. Utilizar cristal
de 1 Mhz.
8) - Fazer um programa para o port P1.0 gerar um pulso de 0,5 segundo
quando 10 garrafas passarem por um feixe luminoso. Utilizar o timer 0
configurado como contador.
9) - Colocar a mensagem abaixo no display. A cada 20 mseg. ler o sensor
P1.0. Ligar uma lâmpada (P1.1) se o sensor estiver em nível baixo e
desligar a lâmpada se o sensor estiver em nível alto.
62
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 20
7) - Sistema de varredura de Teclado/Display.
As teclas estão localizadas na intersecção de linhas (ports de
saída) e colunas (ports de entrada). Ao acionar uma determinada tecla, o
sinal da linha é colocado na coluna para ser lida. Um sistema de
varredura (com freqüência superior da freqüência de toque das teclas)
garante um sinal em nível alto (ou baixo) durante um pequeno período
suficiente para ser reconhecido pelo port de entrada em caso de
acionamento de alguma tecla.
Teclado de 16 teclas com varredura matricial
O programa abaixo faz a leitura de 16 chaves utilizando o PORT 2.
Utilizar os 4 bits P2.0 a P2.3 para gerar os sinais de varredura. Fazer
um programa para ler cada chave é colocar sua condição nos bits 20.0H a
21.7H. Ler o teclado a cada 10 mseg. utilizando o timer 0.
;* timer 0 -> 0d8efH (calculado no exercício 5 - item 2.3)
;* definição dos ports
COLUNA1
COLUNA2
COLUNA3
COLUNA4
LINHA1
LINHA2
LINHA3
LINHA4
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
;* definição da área boolena
CHAVE1
CHAVE2
CHAVE3
CHAVE4
CHAVE5
CHAVE6
CHAVE7
CHAVE8
CHAVE9
CHAVE10
CHAVE11
CHAVE12
CHAVE13
CHAVE14
CHAVE15
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0
1
2
3
4
5
6
7
8
9
0aH
0bH
0cH
0dH
0eH
;*POSIÇÃO 20.0
63
Apostila de Microprocessadores
CHAVE16
;* INICIO DO PROGRAMA
INICIO:
Ivair Reis N. Abreu
EQU
0fH
;POSIÇÃO 21.7
ORG
JMP
0
INICIO
ORG
JMP
0BH
LECHAVE
ORG
MOV
MOV
MOV
MOV
MOV
SETB
CLR
30H
SP,#60H
IE,#10000010B
TH0,#0D8H
TL0,#0EFH
TMOD,#00010001B
TR0
TR1
;TIMER 0
;HABILITA TIMER 0
;LIGA TIMER0
;DESLIGA TIMER1
.
.
.
;*SUBROTINA DA INTERRUPÇÃO
LECHAVE:
MOV
TH0,#0D8H
MOV
TL0,#0EFH
MOV
20H,#00H
MOV
21H,#00H
SETB
LINHA1
SETB
LINHA2
SETB
LINHA3
SETB
LINHA4
;* INICIA VARREDURA DA LINHA1
CLR
LINHA1
JB
COLUNA1,SALTO1
SALTO1:
SALTO2:
SALTO3:
SALTO4:
SALTO5:
SALTO6:
SALTO7:
SALTO8:
SALTO9:
64
SETB
JB
CHAVE1
COLUNA2,SALTO2
SETB
JB
SETB
JB
SETB
SETB
CLR
JB
CHAVE2
COLUNA3,SALTO3
CHAVE3
COLUNA4,SALTO4
CHAVE4
LINHA1
LINHA2
COLUNA1,SALTO5
SETB
JB
CHAVE5
COLUNA2,SALTO6
SETB
JB
SETB
JB
SETB
CHAVE6
COLUNA3,SALTO7
CHAVE7
COLUNA4,SALTO8
CHAVE8
SETB
CLR
JB
LINHA2
LINHA3
COLUNA1,SALTO9
SETB
JB
;ZERA ÁREA BOOLENA
;SETA LINHA1
;ZERA LINHA 1
;SE A TECHA1 NAO ESTIVER
;ACIONADA, SALTA
;INDICA CHAVE1 ACIONADA
;SE A TECLA2 NAO ESTIVER
;ACIONADA, SALTA
;INDICA CHAVE2 ACIONADA
;LIBERA LINHA 1
;ZERA LINHA 2
;SE A TECHA5 NAO ESTIVER
;ACIONADA, SALTA
;INDICA CHAVE5 ACIONADA
;SE A TECLA6 NAO ESTIVER
;ACIONADA, SALTA
;INDICA CHAVE6 ACIONADA
;LIBERA LINHA 2
;ZERA LINHA 3
;SE A TECHA9 NAO ESTIVER
;ACIONADA, SALTA
CHAVE9
;INDICA CHAVE9 ACIONADA
COLUNA2,SALTO10;SE A TECLA10 NAO ESTIVER
;ACIONADA, SALTA
Apostila de Microprocessadores
SALTO10:
SALTO11:
SALTO12:
SALTO13:
SALTO14:
SALTO15:
SALTO16:
Ivair Reis N. Abreu
SETB
JB
SETB
JB
SETB
CHAVE10
COLUNA3,SALTO11
CHAVE11
COLUNA4,SALTO12
CHAVE12
SETB
CLR
JB
LINHA3
;LIBERA LINHA 3
LINHA4
;ZERA LINHA 4
COLUNA1,SALTO13;SE A TECHA13 NAO ESTIVER
;ACIONADA, SALTA
CHAVE13
;INDICA CHAVE13 ACIONADA
COLUNA2,SALTO14;SE A TECLA14 NAO ESTIVER
;ACIONADA, SALTA
CHAVE14
;INDICA CHAVE10 ACIONADA
COLUNA3,SALTO15
CHAVE15
COLUNA4,SALTO16
CHAVE16
LINHA4
;LIBERA LINHA 4
;RETORNA DA INTERRUPCAO
SETB
JB
SETB
JB
SETB
JB
SETB
SETB
RETI
;INDICA CHAVE10 ACIONADA
7.1) - Exercícios
1) - Fazer um projeto para leitura de dip-switch de 8 chaves utilizando o
sistema de varredura estudado. Colocar a condição das 8 chaves na área
booleana do sistema. Se a chave 1 estiver na condição zero, colocar o
dado 0ffH no port 1. Caso contrário, zerar o mesmo port. Utilizar o
timer0 configurado para 10 mseg. para ler o dip-switch.
2) - Fazer um projeto para o controle de um teclado de 64 teclas.
Colocar sua condição na área booleana. Utilizar uma rotina de
interrupção controlada pelo timer 1 com temporização de 10 mseg para a
temporização da leitura das teclas.
3) - Projeto de um teclado telefônico
65
Apostila de Microprocessadores
Ivair Reis N. Abreu
AULA 21
8) – Conversores Analógico/Digitais
8.1) - Introdução:
Sinal Analógico (não discreto) -> Sinal Digital (discreto)
Fatores para conversão:
- Número de bits de conversão: determina o número de valores discretos da conversão ->
2n
- Valor de Referência: determina o valor máximo de conversão (fundo escala do valor analógico deve ser
ajustado para este valor)
- Freqüência de Amostragem: determina o período entre duas amostras. Pelo Teorema de Nyquest, a
freqüência de amostragem é no mínimo 2 vezes a freqüência máxima do sinal.
fa = 2 x fmax
- Resolução: determina o valor analógico máximo em relação ao fundo escala
 V = Vmax / 2n
Ex: Para um valor Vmax = 5V, n=12 bits, qual a resolução do sinal?
 V = Vmax / 2n
 V= 5 / 4096 = 1,22 mV
Exemplos:
1) - Termômetro :
0 - 100 C
Vref = 2,5 V
n = 8 bits
Qual a resolução em temperatura, considerando que 100 C é equivalente a 2,5 V?
Se aumentar o número de bits para 10 bits, qual a nova resolução?
Se aumentar a Vref = 5 V e 10 bits, qual a nova resolução?
2) - Qual a freqüência de amostragem no canal de telefonia?
3) - Qual a freqüência de amostragem para um fidelidade de som considerando a quarta harmônica?
66
Apostila de Microprocessadores
Ivair Reis N. Abreu
8.2) – Conversor A/D ADC 0808
download -> http://www.national.com/ads-cgi/viewer.pl/ds/AD/ADC0808.pdf
Sistema Mínimo Conversor ADC
Sistema Mínimo 8031 / ADC0808 (endereço 2000H - 3FFFH)
8.3) - Exercícios
1) - Projetar um circuito com as seguintes características:
- 8031
- Eprom 2764
- LCD (end. 0-1fffh)
- Serial RS232
- Conversor ADC0808 (end. 2000h-3fffh) com 8 sensores de temperatura.
- 1 ventilador (port p1.1)
- 1 aquecedor (port p1.2)
- Firmware ligando o ventilador se o terceiro sensor indicar o valor maior que 80h e ligar o aquecedor se o
valor for menor que 30h.
2) -Idem para a leitura dos outros 7 sensores.
67
Apostila de Microprocessadores
Ivair Reis N. Abreu
Primeira Lista de Exercícios - Microprocessadores
Colaboração: Monitor Carlos Henrique
1) - Sistemas de Numeração:
1.1) - Converter os seguintes números para decimal:
1011 1011B
1111 0001 1001 1111B
8ABF H
3459FE5A H
O endereço inicial da memória de vídeo do seu PC
1.2) - Converter os seguintes números para hexadecimal:
1011 1111 1011 0010 1111 1110 1010 1001 B
1253 D
543 D
2) - Por que o computador utiliza no seu processamento símbolos digitais? Por que não é analógico se nós o
somos e o computador procura nos copiar. Comente como o transistor bipolar / cmos colabora para este
processamento.
3) - Pesquise o número de transistores dos processadores: 8088-80286-80386-80486-Pentium I até o Pentium
IV. Qual a relação entre o número de transistores e a capacidade de processamento.
4) - Explicar por que um SISTEMA PROGRAMÁVEL favorece a escala de produção industrial. Comenta o
fato das placas centrais (mother board) possuirem poucos fabricantes e custarem cerca de US$ 200,00 (placa
+ processador + memória RAM), um preço baixo comparado ao seu poder de processamento.
5) - PESQUISA: investigar as técnicas de fabricação de Circuitos Integrados e Microprocessadores na
Biblioteca e na Internet.
6) - Mostrar o estrutura de um sistema programável (computador), explicando seus 3 blocos e os tipos de
barramentos.
7) - Qual a diferenças entre um microprocessador e um microcomputador.
8) - PESQUISA: identificar as 3 estruturas de um sistema programável nos microcontroladores 12F629
(www.microchip.com) e MSP430F135 (www.ti.com).
9) - Comparar funcionalmente a estrutura de um computador com o ser humano.
10) - Quais são os tipos de memória semicondutoras. Qual o tipo de memória utilizado na BIOS do PC e da
memória de dados. Qual o tamanho da memória BIOS e da RAM do seu computador (pesquise no painel de
controle do seu computador os endereços iniciais / finais do seu PC).
11) - Pesquise: quais são as principais características da EPROM 27512 e da RAM 62512.
12) - Qual a função da BIOS, Sistema Operacional e Aplicativos no computador. Cite qual é o fabricante da
BIOS e do Sistema Operacional e o aplicativo mais utilizado no seu computador.
13) - Qual a diferença entre as expressões Firmware e Software. Cite 3 exemplos de Firmware que você
conhece.
68
Apostila de Microprocessadores
Ivair Reis N. Abreu
14) - PESQUISA: qual a diferença entre memória EEPROM e FLASH. Qual o tamanho da memória Flash
do chip 12F629.
15) - PESQUISA: citar as diferenças entre os barramentos ISA, PCI e AGP do computador.
16) - PESQUISA: procurar as diferenças entre os barramentos seriais I2C e SPI.
17) - Explicar a estrutura básica da arquitetura de um microprocessador. Qual a função de cada componente
básico?
18) - PESQUISA: levantar no livro do A. Malvino (Microcomputadores e Microprocessadores) a arquitetura
da ULA, Decodificador de Instruções e Registradores implementada através de lógica discreta.
19) - Qual a única operação aritmética implementada físicamente na ULA dos microprocessadores? Qual a
estrutura lógica utilizada para implementar um somador binário completo. Pesquise um circuito integrado
TTL (família 74XXX) discreto utilizado para implementar uma ULA.
20) - Quais são as 4 operações lógicas booleanas implementáveis?
21) - Qual a função do acumulador e do registrador FLAG em uma estrutura de microprocessador.
22) - Qual o conteúdo do Acumulador, do FLAG do 8085 e registrador D nos 2 programas
MOV A,85H
MOV A,85H
ADI
A,FEH
MOV B,A7H
JZ
SALTO
ADD
A,B
MOV D,87H
JNP
SALTO
JMP CONT
MOV D,00H
SALTO MOV D,9AH
JMP CONT
CONT
.....
SALTO MOV D,FFH
CONT ......
23) - Explicar o conceito de pilha e de subrotina em programação. Quais as vantagens de utilizar uma
subrotina em programação?
24) - Qual a diferença das instruções JMP <END> e CALL <END>? O que acontece com o registrador PC
nos 2 exemplos.
25) - Mostrar os osciladores a cristal e RC. Quais dos 2 é mais estável com relação a temperatura?
26) - Definir ciclo de instrução e ciclo de máquina.
27) - Considerando um oscilador a cristal (fc = 32 Khz, divisão de freqüência por 2), qual o periodo do ciclo
de instrução e ciclo M1 (busca) e M2 (execução) das instruções abaixo:
ADD
A,B
(1 BYTE)
LXI
B,2000H (3 BYTES)
M1 -> 4 CLOCKS
M1 -> 4, 3, 3 CLOCKS
M2 -> 3 CLOCKS
M2 -> 3 CLOCKS
28) - Representar o sistema de inicialização (reset) ativo em nível alto e nível baixo.
29) - Definir e explicar o funcionamento de um supervisório WATCH DOG. Como o WD evita o travamento
do microprocessador?
30) - Explicar o funcionamento de um sistema BROWN-OUT.
69
Apostila de Microprocessadores
Ivair Reis N. Abreu
31) - Por que consideramos um sistema com reset externo não confiável?
32) - Calcular o capacitor mínimo para um sistema de reset ativo em 0:
R = 100 K
Vcc = 3,3 V
50 pulsos de clock (100 kHz) para inicialização
Vreset = ½ Vcc
33) - Explicar como funciona um sistema de interrupção em um microprocessaodor. Dar 3 exemplos
aplicáveis ao computador PC. O que é um vetor de interrupção?
34) - Levantar as 16 interrupções do PC e qual o vetor de cada um deles.
35) - Se você instalar uma placa de rede em um computador e surgir uma mensagem de conflito com o mouse.
Qual a razão do programa e qual uma possível solução.
36) - Sob o ponto de vista de interrupção, como um sistema PLUG AND PLAY instala uma nova placa de
rede?
37) - Qual a diferença entre uma interrupção com o vetor fixo e com vetor variável. Cite uma interrupção de
cada tipo no 8085.
39) - Explicar o funcionamento de um sistema de DMA.
40) - Explicar como o sistema de DMA atua em uma placa de vídeo no PC.
41) - Como o sinal de ALE ajuda a separar os dados AD0-AD7 no 8085. Mostre o circuito utilizando um
buffer para dado e endereço.
42) - Mostrar um circuito de separação de AD0-AD7 utilizando apenas um latch.
43) - Mostrar um circuito de separação de um barramento AD0-AD15.
44) - Mostrar a função dos sinais RD, WR e IO/M. Qual a condição destes sinais nas instruções MOV M,A,
OUT 20h e MOV A,M.
45) - Calcular os tempos de Wait-State do sinal READY no acesso de uma memória RAM de 100 nseg e um
disco rígido de 1 mseg.
46) - Qual a vantagem de termos uma memória cache de grande capacidade dentro de um microprocessador.
47) - Por que é importante ter-se uma grande quantidade de memória RAM de dados no seu computador no
aspecto do tempo de Wait State.
48) - Descrever os 40 pinos do 8085.
49) - Comparar o 8085 e o Z80.
50) - Fazer o diagrama de tempo da instrução IN 80H.
51) - Pesquisar a temporização da instrução MOV A,B do 8085.
70
Apostila de Microprocessadores
Ivair Reis N. Abreu
52) - PESQUISA: Fazendo paginação de memória, colocar 1 Mbyte de memória 62512 em um sistema com o
8085. Quais os endereços iniciais e finais de cada chip de memória.
53) - Projetar um sistema de 8 periféricos com o 74LS373: 8 solenóides, 8 motores, 8 ventiladores, 8
lâmpadas, 8 sensores fotoelétricos, 24 chaves liga/desliga.
54) - Para o circuito acima, fazer um programa para o primeiro sensor fotoelétrico ligar / desligar a quinta
lâmpada.
55) - Comparar a arquitetura entre os microprocessadores 8088-80286-80386-80486-Pentium I até o Pentium
IV.
56) - Obter as características dos circuitos integrados 74LS373, 74LS245, 74LS138.
71
Download