Upload
trinhngoc
View
214
Download
0
Embed Size (px)
Citation preview
www.mackenzie.com.br
APOSTILA LABORATÓRIO DE
MICROPROCESSADORES APLICAÇÃO
PRIMEIRO SEMESTRE - 2004
PROF. IVAIR REIS N. ABREU
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 31
EXPERIÊNCIA 7 - TECLADO MATRICIAL 32
FOLHA DE RESPOSTAS – EXPERIÊNCIA 7 36
EXPERIÊNCIA 8 - COMUNICAÇÃO SERIAL 37
FOLHA DE RESPOSTAS – EXPERIÊNCIA 8 40
EXPERIÊNCIA 9 - CONVERSOR A/D 8 BITS 41
3
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO FOLHA DE RESPOSTAS – EXPERIÊNCIA 9 45
EXPERIÊNCIA 10 - PROJETO COMPLETO 46
EXPERIÊNCIA 11 - INTRODUÇÃO AO START KIT TMS320 47
FOLHA DE RESPOSTAS – EXPERIÊNCIA 11 48
EXPERIÊNCIA 12 - APRESENTAÇÃO DO PROJETO DE PESQUISA 49
Revisão: 05/08/2003
4
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
PLANEJAMENTO DIDÁTICO PEDAGÓGICO LABORATÓRIO DE MICROPROCESSADORES APLICAÇÃO
SEGUNDO SEMESTRE 2003CURSO SUPERIOR DE TECNOLOGIA ELÉTRICA
UNIDADE: F.C.IDISCIPLINA: Laboratório de Microprocessadores AplicaçãoPROFESSOR: Ivair Reis Neves AbreuDepartamento: EletrônicaETAPA: 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.
METODOLOGIAAula 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ÇÃONota 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 AbreuInternet:www.microcontroller.comwww.8052.comwww.vidal.com.brwww.icmaster.comwww.microchip.comwww.ti.comwww.zilog.comwww.motorola.comwww.cypress.com
5
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 1 - Revisão ASM51/AVSIM51
1) - Objetivo: revisão dos comandos básicos do sistema de desenvolvido ASM51/AVSIM51
2) - Introdução Teórica:
- Edição: utilizar o programa EDIT (DOS) ou BLOCO DE NOTAS. Se 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).
- 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
6
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:
7
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.ASMASM51 EXP1.ASMOH 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.
8
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.
9
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 2 - Revisão ASM51/AVSIM51
1) - Objetivo: revisão dos comandos básicos do sistema de desenvolvido ASM51/AVSIM51
2) - Introdução Teórica:
- Edição: utilizar o programa EDIT (DOS) ou BLOCO DE NOTAS. Se 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).
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 70hendre equ 50h ;area para armazenar resultados arit.endmex equ 2000h;area de memoria externa
org 0inicio: jmp iniprg
org 30hiniprg: mov sp,#pilha
mov a,#01;* rotina aritméticarotina: mov r0,#05h
mov r1,#endre
10
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO ;operacao de soma
add a,r0mov @r1,a ;guarda resultado da somainc r1 ;incrementa endereco resultado
;operacao OUmov a,#053hmov r0,#0a5horl a,r0mov @r1,ainc r1inc ajmp rotinaend
3.2) - Compilar o programa seguindo a seguinte sequência:FIX EXP2.ASMASM51 EXP2.ASMOH 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 =
11
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?
12
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. Resultado em A.
ORL operando1,operando2: operação OU entre operandos. Resultado em A.
XRL operando1,operando2: operação XOR entre operandos. Resultado em A.
CLR A: zera acumuladorCPL A: inverte acumuladorRL A: rotaciona acumulador para esquerdaRLC A: rotaciona acumulador com carry para esquerda.RR A: rotaciona acumulador para direitaRRC A: rotaciona acumulador com carry para esquerda.SWAP A: troca os nibbles do acumulador.
13
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:
- 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 ->
inverso do bit). Resultado no carry.- ORL C,bit (/bit): operação OU entre o carry e o bit (/bit ->
inverso 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 50hmemext equ 2000hresult equ 30h;definicoes boleanaschave bit p1.0
14
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO motor bit p1.1memcha equ 0
org 0
jmp inicioorg 30h
inicio: mov sp,#pilha ;define pilha internamov dptr,#memext ;define ponteiro de memória
;externa mov r0,#0aah ;carrega r0 com aahmov r1,#7fhmov r2,#01hmov r3,#02hmov r4,#03hmov r5,#04hmov r6,#05hmov r7,#06hmov a,#55h
retor: call revarlo ;subrotina aritméticacall revbooljmp retor
;* subrotinas;* revisao das instrucoes aritmético/logicas
revarlo: push accmov a,P0 ;le o valor de P0mov r0,#05hmov r1,#resultadd a,r0mov @r1,a ;guarda resultado da somainc r1mov r0,#02hsubb a,r0mov @r1,ainc r1mov b,#6fhmul abmov @r1,ainc r1mov @r1,binc r1mov b,#02hdiv abmov @r1,ainc r1
;* rotina lógicamov a,#0ffhmov r0,#0ah
15
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
anl a,r0mov @r1,ainc r1mov r0,#0a5horl a,r0mov @r1,ainc r1xrl a,r0mov @r1,ainc r1mov a,#0a5hcpl aswap amov @r1,ainc r1rl arl arr amov @r1,apop accret
;* revisao das instrucoes booleanasREVBOOL: PUSH ACC
PUSH PSW MOV C,CHAVE
CPL C ;INVERTE CONDICAO CPL CMOV MEMCHA,C ;GUARDA NA MEMORIAJB MEMCHA,ligamo ;SE CHAVE=1, LIGA MOTOR CLR MOTORJMP FIMROBO
LIGAMO: SETB MOTORFIMROBO: POP PSW
POP ACCRETEND
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.HEX3.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.
16
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 =
17
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=
18
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
EXPERIÊNCIA 4 - KIT 8031
1) - Objetivo: sistema de controle com o 8051. Revisão do kit 8031. Revisão do display de LCD.
2) - Introdução Teórica:
KIT 8031 -> MICROCONTROLADOR 8031MEMÓRIA EPROM 27643 LEDS -> PORTS P3.3, P3.5, P3.61 RELE -> PORT P3.02 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 linhaC0H-> 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:
19
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO 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.
;*** 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 1CHAVE2 BIT P3.4 ;CONTROLE DO ESTRAPE 2LED1 BIT P3.3 ;CONTROLE DO LED1LED2 BIT P3.5RELE BIT P1.0;* CONSTANTES E VARIAVEISPILHA EQU 60HFTEMPO1 EQU 30H ;MEMORIA RAM - RASCUNHOFTEMPO2 EQU 31HFVARIA1 EQU 32HFVARIA2 EQU 33HDISPLAYC EQU 00 ;ENDERECO DE CONTROLE DO DISPLAYDISPLAYD EQU 01 ;ENDERECO DE DADO DO DISPLAY
ORG 0INICIO: AJMP INIPRG ;SALTA VETORES DE INTERRUPCAO
ORG 3 ;INTERRUPCAO EXTERNA 0RETIORG 0BH ;INTERRUPCAO DO TIMER 0RETIORG 13H ;INTERRUPCAO EXTERNA 1RETIORG 1BH ;INTERRUPCAO DO TIMER 1RETIORG 23H ;INTERRUPCAO SERIALRETIORG 30H
INIPRG: MOV SP,#PILHA ;DEFINE PILHAMOV PSW,#08H ;DEFINE BANCO 1 DE
;REGISTRADORES 'R'CLR LED1CLR LED2CLR RELECALL INIDSP ;INICIALIZA DISPLAY
;*** INICIO DO FIRMWARE;* Pisca leds 1, 2, 3 e rele com tempo de 0,5 segundosINIC: SETB LED1
CALL TEMPO05
20
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
CLR LED1SETB LED2CALL TEMPO05CLR LED2SETB RELECALL TEMPO05CLR RELE ;DESLIGA SAIDASCLR LED1CLR LED2CLR RELE
; ESCREVE NA PRIMEIRA LINHA E SEGUNDA LINHA DO DISPLAY MOV DPTR,#LINHA1 ;ESCREVE NA LINHA 1CALL LSUPERMOV DPTR,#LINHA2 ;ESCREVE NA LINHA 2CALL LINFER
LECH1: MOV C,CHAVE1 ;LE CHAVE 1JNC DESLI ;SE CHAVE 1 = 0, SALTASETB LED1SETB LED2SETB RELEJMP LECH1
DESLI: CLR LED1CLR LED2CLR RELEJMP LECH1
;*** FIM DA ROTINA PRINCIPAL;*** INICIO DAS SUBROTINAS;* INICIALIZA DISPLAY INIDSP: PUSH ACC
PUSH DPHPUSH DPLMOV DPTR,#DISPLAYC ;indica controleMOV A,#38H ;2 LINHAS 5X7MOVX @DPTR,ACALL TEMPO15 ;ESPERA 15 MSEGMOV A,#38H ;REPETE COMANDO LINHAMOVX @DPTR,ACALL TEMPO15MOV A,#0CH ;SEM CURSOR MOVX @DPTR,ACALL TEMPO15MOV A,#06H ;CURSOR A DIREITAMOVX @DPTR,ACALL TEMPO15MOV A,#01H ;LIMPA DISPLAYMOVX @DPTR,ACALL TEMPO15POP DPLPOP DPH
21
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
POP ACCRET
;* ROTINA DE 0,5 SEGUNDOS;* CRISTAL DE 12 Mhz -> 1 uSEG. DE CICLOTEMPO05: PUSH FTEMPO1
PUSH FTEMPO2MOV FTEMPO1,#255 ;255 X 255 = 65025 LOOPS
RETEMP: MOV FTEMPO2,#255RETEMP1: NOP ;LOOP COM 7 CICLOS
NOPNOPNOPNOPDJNZ FTEMPO2,RETEMP1DJNZ FTEMPO1,RETEMP ;LOOP SECUNDARIO COM 9 CICLOSPOP FTEMPO2POP FTEMPO1RET
;* SUBROTINA DE TEMPO - 15 MSEG.TEMPO15: PUSH FTEMPO1
PUSH FTEMPO2MOV FTEMPO1,#35 ;35 X 255 = 8925 LOOPS
RETEMPA: MOV FTEMPO2,#255RETEMP1A: NOP ;LOOP COM 7 CICLOS
NOPNOPNOPNOPDJNZ FTEMPO2,RETEMP1ADJNZ FTEMPO1,RETEMPA ;LOOP SECUNDARIO COM 9 CICLOSPOP FTEMPO2POP FTEMPO1RET
;* ROTINA DO DISPLAY PARA ESCREVER LINHA SUPERIOR;*;* RECEBE EM DPTR ENDERECO DA TABELA DA LINHA;*LSUPER: MOV FVARIA1,DPH ;SALVA ENDERECO RECEBIDO
MOV FVARIA2,DPLMOV DPTR,#DISPLAYCMOV A,#80H ;POSICAO INICIALMOVX @DPTR,ACALL TEMPO15 ;ESPERA 15 MSEG.MOV R0,#16 ;16 CARACTERESCLR AMOV R2,A
RLSUP: MOV DPH,FVARIA1 ;ENDERECO MENSAGEM INICIALMOV DPL,FVARIA2
22
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
MOVC A,@A+DPTRMOV DPTR,#DISPLAYDMOVX @DPTR,A ;ENVIA DADO PARA O DISPLAYCALL TEMPO15 ;ESPERA 15 MSEG.INC R2 ;INCREMENTA PONTEIROMOV A,R2DJNZ R0,RLSUPRET
;* ROTINA DO DISPLAY PARA ESCREVER LINHA INFERIOR;* RECEBE EM DPTR ENDERECO DA TABELA DA LINHALINFER: MOV FVARIA1,DPH ;SALVA ENDERECO RECEBIDO
MOV FVARIA2,DPLMOV DPTR,#DISPLAYCMOV A,#0C0H ;POSICAO INICIALMOVX @DPTR,ACALL TEMPO15 ;ESPERA 15 MSEG.MOV R0,#16 ;16 CARACTERESCLR AMOV R2,A
RLINF: MOV DPH,FVARIA1 ;ENDERECO MENSAGEM INICIALMOV DPL,FVARIA2MOVC A,@A+DPTRMOV DPTR,#DISPLAYDMOVX @DPTR,A ;ENVIA DADO PARA O DISPLAYCALL TEMPO15 ;ESPERA 15 MSEG.INC R2 ;INCREMENTA PONTEIROMOV A,R2DJNZ R0,RLINFRET
;* TABELASLINHA1: DB 'REVISAO 'LINHA2: DB 'KIT 8031 '
END3.2) - Corrigir arquivo editado com o programa FIX:
FIX EXP4.ASM3.3) - Compilar arquivo corrigido:
ASM51 EXP4.ASM3.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.HEX3.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
23
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO superior e linha inferior). Alterar a condiçao da chaves 1 e verificar o efeito sobre os leds e o rele.
24
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 INIDSPMOV DPTR,#LINHA1CALL LSUPERMOV DPTR,#LINHA2CALL LINFER....
;TABELASLINHA1: DB ‘EXPERIENCIA’LINHA2: DB ‘NUMERO 4’
END
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
25
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 -> EXITPROGRAM -> 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.
26
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.
27
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.
28
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:
29
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.
30
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).
31
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: o microcontrolador da família 8051 possui 2 timers de 16 bits.
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 (interrupção externa 0) -> 0003HTF0 (interrupção do timer 0) -> 000BHIE1 (interrupção externa 1) -> 0013HTF1 (interrupção do timer 1) -> 001BHSRT (interface serial) -> 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:
32
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 lâmpadas. ;* DEFINE CONDICAO DO PORT 1CHAVE1 BIT P1.0 ;CONTROLE DO ESTRAPE 1CHAVE2 BIT P1.1 ;CONTROLE DO ESTRAPE 2CHAVE3 BIT P1.2 ;CONTROLE DO ESTRAPE 3CHAVE4 BIT P1.3 ;CONTROLE DO ESTRAPE 4LAMP1 BIT P1.4 ;CONTROLE DA LAMPADA 1LAMP2 BIT P1.5LAMP3 BIT P1.6LAMP4 BIT P1.7;* DEFINE AREA DE MEMORIA BOOLEANA (20.0 A 2F.F)MEMCH1 EQU 0MEMCH2 EQU 1MEMCH3 EQU 2MEMCH4 EQU 3;* CONSTANTESPILHA EQU 60H;* FLAGSFTEMPO1 EQU 30H ;CONTADOR DE TEMPO 1
;*** TIMER 0- GERADA A CADA 0,5 MILISENGUNDOS;*** ;*** X = FFFFh – (500 useg / 1 useg) = FE08h;***
TIMERH0 EQU 0FEH ;TIMER ALTO 0 TIMERL0 EQU 008H ;TIMER BAIXO 0
ORG 0INICIO: JMP INIPRG ;SALTA VETORES DE INTERRUPCAO
ORG 3 ;INTERRUPCAO EXTERNA 0RETIORG 0BH ;INTERRUPCAO DO TIMER 0AJMP TIM0ORG 13H ;INTERRUPCAO EXTERNA 1RETIORG 1BH ;INTERRUPCAO DO TIMER 1
33
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
RETIORG 23H ;INTERRUPCAO SERIALRETI
ORG 30HINIPRG: CLR LAMP1
CLR LAMP2CLR LAMP3CLR LAMP4MOV SP,#PILHA ;DEFINE PILHAMOV PSW,#08H ;DEFINE BANCO 1 DE
;REGISTRADORES 'R';* INICIALIZA SISTEMA DE TEMPORIZACAO E INTERRUPCAO
MOV IE,#10000010B ;HABILITA TIMER0MOV IP,#00000001B ;TIMER 0 E 1 COM IGUAL
;*PRIORIDADEMOV TL0,#TIMERL0 ;CARREGA TIMER 0 BAIXOMOV TH0,#TIMERH0 ;CARREGA TIMER 0 ALTOMOV TMOD,#00010001B ;DESATIVA GATE, UTILIZA
;TEMPORIZACAO ;INTERNA E MODO 1 (16 ;BITS)
SETB TR0CLR MEMCH1 ;LIMPA AREA BINARIACLR MEMCH2CLR MEMCH3CLR MEMCH4
;*** INICIO DO LOOP DE ESPERAJMP $
;*** 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 BAIXOMOV TH0,#TIMERH0 ;CARREGA TIMER 0 ALTO
;SALVA CONDICAO DAS CHAVES NA MEMORIAMOV C,CHAVE1 ;LE CHAVE 1 DO PORT 1.0MOV MEMCH1,C ;GUARDA CONDICAO NA MEMORIAMOV C,CHAVE2MOV MEMCH2,CMOV C,CHAVE3MOV MEMCH3,CMOV C,CHAVE4MOV MEMCH4,C
;CONTROLE DAS LAMPADASJB MEMCH1,LIGALP1
34
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
CLR LAMP1JMP CONT1
LIGALP1: SETB LAMP1CONT1: JB MEMCH2,LIGALP2
CLR LAMP2JMP CONT2
LIGALP2: SETB LAMP2CONT2: JB MEMCH3,LIGALP3
CLR LAMP3JMP CONT3
LIGALP3: SETB LAMP3CONT3: JB MEMCH4,LIGALP4
CLR LAMP4JMP CONT4
LIGALP4: SETB LAMP4CONT4:
POP PSWRETIEND
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
35
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ícios4.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).
36
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 EQU 1 ;ARMAZENA CHAVE 1 EM 20.0TECLA2 EQU 2TECLA3 EQU 3
37
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO TECLA4 EQU 4TECLA5 EQU 5TECLA6 EQU 6TECLA7 EQU 7TECLA8 EQU 8TECLA9 EQU 9TECLAST EQU 10TECLA0 EQU 11TECLATRA EQU 12COLUN1 BIT P1.1COLUN2 BIT P1.2COLUN3 BIT P1.3LINHA1 BIT P1.4LINHA2 BIT P1.5LINHA3 BIT P1.6LINHA4 BIT P1.7LED1 BIT P3.2LED2 BIT P3.3;* CONSTANTESPILHA EQU 60H
;*** TIMER 0- GERADA A CADA 50 MILISENGUNDOS;*;* TIMER = FFFFh - 50000 = 3CAFH;***TIMERH0 EQU 03CH ;TIMER ALTO 0 TIMERL0 EQU 0AFH ;TIMER BAIXO 0
ORG 0INICIO: AJMP INIPRG ;SALTA VETORES DE INTERRUPCAO
ORG 3 ;INTERRUPCAO EXTERNA 0RETIORG 0BH ;INTERRUPCAO DO TIMER 0AJMP LETECORG 13H ;INTERRUPCAO EXTERNA 1RETIORG 1BH ;INTERRUPCAO DO TIMER 1RETIORG 23H ;INTERRUPCAO SERIALRETI
ORG 30HINIPRG: CLR LED1
CLR LED2MOV SP,#PILHA ;DEFINE PILHAMOV PSW,#08H ;DEFINE BANCO 1 DE
;REGISTRADORES 'R'MOV IE,#10000010B ;HABILITA TIMER0MOV TL0,#TIMERL0 ;CARREGA TIMER 0 BAIXOMOV TH0,#TIMERH0 ;CARREGA TIMER 0 ALTO
38
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
MOV TMOD,#00010001B ;DESATIVA GATE, UTILIZA ;TEMPORIZACAO
;INTERNA E MODO 1 (16 ;BITS)
SETB TR0 ;FAZ TIMER0 RODARMOV 20H,#00 ;ZERA CONDICAO DAS TECLASMOV 21H,#00SETB LINHA1SETB LINHA2SETB LINHA3SETB LINHA4
;* PROGRAMA PRINCIPAL;* CONTROLA LEDS ATRAVÉS DA CONDICAO DO TECLADOLECH1: JB TECLA1,LIGLED1
CLR LED1JMP CONT1
LIGLED1: SETB LED1CONT1: JB TECLA2,LIGLED2
CLR LED2JMP CONT2
LIGLED2: SETB LED1CONT2: JMP LECH1;*** FIM DO PROGRAMA PRINCIPAL;*** INICIO DA AREA DE SUBROTINASLETEC: MOV TL0,#TIMERL0 ;CARREGA TIMER 0 BAIXO
MOV TH0,#TIMERH0 ;CARREGA TIMER 0 ALTOMOV 20H,#00MOV 21H,#00CLR LINHA1JB COLUN1,SALTO1SETB TECLA1
SALTO1: JB COLUN2,SALTO2SETB TECLA2
SALTO2: JB COLUN3,SALTO3SETB TECLA3
SALTO3: SETB LINHA1
CLR LINHA2JB COLUN1,SALTO4SETB TECLA4
SALTO4: JB COLUN2,SALTO5SETB TECLA5
SALTO5: JB COLUN3,SALTO6SETB TECLA6
SALTO6: SETB LINHA2
CLR LINHA3JB COLUN1,SALTO7SETB TECLA7
SALTO7: JB COLUN2,SALTO8
39
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
SETB TECLA8SALTO8: JB COLUN3,SALTO9
SETB TECLA9SALTO9: SETB LINHA3
CLR LINHA4JB COLUN1,SALTO10SETB TECLAST
SALTO10: JB COLUN2,SALTO11SETB TECLA0
SALTO11: JB COLUN3,SALTO12SETB TECLATRA
SALTO12: SETB LINHA4RETIEND
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 =
40
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ícios4.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.
41
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 1CHAVE2 BIT P3.4 ;CONTROLE DO ESTRAPE 2LED1 BIT P3.3 ;CONTROLE DO LED1LED2 BIT P3.5LED3 BIT P3.6RELE BIT P3.7;* CONSTANTESPILHA EQU 60HFTEMPO1 EQU 30H
42
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO FTEMPO2 EQU 31H
ORG 0INICIO: AJMP INIPRG ;SALTA VETORES DE INTERRUPCAO
ORG 3 ;INTERRUPCAO EXTERNA 0RETIORG 0BH ;INTERRUPCAO DO TIMER 0RETIORG 13H ;INTERRUPCAO EXTERNA 1RETIORG 1BH ;INTERRUPÇAO DO TIMER 1RETIORG 23H ;INTERRUPÇAO SERIALJMP SERIALORG 30H
INIPRG: MOV SP,#PILHAMOV PSW,#08HMOV TH1,#0FDH ;CARREGA TIMER1 COM RELOADMOV TMOD,#00100010B;MOV TCON,#00H ;NAO RODA TIMER 1 (SIMULACAO)MOV IE,#10011000B ;HABILITA INTER. SER. E T1MOV IP,#00010000BMOV SCON,#01010000B ;MODO 1 E RX HABILITADOMOV R0,#40H ;PONTEIRO DE MEMÓRIA
;* LIMPA LEDSCLR LED1CLR LED2CLR LED3CLR RELE
;* INICIO DO FIRMWAREROTINA: SETB LED1
CALL TEMPO05CLR LED1SETB LED2CALL TEMPO05CLR LED2
;* TRANSMITE ‘TESTE TX’TX: MOV A,#’T’
CALL TX1MOV A,#’E’CALL TX1MOV A,#’S’CALL TX1MOV A,#’T’CALL TX1MOV A,#’E’CALL TX1MOV A,#’ ’CALL TX1MOV A,#’T’CALL TX1
43
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
MOV A,#’X’CALL TX1JMP ROTINA
;* SUBROTINASTEMPO05: PUSH FTEMPO1
PUSH FTEMPO2MOV FTEMPO1,#255
RETEMP: MOV FTEMPO2,#255RETEMP1: NOP
NOPNOPNOPNOPDJNZ FTEMPO2,RETEMP1DJNZ FTEMPO1,RETEMPPOP FTEMPO2POP FTEMPO1RET
;* ROTINA DE TRANSMISSAOTX1: MOV SBUF,A
JNB TI,$CLR TIRET
;* ROTINA DE RECEPCAO SERIALSERIAL: PUSH ACC
CLR ES ;DESABILITA COM. SERIALMOV A,SBUFMOV @R0,ACLR RISETB ES ;HABILITA COM. SERIALPOP ACCRETIEND
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.
44
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
FOLHA DE RESPOSTAS – EXPERIÊNCIA 9 Nome:____________________________ número:__________
Data: ________________ Visto: ________________
1) - 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.
45
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 LABELSVENTIL BIT P1.0LECONV BIT P1.1 ;SINAL PARA INICIO DE CONVERSAOEOC BIT P1.2 ;ENTRADA DE FIM DE CONVERSAOLED1 BIT P3.2LED2 BIT P3.3FLAGADC EQU 0 ;FLAG INDICANDO DADO DO CONVERSOR PRONTO;* CONSTANTESPILHA EQU 60HENDADC EQU 2000H ;ENDERECO DE ACESSO DO CONVERSOR;* DEFINICOES
46
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO DADOADC EQU 40HFTEMPO1 EQU 50HFTEMPO2 EQU 51HFVARIA1 EQU 52HFVARIA2 EQU 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
ORG 0INICIO: AJMP INIPRG ;SALTA VETORES DE INTERRUPCAO
ORG 3 ;INTERRUPCAO EXTERNA 0RETIORG 0BH ;INTERRUPCAO DO TIMER 0AJMP LEADCORG 13H ;INTERRUPCAO EXTERNA 1RETIORG 1BH ;INTERRUPCAO DO TIMER 1RETIORG 23H ;INTERRUPCAO SERIALRETIORG 30H
INIPRG: CLR LED1CLR LED2CLR VENTILMOV SP,#PILHA ;DEFINE PILHAMOV PSW,#08H ;DEFINE BANCO 1 DE
;REGISTRADORES 'R'MOV IE,#10000010B ;HABILITA TIMER0MOV TL0,#TIMERL0 ;CARREGA TIMER 0 BAIXOMOV TH0,#TIMERH0 ;CARREGA TIMER 0 ALTOMOV TH1,#0FDH ;9600 BAUNDSMOV TMOD,#00010001B ;DESATIVA GATE, UTILIZA
;TEMPORIZACAO ;INTERNA E MODO 1 (16 ;BITS)
SETB TR0CLR TR1CLR FLAGADCCLR LECONV ;ZERA SINAL ADC
;* PISCA LEDS RELOOP: SETB LED1
CALL TEMPO05CLR LED1SETB LED2CALL TEMPO05
47
APOSTILA DE LABORATÓRIO MACKENZIE MICROPROCESSADORES APLICAÇÃO
CLR LED2
;* PROGRAMA PRINCIPAL;* Monitora FLAG DO CONVERSOR;* CONTROLA VENTILADOR VERIFICANDO SE DADO DO CONVERSOR >= 30H
JNB FLAGADC,$ ;ESPERA LEITURA DO CONVERSORCLR FLAGADC ;ZERA FLAGCLR CMOV A,DADOADCSUBB A,#30H ;SE DADOADC >= 30H, C=0JNC DESLVENSETB VENTILJMP RELOOP
DESLVEN: CLR VENTILJMP RELOOP
;*** FIM DO PROGRAMA PRINCIPAL
;*** INICIO DA AREA DE SUBROTINAS
;*** SUBROTINA DE 0,5 SEGUNDOS;* CRISTAL DE 12 Mhz -> 1 uSEG. DE CICLOTEMPO05: PUSH FTEMPO1
PUSH FTEMPO2MOV FTEMPO1,#255 ;255 X 255 = 65025 LOOPS
RETEMP: MOV FTEMPO2,#255RETEMP1: NOP ;LOOP COM 7 CICLOS
NOPNOPNOPNOPDJNZ FTEMPO2,RETEMP1DJNZ FTEMPO1,RETEMP ;LOOP SECUNDARIO COM 9 CICLOSPOP FTEMPO2POP FTEMPO1RET
;* SUBROTINA DE TEMPO - 15 MSEG.TEMPO15: PUSH FTEMPO1
PUSH FTEMPO2MOV FTEMPO1,#35 ;35 X 255 = 8925 LOOPS
RETEMPA: MOV FTEMPO2,#255RETEMP1A: NOP ;LOOP COM 7 CICLOS
NOPNOPNOPNOPDJNZ FTEMPO2,RETEMP1ADJNZ FTEMPO1,RETEMPA ;LOOP SECUNDARIO COM 9 CICLOSPOP FTEMPO2POP FTEMPO1
48
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 BAIXOMOV TH0,#TIMERH0 ;CARREGA TIMER 0 ALTOSETB LECONVJNB EOC,$ ;AGUARDA FIM DE CONVERSAOMOV DPTR,#ENDADCMOVX A,@DPTRMOV DADOADC,ASETB FLAGADCCLR LECONVPOP ACCRETIEND
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.
49
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).
50
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 8031TECLADO =
- 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.
51
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.
52