View
217
Download
0
Category
Preview:
Citation preview
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 1
Prática laboratorial com o80C51• Organização:
– Requisitos e modelo funcional de um sistema mínimo
– Da especificação à prática de projecto– Comunicação com o PC
– Um gerador de formas de onda
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 2
Requisitos de um sistemamínimo• Considerando que o sistema mínimo pretendido tem
por objectivo principal dar apoio à prática laboratorial,os requisitos de partida foram os seguintes:– Simplicidade, para permitir uma compreensão em
pormenor de todos os aspectos
– Disponibilidade de entradas e de saídas, para permitiralguma variedade nos trabalhos práticos a realizar
– Empregar componentes acessíveis e com baixo custo
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 3
Modelo funcional
• Carga do programa a executar: via RS 232C, a partirde um PC onde é gerado o código objecto
• Entrada / Saída:– Analógica, entre -5 V e +5 V, a que correspondem a
escrita de 00 e FFH, respectivamente, no conversor D/A(relação linear entre os códigos escritos no D/A e o valorda saída)
– Quatro entradas digitais e quatro saídas digitais
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 4
Modelo funcional (cont.)
• A memória externa resume-se a uma NVRAM (MP –para o código recebido via RS 232C – e MD),estando o “monitor residente” na MP interna do µC
• Alocação de endereços:/PSEN /RD /WR A15 Acesso seleccionado
0 1 1 1 Memória externa (leitura: código de instrução)
1 0 1 1 Memória externa (leitura: dados)
1 1 0 1 Memória externa (escrita)
1 1 0 0 Saída analógica
(ender. 90H, linhas P1.0 a P1.3) Saídas digitais (porto 1)
(ender. 90H, linhas P1.4 a P1.7) Entradas digitais (porto 1)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 5
Modelo funcional (cont.)
• Repare-se que o modelo funcional descrito nospermite desde já a escrita de código:
(qual o efeito deste segmento de código?)
.org 8000h
inicio mov dptr,#0 ; DP com endereco D/A
clr a ; carrega ACC com 0
ciclo movx @dptr,a ; envia ACC para D/A
inc a ; proximo valor
sjmp ciclo
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 6
Da especificação à práticade projecto• A passagem à prática de projecto faz-se através do
seguinte conjunto de passos:– Definição do diagrama de blocos da solução global
– Realização do bloco descodificador do sistema– Criação do diagrama esquemático
– Realização da carta de circuito impresso
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 7
Diagrama de blocos
87C51Conversão de nível
Portosérie
P1
AD[0:7]
D[0:7]
A[0:7]
A[8:15]
A[15]/PSEN
/RD/WR
Descodificador
NVRAMRegisto
Entrada / saída digital(4 entradas e 4 saídas)
/mem_rd /mem_cs
da_cs
Bloco do conversor D/A
Saídaanalógica
Comunicaçãovia RS-232C ALE
AmpOps
Registo econv. D/A
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 8
Descodificador do sistema
• Sinais gerados pelo descodificador:– Para a NVRAM: /mem_rd e /mem_cs
– Para a escrita no conversor D/A: da_cs
• Especificação “tipo-PALASM”:
(seria desejável a sua implementação como uma PAL?)
(/mem_rd) = (/psen)*(/rd) ; activo se /psen ou /rd estiverem em 0
(/mem_cs) = /(a15) ; activo se a15 estiver em 1
(da_cs) = /(a15)*/(/wr) ; activo se a15 e /wr estiverem em 0
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 9
Diagrama esquemático
• (apresentado na transparência seguinte) Reparar emparticular nos seguintes aspectos:– Filtragem nas entradas digitais
– Forma como está implementada a comunicação RS 232C– Implementação do bloco descodificador
– Tratamento da saída do conversor D/A– Ligação das entradas digitais não usadas
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 10
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 11
Carta de circuito impresso
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 12
Comunicação com o PC
• Libertar-nos do ciclo “programar EPROM /experimentar / corrigir / apagar EPROM / repetir”
• Os programas a executar são escritos em assemblyno PC, onde é produzido o código objecto, que é porsua vez transferido via RS 232C para o sistema
• A transferência do código objecto pode por exemploser efectuada através da aplicação HyperTerminal(acessórios do Windows 95)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 13
O monitor residente e acomunicação com o PC• Permite transferir o código objecto para execução na
NVRAM (cujo sinal de /OE resulta do AND entre ossinais /PSEN e /RD do 87C51)
• O código objecto deve estar em formato Intel Hex e oporto série do PC configurado para 9600 bps, 8 bits,sem paridade e com um stop bit
• São apenas necessárias as ligações (RxD-TxD),(TxD-RxD) e (Gnd-Gnd)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 14
O monitor residente:Protocolo de transferência• Ao ser reinicializado, o 87C51 envia “=“ para o PC• O PC pode então enviar:
– O código de “Escape” (1BH), se pretender reinicializar osistema (que nesse caso responderá com “=“)
– O código do programa a executar
• No final da transferência, o 87C51 envia “:” para oPC, a que se segue uma indicação do tipo de erro, sealgum tiver ocorrido
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 15
Protocolo de transferência:Tipos de erros• Códigos de erro (em hexadecimal):
– 01: Caracteres não hexadecimais
– 02: Erro de formatação– 04: Código de verificação incorrecto
– 08: Não foram recebidos dados– 10: Excedeu-se a capacidade de memória
– 20: Erro na verificação dos dados em memória
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 16
Protocolo de transferência:Execução do programa• Após a recepção correcta, o 87C51 envia ao PC um
checksum que resulta da soma de todos os bytes dedados que foram recebidos, truncada para 16 bits
• O PC poderá então dar a ordem para execução docódigo, enviando a seguinte sequência de caracteres:“/<endereço>” (e.g. “/8000” para começar em 8000H)
• Se o endereço for aceite, o 87C51 enviará um “@” aoPC e iniciará a execução do programa como indicado
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 17
Uso da aplicaçãoHyperTerminal
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 18
Uso da aplicaçãoHyperTerminal (cont.)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 19
Uso da aplicaçãoHyperTerminal (cont.)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 20
Geração do código objecto
• A geração do código objecto é feita por um cross-assembler, que lê um ficheiro com o código fonte(escrito em assembly) e produz o ficheiro com ocódigo objecto (por exemplo, à instrução assemblymov 2,#5AH corresponde o código objecto 74, 5A)
• O TASM é um cross-assembler do tipo sharewareque ilustra bem as funções associadas a umaaplicação deste tipo
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 21
Fluxo de dados no TASM
• O TASM é um table-driven cross assembler:
TASM
.TAB
.ASM
.LST.OBJ
Ficheiro de entradaem assembly (ASCII)
Correspondênciaentre mnemónicas e
código objecto (ASCII)
Ficheiro com o código objecto(Intel Hex, binário, etc.)
Instruções emassembly e códigoobjecto (ASCII)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 22
Formato Intel Hex (ASCII)
• :LLAAAATTDD...CC (conteúdo de cada linha)– “:” representa o início da sequência
– “LL” indica o número de bytes de dados presentes– “AAAA” representa o endereço de 16 bits que deve ser
usado para iniciar o armazenamento do código objecto
– “TT” representa o tipo de sequência (00: Dados; 01: Fim)
– “DD...” são os bytes de dados– “CC” é um código de verificação (checksum)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 23
Geração de uma onda emdente de serra• Retomando o gerador de dente de serra, e invocando
o TASM (tasm -51 serra.asm), obtemos:0003 8000 .org 8000h0004 80000005 8000 90 00 00 inicio mov dptr,#00006 8003 E4 clr a0007 8004 F0 ciclo movx @dptr,a0008 8005 04 inc a0009 8006 80 FC sjmp ciclo0010 80080011 8008 .end0012 8008
tasm: Number of errors = 0
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 24
Geração de uma onda emdente de serra (cont.)
0003 80000004 80000005 8000 90 00 000006 8003 E40007 8004 F00008 8005 040009 8006 80 FC0010 80080011 80080012 8008
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 25
Geração de uma onda emdente de serra (cont.)• A forma de onda gerada produz o efeito esperado:
(considerado que o relógiodo 87C51 é de 11,0592MHz, qual seria o valoresperado para afrequência da onda emdente de serra?)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 26
Um gerador de formas deonda• A consideração de um exemplo mais complexo irá
permitir-nos:– Consolidar os conhecimento adquiridos acerca do
microcontrolador 80C51
– Discutir as questões relacionadas com a metodologia dedesenvolvimento de aplicações
– Ilustrar algumas questões associadas com o projecto decircuitos mistos (analógicos e digitais)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 27
Caracterização funcional
• Pretende-se a seguinte funcionalidade:– Forma de onda seleccionável (triangular, dente de serra
ascendente e dente de serra descendente)– Deve estar prevista a possibilidade de se acrescentarem
posteriormente mais formas de onda
– Frequência ajustável– Valores máximo e mínimo ajustáveis de forma
independente dentro da excursão máxima possível
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 28
Interface com o utilizador
• Pretende-se um interface com 3 teclas e 4 leds:
Formade Onda Frequência
ValorMáximo
ValorMínimo
Função + -
(teclas)
– A tecla “Função”desloca de formacircular a funçãoseleccionada (o ledaceso)
– As teclas “+” e “-” permitem incrementar / decrementar oparâmetro associado à função seleccionada (se for aforma de onda, significa passar à seguinte / anterior)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 29
Condições iniciais
• Após a (re)inicialização, o gerador de formas de ondapretendido deve passar ao seguinte modo:– A função activa deve ser a de selecção de forma de onda
(aceso o led da esquerda)
– A forma de onda na saída deve ser a triangular– A frequência deve estar no meio da escala
– O valor máximo deve ser de +2,5 V– O valor mínimo deve ser de -2,5 V
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 30
Exemplo de uso
• Serra ascendente, mantendo a frequência inicial ecom limites de +5 V e 0 (após ligar a alimentação):– Carregar em “+” até aparecer a serra ascendente
– Carregar em “Função” duas vezes, para seleccionar oajuste do valor máximo (aceso o led “Valor máximo”)
– Carregar em “+” até que o valor máximo seja de +5 V
– Carregar em “Função” uma vez (passa ao valor mínimo)– Carregar em “+” até que o valor mínimo seja de 0 V
Formade Onda Frequência
ValorMáximo
ValorMínimo
Função + -
(teclas)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 31
Atribuição de recursos
• Analisando os recursos disponíveis no nosso sistemamínimo, podemos fazer a seguinte atribuição:– (saídas digitais e respectivos leds) P1.0: Forma de onda;
P1.1: Frequência; P1.2: Valor máximo; P1.3: Valor mínimo
– (entradas digitais e respectivas teclas) P1.4: TeclaFunção; P1.5: Tecla +; P1.6: Tecla -
– Havendo apenas uma saída analógica, a atribuição desterecurso está feita por natureza
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 32
Atribuição de recursos(cont.)• Resulta deste
modo a seguintedisposição:
AlimentaçãoSaída analógica
87C51
NVRAM
PortasE
PortasNÃO
Registo
Registo
Conv.D/A
AmpOpscristal
Teclas
Valor Mínimo
leds
Valor Máximo
Frequência
Formade onda
“Função”
“+” “-“
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 33
Organização das rotinas adesenvolver• Modelo de
organização:
Inicialização
Formade onda
triangular
Formade ondaem serra
ascendente
Formade ondaem serra
descendente
Atraso
Gestão
Atraso
Gestão
Atraso
Gestão
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 34
Organização da subrotinade gestão do sistema
Teclapremida?
Leiturado
teclado
Tecla“Função”?
Tecla“+”?
Acçõesda
tecla “+”
Retorna Acçõesda
tecla “-”
Retorna
Acçõesda tecla
“Função”
Retorna
S
Retorna
N
S
N
NS
Inicialização
Formade onda
triangular
Formade ondaem serra
ascendente
Formade ondaem serra
descendente
Atraso
Gestão
Atraso
Gestão
Atraso
Gestão
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 35
Exemplo de funcionamento
• Inicialização e passagem à forma de onda seguinte:
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 36
Gerador de formas de onda:Implementação alternativa• Nesta implementação alternativa, introduziremos as
seguintes diferenças:– Pretende-se o menor número possível de componentes
– Controlo remoto (via RS-232C, em vez de ser através deum painel frontal)
– Usaremos as interrupções do T/C 0 para determinar oritmo de actualização da saída do conversor D/A (e porconseguinte a frequência das formas de onda geradas)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 37
Diagramaesquemático
<Doc> 1.0
JMF - gerador programável de formas de onda (Nov. 2001)
A
1 1Tuesday, November 20, 2001
Title
Size Document Number Rev
Date: Sheet of
+5V
-12V
+5V
+12V
-12V
+5V
-12V
+5V
+5V
MAX232
13
8
11
10
1
3
4
52
6
12
9
14
7
R1IN
R2I
N
T1IN T2I
N
C+
C1-
C2+
C2-V+
V-
R1OUT
R2O
UT
T1OUT
T2O
UT
AT89C51
9
18 19
2930
31
12345678
2122232425262728
1011121314151617
3938373635343332
RST
XT
AL2
XT
AL1
PSENALE/PROG
EA/VPP
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXDP3.2/INTOP3.3/INT1P3.4/TOP3.5/T1P3.6/WRP3.7/RD
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
DAC08
4
16
14
1512111098765
13 3
1
2
IOUT
CO
MP
VREF+
VREF-LSB/B0B1B2B3B4B5B6MSB/B7
V+ V-
VLC
/IOUT
cabo RS232C
TxDRxDGND
123
saída analógica
1
2
botão de reset
100nF
2K5
+
-
1/2 TL082
3
21
+
-
1/2 TL082
5
67
84
100nF
100nF
10K
100nF
100nF
100nF100nF
2K5
4K7
11,0592MHz
33 pF33pF10K
1uF
0K1
1N4148
10K+
+
+ +
+
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 38
Código do novo gerador deformas de onda• Uma vez que o controlo de funcionamento tem agora
lugar via RS-232C e a actualização da saída doconversor D/A é cadenciada pelo T/C 0, temos asseguintes rotinas para escrever:– Inicialização do sistema– Atendimento das interrupções da porta série
– Atendimento das interrupções do T/C 0
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 39
Rotina de inicialização dosistemaInicialização de parâmetros:
- Valor máximo: 75%- Valor mínimo: 25%- Forma de onda: triangular- Declive inicial: ascendente
Inicialização do microcontrolador:- Periférico série: modo 1, recepção habilitada- T/C 0 e T/C 1: T/C 0 – modo 2, ints habilitadas, TH0 a meio da escala; T/C 1 – modo 2, ints inibidas, TH1 para 9.600 bps
- Interrupções: Habilita PS e T/C 0, com prioridade mais elevada para a PS
- Activa dos dois T/C
Espera pelos pedidos de interrupção
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 40
Interrupções da porta série(chegou um carácter)
Carácter “+”?
Acção “Forma de onda”?
Acção “Frequência”?
Acção “Valor máximo”?
Acção “Valor mínimo”?
Carácter “-”?
Acção “Forma de onda”?
Acção “Frequência”?
Acção “Valor máximo”?
Acção “Valor mínimo”?
Guarda código ASCII em R6
Dec. código da forma de onda
Dec. valor de TH0
Dec. valor máximo
Dec. valor mínimo
Inc. código da forma de onda
Inc. valor de TH0
Inc. valor máximo
Inc. valor mínimo
RETIRETI RETIRETI RETI
RETI RETIRETI RETI
RETI
0023H
Limpa RI
N
N
N
N
NN
N
N
N
N
S
S S S S
S S S S
S
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 41
Interrupções do T/C 0(actualiza a saída do D/A)
Forma de onda triangular?
RETI
000BH
Se não atingiu o máximo, incrementa; caso contrário, passa para descendente e decrementa
N
S
Forma de onda serra ascendente?
Forma de onda serra descendente?
Declive ascendente?
N N
Se não atingiu o mínimo, decrementa; caso contrário, passa para ascendente e incrementa
S
N
Se não atingiu o máximo, incrementa; caso contrário, passa para o valor mínimo
Se não atingiu o mínimo, decrementa; caso contrário, passa para o valor máximo
S S
RETI
RETI RETI
Aplica nível DC a meio da escala
RETI
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 42
Configuração doHyperTerminal
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 43
Controlo de uma plataformamóvel• Pretende-se neste caso implementar um interpretador
para a linguagem (pseudo-) LOGO que foi descrita nocapítulo 6 do livro recomendado– No cap. 6 é apresentado um microprocessador dedicado
para implementar esta linguagem, mas agora queremosusar um AT89C51
– A escrita do código LOGO deve ser feita no PC e orespectivo código objecto enviado via RS232C
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 44
+ Bateria -
AT89C51 + ...
Detecção de obstáculos
Sinalização de problemas
(roda giratória)
motor motor
RS232C
(roda) (roda)
A plataforma móvel
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 45
O accionamento commotores passo-a-passo
0101
1001
1010
0110
…………
ABCD
P2.7 … P2.0
0 1 0 1 0 1 0 11 0 0 1 1 0 0 11 0 1 0 1 0 1 00 1 1 0 0 1 1 0
Tabela em memória para o movimento para a frente:
Formas de onda nas quatro fases (movimento para a frente):
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 46
Controlo domovimento
; opcode das instruções LOGO:front equ 66h ; fback equ 62h ; bleft equ 6Ch ; lright equ 72h ; rsetout0 equ 20h ; espaçosetout1 equ 21h ; !setout2 equ 22h ; "setout3 equ 23h ; #rstout0 equ 30h ; 0rstout1 equ 31h ; 1rstout2 equ 32h ; 2rstout3 equ 33h ; 3jpin0 equ 70h ; pjpin1 equ 71h ; qjpin2 equ 72h ; rjpin3 equ 73h ; sjp equ 6Ah ; jhalt1 equ 68h ; hhalt2 equ 68h ; h
• As instruções existentesdividem-se por quatrogrupos principais:– Movimento
– Actuação das saídas– Salto– Paragem
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 47
Rotinas existentes• Existem quatro rotinas principais:
– Inicialização do sistema – inicio.a51– Interpretador que executa o código LOGO – interpr.a51– Atendimento das interrupções pedidas pela porta série –
int_ps.a51– Atendimento das interrupções pedidas pelo T/C 0 –
int_tc0.a51 (neste caso o atendimento não é automático,sendo monitorizado o valor da flag TF0 e executada arotina de atendimento através de uma instrução CALL)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 48
Rotina inicio.a51(inicialização do sistema)• Após a inicialização dos registos, dos contadores, da
porta e do sistema de interrupções, limita-se aesperar que cheguem caracteres via RS232C
; Uso dos registos:; > R0- apontador para a tabela LOGO na recepção RS232C (armazenar); > R1- apontador para a tabela LOGO no execução (para ler a instrução); > R2- não é usado nesta implementação; > R3- Unidades de deslocamento (UD) requeridas para o movimento; > R4- factor multiplicativo (factm) entre cada UD e o número de passos; > R5- não é usado nesta implementação; > R6- usado na leitura das tabelas de passo (contém o offset); > R7- usado na leitura das tabelas de passo (contém o índice)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 49
Rotina interpr.a51(interpretador LOGO)• O código LOGO (designado por “tabela LOGO”) está
armazenado entre 30H (ENDINI) e 7FH (ENDFIN)• A execução deve ser suspensa se for atingido o
endereço final• Qualquer código ilegal deve ser tratado como NOP
(“no operation”)
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 50
Rotina int_ps.a51(atendimento int. porta série)• Recebe o código LOGO e a ordem para o executar• HALT ocupa dois bytes que só surgem neste caso
(serve também para marcar o fim da recepção)• À chegada de HALT, deve acontecer o seguinte:
– Reinicializa R0 (apontador para a tab. LOGO na recepção)e R1 (apontador para a tab. LOGO na execução)
– Inicia a interpretação (execução) do código LOGO recebido
• Se atingir o ENDFIN deixa de incrementar R0
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 51
Rotina int_tc0.a51(atendimento int. T/C 0)• Esta rotina é executada em resultado de uma
instrução CALL, quando se detecta que TF0 = 1• O T/C 0 é que permite cadenciar a sequência de
passos (os motores são controlados pela porta 2)• As combinações de passo estão armazenadas nas
“tabelas de passo” (existe uma tabela para cada tipode movimento: frente, trás, esquerda, direita)
• Ao terminar o movimento o T/C 0 é desactivadoIntrodução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 52
KEIL: Resultado produzidoL51 LINKER/LOCATOR V3.62 06/12/01 22:52:02 PAGE 1
(...)INPUT MODULES INCLUDED:C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\INICIO.OBJ (INICIO)C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\INT_TC0.OBJ (INT_TC0)C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\INT_PS.OBJ (INT_PS)C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\INTERPR.OBJ (INTERPR)
LINK MAP OF MODULE: C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\LOGO (INICIO)
TYPE BASE LENGTH RELOCATION SEGMENT NAME-----------------------------------------------------* * * * * * * D A T A M E M O R Y * * * * * * *REG 0000H 0008H ABSOLUTE "REG BANK 0"
* * * * * * * C O D E M E M O R Y * * * * * * *CODE 0000H 0003H ABSOLUTE
0003H 0008H *** GAP ***CODE 000BH 0003H ABSOLUTE
000EH 0015H *** GAP ***CODE 0023H 0024H ABSOLUTE
0047H 0009H *** GAP ***CODE 0050H 0024H ABSOLUTE
0074H 008CH *** GAP ***CODE 0100H 0021H ABSOLUTE
0121H 001FH *** GAP ***CODE 0140H 0115H ABSOLUTE
******************************************************************************>>* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 0184H BYTE (18%) *>>******************************************************************************>>LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
(JMP INICIO)(JMP INT_TC0)INT_PS.A51INT_TC0.A51INICIO.A51INTERPR.A51
Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 53
Conclusão
• Objectivo principal do capítulo: Proporcionar osrecursos mínimos que facilitem a passagem à práticalaboratorial com o 87C51
• Pistas para a continuação do estudo:– Aprofundar o conceito de monitor residente
– Sistemas de desenvolvimento
Recommended