Prática laboratorial com o 80C51 • 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 Microcontroladores Prática laboratorial com o 80C51 - 1 Requisitos de um sistema mí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 permitir alguma variedade nos trabalhos práticos a realizar – Empregar componentes acessíveis e com baixo custo Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 2 Modelo funcional • Carga do programa a executar: via RS 232C, a partir de 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 valor da saída) – Quatro entradas digitais e quatro saídas digitais Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 3 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 Microcontroladores Prática laboratorial com o 80C51 - 4 Modelo funcional (cont.) • Repare-se que o modelo funcional descrito nos permite desde já a escrita de código: inicio ciclo .org 8000h mov clr movx inc sjmp dptr,#0 a @dptr,a a ciclo ; ; ; ; DP com endereco D/A carrega ACC com 0 envia ACC para D/A proximo valor (qual o efeito deste segmento de código?) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 5 Da especificação à prática de 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 Microcontroladores Prática laboratorial com o 80C51 - 6 Diagrama de blocos D[0:7] Conversão de nível 87C51 Comunicação via RS-232C Porto série AD[0:7] P1 A[8:15] Entrada / saída digital (4 entradas e 4 saídas) Registo e conv. D/A AmpOps Saída analógica Registo A[0:7] NVRAM ALE /mem_rd /PSEN /RD /WR da_cs Bloco do conversor D/A Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 7 A[15] Descodificador /mem_cs 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”: (/mem_rd) = (/psen)*(/rd) ; activo se /psen ou /rd estiverem em 0 (/mem_cs) = /(a15) (da_cs) ; activo se a15 estiver em 1 = /(a15)*/(/wr) ; activo se a15 e /wr estiverem em 0 (seria desejável a sua implementação como uma PAL?) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 8 Diagrama esquemático • (apresentado na transparência seguinte) Reparar em particular 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 Microcontroladores Prática laboratorial com o 80C51 - 9 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 10 Carta de circuito impresso Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 11 Comunicação com o PC • Libertar-nos do ciclo “programar EPROM / experimentar / corrigir / apagar EPROM / repetir” • Os programas a executar são escritos em assembly no PC, onde é produzido o código objecto, que é por sua vez transferido via RS 232C para o sistema • A transferência do código objecto pode por exemplo ser efectuada através da aplicação HyperTerminal (acessórios do Windows 95) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 12 O monitor residente e a comunicação com o PC • Permite transferir o código objecto para execução na NVRAM (cujo sinal de /OE resulta do AND entre os sinais /PSEN e /RD do 87C51) • O código objecto deve estar em formato Intel Hex e o porto 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 Microcontroladores Prática laboratorial com o 80C51 - 13 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 o sistema (que nesse caso responderá com “=“) – O código do programa a executar • No final da transferência, o 87C51 envia “:” para o PC, a que se segue uma indicação do tipo de erro, se algum tiver ocorrido Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 14 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 Microcontroladores Prática laboratorial com o 80C51 - 15 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 de dados que foram recebidos, truncada para 16 bits • O PC poderá então dar a ordem para execução do có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 “@” ao PC e iniciará a execução do programa como indicado Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 16 Uso da aplicação HyperTerminal Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 17 Uso da aplicação HyperTerminal (cont.) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 18 Uso da aplicação HyperTerminal (cont.) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 19 Geração do código objecto • A geração do código objecto é feita por um crossassembler, que lê um ficheiro com o código fonte (escrito em assembly) e produz o ficheiro com o código objecto (por exemplo, à instrução assembly mov 2,#5AH corresponde o código objecto 74, 5A) • O TASM é um cross-assembler do tipo shareware que ilustra bem as funções associadas a uma aplicação deste tipo Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 20 Fluxo de dados no TASM • O TASM é um table-driven cross assembler: .ASM Ficheiro de entrada em assembly (ASCII) .TAB Correspondência entre mnemónicas e código objecto (ASCII) TASM Ficheiro com o código objecto (Intel Hex, binário, etc.) .OBJ Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 21 .LST Instruções em assembly e código objecto (ASCII) 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 Microcontroladores Prática laboratorial com o 80C51 - 22 Geração de uma onda em dente de serra • Retomando o gerador de dente de serra, e invocando o TASM (tasm -51 serra.asm), obtemos: 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 8000 8000 8000 8003 8004 8005 8006 8008 8008 8008 90 00 00 E4 F0 04 80 FC inicio ciclo tasm: Number of errors = 0 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 23 .org 8000h mov clr movx inc sjmp dptr,#0 a @dptr,a a ciclo .end Geração de uma onda em dente de serra (cont.) 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 24 8000 8000 8000 8003 8004 8005 8006 8008 8008 8008 90 00 00 E4 F0 04 80 FC Geração de uma onda em dente de serra (cont.) • A forma de onda gerada produz o efeito esperado: (considerado que o relógio do 87C51 é de 11,0592 MHz, qual seria o valor esperado para a frequência da onda em dente de serra?) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 25 Um gerador de formas de onda • 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 de desenvolvimento de aplicações – Ilustrar algumas questões associadas com o projecto de circuitos mistos (analógicos e digitais) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 26 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 Microcontroladores Prática laboratorial com o 80C51 - 27 Interface com o utilizador • Pretende-se um interface com 3 teclas e 4 leds: – A tecla “Função” Forma Valor Valor de Onda Frequência Máximo Mínimo desloca de forma circular a função (teclas) seleccionada (o led Função + aceso) – As teclas “+” e “-” permitem incrementar / decrementar o parâmetro associado à função seleccionada (se for a forma de onda, significa passar à seguinte / anterior) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 28 Condições iniciais • Após a (re)inicialização, o gerador de formas de onda pretendido 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 Microcontroladores Prática laboratorial com o 80C51 - 29 Exemplo de uso Forma de Onda Valor Frequência Máximo Valor Mínimo (teclas) Função + - • Serra ascendente, mantendo a frequência inicial e com 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 o ajuste 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 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 30 Atribuição de recursos • Analisando os recursos disponíveis no nosso sistema mí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: Tecla Função; P1.5: Tecla +; P1.6: Tecla – Havendo apenas uma saída analógica, a atribuição deste recurso está feita por natureza Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 31 Atribuição de recursos (cont.) • Resulta deste modo a seguinte disposição: Saída analógica Alimentação Registo Conv. D/A AmpOps Registo cristal NV RAM 87C51 Portas Portas E NÃO Teclas leds Frequência Valor Mínimo Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 32 Forma Valor Máximo de onda “+” “Função” “-“ Organização das rotinas a desenvolver • Modelo de organização: Inicialização Forma de onda triangular Atraso Gestão Forma de onda em serra ascendente Forma de onda em serra descendente Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 33 Atraso Gestão Atraso Gestão Organização da subrotina de gestão do sistema Inicialização Forma de onda triangular Leitura do teclado Retorna N Forma de onda em serra descendente S S Acções da tecla “Função” Retorna N Acções da tecla “-” Retorna N Retorna Acções da tecla “+” S Tecla “+”? Gestão Forma de onda em serra ascendente Tecla premida? Tecla “Função”? Atraso Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 34 Atraso Gestão Atraso Gestão Exemplo de funcionamento • Inicialização e passagem à forma de onda seguinte: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 35 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 de um painel frontal) – Usaremos as interrupções do T/C 0 para determinar o ritmo de actualização da saída do conversor D/A (e por conseguinte a frequência das formas de onda geradas) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 36 1 3 100nF + 4 C2- 8 13 14 TxD RxD GND 100nF C1C2+ Diagrama esquemático R2IN 10 C+ 7 5 R1IN T1OUT V- R2O UT + V+ 1 2 3 6 + cabo RS 232C 2 + 100nF 9 100nF T1IN R1OUT T2O UT 11 12 T2IN MA X232 +5V -12V AT 89C51 18 3 VVREF+ LSB /B 0 B1 B2 B3 B4 B5 B6 MS B/B7 VREF/IOUT 9 31 2K5 14 +5V 15 2 4K7 2K5 +12V CO MP 12 11 10 9 8 7 6 5 1/2 T L082 IOUT 4 2 3 1 8 13 V+ 1 2 3 4 5 6 7 8 5 6 7 1 - +5V 1/2 T L082 100nF +5V saída analóg ica + 2 EA /V PP DA C08 4 RS T 100nF 16 XTA L1 XTA L2 PS EN ALE /P ROG 100nF VLC P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 39 38 37 36 35 34 33 32 1 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD 19 29 30 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 + 10 11 12 13 14 15 16 17 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 - 21 22 23 24 25 26 27 28 0K1 -12V -12V +5V + 10K 1uF 10K botão de reset 11,0592MHz 1N4 148 33pF 33 pF 10K Ti tl e JMF - gerador p rogramável de formas de onda (Nov. 2001) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 37 Si ze A Date: Doc umen t Number <Do c> Tue sday, November 20, 2001 Rev 1.0 She et 1 of 1 Código do novo gerador de formas de onda • Uma vez que o controlo de funcionamento tem agora lugar via RS-232C e a actualização da saída do conversor D/A é cadenciada pelo T/C 0, temos as seguintes 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 Microcontroladores Prática laboratorial com o 80C51 - 38 Rotina de inicialização do sistema Inicializaçã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 Microcontroladores Prática laboratorial com o 80C51 - 39 Interrupções da porta série (chegou um carácter) 0023H Limpa RI Inc. código da forma de onda RETI S Carácter S “+”? Inc. valor de TH0 RETI S Inc. valor máximo RETI S Acção “Forma de onda”? N N Acção “Frequência”? Acção “Valor máximo”? N Acção “Forma de onda”? N N Acção “Frequência”? Acção “Valor máximo”? N N Carácter S “-”? N S S Guarda código Dec. código da Dec. valor de ASCII em R6 forma de onda TH0 RETI RETI Digitais e Microcontroladores RETI Introdução ao Projecto com Sistemas Prática laboratorial com o 80C51 - 40 Inc. valor mínimo RETI S Acção “Valor mínimo”? N RETI N Acção “Valor mínimo”? S S Dec. valor máximo RETI Dec. valor mínimo RETI 000BH Interrupções do T/C 0 (actualiza a saída do D/A) Forma de onda triangular? N S N Forma de onda serra ascendente? N Forma de onda serra descendente? S Se não atingiu o máximo, incrementa; caso contrário, passa para o valor mínimo RETI Declive ascendente? N S S Se não atingiu o mínimo, decrementa; caso contrário, passa para o valor máximo RETI Aplica nível DC a meio da escala RETI Se não atingiu o máximo, Se não atingiu o mínimo, incrementa; caso contrário, passa decrementa; caso contrário, passa para descendente e decrementa para ascendente e incrementa Introdução ao Projecto com Sistemas Digitais e Microcontroladores RETI RETI Prática laboratorial com o 80C51 - 41 Configuração do HyperTerminal Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 42 Controlo de uma plataforma móvel • Pretende-se neste caso implementar um interpretador para a linguagem (pseudo-) LOGO que foi descrita no capítulo 6 do livro recomendado – No cap. 6 é apresentado um microprocessador dedicado para implementar esta linguagem, mas agora queremos usar um AT89C51 – A escrita do código LOGO deve ser feita no PC e o respectivo código objecto enviado via RS232C Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 43 A plataforma móvel RS232C + Bateria (roda) (roda) motor AT89C51 + ... Detecção de obstáculos Sinalização de problemas (roda giratória) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 44 motor O accionamento com motores passo-a-passo Formas de onda nas A quatro fases (movimento para a B frente): C D Tabela em memória para o movimento para a frente: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 45 0 1 1 0 0 0 1 0 … 0 1 … 1 1 … 1 1 0 0 … P2.7 … 0 1 1 0 1 0 0 1 P2.0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 Controlo do movimento • As instruções existentes dividem-se por quatro grupos principais: – – – – Movimento Actuação das saídas Salto Paragem Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 46 ; opcode das instruções LOGO: front equ 66h ;f back equ 62h ;b left equ 6Ch ;l right equ 72h ;r setout0 equ 20h ; espaço setout1 equ 21h ;! setout2 equ 22h ;" setout3 equ 23h ;# rstout0 equ 30h ;0 rstout1 equ 31h ;1 rstout2 equ 32h ;2 rstout3 equ 33h ;3 jpin0 equ 70h ;p jpin1 equ 71h ;q jpin2 equ 72h ;r jpin3 equ 73h ;s jp equ 6Ah ;j halt1 equ 68h ;h halt2 equ 68h ;h 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 a rotina de atendimento através de uma instrução CALL) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 47 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 a esperar 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) Projecto com na Sistemas Digitais e Microcontroladores ; Introdução > R7-ao usado leitura das tabelas de passo (contém o índice) Prática laboratorial com o 80C51 - 48 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 Microcontroladores Prática laboratorial com o 80C51 - 49 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 Microcontroladores Prática laboratorial com o 80C51 - 50 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 tipo de movimento: frente, trás, esquerda, direita) • Ao terminar o movimento o T/C 0 é desactivado Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 51 KEIL: Resultado produzido L51 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" * * * * * * * CODE 0000H 0003H CODE 000BH 000EH CODE 0023H 0047H CODE 0050H 0074H CODE 0100H 0121H CODE 0140H C O D E 0003H 0008H 0003H 0015H 0024H 0009H 0024H 008CH 0021H 001FH 0115H M E M O R Y ABSOLUTE ABSOLUTE ABSOLUTE ABSOLUTE ABSOLUTE ABSOLUTE * * * * * * * *** GAP *** *** GAP *** *** GAP *** *** GAP *** *** GAP *** (JMP INICIO) (JMP INT_TC0) INT_PS.A51 INT_TC0.A51 INICIO.A51 INTERPR.A51 ****************************************************************************** >> * RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 0184H BYTE (18%) * >> ****************************************************************************** Introdução ao Projecto com Sistemas Digitais e Microcontroladores >> Prática laboratorial com o 80C51 - 52 LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) Conclusão • Objectivo principal do capítulo: Proporcionar os recursos mínimos que facilitem a passagem à prática laboratorial com o 87C51 • Pistas para a continuação do estudo: – Aprofundar o conceito de monitor residente – Sistemas de desenvolvimento Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 53