Documente Academic
Documente Profesional
Documente Cultură
br
APOSTILA
MICROPROCESSADORES
UNIDADE: FCBEE
DISCIPLINA: Microprocessadores
PROFESSOR: Ivair Reis Neves Abreu
Departamento: Eletrnica
ETAPA: 4 CARGA HORRIA: 6 aulas tericas SEMESTRE LETIVO:
primeiro
08/08/2005 22/09/2005
x------------------------------------------------------------------x
Pr-Requisito -> 14 semanas -> Objetivo Final
EMENTA:
METODOLOGIA
CRITRIO DE AVALIAO:
Calendrio de Provas
CONTEDO PROGRAMTICO:
Conversos A/D
- Princpios do conversor A/D e D/A
- Sistema Mnimo
- Rotinas de Acesso
BIBLIOGRAFIA
Internet:
www.microcontroller.com
www.8052.com
www.vidal.com.br
www.questlink.com
www.microchip.com
www.ti.com
www.zilog.com
www.asm51.eng.br
Incio: 08/08
Trmino: 21/11
Prazo entrega final das notas: 14/12
Falta Prevista: ----
Reposio: ----
Feriado: 14/11/2005
Aulas Previstas: 15 semanas
1) - Conceitos de Sistemas Programveis
Planejamento (P):
Execuo (D):
1.2.2) - Memria:
Resumindo:
1.2.3) - Perifricos:
Ex:
- Microprocessador Pentium IV da Intel. A aplicao do Pentium em
computadores multimdia.
- Microprocessador 8085. Ser estudado neste captulo.
1 bit -> 0 e 1
1 byte = 8 bits
1 word = 2 bytes
1 double-word = 4 bytes
Ex:
Exemplo:
- 8085 -> 16 bits na via de endereo -> 216 = 65512 kbytes
Memria Semicondutora:
- No Voltil -> ROM (Read Only Memory) -> ROM (o fabricante grava uma nica
vez), PROM (o usurio grava uma nica vez), EPROM (o usurio grava milhares
de vezes aps um processo de apagamento por luz ultravioleta), EEPROM (o
usurio grava milhes de vezes eletricamente) e FLASH (EEPROM rpida com
nmero menor de gravaes).
- Voltil -> RAM (Random Acess Memory) -> dinmica (memria de massa
utilizada em computadores) e esttica (memria utilizando flip-flops).
Exerccios
1) - Procurar na Internet as caractersticas dos CIs: 27C64, 6264, 74HC138,
74HC373
2) Verificar os seguintes dados do seu computador pessoal (painel de controle ou
programa Sandra) :
- Tipo de Processador
- Velocidade de Processamento
- Perifricos disponveis.
- Levantar o mapa de endereo da memria interna do computador (Ram,
Bios, memria de vdeo, etc). Quantos bits de endereo esto
disponveis? Qual a capacidade mxima de memria para este nmero
de bits.
Ao
- Para dvidas em Eletrnica Digital Combinacional e Sequencial estudar a
bibliografia da disciplina Eletrnica Digital (Sugesto: Eletrnica Digital - Vol 1 e 2
- Malvino ou Microcomputadores e Microprocessadores - Malvino)
- Rever o conceito de memria e projeto de banco de memrias.
- Procurar o professor ou monitor para tirar dvidas
Registradores:
Posies de memria internas (latchs tipo D) responsveis pelo armazenamento
temporrio de informaes gerais (registradores genricos) ou especficas.
Registradores para armazenamento de dados ou endereos dentro do
microprocessador. So implementados atravs de "latchs" internos (podendo ser
comparados a posies de memria dentro do microprocessador). Quanto maior
o nmero de registradores internos maior a velocidade de processamento, pois
no necessrio o acesso memria externa para armazenamento de variveis.
comum os microcontroladores e os D.S.P.s possurem algumas centenas de
'posies de memria internas', diminuindo em muito o tempo de acesso
memria. Outro exemplo bastante apropriado a memria "caches" internas aos
microprocessadores 486 e PENTIUM.
Registradores Especficos:
| S | Z | - | AC | - | P | - | C |
- AC -> flag auxiliar carry. Em 1 indica "vai um" entre primeiro e segundo
nibble do resultado.
Verificao
Exerccios
MOV A,7AH
MOV B,53H
ADD A,B
JNC SALTO
- Instruo: CALL 2000H -> carrega o PC com o endereo 2000H. Neste caso, o
contedo anterior do PC (PCH->SP-1 e PCL->SP-2) salva em uma regio de
memria (interna ou externa ao microprocessador) conhecida por PILHA. Ao ser
executada a instruo RET, o programa retorna ao ponto em que foi chamado. A
rotina acessada pela instruo CALL conhecida por subrotina. O contedo do
registrador SP decrementado de dois para possibilitar o salvamento de outros
parmetros na pilha (ou a chamada de outras subrotinas dentro de subrotinas)
- Apontador de Pilha (SP): registrador armazenador do endereo na rea
de pilha do sistema. Ser nesta rea que sero armazenados endereos de
retorno das sub-rotinas, bem como parmetros dos diversos registradores.
Exerccios:
Verificao
Exerccio:
1) - Determinar o mnimo valor de um capacitor para um circuito de reset
automtico considerando:
Vcc = 5V, Vreset = 2/3 Vcc
R = 100k
Freqncia: 100 Mhz
Nmero de clocks mnimo para reset: 100
1.9.3) - Interrupes:
Interrupes Endereo
+ prioritrio
^ TRAP 0024H
|
| RST6,5 003CH
|
| RST6,5 0034H
|
| RST5,5 002CH
|
| INTR endereo fornecido por
um controlador de interrupo
Verificao
Ex: Qual o perodo de um pulso de espera (Wait State) para o acesso a uma
escrita no disco rgido considerando:
Verificao
VCC = 3,3 V
R = 10k
Freqncia: 500 Mhz
Nmero de clocks mnimo para reset: 500
2) Qual o perodo de um pulso de espera (Wait State) para o acesso a uma
memria RAM rpida considerando:
Ciclo de instruo de escrita: 5 clocks
Clock: 500 Mhz
Tempo de Acesso a RAM: 15 nseg.
BC
/
Pares DE
Fixos \
H L -> par de registrador mais utilizado como
ponteiro de memria.
Clock 1 Mhz
Reset automtico / manual
Desabilitar as interrupces atravs de resistores de pull-down
Sistema DMA (representar em blocos)
Desabilitar sinal READY.
32 Kbytes de memria EPROM (27256)
32 Kbytes de memria RAM (62256)
8 Perifricos (endereo 00 ff). Representar cada perifrico por um bloco.
Temporizao da Instruo 'OUT <end>' (2 bytes) Ex: OUT 20H (D3 20)
Verificao
EXERCCIO
1) - Sistemas de Numerao:
1011 1011B
1111 0001 1001 1111B
8ABF H
3459FE5A H
O endereo inicial da memria de vdeo do seu PC
24) - Qual a diferena das instrues 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 estvel com
relao a temperatura?
R = 100 K
Vcc = 3,3 V
Vreset = Vcc
33) - Explicar como funciona um sistema de interrupo em um microprocessador.
Dar 3 exemplos aplicveis ao computador PC. O que um vetor de interrupo?
36) - Sob o ponto de vista de interrupo, como um sistema PLUG AND PLAY
instala uma nova placa de rede?
37) - Qual a diferena entre uma interrupo com o vetor fixo e com vetor varivel.
Cite uma interrupo de cada tipo no 8085.
40) - Explicar como o sistema de DMA atua em uma placa de vdeo 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 endereo.
44) - Mostrar a funo dos sinais RD, WR e IO/M. Qual a condio destes sinais
nas instrues MOV M,A, OUT 20h e MOV A,M.
47) - Por que importante ter-se uma grande quantidade de memria RAM de
dados no seu computador no aspecto do tempo de Wait State.
54) - Para o circuito acima, fazer um programa para o primeiro sensor fotoeltrico
ligar / desligar a quinta lmpada.
Planejamento (P):
- Conceituar Microntrolador
- Conhecer a arquitetura interna da famlia MCS-51
- Sistema Mnimo da famlia MCS-51 com e sem memria externa
- Projetar CLPs utilizando ports de comunicao paralelo.
Execuo (D):
2.1 - Introduo
Aplicao
Multimdia -
PC
Sistema
Aberto (BIOS
+ SO +
X
Aplicativo)
Anlise de
Sinais -
Sistema
Dedicado
(Firmware)
X
Controle
Booleano /
Sinal
Analgico de
baixa
X
freqncia
Microcontrolador DSP Microprocessador Tecnologia
8 / 16 bits 16 / 32 bits 32 / 64 bits
HARVARD'.
- 256 instrues otimizadas para controle.
Arquitetura do Microcontrolador 8051:
Arquitetura funcional
CY AC F0 RS1 RS0 OV - P
- 32 sinais de entrada/sada
- Interface serial (RxD e TxD), interrupes externas (INT0 e
INT1), "timer" duplo externo (T0 e T1).
Verificao (C)
Exerccios
1) Sistema com o 8031 com as seguintes caractersticas:
- Clock de 12 Mhz
- Reset automtico e manual.
- Controle de 12 motores .
- 12 entradas de chaves.
Planejamento (P):
Execuo (D):
3.1) - Introduo:
A linguagem Assembler uma linguagem de nvel intermediria, composta
basicamente de mnemnicos (palavra representando o cdigo de operao da
instruo), diretivas (pseudo-instrues), labels e comentrios. Pelo fato de estar
bem prxima a linguagem de microprocessador (linguagem de mquina composta
de bits compreensvel pelo processador), exige um compilador (programa que
converte o programa fonte em linguagem de mquina) bastante simples e portanto
rpido. ideal para utilizao na rea de projeto e testes de microprocessadores,
pois exige conhecimento da estrutura do microprocessador utilizado (ao contrrio
das linguagens superiores transparentes a estrutura do processador). Tem a
desvantagem de no possuir a estrutura de linguagens como PASCAL e C.
Aplicativo
(camada de programao interativa com o usurio)
Linguagem Superior
(camada de programao composta de estrutura de programao (IF THEN < >
ELSE < >))
Linguagem Assembler
(camada de programao composta de mnemnicos dos cdigos de operao).
Linguagem de Mquina
(camada de programao composta por cdigos de operao presentes na
memria e lida pela CPU para executar uma tarefa)
Hardware
(camada fsica)
A medida que a linguagem fica mais interativa ao programador, o
compilador (converte os cdigos da camada de linguagem em cdigos de
operao processados pelas CPU) necessita de ser mais complexo e portanto
mais lento (ou exigindo mais velocidade do processo envolvido)
rotina1 /* sub-rotinas */
{
declaraes;
}
.............
rotina N
{
declaraes;
}
Condicional IF:
Testa uma condio, realizando-a se verdadeira. Caso contrrio, ou sai da
estrutura ou executa a declarao contida na estrutura 'else'
if (estrutura de teste)
{
declaraes /* para uma declarao simples no necessrio { }
}
else /* no obrigatrio */
{
declaraes
}
Ex:
if (teste = = a+b)
{
c = 1;
d = ++;
}
else
c = 2;
Ex:
if (a = = 5)
teste = 1;
else
if (a = = 7)
teste = 2;
else
if (a = = 9)
{
teste = + +;
a=--;
}
Condicional FOR
Realiza uma determinada operao enquanto uma determinada condio
no for atendida.
Ex:
for (;;)
{
motor = desligado;
}
Condicional WHILE
Ex:
soma = 0;
a = 0;
while (a < 101)
{
soma = soma + a;
a++;
}
Condicional DO / WHILE
Estrutura que realiza uma declarao enquanto houver alguma condi;co
seja atendida.
do
{
(declarao);
}
while (condio)
Ex:
do
{ b=++;
motor = ligado;
}
while (chave = ligada)
Condicional SWITCH
Testa uma varivel e executa um grupo de declaraes testando uma
condio particular.
switch (varivel)
{
case constante1:
{
(declaraes)
break;
}
case constante2:
{
(declaraes)
break;
}
case constante3:
{
(declaraes)
break;
}
}
2) VALOR_CTE equ 05
...
add a,#VALOR_CTE
3) mov dptr,#04ffh + 1
Ex.:
ORG 0BH
JMP LE_IO
ORG 30H
INICIO: MOV SP,#PILHA
MOV IE,#PROG_INT
MOV TMOD,#PROG_T0
MOV TH0,#TIMEH0
MOV TL0,#TIMEL0
SETB TR0
CALL INICIA_DSP
...
;SUBROTINAS
;INICIALIZA DISPLAY LCD
INICIA_DSP: ....
RET
;SUBROTINA INTERRUPCAO
LE_IO: ...
RETI
3.4.2) - Comentrios:
Exemplo:
;***********
;* ROTINA EXEMPLO - F.C.I MACKENZIE
;*
;* Data Incio: 01/03/2000
;* Programadores: Jos, Joo e Maria
;* Descrio: esta rotina tem como funo exemplificar a forma de
documentao
;*
;* Histrico de Alteraes:
;* 01/03 -> inicio da programao.
;*
;* Pendncias:
;* - Melhorar rotina de clculo do CheckSun
;*
;************
;***
;* REA DE LABELS
;***
...
...
;*** INCIO DAS SUBROTINAS
ESCR_DSP: ...
RET
Exemplo:
;*** SUBROTINA DE RECEPO SERIAL
;*
;* Descrio: rotina acessada pela interrupo serial. L SBUF, carregando o dado no
;* endereo 30H se o mesmo for diferente de 00.
;* Registradores de Entrada: SBUF
;* Registradores de Sada: 30H
;* Registradores alterados: ACC, PSW
MOV A,SBUF
CJNE A,#00,CONT1
MOV 30H,A
CONT1: POP PSW
POP ACC
RETI
- Comentrio Inicial
- rea de Labes (equates)
- Vetores e chamada de Interrupo
- Programa Principal (normalmente em loop)
- rea de Sub-rotinas genricas.
- rea de Sub-rotinas de interrupo.
- rea de tabelas (DB, DW, etc.)
Ex.:
MOV R0,#50H ; o dado 50H carregado em R0
MOV A,@R0 ; o dado do endereo 50H carregado no acumulador.
- MOV A, 30H
- MOV A,# 30H
- MOV A, R0
- MOV A,@ R0
- MOV 50H, 40H
- MOVX A, @ DPTR
- MOVC A,@A+DPTR
Exemplo:
; LABEL
PILHA EQU 60H
;INICIO DA CODIFICACAO
ORG 0 ;POSIO INICIAL DO PROGRAMA
;TABELA
TABELA: DB 42H
END
Resultado da compilao
Carregar o dgito verificado do seu cdigo de matricula nos registrados R3, R4, na
memria interna 50H, na memria externa 1000H. Criar uma tabela com o cdigo
ASCII da primeira letra do seu nome e carreg-lo na memria externa 1050h.
Simular o exerccio no simulador do laboratrio.
- ADD A,#07
- SUBB A,R7 ; SUBTRAI TAMBEM O CY
- MUL A,B ; RESULTADO MSB -> B e LSB -> ACC
- DIV A,B ;
- INC 40H
- DEC R3
- ANL A,@R1
- ORL A,#0FH
- XLR A,@R0
- CPL A
- RR A
- RLC A ;DESLOCAMENTO A ESQUERDA COM CY.
Exemplo:
org 0
inicio: mov sp,#pilha ;define pilha interna
mov dptr,#memext ;define ponteiro de memria externa
mov a,#55h
loop: mov a,P0 ;le o valor de P0
mov r0,#05h
mov r1,#result
add a,r0
mov @r1,a ;guarda resultado da soma
inc r1
mov r0,#02h
subb a,r0
mov @r1,a
inc r1
mov b,#6fh
mul ab
mov @r1,a
inc r1
mov @r1,b
inc r1
mov b,#02h
div ab
mov @r1,a
inc r1
;* rotina lgica
mov a,#0ffh
mov r0,#0ah
anl a,r0
mov @r1,a
inc r1
mov r0,#0a5h
orl a,r0
mov @r1,a
inc r1
xrl a,r0
mov @r1,a
inc r1
mov a,#0a5h
cpl a
swap a
mov @r1,a
inc r1
rl a
rl a
rr a
mov @r1,a
jmp loop
END
Exerccio
1) - Carregar o dado do PORT P1 nos registradores internos R0-R7 do terceiro
banco.
- PUSH ACC
- POP ACC
- CJNE A,#7Ah,SALTO
- DJNZ R3,LOOP
Piscar 2 leds com intervalo de tempo de 0,5 segundos (2 Hz) localizados em P3.4
e P3.5. Procurar verificar o funcionamento deste programa no kit de
desenvolvimento. Observar os valores salvos na pilha com endereo inicial 70H
; EXEMPLO 3
; PISCA LED 1 (P3.4) E LED 2 (P3.5) COM FREQUENCIA DE 2 HZ
ORG 0
;SUBROTINA
END
Figura - Simulao no AVSIM51 do EXEMPLO3
Verificao (C)
Exerccios
2) - Idem para uma rea de memria RAM externa entre 8000H e FFFFH. Simular
o programa no AVSIM51
- Cristal de 12 Mhz
- Reset automtico
- Comunicao Serial
- Memria ROM de programa interna
- Entrada para chave da porta, 4 bits para o display de LCD
- Controle de teclado de 16 teclas atravs de 8 bits e de 1 chave de incio
de operaao.
- Controle de 1 motor para o prato, lmpada de iluminao interna e 1
vlvula de microondas.
- Firmware ativando o motor, a lmpada e a vlvula se forem acionada a
tecla de incio e se a porta estiver fechada.
Execuo (D):
Links:
http://www.intech-lcd.com.hk/
www.displaytec.com.br
Verificao (C):
Exerccios:
Ao (A):
Exemplo:
Exemplo:
Exemplo:
Exerccios:
NOME TURMA
CODIGO SALA
5) Conversores Analgico/Digitais
Planejamento (P):
5.1) - Introduo:
fa = 2 x fmax
V = Vmax / 2n
Ex: Para um valor Vmax = 5V, n=12 bits, qual a resoluo do sinal?
V = Vmax / 2n
V= 5 / 4096 = 1,22 mV
Exemplos:
1) - Termmetro :
0 - 100 C
Vref = 2,5 V
n = 8 bits
Verificao (C):
Exerccios:
- 89S51
- RAM 62256 (8000-FFFFh)
- LCD (end. 0-1fffh)
- Serial RS232
- Conversor ADC0808 (end. 2000h-3fffh) com 8 sensores de temperatura.
- 1 ventilador (P1.1)
- 1 aquecedor (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.
Ao (A):