Apostila do Laboratório de Microprocessadores

Propaganda
www.mackenzie.com.br
APOSTILA
LABORATÓRIO DE MICROPROCESSADORES
APLICAÇÃO
PRIMEIRO SEMESTRE - 2004
PROF. IVAIR REIS N. ABREU
www.ivair.com.br
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
ÌNDICE
PLANEJAMENTO DIDÁTICO PEDAGÓGICO
4
EXPERIÊNCIA 1 - REVISÃO ASM51/AVSIM51
5
EXPERIÊNCIA 2 - REVISÃO ASM51/AVSIM51
9
FOLHA DE RESPOSTAS – EXPERIÊNCIA 2
11
EXPERIÊNCIA 3 - REVISÃO CONJUNTO DE INSTRUÇÕES 8051
12
FOLHA DE RESPOSTAS – EXPERIÊNCIA 3
17
EXPERIÊNCIA 4 - KIT 8031
18
FOLHA DE RESPOSTAS – EXPERIÊNCIA 4
23
EXPERIÊNCIA 5 - ALARME COM O KIT 8031 / GRAVAÇÃO DE EPROM
24
FOLHA DE RESPOSTAS – EXPERIÊNCIA 5
26
EXPERIÊNCIA 6 - SISTEMA DE TEMPORIZAÇAO/INTERRUPÇÃO 8051
27
FOLHA DE RESPOSTAS – EXPERIÊNCIA 6
34
EXPERIÊNCIA 7 - TECLADO MATRICIAL
35
FOLHA DE RESPOSTAS – EXPERIÊNCIA 7
39
EXPERIÊNCIA 8 - COMUNICAÇÃO SERIAL
40
FOLHA DE RESPOSTAS – EXPERIÊNCIA 8
43
EXPERIÊNCIA 9 - CONVERSOR A/D 8 BITS
44
2
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 9
48
EXPERIÊNCIA 10 - PROJETO COMPLETO
49
EXPERIÊNCIA 11 - INTRODUÇÃO AO START KIT TMS320ERROR! BOOKMARK NOT DEFINED
FOLHA DE RESPOSTAS – EXPERIÊNCIA 11ERROR! BOOKMARK NOT DEFINED.
EXPERIÊNCIA 12 - APRESENTAÇÃO DO PROJETO DE PESQUISA
50
Revisão: 05/08/2003
3
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
PLANEJAMENTO DIDÁTICO PEDAGÓGICO
LABORATÓRIO DE MICROPROCESSADORES APLICAÇÃO
SEGUNDO SEMESTRE 2003
CURSO SUPERIOR DE TECNOLOGIA ELÉTRICA
UNIDADE: F.C.I
DISCIPLINA: Laboratório de Microprocessadores Aplicação
PROFESSOR: Ivair Reis Neves Abreu
Departamento: Eletrônica
ETAPA: 6 CARGA HORÁRIA: 2 aulas práticas
OBJETIVOS: o aluno deverá adquirir praticar os conceitos básicos de sistemas com
microcontroladores e processadores digitais de sinal ao nível de projeto físico e
programação em linguagem de montagem (e máquina) para teste do sistema elaborado.
METODOLOGIA
Aula prática com computadores e ferramentas de programação (compiladores e
simuladores) e utilização de placa didática (kit) baseada no microcontrolador da família
8051. No final do curso o aluno deverá apresentar um projeto prático utilizando a placa
didática e todos os conceitos ministrados no curso (projeto de hardware e firmware básico).
CRITÉRIO DE AVALIAÇÃO
Nota de Laboratório = 0,33 x Participação + 0,33 Experiência 12 + 0,33 Trabalho Prático
Participação = presença e entrega da folha de respostas das 10 primeiras experiências.
Experiência 12 - Entregue individualmente no último dia útil do laboratório.
Trabalho Prático - Grupo de 4 alunos entregue no último dia útil de laboratório.
BIBLIOGRAFIA
-
APLICAÇÕES PRÁTICAS DO MICRONTROLADOR 8051. Vidal Pereira da Silva Jr. - Érica
DATABOOK EMBEDED APLICATIONS 8051 / 89Sxxx. Intel / ATMEL (www.atmel.com)
THE 8051 FAMILY OF MICROCONTROLLERS. Richard H. Barnett. Prentice Hall.
THE 8051 MICROCONTROLLER. I. Schott Mackenzie. Prentice Hall.
APOSTILA DE LABORATÓRIO DE MICROPROCESSADORES APLICAÇÕES. Ivair Reis
Neves Abreu
Internet:
www.microcontroller.com
www.8052.com
www.vidal.com.br
www.icmaster.com
www.microchip.com
www.ti.com
www.zilog.com
www.motorola.com
www.cypress.com
4
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 1 - Revisão ASM51/AVSIM51
1) - Objetivo:
ASM51/AVSIM51
revisão dos comandos básicos do sistema de desenvolvido
2) - Introdução Teórica:
- Edição: utilizar o programa EDIT (DOS) ou BLOCO DE NOTAS.
utilizar WORD ou WORDPAD salvar arquivo como TXT
- Compilação: ASM51 <nome.asm>
- Conversão OBJ para HEX: OH <nome.hex> to <nome.obj>
- Simulação: AVSIM51 (com o arquivo nome.hex) ou TSCONTROL
- Gravação de EPROM ou memória flash (8951).
Se
- Compilação do programa fonte: através do compilador ASM51, convertemos
as instruções contidas no editor para linguagem de máquina. Este
programa gera dois arquivos:
NOME.LST -> arquivo imprimível onde serão guardadas as mensagem dos
possíveis erros gerados pelo compilador. Este arquivo deve ser sempre
acessado em caso de detecção de erros.
NOME.HEX -> programa a ser simulado e gravado em uma EPROM.
Ex: "ASM51 TESTE1.ASM"
- Conversor: pelo fato do simulador e o processo de gravação de EPROM
utilizar normalmente um arquivo tipo HEX, faz-se necessário a presença do
programa OH para converter este arquivo .OBJ para .HEX.
A estrutura da chamada de OH é a seguinte:
'OH <nome.obj> TO <nome.hex>'
- Simulação do programa fonte: realizado através do simulador 'AVSIM51'
da AVOCET. Para executar o programa basta digitar:
'AVSIM51'
São apresentadas 6 opções de entrada, onde trabalharemos com a
opção 'A: 8051'. Como o microcontrolador já apresenta memória ROM e RAM,
não há necessidade de configurarmos através do 'SET' a área de memória.
Apenas carregamos o programa através do comando 'LOAD - AVOCET'. Observe
a presença de todos os registradores internos do 8051 e dos 4 ports P0,
P1, P2 e P3 no lado direito inferior da tela.
Esta etapa poderá ser saltada se digitarmos:
'AVSIM51 A'
A tela do programa possui duas regiões de trabalho: comandos e
display. O cursor se colocará inicialmente no menu de comandos e com o
5
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
acionamento da tecla ESC poderemos trabalhar no campo display. Acionando
ESC novamente voltamos ao campo comandos.
Os principais comandos utilizados em nosso curso são vistos abaixo:
- Dump: configura as janelas de memória 1 e 2 do campo display. A
opção '1' configura a primeira janela e a opção '2' configura a segunda
janela. Uma vez selecionada a janela, optando pela opção 'ABSOLUTE'
simplesmente entramos com o endereço inicial desejado. Na opção
'INDIRECT' associaremos o endereço da janela com um par de registradores.
Ex:
1) - 'DUMP 1 ABSOLUTE 30H' -> o primeiro endereço da janela 1 será
30h.
'DUMP 2 INDIRECT SP - 10h'-> o primeiro endereço da janela 2
será o endereço do apontador de pilha menos 10h.
- Expression: permite altermos o valor do registrador apontado pelo
cursor quando no modo display.
Ex: EXPRESSION: '0Fh + 1' -> o número 10h será armazenado no registrador
especificado pelo cursor.
- commandFile: permite guardamos em um arquivo uma seqüência de
comandos do compilador para poder ser utilizado posteriormente. OPEN
abre o arquivo, CLOSE fecha o arquivo, RESTART reinicializa o arquivo e
LOAD executa os comandos gravados no arquivo anteriormente aberto e
fechado. Este comando é muito utilizado para inicializar o AVSIM.
Ex: 'COMMAND FILE OPEN <nome do arquivo> <seqüência de comandos> CLOSE'.
Para executarmos a seqüência de comandos acima basta: 'COMMANDFILE LOAD
<nome do arquivo>
- Load: carrega programa ou tabelas de símbolos. Permite
carregarmos programas compilados pela AVOCET ou INTEL (formato .hex).
Normalmente utilizaremos a opção AVOCET.
Ex: 'LOAD AVOCET <nome do programa>'
- Patchcode: permite entrar ou alterar uma instrução diretamente do
teclado na posição apontada pelo cursor no campo do programa. As opções
OPEN e CLOSE permitem criar-se um arquivo no disquete.
- Quit: digitando 'E' saímos do AVSIM51.
- Set: configura parâmetros de memória, pontos de parada, etc. A
opção 'Memory-Map' configura a área de RAM ou ROM. Necessita do
fornecimento do endereço inicial e final da memória.
Ex: 'SET MEMORY-MAP READY-ONLY 0H 0FFFH' -> configura área de memória
ROM de 0 a 0FFFh.
'SET MEMORY-MAP RAM-ACESS 2000H 20FFH' -> configura área de memória
de dados RAM de 2000h a 20FFh.
Atenção: o comando 'CONTROL C' sai de qualquer comando. Não utilizar ESC
pois simplesmente sairemos para o campo DISPLAY.
Para simularmos o programa carregado utilizaremos as teclas de
função:
6
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
- F10 -> executa instruções passo a passo.
- F9 -> volta uma instrução executada (comando UNDO).
- F1 -> executa o programa seqüencialmente até encontrar um
"break-point".
- F2 -> move cursor do 'break-point' para frente.
- F4 -> move cursor do 'break-point' para trás.
- F3 -> fixa um ponto de 'break-point'. Este ponto só será
apagado quando o programa ao ser executado (com F1 ou F10) passar por
aquele endereço.
- F5 -> muda velocidade de simulação do F1.
3) - Editar o programa EXP1.ASM carregando todos os registradores Rn com
o número 01, 02, etc., o acumulador com 08, somar os valores de r1 e
acumulador, incrementar o resultado e retornar para o ponto da soma:
3.2) - Compilar o programa seguindo a seguinte sequência:
FIX
EXP1.ASM
ASM51 EXP1.ASM
OH
EXP1.OBJ TO EXP1.HEX
3.3) - Utilizar o programa AVSIM51 na primeira opção configurando a
memória de programa (ROM) através do comando SET, M.M e ROM -> 0h a
0fffh. A memória de dados (RAM) através do comando SET, M.M e RAM -> 0h
a ffh. Carregar o programa através do comando LOAD - AVOCET – EXP1.HEX.
Configurar as duas janelas através do comando DUMP da seguinte forma:
DUMP 1 -> 50H (para visualizar os resultados)
3.4) - Rodar o programa através dos comandos F10 e F9. Observar
atentamente o efeito que cada instrução provoca nos registradores e nas
áreas de memória 1 (resultados). Observar que o PC é incrementado a cada
instrução.
7
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 1
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) – Escrever rapidamente os comandos para editar, compilar e simular o programa
EXP1.ASM
2) – Fazer um programa em Assembler para:
-
Carregar o Acumulador com o número 07.
Somar o dado do acumulador com o número 05
Guardar o resultado na área de memória 30H.
8
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 2 - Revisão ASM51/AVSIM51
1) - Objetivo:
ASM51/AVSIM51
revisão dos comandos básicos do sistema de desenvolvido
2) - Introdução Teórica:
- Edição: utilizar o programa EDIT (DOS) ou BLOCO DE NOTAS.
utilizar WORD ou WORDPAD salvar arquivo como TXT
- Compilação: ASM51 <nome.asm>
- Conversão OBJ para HEX: OH <nome.hex> to <nome.obj>
- Simulação: AVSIM51 (com o arquivo nome.hex) ou TSCONTROL
- Gravação de EPROM ou memória flash (8951).
Se
Para simularmos o programa carregado utilizaremos as teclas de
função:
- F10 -> executa instruções passo a passo.
- F9 -> volta uma instrução executada (comando UNDO).
- F1 -> executa o programa seqüencialmente até encontrar um
"break-point".
- F2 -> move cursor do 'break-point' para frente.
- F4 -> move cursor do 'break-point' para trás.
- F3 -> fixa um ponto de 'break-point'. Este ponto só será
apagado quando o programa ao ser executado (com F1 ou F10) passar por
aquele endereço.
- F5 -> muda velocidade de simulação do F1.
3) - Editar o programa EXP2.ASM carregando todos os registradores Rn com
o número 01, 02, etc., o acumulador com 08, somar os valores de r1 e
acumulador, incrementar o resultado e retornar para o ponto da soma:
;*** inicio do programa da experiência número 1 ***
;*
NOME:
;*
NUMERO:
;*
TURMA:
;***
pilha equ
70h
endre equ
50h
;area para armazenar resultados arit.
endmex
equ
2000h;area de memoria externa
org 0
inicio:
jmp
iniprg
org 30h
iniprg:
mov
sp,#pilha
mov
a,#01
;* rotina aritmética
rotina:
mov
r0,#05h
mov
r1,#endre
;operacao de soma
9
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
add a,r0
mov
@r1,a
;guarda resultado da soma
inc
r1
;incrementa endereco resultado
;operacao OU
mov
a,#053h
mov
r0,#0a5h
orl
a,r0
mov
@r1,a
inc
r1
inc
a
jmp
rotina
end
3.2) - Compilar o programa seguindo a seguinte sequência:
FIX
EXP2.ASM
ASM51 EXP2.ASM
OH
EXP2.OBJ TO EXP2.HEX
3.3) - Utilizar o programa AVSIM51 na primeira opção configurando a
memória de programa (ROM) através do comando SET, M.M e ROM -> 0h a
0fffh. A memória de dados (RAM) através do comando SET, M.M e RAM -> 0h
a ffh. Carregar o programa através do comando LOAD - AVOCET – EXP1.HEX.
Configurar as duas janelas através do comando DUMP da seguinte forma:
DUMP 1 -> 50H (para visualizar os resultados)
3.4) - Rodar o programa através dos comandos F10 e F9. Observar
atentamente o efeito que cada instrução provoca nos registradores e nas
áreas de memória 1 (resultados). Observar que o PC é incrementado a cada
instrução.
3.5) – Fazer 2 retornos e verificar os valores os endereços de memória
RAM
Resultados:
Primeiro Loop:
50H =____51H =
Segundo Loop:
50H = ___51H =
10
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 2
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) – Qual a função do PC dentro do microprocessador?
2) - Qual a função do SP dentro do microprocessador?
3) - Como observamos a região da memória RAM e dos Ports?
4) – Qual a área do simulador que observamos os resultados das somas e operação OU?
11
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 3 - Revisão Conjunto de Instruções 8051
1) - Objetivo:
revisão das instruções do microcontrolador 8051.
2) - Introdução Teórica:
As instruções do microcontrolador 8051 podem ser dividas em 5
grupos:
2.1) - Instruções de Transferência de Informação:
- MOV destino,fonte: copia dado da fonte para o destino.
- MOVC
A,@A+(PC ou DPTR): leitura de tabela da ROM com
endereço armazenado em A (offeset) + DPTR ou PC (início da tabela)
- MOVX
destino,fonte: leitura da RAM externa
- PUSH
direto: salva na pilha (SP+1) dado direto
- POP direto: resgata da pilha (SP-1) dado direto
- XCH destino,fonte: troca dados da fonte com destino
- XCHD
A,@Ri: troca apenas nibble inferior
2.2) - Instruções Aritméticas:
ADD
A,operando: soma dado indicado pelo operando com o dado do
acumulador. Resultado no acumulador.
ADDC A,operando: idem somando bit 'carry'
SUBB A,operando: subtrai dado do acumulador do operando.
Resultado no acumulador.
INC
operando: soma 1 ao operando.
DEC
operando: subtrai 1 do operando.
MUL
AB: multiplica dado do acumulador com dado do registrador B.
Resultado em A e B.
DIV
AB: divide A de B. Resultado inteiro em A e resto em B.
DA
A: ajusta decimalmente o Acumulador.
2.3) - Instruções Lógicas:
ANL
operando1,operando2: operação AND entre operandos.
ORL
operando1,operando2: operação OU entre operandos.
XRL
operando1,operando2: operação XOR entre operandos.
CLR
CPL
RL
RLC
RR
RRC
SWAP
A:
A:
A:
A:
A:
A:
A:
Resultado
em A.
Resultado
em A.
Resultado
em A.
zera acumulador
inverte acumulador
rotaciona acumulador para esquerda
rotaciona acumulador com carry para esquerda.
rotaciona acumulador para direita
rotaciona acumulador com carry para esquerda.
troca os nibbles do acumulador.
12
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
2.4) - Instruções de Controle:
- CALL
endereço: chama subrotina, salvando endereço de PC na
pilha (SP+1 e SP+2)
- RET: retorna da subrotina
- RETI: retorna da subrotina de interrupção
- JMP endereço: salta para o endereço especificado
- JMP @A+DPTR: salta para o endereço da soma do acumulador e DPTR.
- JZ endereço: salta para endereço se flag Z é 1
- JNZ endereço: salta para endereço se flag Z é 0
- CJNE oper1,oper2,offeset: compara dados do operando 1 e 2. Se
diferente, salta para PC + offset
- DJNZ oper,endereço: decrementa valor do operando. Se diferente
de zero, retorna para o endereço. Utilizada para realizar rotinas de
loop, onde o valor de contagem é guardado no operando.
- NOP: instrução sem efeito que ocupa um ciclo de máquina.
2.5) - Instruções Booleanas:
inverso
inverso
-
CLR operando: limpa bit do operando
SETB
operando: seta bit do operando
CPL operando: complementa bit do operando
ANL C,bit (/bit): operação AND entre o carry e o bit (/bit ->
do bit). Resultado no carry.
ORL C,bit (/bit): operação OU entre o carry e o bit (/bit ->
do bit). Resultado no carry.
MOV C,bit: transfere bit para o carry
MOV bit,C: transfere carry para o bit
JC
endereço: se carry=1, salta para endereço
JNC endereço: se carry=0, salta para endereço
JB
bit,endereço: se bit=1, salta para endereço
JNB bit,endereço: se bit=0, salta para endereço
JBC bit,endereço: se bit=1, salta e limpa bit
3) - Procedimento:
3.1) - Editar o programa EXP3.ASM mostrado abaixo:
;*** Experiência número 3 ***
;*
NOME:
;*
Número:
;*
Turma:
;*
Descrição: revisao das 4 operacoes arimeticas, operacoes lógicas e
;controle booleano através de 1 chave e 1 motor
;***
pilha equ
50h
memext
equ
2000h
result
equ
30h
;definicoes boleanas
chave
bit
p1.0
motor
bit
p1.1
13
APOSTILA DE LABORATÓRIO
memcha
inicio:
retor:
MACKENZIE
equ
0
org
0
jmp
org
mov
mov
inicio
30h
sp,#pilha
dptr,#memext
mov
mov
mov
mov
mov
mov
mov
mov
mov
call
call
jmp
r0,#0aah
r1,#7fh
r2,#01h
r3,#02h
r4,#03h
r5,#04h
r6,#05h
r7,#06h
a,#55h
revarlo
revbool
retor
MICROPROCESSADORES APLICAÇÃO
;define pilha interna
;define ponteiro de memória
;externa
;carrega r0 com aah
;subrotina aritmética
;* subrotinas
;* revisao das instrucoes aritmético/logicas
revarlo:
push
mov
mov
mov
add
mov
inc
mov
subb
mov
inc
mov
mul
mov
inc
mov
inc
mov
div
mov
inc
;* rotina lógica
mov
mov
anl
acc
a,P0
r0,#05h
r1,#result
a,r0
@r1,a
r1
r0,#02h
a,r0
@r1,a
r1
b,#6fh
ab
@r1,a
r1
@r1,b
r1
b,#02h
ab
@r1,a
r1
;le o valor de P0
;guarda resultado da soma
a,#0ffh
r0,#0ah
a,r0
14
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
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
pop
acc
ret
;* revisao das instrucoes booleanas
REVBOOL:
PUSH ACC
PUSH PSW
MOV C,CHAVE
CPL
C
;INVERTE CONDICAO
CPL
C
MOV
MEMCHA,C
;GUARDA NA MEMORIA
JB
MEMCHA,ligamo
;SE CHAVE=1, LIGA MOTOR
CLR
MOTOR
JMP
FIMROBO
LIGAMO:
SETB MOTOR
FIMROBO:
POP
PSW
POP
ACC
RET
END
3.2) - Compilar arquivo corrigido:
ASM51 EXP3.ASM
3.3) - Se houver mensagem de erro, acessar o arquivo 'EXP1.LST' para
verificar erros. Corrigir os mesmos no arquivo fonte original 'EXP1.ASM'
3.4) - Transformar o arquivo EXP1.OBJ para EXP1.HEX com o programa OH:
OH EXP3.OBJ TO EXP3.HEX
3.5) - Simular o arquivo compilador chamando o AVSIM51, escolhendo a
opção A e executando os comandos:
- SET - M.M. - ROM - 0H - 1FFFH
- SET - M.M. - RAM - 0 - FFH
- LOAD - AVOCET - EXP3.HEX'.
O programa surgirá no lado superior esquerdo da tela.
15
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
Carregar o port P0 com um número diferente de ‘00’ de forma manual
(posicionando o cursor sobre P0 e digitando o valor).
3.6) - Com auxílio da tecla F10, simular o programa incrementando uma
instrução de cada vez. Observar o efeito na tela de cada instrução
executada.
3.8) – Na rotina booleana, mudar o bit P1.0 (chave) e observar o
acionamento / desligamento do motor (P1.1).
Depois de simular todo o programa, utilizar a tecla F9,
decrementando uma instrução. Por fim, utilizar a tecla F1 para rodar o
programa de forma continua.
Observar:
- O programa é um loop infinito (normalmente os programas de controle
são loops)
- Observar na chamada das 2 subrotinas: o salvamento do PC na área
da pilha, o salvamento do acumulador e do flag PSW e o retorno com
a carga do PC com o valor armazenado na pilha.
3.7) - Anotar, apos a execução do programa, o conteúdo das seguintes
posições de memória:
P0= ___ 30h=____ 31h=___ 32h=____ 33h=___ 34h=___
35h=___ 36h=____ 37h=___ 38h=____ 39h=___
20.0b=____
- Observar que a condicao do motor (P1.1) muda de acordo com a
variação da chave (P1.0)
- Anotar os dados da pilha:
50h = __
51h =
52h =
53h =
54 =
16
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 3
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) – Explicar o salvamento do PC na pilha na instrução CALL. Qual a função da pilha?
2) – Qual a função das instruções PUSH e POP?
3) – No programa, como ligamos e desligamos o motor?
4) – Fazer o seguinte programa:
-
Lâmpada -> endereço P3.4
Sensor -> endereço P3.5
Fazer uma rotina para o sensor ligar e desligar a lâmpada
5) - Resultados:
P0= ___ 30h=____ 31h=___ 32h=____ 33h=___ 34h=___
35h=___ 36h=____ 37h=___ 38h=____ 39h=___
20.0b=____ 50h=
51h=
52h=
53h=
17
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 4 - KIT 8031
1) - Objetivo: sistema de controle com o 8051.
Revisão do display de LCD.
Revisão do kit 8031.
2) - Introdução Teórica:
KIT 8031 ->
MICROCONTROLADOR 8031
MEMÓRIA EPROM 2764
3 LEDS -> PORTS P3.3, P3.5, P3.6
1 RELE -> PORT P3.0
2 CHAVES -> PORTS P3.2 E P3.4
8 PORTS DE EXPANSÃO -> P1.0 E P1.7
Observar diagrama esquemático no Apêndice A
Comandos básicos para um display L.C.D. com módulo inteligente (ver
maiores detalhes no manual do fabricante do display):
- Com sinal C/D=0 -> comandos
- Fixa 2 linhas com caracter 5x7 -> 38H
- Fixa display aceso com cursor inter. -> 0FH
- Fixa display sem cursor -> 0CH
- Escreve deslocando p/ direita -> 05H
- Escreve deslocando p/ esquerda -> 07H
- Limpa display -> 01H
- Desloca cursor p/ 2 linha -> C0H
- Posicionamento do cursor -> entrar c/ endereço
80H-> primeiro endereço da primeira linha
C0H-> primeiro endereço da segunda linha
- Com sinal C/D=1 -> dados. Depois de posicionado o cursor
colocando o endereço desejado (ver acima), deve-se entrar com o código em
ASCII para a escrita no display.
Para o projeto da interface L.C.D. para o KIT 8031 considerar os
seguintes sinais:
- C/D -> ligar diretamente no endereço L.S.B. A0
- R/W -> deixar ativo em nível alto (apenas processo de escrita).
Se for desejado leitura, fazer uma lógica para que os sinais RD e WR no
PORT 3 do 8031 controle a entrada R/W (ver detalhes no manual do
display).
- CS -> seleciona display em nivel alto. Se não houver outros
chips de memória RAM no projeto, pode ser ligado através de um inversor
diretamente na saida WR (caso o display seje apenas escrito). No caso de
haver outros chips de memória RAM no projeto, deve-se utilizar um
decodificar para gerar os diversos sinais de C.S., sendo o display
considera como uma memória RAM no projeto (com uma faixa de endereço
reservada).
- D0-D7 -> ligado diretamente no barramento de dados.
- Alimentação Vcc/GND -> alimentação + 5V.
- Controle V0 -> controle de luminosidade do display.
3) - Procedimento:
3.1) - Editar o programa de teste do kit com o 8051 listado abaixo.
Compilar com o compilador ASM51 e simular com o simulador AVSIM51,
seguindo procedimento já visto.
18
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
;*** inicio do programa da experiência número 4 ***
;*
NOME:
;*
NUMERO:
;*
TURMA:
;*** ROTINA DE TESTE PARA O KIT 8031
;*- LE O ESTRAPE 1 -> SE ESTIVER ACIONADO ACIONA LED 1, 2 E RELE.
;*- SE NAO HOUVER ESTRAPE ACIONADO, DESLIGA SAIDAS
;***
CHAVE1
BIT
P3.2
;CONTROLE DO ESTRAPE 1
CHAVE2
BIT
P3.4
;CONTROLE DO ESTRAPE 2
LED1
BIT
P3.3
;CONTROLE DO LED1
LED2
BIT
P3.5
RELE
BIT
P1.0
;*
CONSTANTES E VARIAVEIS
PILHA
EQU
60H
FTEMPO1
EQU
30H
;MEMORIA RAM - RASCUNHO
FTEMPO2
EQU
31H
FVARIA1
EQU
32H
FVARIA2
EQU
33H
DISPLAYC
EQU
00
;ENDERECO DE CONTROLE DO DISPLAY
DISPLAYD
EQU
01
;ENDERECO DE DADO DO DISPLAY
INICIO:
INIPRG:
ORG
AJMP
ORG
RETI
ORG
RETI
ORG
RETI
ORG
RETI
ORG
RETI
ORG
MOV
MOV
0
INIPRG
3
CLR
CLR
CLR
CALL
;*** INICIO DO FIRMWARE
;* Pisca leds 1, 2, 3 e
INIC:
SETB
CALL
CLR
SETB
CALL
CLR
;SALTA VETORES DE INTERRUPCAO
;INTERRUPCAO EXTERNA 0
0BH
;INTERRUPCAO DO TIMER 0
13H
;INTERRUPCAO EXTERNA 1
1BH
;INTERRUPCAO DO TIMER 1
23H
;INTERRUPCAO SERIAL
30H
SP,#PILHA
PSW,#08H
LED1
LED2
RELE
INIDSP
;DEFINE PILHA
;DEFINE BANCO 1 DE
;REGISTRADORES 'R'
;INICIALIZA DISPLAY
rele com tempo de 0,5 segundos
LED1
TEMPO05
LED1
LED2
TEMPO05
LED2
19
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
SETB
RELE
CALL
TEMPO05
CLR
RELE
;DESLIGA SAIDAS
CLR
LED1
CLR
LED2
CLR
RELE
; ESCREVE NA PRIMEIRA LINHA E SEGUNDA LINHA DO DISPLAY
MOV
DPTR,#LINHA1
;ESCREVE NA LINHA 1
CALL
LSUPER
MOV
DPTR,#LINHA2
;ESCREVE NA LINHA 2
CALL
LINFER
LECH1:
MOV
C,CHAVE1
;LE CHAVE 1
JNC
DESLI
;SE CHAVE 1 = 0, SALTA
SETB
LED1
SETB
LED2
SETB
RELE
JMP
LECH1
DESLI:
CLR
LED1
CLR
LED2
CLR
RELE
JMP
LECH1
;*** FIM DA ROTINA PRINCIPAL
;*** INICIO DAS SUBROTINAS
;* INICIALIZA DISPLAY
INIDSP:
PUSH
ACC
PUSH
DPH
PUSH
DPL
MOV
DPTR,#DISPLAYC
MOV
A,#38H
MOVX
@DPTR,A
CALL
TEMPO15
MOV
A,#38H
MOVX
@DPTR,A
CALL
TEMPO15
MOV
A,#0CH
MOVX
@DPTR,A
CALL
TEMPO15
MOV
A,#06H
MOVX
@DPTR,A
CALL
TEMPO15
MOV
A,#01H
MOVX
@DPTR,A
CALL
TEMPO15
POP
DPL
POP
DPH
POP
ACC
RET
;indica controle
;2 LINHAS 5X7
;ESPERA 15 MSEG
;REPETE COMANDO LINHA
;SEM CURSOR
;CURSOR A DIREITA
;LIMPA DISPLAY
;* ROTINA DE 0,5 SEGUNDOS
20
APOSTILA DE LABORATÓRIO
MACKENZIE
;* CRISTAL DE 12 Mhz -> 1 uSEG. DE
TEMPO05:
PUSH FTEMPO1
PUSH FTEMPO2
MOV
FTEMPO1,#255
RETEMP:
MOV
FTEMPO2,#255
RETEMP1:
NOP
NOP
NOP
NOP
NOP
DJNZ FTEMPO2,RETEMP1
DJNZ FTEMPO1,RETEMP
POP
FTEMPO2
POP
FTEMPO1
RET
;* SUBROTINA DE TEMPO - 15 MSEG.
TEMPO15:
PUSH FTEMPO1
PUSH FTEMPO2
MOV
FTEMPO1,#35 ;35 X
RETEMPA:
MOV
FTEMPO2,#255
RETEMP1A:
NOP
NOP
NOP
NOP
NOP
DJNZ FTEMPO2,RETEMP1A
DJNZ FTEMPO1,RETEMPA
POP
FTEMPO2
POP
FTEMPO1
RET
MICROPROCESSADORES APLICAÇÃO
CICLO
;255 X 255 = 65025 LOOPS
;LOOP COM 7 CICLOS
;LOOP SECUNDARIO COM 9 CICLOS
255 = 8925 LOOPS
;LOOP COM 7 CICLOS
;LOOP SECUNDARIO COM 9 CICLOS
;* ROTINA DO DISPLAY PARA ESCREVER LINHA SUPERIOR
;*
;*
RECEBE EM DPTR ENDERECO DA TABELA DA LINHA
;*
LSUPER:
MOV
FVARIA1,DPH
;SALVA ENDERECO RECEBIDO
MOV
FVARIA2,DPL
MOV
DPTR,#DISPLAYC
MOV
A,#80H
;POSICAO INICIAL
MOVX @DPTR,A
CALL TEMPO15
;ESPERA 15 MSEG.
MOV
R0,#16
;16 CARACTERES
CLR
A
MOV
R2,A
RLSUP:
MOV
DPH,FVARIA1
;ENDERECO MENSAGEM INICIAL
MOV
DPL,FVARIA2
MOVC A,@A+DPTR
MOV
DPTR,#DISPLAYD
MOVX @DPTR,A
;ENVIA DADO PARA O DISPLAY
CALL TEMPO15
;ESPERA 15 MSEG.
21
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
INC
R2
;INCREMENTA PONTEIRO
MOV
A,R2
DJNZ R0,RLSUP
RET
;* ROTINA DO DISPLAY PARA ESCREVER LINHA INFERIOR
;* RECEBE EM DPTR ENDERECO DA TABELA DA LINHA
LINFER:
MOV
FVARIA1,DPH
;SALVA ENDERECO RECEBIDO
MOV
FVARIA2,DPL
MOV
DPTR,#DISPLAYC
MOV
A,#0C0H
;POSICAO INICIAL
MOVX @DPTR,A
CALL TEMPO15
;ESPERA 15 MSEG.
MOV
R0,#16
;16 CARACTERES
CLR
A
MOV
R2,A
RLINF:
MOV
DPH,FVARIA1
;ENDERECO MENSAGEM INICIAL
MOV
DPL,FVARIA2
MOVC A,@A+DPTR
MOV
DPTR,#DISPLAYD
MOVX @DPTR,A
;ENVIA DADO PARA O DISPLAY
CALL TEMPO15
;ESPERA 15 MSEG.
INC
R2
;INCREMENTA PONTEIRO
MOV
A,R2
DJNZ R0,RLINF
RET
;* TABELAS
LINHA1:
DB
'REVISAO
'
LINHA2:
DB
'KIT 8031
'
END
3.2) - Corrigir arquivo editado com o programa FIX:
FIX EXP4.ASM
3.3) - Compilar arquivo corrigido:
ASM51 EXP4.ASM
3.4) - Se houver mensagem de erro, acessar o arquivo EXP2.LST para
verificar erros. Corrigir os mesmos no arquivo fonte original EXP2.ASM.
3.5) - Transformar o arquivo EXP2.OBJ para EXP2.HEX com o programa OH:
OH EXP4.OBJ TO EXP4.HEX
3.6) - Simular o arquivo compilador chamando o AVSIM51, escolhendo a
opção A e executando os comandos:
- SET - M.M. - ROM - 0H - 1FFFH
- SET - M.M. - RAM - 0 - FFH
- LOAD - AVOCET - EXP4.HEX'.
O programa surgirá no lado superior esquerdo da tela.
Com auxílio da tecla F10, simular o programa incrementando uma
instrução de cada vez. Observar o efeito na tela de cada instrução
executada (a forma de inicializacao do display, a escrita na linha
superior e linha inferior). Alterar a condiçao da chaves 1 e verificar o
efeito sobre os leds e o rele.
22
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 4
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) – O programa abaixo inicializa e escreve no display:
CALL
MOV
CALL
MOV
CALL
....
;TABELAS
LINHA1: DB
LINHA2: DB
END
INIDSP
DPTR,#LINHA1
LSUPER
DPTR,#LINHA2
LINFER
‘EXPERIENCIA’
‘NUMERO 4’
Fazer um programa semelhante, escrevendo seu nome e código de
matrícula
2) – Fazer um programa para ligar e desligar o rele através da chave 2
3) – Exercícios (não fazer agora)
- Alterar o programa colocando 4 motores nos ports P1.0, P1.1, P1.2 e
P1.3. Estes motores devem ser controlados através de chaves localizados
nos ports P1.4, P1.5, P1.6 e P1.7. Escrever no display: "CONTROLE DE 4
MOTORES". Apresentar a listagem .LST
23
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 5 - ALARME COM O KIT 8031 / GRAVAÇÃO DE EPROM
1) - Objetivo: rotina para um alarme com o kit 8051.
2) - Introdução teórica:
Revisão dos passos básicos para gravação de EPROM através do
gravador Minipa e do programa LP3. O programa a ser gravado precisa
estar no formata HEX. A EPROM é gravada com auxílio de um PAD externo
(conectado a saida de impressora LPT1) na condição SLAVE. Abaixo
relembramos os principais comandos do programa LP3 (LEAPER - 3):
- No menu principal temos os seguintes comandos:
TYPE -> EPROM -> selecionar fabricante -> selecionar tipo da
EPROM.
DISK -> LOAD -> DISK DATA FILE TO BUFFER -> Opção 3 (INTEL
HEX FORMAT) -> A:\NOME.HEX
-> ^Q -> EXIT
PROGRAM -> Program from address 0000H (início da programação
da Eprom).
VERIFY -> Verify with address 0000H (verifica EPROM)
CHECK -> Device Blank Check (verifica se a EPROM está
apagada)
ATENÇÃO: OBSERVAR CUIDADOSAMENTE O TIPO DE EPROM A SER GRAVADA. A EPROM
2764 NORMALMENTE POSSUI 2 TIPOS DE PROGRAMACAO: 2764 - 24V (ROTINA 2764)
COM NÍVEL DE GRAVAÇÃO DE 24V E 2764 - 12V (ROTINA 64A1) COM NÍVEL DE
GRAVAÇÃO DE 12 V. NO CASO DE DÚVIDAS, CONSULTAR O MANUAL, POIS UM ERRO
NA ESPECIFICAÇÃO DOS TIPOS PODE PROVOCAR A QUEIMA DA MEMÓRIA.
3) - Procedimento:
3.1) - Elaborar um programa que simule um alarme no kit 8031. O estrape
1 deverá ligar e desligar o alarme. O estrape 2 deverá simular o sensor
que disparará o alarme. Os leds simularão 2 lâmpadas e o relê acionará
um alarme sonoro. O programa deverá esperar o acionamento do alarme
através do estrape 1. Quando este estiver acionado, o programa acionará
todas as saídas 10 segundos depois que for detectado nível baixo no
estrape 2 e a chave 1 continuar acionada. As saídas deverão ser
desligadas se o estrape 1 for desligado. Escrever o nome completo e o
número de matrícula no display L.C.D. da mesma forma vista na experiência
3.
24
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
Listagem:
3.2) - Editar, compilar e simular o programa através do procedimento
apresentado nas experiências anteriores.
3.3) - Gravar a EPROM através do programa LP-3 seguindos os seguintes
comandos:
TYPE -> EPROM -> selecionar fabricante -> selecionar tipo da
EPROM.
DISK -> LOAD -> DISK DATA FILE TO BUFFER -> Opção 3 (INTEL
HEX FORMAT) -> A:\NOME.HEX
CHECK -> Device Blank Check (verifica se a EPROM está
apagada)
PROGRAM -> Program from address 0000H (início da programação
da Eprom).
Se houver necessidade de verificar a EPROM, utilizar o comando
VERIFY -> Verify with address 0000H.
3.4) - Testar a EPROM gravada no kit a ser montado.
25
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 5
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) – Descrever objetivamente os passos para a gravação da EPROM
2) – Qual o papel das 2 chaves e dos leds e rele no programa do alarme
vista?
3) – Exercício (não fazer agora)
Fazer um programa em Linguagem Assembler para o 8051 para colocar e
supervisionar 8 sensores localizados no port P1.
26
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 6 - SISTEMA DE SEMAFORO DE PEDESTRES
1) - Objetivo: implementar um sistema de um semaforo de pedestres
temporizado com controle de segurança.
2) - Procedimento:
2.1) - Elaborar um programa que simule um semaforo de pedestre da
seguinte forma:
-
Led 1 -> Verde
Led 2 -> Vermelho
Rele -> alarme sonoro.
Chave 1 -> sensor de piso da faixa de pedestre.
2.2) - Fazer um firmware com as seguintes caracteristicas:
- Ligar o led verde por 30 segundos.
- Ligar o led vermelho por 90 segundos.
- Quando o led vermelho estiver ligado, o sensor deve acionar a buzina se
o sensor do piso estiver ativado (pedestre na faixa).
- Escrever no Display: linha de cima PEDESTRE e na linha de baixo
ATRAVESSE ou PARE de acordo com a condição dos leds.
Listagem:
2.2) - Editar, compilar e simular o programa através do procedimento
apresentado nas experiências anteriores.
2.3) - Gravar a EPROM através do programa LP-3 seguindos os seguintes
comandos:
27
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
TYPE -> EPROM -> selecionar fabricante -> selecionar tipo da
EPROM.
DISK -> LOAD -> DISK DATA FILE TO BUFFER -> Opção 3 (INTEL
HEX FORMAT) -> A:\NOME.HEX
CHECK -> Device Blank Check (verifica se a EPROM está
apagada)
PROGRAM -> Program from address 0000H (início da programação
da Eprom).
Se houver necessidade de verificar a EPROM, utilizar o comando
VERIFY -> Verify with address 0000H.
2.4) - Testar a EPROM gravada no kit a ser montado.
28
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 6
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) - Apresentar o LST do programa realizado.
2) – Exercício (não fazer agora)
Fazer um programa em Linguagem Assembler para o 8051 para simular
um semaforo completo de um cruzamento com 2 semaforos (6 lampadas) de
veículo e 2 semaforos de pedestre (4 lampadas).
29
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 7 - SISTEMA DE TEMPORIZAÇAO/INTERRUPÇÃO 8051
1) - Objetivo: estudo de rotinas de temporização e sistema de interrupção
do 8051.
2) - Introdução Teórica:
2.1) - Sistema de temporização:
possui 2 timers de 16 bits.
o microcontrolador da família 8051
Registradores do sistema de temporização:
- Registrador de modo:
TMOD: | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
---------------------- ---------------------TIMER 1
TIMER 2
- Registrador de controle
TCON:
| TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0|
----------------------- ----------------------
2.2) - 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 |
- Registrador do nível de prioridade:
________________________________________
IP:
| x | x | x | PS | PT1 | PX1 | PT0 | PX0 |
3) - Procedimento:
3.1) - Editar, com auxílio do editor de textos 'NE', o programa listado
abaixo:
30
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
;*** inicio do programa da experiência número 7 ***
;*
NOME:
;*
NUMERO:
;*
TURMA:
;***
;*
ROTINA DE TESTE DO SISTEMA DE INTERRUPCAO
;*
;*- Sistema com 4 chaves(P1.0-P1.3) e 4 lâmpadas(P1.4-P1.7)
;*- Durante a interrupção A condição da chave é refletida nas
;* DEFINE CONDICAO DO PORT 1
CHAVE1
BIT
P1.0
;CONTROLE DO ESTRAPE
CHAVE2
BIT
P1.1
;CONTROLE DO ESTRAPE
CHAVE3
BIT
P1.2
;CONTROLE DO ESTRAPE
CHAVE4
BIT
P1.3
;CONTROLE DO ESTRAPE
LAMP1
BIT
P1.4
;CONTROLE DA LAMPADA 1
LAMP2
BIT
P1.5
LAMP3
BIT
P1.6
LAMP4
BIT
P1.7
;* DEFINE AREA DE MEMORIA BOOLEANA (20.0 A 2F.F)
MEMCH1
EQU
0
MEMCH2
EQU
1
MEMCH3
EQU
2
MEMCH4
EQU
3
;*
CONSTANTES
PILHA
EQU
60H
;* FLAGS
FTEMPO1
EQU
30H
;CONTADOR DE TEMPO 1
lâmpadas.
1
2
3
4
;*** TIMER 0- GERADA A CADA 0,5 MILISENGUNDOS
;***
;***
X = FFFFh – (500 useg / 1 useg) = FE08h
;***
TIMERH0
TIMERL0
INICIO:
EQU
EQU
ORG
JMP
ORG
RETI
ORG
AJMP
ORG
RETI
ORG
RETI
0FEH
008H
0
INIPRG
3
;TIMER ALTO 0
;TIMER BAIXO 0
;SALTA VETORES DE INTERRUPCAO
;INTERRUPCAO EXTERNA 0
0BH
;INTERRUPCAO DO TIMER 0
13H
;INTERRUPCAO EXTERNA 1
1BH
;INTERRUPCAO DO TIMER 1
TIM0
31
APOSTILA DE LABORATÓRIO
INIPRG:
MACKENZIE
ORG
RETI
23H
ORG
CLR
CLR
CLR
CLR
MOV
MOV
30H
LAMP1
LAMP2
LAMP3
LAMP4
SP,#PILHA
PSW,#08H
MICROPROCESSADORES APLICAÇÃO
;INTERRUPCAO SERIAL
;DEFINE PILHA
;DEFINE BANCO 1 DE
;REGISTRADORES 'R'
;* INICIALIZA SISTEMA DE TEMPORIZACAO E INTERRUPCAO
MOV
IE,#10000010B
;HABILITA TIMER0
MOV
IP,#00000001B
;TIMER 0 E 1 COM IGUAL
;*PRIORIDADE
MOV
TL0,#TIMERL0
;CARREGA TIMER 0 BAIXO
MOV
TH0,#TIMERH0
;CARREGA TIMER 0 ALTO
MOV
TMOD,#00010001B ;DESATIVA GATE, UTILIZA
;TEMPORIZACAO
;INTERNA E MODO 1 (16
;BITS)
SETB
TR0
CLR
MEMCH1
;LIMPA AREA BINARIA
CLR
MEMCH2
CLR
MEMCH3
CLR
MEMCH4
;*** INICIO DO LOOP DE ESPERA
JMP
$
;*** ROTINAS DE INTERRUPCAO
;*** INTERRUPCAO DO TIMER 0
;*
;*
CARREGADO ATRAVES DO TIMER_H0-TIMER_LO. A CADA 1
;*
MICROSEG. LE A CONDICAO DAS CHAVES E CONTROLA LAMPADAS
;***
TIM0:
PUSH
PSW
MOV
TL0,#TIMERL0
;CARREGA TIMER 0 BAIXO
MOV
TH0,#TIMERH0
;CARREGA TIMER 0 ALTO
;SALVA CONDICAO DAS CHAVES NA MEMORIA
MOV
C,CHAVE1
;LE CHAVE 1 DO PORT 1.0
MOV
MEMCH1,C
;GUARDA CONDICAO NA MEMORIA
MOV
C,CHAVE2
MOV
MEMCH2,C
MOV
C,CHAVE3
MOV
MEMCH3,C
MOV
C,CHAVE4
MOV
MEMCH4,C
;CONTROLE DAS LAMPADAS
JB
MEMCH1,LIGALP1
CLR
LAMP1
32
APOSTILA DE LABORATÓRIO
LIGALP1:
CONT1:
LIGALP2:
CONT2:
LIGALP3:
CONT3:
LIGALP4:
CONT4:
MACKENZIE
JMP
SETB
JB
CLR
JMP
SETB
JB
CLR
JMP
SETB
JB
CLR
JMP
SETB
CONT1
LAMP1
MEMCH2,LIGALP2
LAMP2
CONT2
LAMP2
MEMCH3,LIGALP3
LAMP3
CONT3
LAMP3
MEMCH4,LIGALP4
LAMP4
CONT4
LAMP4
POP
RETI
END
PSW
MICROPROCESSADORES APLICAÇÃO
3.2) - Seguindo procedimento idêntico aos das experiências anteriores,
compile o mesmo com o programa ASM51. Em caso de erros, corrigí-los
através do procedimento já estudado. Converter o arquivo OBJ em HEX
através do programa OH.
3.3) - Carregar o programa no simulador AVSIM51 e verificar o acionamento
das lâmpadas quando é alterado os bits do port 1 (chavs) quando a
interrupção é acionada. Observe o endereço da interrupção do timer 0
33
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 7
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) – Explicar a função dos registradores:
IE ->
IP ->
TMOD ->
BIT TR0 ->
TH0 ->
TL0 ->
2) – O que é um vetor de interrupção?
Quais os 5 vetores do 8051?
3) – Calcular o timer 0 para um tempo de 10 msegundos:
4) – Fazer um programa para a cada 10 msegundos o registrador R0 ser
incrementado
4) - Exercícios
4.1) - Fazer um programa igual ao apresentado que utiliza a interrupção
do timer 1 ao invés da interrupção do timer 0. Apresentar a listagem
.LST do programa alterado.
4.2) - Elaborar um programa em linguagem assembler para programar o
timer 1 com frequência de 5 Khz (sinal quadrado no port P1.0).
34
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 8 - Teclado Matricial
1) - Objetivo: rotina e esquema para adaptar um teclado matricial ao kit
8031.
2) - Introdução teórica:
Um teclado matricial de 12 teclas necessita que 4 linhas de
varredura e 3 colunas de recepção ocupando um total de 7 ports (P1.1 e
P1.7). O programa deve, com o auxílio dos timers internos, providenciar
um processo de varredura que garanta a colocação de nível baixo nas
linhas. O programa de leitura do teclado lerá a entrada e ativará o bit
respectivo.
Esquema do Teclado
3) - Procedimento:
3.1) - Editar o programa abaixo:
;*** inicio do programa da experiência número 8 ***
;*
NOME:
;*
NUMERO:
;*
TURMA:
;***
;*
ROTINA DE LEITURA DO TECLADO
;*
;*
- LE O TECLADO A CADA 50 MSEG. (TIMERO)
;*
- A CONDICAO DO TECLADO E' COLOCADO NA AREA BOOLEANA
;*
- CONTROLA LED 1 PELA CONDICAO DA CHAVE 1 E O LED 2 PELA CONDICAO ;
;*
DA CHAVE 4
;***
;***
;* DEFINICAO DOS LABELS
TECLA1
TECLA2
TECLA3
EQU
EQU
EQU
1
2
3
;ARMAZENA CHAVE 1 EM 20.0
35
APOSTILA DE LABORATÓRIO
TECLA4
EQU
TECLA5
EQU
TECLA6
EQU
TECLA7
EQU
TECLA8
EQU
TECLA9
EQU
TECLAST
EQU
TECLA0
EQU
TECLATRA
EQU
COLUN1
BIT
COLUN2
BIT
COLUN3
BIT
LINHA1
BIT
LINHA2
BIT
LINHA3
BIT
LINHA4
BIT
LED1
BIT
LED2
BIT
;*
CONSTANTES
PILHA
EQU
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
4
5
6
7
8
9
10
11
12
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.2
P3.3
60H
;*** TIMER 0- GERADA A CADA 50 MILISENGUNDOS
;*
;*
TIMER = FFFFh - 50000 = 3CAFH
;***
TIMERH0 EQU
03CH
;TIMER ALTO 0
TIMERL0 EQU
0AFH
;TIMER BAIXO 0
INICIO:
INIPRG:
ORG
AJMP
ORG
RETI
ORG
AJMP
ORG
RETI
ORG
RETI
ORG
RETI
0
INIPRG
3
;SALTA VETORES DE INTERRUPCAO
;INTERRUPCAO EXTERNA 0
0BH
;INTERRUPCAO DO TIMER 0
13H
;INTERRUPCAO EXTERNA 1
1BH
;INTERRUPCAO DO TIMER 1
23H
;INTERRUPCAO SERIAL
LETEC
ORG
CLR
CLR
MOV
MOV
30H
LED1
LED2
SP,#PILHA
PSW,#08H
MOV
MOV
MOV
IE,#10000010B
TL0,#TIMERL0
TH0,#TIMERH0
;DEFINE PILHA
;DEFINE BANCO 1 DE
;REGISTRADORES 'R'
;HABILITA TIMER0
;CARREGA TIMER 0 BAIXO
;CARREGA TIMER 0 ALTO
36
APOSTILA DE LABORATÓRIO
MOV
;* PROGRAMA
;* CONTROLA
LECH1: JB
LIGLED1:
CONT1: JB
LIGLED2:
CONT2: JMP
;*** FIM DO
;*** INICIO
LETEC:
SALTO1: JB
SALTO2: JB
SALTO3: SETB
MACKENZIE
TMOD,#00010001B
;DESATIVA GATE, UTILIZA
;TEMPORIZACAO
;INTERNA E MODO 1 (16
;BITS)
TR0
;FAZ TIMER0 RODAR
20H,#00
;ZERA CONDICAO DAS TECLAS
21H,#00
LINHA1
LINHA2
LINHA3
LINHA4
SETB
MOV
MOV
SETB
SETB
SETB
SETB
PRINCIPAL
LEDS ATRAVÉS DA CONDICAO DO TECLADO
TECLA1,LIGLED1
CLR
LED1
JMP
CONT1
SETB
LED1
TECLA2,LIGLED2
CLR
LED2
JMP
CONT2
SETB
LED1
LECH1
PROGRAMA PRINCIPAL
DA AREA DE SUBROTINAS
MOV
TL0,#TIMERL0
;CARREGA TIMER 0 BAIXO
MOV
TH0,#TIMERH0
;CARREGA TIMER 0 ALTO
MOV
20H,#00
MOV
21H,#00
CLR
LINHA1
JB
COLUN1,SALTO1
SETB
TECLA1
COLUN2,SALTO2
SETB
TECLA2
COLUN3,SALTO3
SETB
TECLA3
LINHA1
SALTO6: SETB
CLR
LINHA2
JB
COLUN1,SALTO4
SETB
TECLA4
COLUN2,SALTO5
SETB
TECLA5
COLUN3,SALTO6
SETB
TECLA6
LINHA2
SALTO7: JB
CLR
LINHA3
JB
COLUN1,SALTO7
SETB
TECLA7
COLUN2,SALTO8
SALTO4: JB
SALTO5: JB
MICROPROCESSADORES APLICAÇÃO
37
APOSTILA DE LABORATÓRIO
SALTO8: JB
SALTO9: SETB
SALTO10:
SALTO11:
SALTO12:
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
SETB
TECLA8
COLUN3,SALTO9
SETB
TECLA9
LINHA3
CLR
JB
SETB
JB
SETB
JB
SETB
SETB
RETI
END
LINHA4
COLUN1,SALTO10
TECLAST
COLUN2,SALTO11
TECLA0
COLUN3,SALTO12
TECLATRA
LINHA4
3.2) - Simular o acionamento da chave 1 colocando 0 na COLUNA1 (BIT
P1.1). Verificar a condição do led1
chave1=0 -> led1 =
chave1=1 -> led1 =
3.3) - Simular o acionamento da chave 2 colocando 0 na COLUNA2 (BIT
P1.2). Verificar a condição do led2
chave2=0 -> led2 =
chave2=1 -> led2 =
38
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 8
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) – Explicar, objetivamente, o funcionamento de um teclado matricial de
16 teclas.
2) – Quantos ports são necessários para implementar um teclado do PC?
3) – Respostas da experiência:
chave1=0 -> led1 =
chave1=1 -> led1 =
chave2=0 -> led2 =
chave2=1 -> led2 =
4) - Exercícios
4.1) - Projetar um teclado para 64 teclas utilizando P0 e P2. Fazer uma
rotina de varredura.
4.2) – Pesquisar a forma de comunicação do teclado do PC com a placa
principal. Desenhar a matriz de um teclado do PC.
39
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 9 - Comunicação Serial
1) - Objetivo:
estudo da UART do 8051.
2) - Introdução teórica:
Registradores de configuração: SCON
SMOD - BIT DE CONF. DE VELOCIDADE
TIMER1 - CONFIGURA VELOCIDADE
3) - Procedimento:
3.1) - Editar, com auxílio do editor de textos ‘NE’, o programa EXP7.ASM
listado abaixo:
;*** inicio do programa da experiência número 8
;*
NOME:
;*
NUMERO:
;*
TURMA:
;***
;*
ROTINA DE TESTE - COMUNICAÇÃO SERIAL
;*
- PISCA LED 1 E 2 A CADA 50 MSEG.
;*
- TRANSMITE SERIALMENTE A PALAVRA ‘TESTE TX’
;*
- COLOCA O DADO RECEBIDO NO ENDERECO 30H
;***
CHAVE1
BIT
P3.2
;CONTROLE DO ESTRAPE 1
CHAVE2
BIT
P3.4
;CONTROLE DO ESTRAPE 2
LED1
BIT
P3.3
;CONTROLE DO LED1
LED2
BIT
P3.5
LED3
BIT
P3.6
RELE
BIT
P3.7
;*
CONSTANTES
PILHA
EQU
60H
FTEMPO1
EQU
30H
FTEMPO2
EQU
31H
ORG
0
40
APOSTILA DE LABORATÓRIO
INICIO:
AJMP
ORG
RETI
ORG
RETI
ORG
RETI
ORG
RETI
ORG
JMP
ORG
INIPRG:
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
;* LIMPA LEDS
CLR
CLR
CLR
CLR
;* INICIO DO FIRMWARE
ROTINA:
SETB
CALL
CLR
SETB
CALL
CLR
;* TRANSMITE ‘TESTE TX’
TX:
MOV
CALL
MOV
CALL
MOV
CALL
MOV
CALL
MOV
CALL
MOV
CALL
MOV
CALL
MOV
CALL
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
INIPRG
3
;SALTA VETORES DE INTERRUPCAO
;INTERRUPCAO EXTERNA 0
0BH
;INTERRUPCAO DO TIMER 0
13H
;INTERRUPCAO EXTERNA 1
1BH
;INTERRUPÇAO DO TIMER 1
23H
;INTERRUPÇAO SERIAL
SERIAL
30H
SP,#PILHA
PSW,#08H
TH1,#0FDH
;CARREGA TIMER1 COM RELOAD
TMOD,#00100010B;
TCON,#00H ;NAO RODA TIMER 1 (SIMULACAO)
IE,#10011000B
;HABILITA INTER. SER. E T1
IP,#00010000B
SCON,#01010000B ;MODO 1 E RX HABILITADO
R0,#40H
;PONTEIRO DE MEMÓRIA
LED1
LED2
LED3
RELE
LED1
TEMPO05
LED1
LED2
TEMPO05
LED2
A,#’T’
TX1
A,#’E’
TX1
A,#’S’
TX1
A,#’T’
TX1
A,#’E’
TX1
A,#’ ’
TX1
A,#’T’
TX1
A,#’X’
TX1
41
APOSTILA DE LABORATÓRIO
JMP
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
ROTINA
;* SUBROTINAS
TEMPO05:
PUSH
FTEMPO1
PUSH
FTEMPO2
MOV
FTEMPO1,#255
RETEMP:
MOV
FTEMPO2,#255
RETEMP1:
NOP
NOP
NOP
NOP
NOP
DJNZ
FTEMPO2,RETEMP1
DJNZ
FTEMPO1,RETEMP
POP
FTEMPO2
POP
FTEMPO1
RET
;* ROTINA DE TRANSMISSAO
TX1:
MOV
SBUF,A
JNB
TI,$
CLR
TI
RET
;* ROTINA DE RECEPCAO SERIAL
SERIAL:
PUSH
ACC
CLR
ES
;DESABILITA COM. SERIAL
MOV
A,SBUF
MOV
@R0,A
CLR
RI
SETB
ES
;HABILITA COM. SERIAL
POP
ACC
RETI
END
3.2) - Editar, compilar e simular o programa com auxílio das ferramentas
conhecidas.
3.3) - Observar no simulador especialmente os campos IN e OUT do
registrador SBUF. Quando ocorre uma transmissão, o campo OUT é
preenchido automaticamente, o bit do registrador SCON (TI - segundo bit)
precisa ser setado manualmente para indicar fim de transmissão.
3.4) - Para simular uma recepção, colocar manualmente o dado AA H no
campo IN. Verificar que o bit RI do registrador SCON é setado e que o
programa salta para o endereço 23H.
42
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 9
Nome:____________________________ número:__________
Data: ________________
1) -
Visto: ________________
Quais são os registradores de controle da UART do 8051?
2) – Inicializar a UART e o TIMER 1 do 8051 com 4800 baunds, habilitando
a RX, 8N1
3) - Exercício
3.1) - Fazer um programa para receber os dados seriais a 2400 baunds
(8N1), colocar o valor recebido no meio da segunda linha do display e
retransmitir o a string "DADO SERIAL RECEBIDO -> X', onde x é o dado
recebido.
3.2) - Programar em linguagem Assembler uma rotina para transmitir seu
nome completo em maiusculo pela interface serial do P.C. e o estrape 1 do
kit 8031 estiver em 0. Caso contrário, transmitir seu código de
matrícula. Observar o padrão de transmissão abaixo:
Estrape 1 baixo -> ´Nome Completo: FULANO DE TAL´
Estrape 1 alto -> ´Codigo de Matrícula: 0123456-7´
Colocar o dado recebido na recepção serial no primeiro dígito do display
de LCD. Configurar a comunicação serial para 9600 baunds, 8N1.
3.3) - Fazer um cabo de comunicação para ligar o Kit 8031 com a saída
COM2 do computador (utilizando conector DB25). Este cabo deverá ligar a
saida TX do kit com o pino 3 do conector e a entrada RX do kit com o pino
2 do conector. Ligar o pino de referência 7 (GND) do conector com a
referência do kit.
43
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 10 - Conversor A/D 8 bits
1) - Objetivo: rotina e esquema para adaptar um conversor A/D ADC0800 ao
kit 8031.
2) - Introdução Teórica:
Figura - Conversor A/D ADC0800 (ENDEREÇO 2000H-3FFFH)
3) - Procedimento:
3.1) - Editar o programa abaixo:
;*** inicio do programa da experiência número 10***
;*
NOME:
;*
NUMERO:
;*
TURMA:
;***
;*
- LE DADO DO CONVERSOR A/D A CADA 50 MILISEGUNDOS
;*;*
- SE DADO MAIOR QUE 30H, LIGA VENTILADOR POR P1.O. CASO CONTRARIO, DESLIGA
;*
;***
;***
;* DEFINICAO DOS LABELS
VENTIL
BIT
P1.0
LECONV
BIT
P1.1
;SINAL PARA INICIO DE CONVERSAO
EOC
BIT
P1.2
;ENTRADA DE FIM DE CONVERSAO
LED1
BIT
P3.2
LED2
BIT
P3.3
FLAGADC
EQU
0
;FLAG INDICANDO DADO DO CONVERSOR PRONTO
;*
CONSTANTES
PILHA
EQU
60H
ENDADC
EQU
2000H ;ENDERECO DE ACESSO DO CONVERSOR
;* DEFINICOES
44
APOSTILA DE LABORATÓRIO
DADOADC
FTEMPO1
FTEMPO2
FVARIA1
FVARIA2
EQU
EQU
EQU
EQU
EQU
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
40H
50H
51H
52H
53H
;*** TIMER 0- GERADA A CADA 50 MILISENGUNDOS
;*
;*
TIMER = FFFFh - 50000 = 3CAF H
;***
TIMERH0 EQU
03CH
;TIMER ALTO 0
TIMERL0 EQU
0AFH
;TIMER BAIXO 0
INICIO: AJMP
INIPRG:
ORG
INIPRG
ORG
RETI
ORG
AJMP
ORG
RETI
ORG
RETI
ORG
RETI
ORG
CLR
CLR
CLR
MOV
MOV
0BH
LEADC
13H
;INTERRUPCAO DO TIMER 0
1BH
;INTERRUPCAO DO TIMER 1
23H
;INTERRUPCAO SERIAL
;INTERRUPCAO EXTERNA 1
30H
LED1
LED2
VENTIL
SP,#PILHA
PSW,#08H
SETB
CLR
CLR
CLR
;DEFINE PILHA
;DEFINE BANCO 1 DE
;REGISTRADORES 'R'
IE,#10000010B ;HABILITA TIMER0
TL0,#TIMERL0
;CARREGA TIMER 0 BAIXO
TH0,#TIMERH0
;CARREGA TIMER 0 ALTO
TH1,#0FDH
;9600 BAUNDS
TMOD,#00010001B
;DESATIVA GATE, UTILIZA
;TEMPORIZACAO
;INTERNA E MODO 1 (16
;BITS)
TR0
TR1
FLAGADC
LECONV
;ZERA SINAL ADC
SETB
CALL
CLR
SETB
CALL
LED1
TEMPO05
LED1
LED2
TEMPO05
MOV
MOV
MOV
MOV
MOV
;* PISCA LEDS
RELOOP:
0
;SALTA VETORES DE INTERRUPCAO
3
;INTERRUPCAO EXTERNA 0
45
APOSTILA DE LABORATÓRIO
CLR
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
LED2
;* PROGRAMA PRINCIPAL
;* Monitora FLAG DO CONVERSOR
;* CONTROLA VENTILADOR VERIFICANDO SE DADO DO CONVERSOR >= 30H
JNB
FLAGADC,$
;ESPERA LEITURA DO CONVERSOR
CLR
FLAGADC
;ZERA FLAG
CLR
C
MOV
A,DADOADC
SUBB
A,#30H
;SE DADOADC >= 30H, C=0
JNC
DESLVEN
SETB
VENTIL
JMP
RELOOP
DESLVEN:
CLR
VENTIL
JMP
RELOOP
;*** FIM DO PROGRAMA PRINCIPAL
;*** INICIO DA AREA DE SUBROTINAS
;*** SUBROTINA DE 0,5 SEGUNDOS
;* CRISTAL DE 12 Mhz -> 1 uSEG. DE
TEMPO05:
PUSH FTEMPO1
PUSH FTEMPO2
MOV
FTEMPO1,#255
RETEMP:
MOV
FTEMPO2,#255
RETEMP1:
NOP
NOP
NOP
NOP
NOP
DJNZ FTEMPO2,RETEMP1
DJNZ FTEMPO1,RETEMP
POP
FTEMPO2
POP
FTEMPO1
RET
;* SUBROTINA DE TEMPO - 15 MSEG.
TEMPO15:
PUSH FTEMPO1
PUSH FTEMPO2
MOV
FTEMPO1,#35 ;35 X
RETEMPA:
MOV
FTEMPO2,#255
RETEMP1A:
NOP
NOP
NOP
NOP
NOP
DJNZ FTEMPO2,RETEMP1A
DJNZ FTEMPO1,RETEMPA
POP
FTEMPO2
POP
FTEMPO1
CICLO
;255 X 255 = 65025 LOOPS
;LOOP COM 7 CICLOS
;LOOP SECUNDARIO COM 9 CICLOS
255 = 8925 LOOPS
;LOOP COM 7 CICLOS
;LOOP SECUNDARIO COM 9 CICLOS
46
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
RET
;*** SUBROTINAS DE INTERRUPCAO T0
;*
LE CONVERSOR ADC SETANDO SINAL ENDADC E ESPERANDO EOC
;*
REGISTRADORES ALTERADOS: ACC
;***
LEADC:
PUSH
ACC
MOV
TL0,#TIMERL0
;CARREGA TIMER 0 BAIXO
MOV
TH0,#TIMERH0
;CARREGA TIMER 0 ALTO
SETB
LECONV
JNB
EOC,$
;AGUARDA FIM DE CONVERSAO
MOV
DPTR,#ENDADC
MOVX
A,@DPTR
MOV
DADOADC,A
SETB
FLAGADC
CLR
LECONV
POP
ACC
RETI
END
3.2) - Compilar o programa acima e converter arquivo em hexadecimal.
3.3) - Simular o programa com auxílio do programa AVSIM51.
3.4) - Simular a rotina de leitura do conversor colocando FFFEH no
timer0.
3.4) - A cada interrupção do timer0, ler o conversor (mensagem de erro) e
colocar no acumulador dado a ser colocado no display. Se dado menor que
30h, observar o ventilador (P1.0) sendo desligado. Caso contrário,
verificar acionamento do ventilador. Observar igualmente a conversão do
dado do conversão em ASCII.
47
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 10
Nome:____________________________ número:__________
Data: ________________
Visto: ________________
1) – Fazer um esquema de um conversor ADC ligado ao 8051 com endereço
4000h - 5fffh
2) – Fazer uma rotina para ler o conversor ADC e colocar o dado no
registrador R0
3) - Exercício:
3.1) - Fazer um projeto com um conversor ADC0800 (endereço A000H-Bfffh)
transmitindo serialmente (convertidos em ASCII) os dados lidos a cada 0,1
segundos (utilizar timer1).
48
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 11 - PROJETO COMPLETO
1) - Objetivo: elaborar projeto completo com o kit 8031.
2) - Procedimento: fazer um projeto para os kit 8031 com as seguintes
características:
-
Teclado matricial telefônico (p1.1 a p1.7)
RAM 16 K (62128) endereço 8000h-bfffh
Conversor ADC0800 (2000H-3FFFH).
Interface serial full-duplex RS-232
BIOS:
- Inicializar display com mensagem
KIT 8031
TECLADO =
- Colocar dado serial na RAM sequencialmente
- Colocar dado do teclado no display (leitura a cada 100 msegundos)
- Se for teclado a sequencia #01 transmitir dados da RAM
- Ler conversor a cada 50 msegundos. Se valor menor que 80h, ligar
rele. Caso contrario, desligar rele.
49
APOSTILA DE LABORATÓRIO
MACKENZIE
MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 12 - APRESENTAÇÃO DO PROJETO DE PESQUISA
Em grupo de até 4 alunos, deve-se apresentar uma
proposta escrita com os seguintes pontos:
1) - Descrição do produto baseada no kit 8031.
- Justificativa mercadológica do produto,
preferencialmente através de uma análise virtual do mercado a
que o produto se destine e sua posição em relação a possíveis
concorrentes. Descrever possíveis clientes.
- Esquema elétrico completo com descritivo de
funcionamento.
- Lista de material com preço de cada ítem.
- Estimativa final de preço do produto.
- Apresentar, com uma encadernação simples, documentação
completa do projeto.
2) – Apresentar o projeto com o kit 8031 mostrando seu funcionamento.
50
Download