K51-AVR

6 of 7

PLACA EXPERIMENTAL PARA A FAMÍLIA DE PROCESSADORES 8051 E AVR

Salvatore Damino


No ultimo numero aprendemos a conhecer as caracteristicas electricas dos display LCD alfanumérico. Agora vamos uma estrutura hardware/software para podermos gerir todos os apectos de uma interface de operador.

INTERFACE DE OPERADOR

Um dos primeiros passos de um utilizador inexperiente (que deseja aprender as técnicas de controle e aquisição) deve fazer primeiro é interagir com o mundo externo. Algumas das operações mais simples, são ligar e desligar um LED e adquirir a posição de um contacto. Quando souber fazer estas duas simples operações, pode fazer virtualmente qualquer coisa.

A interface de operador é um dos dispositivos mais divulgados, usados para interagir com equipamentos electrónicos. É baseada num Display que mostra mensagens, um numero variaável de teclas para introduzir dados e uma linha de comunicação série para permitir a comunicação de dados entre o equipamento electrónico e o operador. Nos modelos mais sofisticados existe ainda um Buzzer, para sinais sonoros, e ainda um certo numero de LEDS para sinalização.

INTERFACE SERIE

Na paca existe uma ficha DB9 a 90°, que permite confortávelmente fazer uma ligação série. O interface é realizado em torno de IC6, um CI do tipo MAX 202. Contráriamento ao clássico MAX 232, este dispositivo permite gerar as tensões de ±10 Volt DC, utilizando económicos condensadores de 100nF em vez dos usuais e mais caros condensadores Tantalo de 10µf ou 20µf.

Apenas usamos uma das dus secçoes deste integrado. A segunda ficará para uma expansão futura.

BUZZER

Para alertas de som, BEL por exemplo, usamos um BUZZER activo alimentado a 5 VDC. Este componente, tem um formato cilindrico, dois pinos para a alimentação e é facilmente operado. Sempre que é alimentado produz um som continuo. Para o parar é suficiente deixar de o alimentar. Graças ao seu reduzido consumo, é possivel liga-lo directamente a um pino do microprocessador.

No nosso caso, é usado o pino 9 de IC8 no caso de um micro de 20 pinos e o pino 15 de IC9 no caso de um micro de 40 pinos.

FUNCTIONALIDADE DA INTERFACE DE OPERADOR

De diversas possibilidades de uma interface de operador, escolhemos uma pequena parte que satifaz um minimo de requisitos de operação. Se quer uma ideia mais completa das funções realizadas, pode consultar os comandos de uma das nossas consolas, como a QTP24, ou descarregar um dos nossos manuais em ingles das consolad QTP XXX. O programa em questão usa um display de 20 caracteres e 2 linhas.

Este display é comandado pela placa K51-AVR é é ligado a borne de ligadores CN5. O programa esta bem documentado que ajuda muito, mesmo os programadores experientes. Salientamos que é extremamente simples adicionar ou modificar os comandoes implementados. Desta forma pode criar comandos bastante complexos.

OPERAÇÃO DO PROGRAMA LCD2

O programa Demolcd Bas pé um emulador de terminal completo, realizado em BASCOM 8051 ou BASCOM-AVR para a placa K51-AVR conecteda a um LCD 20x2 e a um dispositivo com uma linha série.Como um verdadeiro terminal, o programa mostra no ecran (LCD neste caso) qualquer coisa que receba na linha série o nas teclas que possui a placa K51-AVR.

Ao contrário dos terminais usuais, que apenas emulam comandos, este tem a vantagem de ser totalmente programável.

O "statment" MAIN mostra o principal ciclo do programa que como dissemos, empreimeiro lugar, escolhe a linha serie como entrada e o display LCD como saida, procura a existencia de um caractere, e envia-o através de um filtro para o display LCD, seguidamente selleciona o as teclas da placa K51-AVR como entrada e a linha serie como saida e responde da mesma maneira., só que desta vez o caractere enviado apara a linha série não é filtrado.

O "statment" SCAN responde a um evento do Timer 0 com um periodo de 20msec. A primeira operação que faz é recarregar o Timer e inicia-lo novamente. Assim não se perde a cadencia. O programa verifica então cada caractere presente na porta série, assim com as teclas da placa K51-AVR, e guarda o resultado no buffer em memória. Desta maneira a possibilidade de perder caracteres equanto o programa realiza outras tarefas é diminuta. Para uma descrição detalhada do programa, pode consultar os comentários do código fonte.

Para seleccionar os dispositivos de entrada e de saída, e usar as funções descritas no artigo, é necessário escrever o valor correcto nas constantes INDEV e OUTDEV.

As diferentes tarefas dos processos.

O "statment" INIT initicailiza todas as variáveis usadas pelo programa e inicia o Timer 0.

O CONSTANUS determina se o dispositivo seleccionado como entrada recebeu um caractere e memoriza-o no buffer. Nunca se perde um caractere porque o interrupt o guarda no buffer ; de qualquer forma devemos ler o buffer antes dele encher totalmente ou teremos problemas.

CONIN recebe uma variavel do buffer ou dispositivo de entrada e verifica se á variaável está associada alguma caracteristica em especial. Se não estiver torna-a igual a zero. Se for recebido o caractere 0, passa a zero, tanbém. Para distinguir os dois acontecimentos é necessário usar primeiro o COSNTANUS.

CONOUT envia para o dispositivo seleccionado como saída o caracter passado como parametro. No caso de envio para um LCD o caractere passa primeiro por um filtro como irá ser descrito adiante.

As rotinas seguites não foram pensadas para serem chamadas directamente pelo programa, mas sim pelos diferentes processos.

O BIP produz um som agudo durante 1/10 de segundo usando o buzzer do K51-AVR. Durante a sua execução a rotina de interrupt de recepção de caracteres continua activa, de forma a não perder-mos nenhum caractere.

O BELL produz um som agudo durante 1/2 de segundo usando o buzzer do K51-AVR. Durante a sua execução a rotina de interrupt de recepção de caracteres continua activa, de forma a não perder-mos nenhum caractere.

O AGGIUSTAXY garante que a variavel Coluna e Linha estão nos limites do display 20x2. Insto é necessário, porque as isntruções de alto nível do BASCOM não controlam o retorno do cursor quantdo é atingido a fim a da linha. Assim cabe-nos a nós detectar esse fim de linha e mover o cursor.

O ELABORALED filtra os caracteres enviados para o LCD decididindo se estes deve ser afixados ou intepretados como um comando. Para mudar o conjunto de caracteres afixáveis, é suficiente mudar os caracteres no Select Case no inicio da rotina ELABORALED (a partir de IMMEDIATLLY COMMAND), de forma a estes serem intepretados como comandos no mesmo Select Case.

Particularmente um caracter é considerado um prefixo que anuncia a chegada de um comando. Este caractere não constitui um código e pode ser reconfigurado mudando o valor constante de Prefixo.

Um comando é composto por um código (outro caractere) e um numeror de parametro (o caractere seguinte) variável de zero á extensão máxima da memória.

Uma mensagem com 0 parametros é reconhecido e imediatamente executado como um comando. Um exemplo deste comando está em "COMANDO COM ZERO PARAMETROS".

O comando com um ou mias parametros activa o mecanismo de recolha de parametros (memorizando cada caractere até ter atingido o numero fixo total). Um exemplo de recolha de parametros pode ser visto na parte "RECOLHA DE PARAMETROS". Alguns destes comandos na seccção "COMANDO COM PARAMETROS" . A execução do código inicia-se na recolha do ultimo parametro e pode ser vista em "EXECUÇÃO DE COMANDO COM PARAMETROS"

FONTES DE INFORMAÇÃO E DATA SHEETS

Existem fontes de informação e código fonte para esta placa em Italiano e Ingles no nosso site da web em:

www.grifo.it/OFFER/HOBBY/uk_Examples.htm

Os Data Sheet's estão em:

www.grifo.it/press/uk_not.htm


| Articles | | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |


Page up-dated at August 29, 2004


GRIFO®
Via dell'Artigiano, 8/6
40016 San Giorgio di Piano
Bologna ITALY

Tel: +39 051 892.052 (4 lines)
FAX: +39 051 893.661


homeHome Index Categorical Index CPU TablesThe Demo Programs Es. BAS. K51 Mini Modules