br
APOSTILA
MICROPROCESSADORES II – EEUM
SEGUNDO SEMESTRE 2007
PROF. IVAIR REIS N. ABREU
06/08/2007
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
06/08/2007 12/11/2007
x------------------------------------------------------------------x
Pré-Requisito -> 13 semanas -> Objetivo Final
EMENTA:
2
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
CONTEÚDO PROGRAMÁTICO
METODOLOGIA
CRITÉRIO DE AVALIAÇÃO
BIBLIOGRAFIA
3
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Internet:
www.microcontroller.com
www.8052.com
www.vidal.com.br
www.asm51.eng.br
www.icmaster.com
www.microchip.com
www.ti.com
www.zilog.com
www.freescale.com
www.cypress.com
www.asm51.eng.br
Início: 06/08
Término: 12/11
Prazo entrega final das notas: 15/12
Falta Prevista: ----
Reposição: ----
Feriado: 15/10, 19/11
Aulas Previstas: 12 semanas (1 reservado para avaliação P1 presencial).
4
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Planejamento (P):
Execução (D):
5
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
1.2.1) - Pinagem:
6
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
7
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
8
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
- Firmware: Se a chave liga/desliga estiver acionada e a porta fechada ligar todas as saídas
(menos o bip) por 1 minuto. Após este tempo, acionar o bip por 0,5 segundo e voltar ao
ínicio do processo. Se a porta abrir durante o tempo de 1 minuto, desligar as saídas e
esperar a porta fechar para finalizar processo.
Verificação:
1.5) – Exercício:
- Firmware:
lâmpadas externas-> ligar quando o sensor fotoelétrico estiver indicando escuro.
lâmpadas internas -> ligar quando for detectada a presença de alguma pessoa na
saída. Desligar na ausência.
- 89S53
- Teclado 16 teclas
- Comunicação serial RS232
- Conversor A/D de 8 canais (ADC0808) -> 0-1fffh
- Display 16x2 -> 2000h-3fffh
- 1 chave liga/desliga
9
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
- 1 solenóide
- 1 lâmpada
- 1 sensor fotoelétrico
Ação
- Rever os conceitos de arquitetura do microcontrolador 8051.
- Rever conjunto de instruções 8051.
- Procurar o professor ou monitor para tirar dúvidas
10
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
11
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
12
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Controle (C/D = 0)
Verificação (C):
Exercícios:
13
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
- 89S52 com sensor de presença em P3.2, ventilador P3.3 e uma lâmpada em P3.4. LCD no
endereço E000-FFFFh.
14
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Planejamento (P):
Execução (D):
Rotina de Inicialização:
Para clock de 12 Mhz o WDT precisa ser reinicializado a cada (1 x 3fffh = 16,8
mseg.)
15
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
reset) e o modo IDLE deixa ativados apenas os periféricos internos (timer, uart,
interrupções, etc.) representando uma economia de energia de 85%. Sai do modo
IDLE através de interrupções ou reset.
Verificação (C)
- 89S51
- 1 chave (P1.0) para desligar sistema.
- Cristal de 11.059Mhz
- 1 sensor de presença (P1.1).
- 3 lâmpadas (P1.2 a P1.4).
- 3 ventiladores (P1.5 a P1.7)
- Display LCD (endereço 2000-3fffh).
Ação
- Rever os conceitos de WDT e controle de potência do 8051.
16
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Planejamento (P):
17
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Verificação (C):
Exercícios:
3) - Supondo uma chave (ativa em nível alto) ligada a IE0 (pino 3.2), gerar um
pulso de 5 segundos em P1.0 cada vez que a chave for acionada. Enviar para o
LCD a mensagem CHAVE ATIVADA pelo mesmo tempo. Compilar, simular e
emular no KIT do laboratório este processo.
4) - Idem para a IE1 (pino 3.3).
- Catraca com sensor tipo “reed switch” entrando a interrupção IE0. Contar o
número de eventos incrementando o registrador 30H (a partir do zero) tocando um
buzzer (P1.0) por 0,5 segundos a cada acesso. Quando o valor do registrador
30H chegar a 100 pessoas, acionar o buzzer por 5 segundos colocando pelo
mesmo tempo a mensagem LOTACAO MAXIMA 100 PESSOAS.
18
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Ação (A):
19
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
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 freqüência 1/12 do
oscilador interno.
- Registrador de controle
------------------------------------------------------
TCON: | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0|
----------------------- -------------------------------
Verificação (C):
Exercícios
20
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
6) - Fazer um projeto de um CLP para controlar nível de tanque. Fazer uma rotina
para a cada 100 mseg (supor que o cristal do microcontrolar é de 6 Mhz) o sensor
de nível de um posição da chave localizada no port P1.0 seja armazenado na
posição de memória booleana 20.0H. Se a chave estiver em nível alto, ligar uma
válvula de alívio localizado no port P1.1. Caso contrário, desligar a válvula.
Utilizar o timer 0 para implementar a temporização. Escrever em um LCD <
CONTROLE DE 1 TANQUE>. IMPORTANTE: COMPILAR ESTE PROGRAMA E
SIMULAR NO AMBIENTE DO LABORATÓRIO (SIMULADOR + KIT).
7) - Idem para 4 tanques (P1.0 a P1.3 para os sensores e P1.4 a P1.7 para as
válvulas). Utilizar Timer 1 com tempo de leitura de 30 msegundos e cristal de 12
Mhz. Escrever em um LCD < CONTROLE DE 4 TANQUES>.
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.
11) - Utilizando o kit do laboratório, fazer o led do kit piscar 2 vezes por segundo
utilizando o timer 0. Escrever no LCD <LED PISCANDO 2 HZ>
Ação (A):
21
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
22
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
;* INICIO DO PROGRAMA
ORG 0
JMP INICIO
ORG 30H
INICIO: MOV SP,#60H
MOV IE,#10000010B ;HABILITA TIMER 0
MOV TH0,#0D8H ; TIMER 0 - 10 MSEG.
MOV TL0,#0EFH
MOV TMOD,#00010001B
SETB TR0 ;LIGA TIMER0
CLR TR1 ;DESLIGA TIMER1
.
;*SUBROTINA DA INTERRUPÇÃO
23
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
SETB LINHA2
SETB LINHA3
SETB LINHA4
;* INICIA VARREDURA DA LINHA1
CLR LINHA1 ;ZERA LINHA 1
JB COLUNA1,SALTO1;SE A TECHA1 NAO ESTIVER
;ACIONADA, SALTA
SETB CHAVE1 ;INDICA CHAVE1 ACIONADA
SALTO1: JB COLUNA2,SALTO2;SE A TECLA2 NAO ESTIVER
;ACIONADA, SALTA
SETB CHAVE2 ;INDICA CHAVE2 ACIONADA
SALTO2: JB COLUNA3,SALTO3
SETB CHAVE3
SALTO3: JB COLUNA4,SALTO4
SETB CHAVE4
SALTO4: SETB LINHA1 ;LIBERA LINHA 1
CLR LINHA2 ;ZERA LINHA 2
JB COLUNA1,SALTO5;SE A TECHA5 NAO ESTIVER
;ACIONADA, SALTA
SETB CHAVE5 ;INDICA CHAVE5 ACIONADA
SALTO5: JB COLUNA2,SALTO6;SE A TECLA6 NAO ESTIVER
;ACIONADA, SALTA
SETB CHAVE6 ;INDICA CHAVE6 ACIONADA
SALTO6: JB COLUNA3,SALTO7
SETB CHAVE7
SALTO7: JB COLUNA4,SALTO8
SETB CHAVE8
24
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Verificação (C):
Exercícios
1) - Fazer um projeto de um teclado telefônico de 12 teclas utilizando os ports P1.1
a P1.7 (igual ao KIT do Laboratório). Fazer uma rotina LETECLADO guardando a
condição das teclas na área booleana 20.0 a 21.3. Criar um flag F_TEC que
indicará sempre que uma tecla for acionada. A área booleana será zerada no
tratamento da tecla. No programa principal, a tecla <*> irá ligar o led do kit (P3.3)
e a tecla <#> irá desligar o led do kit. Testar o programa no kit do laboratório.
2) - Idem para a tecla 0 desligar o rele do kit e a tecla 1 ligar o rele do kit.
3) - Colocar um buzzer no kit do laboratório (P3.5). Acionar o buzzer 0,1 segundo
a cada acionamento do teclado.
4) - Fazer uma rotina para enviar a tecla digitada na o meio da segunda linha do
display.
TESTE TECLADO
X
Ação (A):
25
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Planejamento (P):
26
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
27
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
.
4.2) - Comunicação serial no 8051:
- Modo 0: comunicação serial de 8 bits (sem START e STOP BIT). Bit LSB
é o primeiro. Baud-rate fixo em 1/12 da freqüência do cristal.
- Modo 1: comunicação serial de 10 bits (com START e STOP BIT). Na
recepção, o STOP BIT vai para o RB8 do registrador SCON se SM2=0. Baud-rate
programável de acordo com carga do timer 1.
- Modo 2: comunicação serial de 11 bits (com START, STOP BIT e
PARIDADE). O bit de paridade é programável através do bit TB8 de SCON. Na
recepção, o bit de paridade é guardado em RB8 de SCON. O baud rate é
programável pelo bit SMOD do registrador PCON. Com SMOD=0, baud rate é
28
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
29
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Ex.:
1) - Colocar o processador em modo IDLE.
MOV PCON,#00000001B
30
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
RI: bit indicador de dado recebido. Necessita ser limpo por software.
smod
Taxa = 2 x (freq. cristal)
---- --------------
32 12 x (256 - TH1)
Exemplos:
31
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
ORG 0
JMP INICIO
...
ORG 23H
JMP SERIAL
...
ORG 30H
INICIO: MOV TH1,# 0FD h ;carrega cristal 1 com reload
MOV TMOD,# 0010XXXXb ; programa timer 1 c/ reload
MOV TCON, # 010X0000b ;roda timer 1
MOV IE,# 10011XXXb ;habilita inter. serial e t1
MOV SCON, # 01010000b ;modo 1 e rx habilitado
...
SERIAL: PUSH ACC
MOV A,SBUF
MOV @R0,A
CLR RI
POP ACC
RETI
...
WAITRX: JNB RI,WAITRX
MOV A,SBUF
MOV @R0,A
CLR RI
...
...
ORG 30 h
MOV TH1,# 0FD h ;carrega cristal 1 com reload
MOV TMOD,# 0010XXXXb ; programa timer 1 c/ reload
MOV TCON, # 010X0000b ;roda timer 1
MOV IE,# 10011XXXb ;habilita inter. serial e t1
MOV SCON, # 01010000b ;modo 1 e rx habilitado
...
TXBUF: MOV A,@R0
MOV SBUF,A ;CARREGA DADO A SER TX
JNB TI,$ ;ESPERA TRANSMITIR
32
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
CLR TI
...
Verificação (C):
Exercícios:
1) - Fazer uma rotina para transmitir uma string de uma tabela. Transmitir para um
computador a 9600 bps a string <ENGENHARIA MACKENZIE> . Testar utilizando
o Hiperterminal ou qualquer outro programa de comunicação.
Ação (A):
33
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
5) – Conversores Analógico/Digitais
Planejamento (P):
5.1) - Introdução:
fa = 2 x fmax
34
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
∆ 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
35
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
36
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Verificação (C):
Exercícios:
- 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.
Ação (A):
37
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
38
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
39
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Aplicação
Multimídia -
PC
Sistema
Aberto (BIOS
+ SO +
X
Aplicativo)
Análise de
Sinais -
Sistema
Dedicado
(Firmware)
X
Controle
Booleano /
Sinal
Analógico de
baixa
X
freqüência
Microcontrolador DSP Microprocessador Tecnologia
8 / 16 bits 16 / 32 32 / 64 bits
bits
DSP -> TMS320 (www.ti.com) -> C2xx (motor), C5xx (telecomunicação), C6xx
(vídeo)
40
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
1)a) - Fazer uma rotina para habilitar as interrupções seriais, timer 1 e externa 0,
dando prioridade para a comunicação serial.
b)- Um microcontrolador desenvolvido no Laboratório de Microprocessadores do
Mackenzie (MACK3) possui uma entrada de reset ativa em nível baixo, entrada de
cristal até 20 Mhz, memória FLASH de 4 Kbytes (sem acesso a memória externa)
e 2 ports de comunicação (Port PA com 8 bits e Port PB com 6 bits). Fazer um
esquema mostrando a ligação do MACK3 com um display LCD de 2 linhas x 20
caracteres.
41
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
Explicar o conceito do vetor 06h. O que existe (qual rotina) neste endereço do
programa?
Supondo que a freqüência de contagem na ENTRADA do timer seja de 100 Khz,
calcular o valor do temporizador T para o tempo de 3 milisegundos. Fazer uma
rotina de inicialização para o timer T.
42
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
9)- Vamos supor que você esteja programando um novo microcontrolador que
possua um temporizador interno com as seguintes características:
Contador DECRESCENTE de 16 bits. Entrada para o temporizador externo (pino
TENTR) que decrementa o temporizador de 1 unidade a cada pulso. Interrupção
com endereço 0010H
Registradores de modo (TMOD) e controle (TCON) idênticos ao 8051.
Mneumônicos para programação em linguagem Assembler compatível com o
8051.
a)- Supondo a entrada de um sinal de 100 Khz na entrada TENTR, qual o número
a ser colocado dentro do timer para o mesmo fornecer um tempo de 10 mseg?
Justificar mostrando o cálculo
b)- Fazer um programa em linguagem Assembler para incrementar apenas o
registrador R3 a cada 10 mseg.
43
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
44
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
45
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
46
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
47
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
48
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
49
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
50
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
51
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
52
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
53
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
54
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
55
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II
56