|
K51-AVR 6 of 7 EXPERIMENTAL CARD FOR 8051 AND AVR MICROPROCESSORS FAMILY |
|
En el último númerom aprendimos a reconocer las características eléctricas y la sección del display alfanumérico LCD, ahora mediante la estructura hardware/software, manejaremos todos los aspectos del interface de operador.
INTERFACE DE OPERADOR
Uno de los primeros pasos que un usuario inexperto ( que desea
aprender las técnicas del control y la adquisición)
ha de hacer, por ejemplo, es interactuar con el mundo externo.
Uno de las mas simples operaciones es encender y apagar un LED
y adquirir el estado de un contacto. Una vez se ha sido capaz
de implementar estas dos simples tareas, seremos virtualmente
capaces de implementar cualquier operación.
El interface de usuario es uno de los dispositivos más
difundidos, que se utilizan como interface de equipos electrónicos.
Está basado en un Display que muestra mensajes, variables
numéricas o teclas y con una línea serie de comunicación
que permite intercambiar datos entre el interface de operador
y los equipos electrónicos. En modelos más sofisticados
también se incluye el BUZZER, para generar avisos
sonoros, y LEDs para señalización.

INTERFACE SERIE
Está disponible en la placa, conector de 90°
tipo D de 9 pins , un interface estándard para línea
serie RS232 realizado con un circuito integrado MAX
202, dispositivo IC6. Las características más
importantes de este componente, frente al clásico MAX
232, es que generar los ±10 Vdc utilizando condensadores
cerámicos económicos de 100nf ceramic en
vez de los condensadores de Tantalo de 10µf o 20µf
que son mucho más caros.
De este circuito integrado se ha utilizado una de las dos secciones
disponibles, De manera que el que queda disponible se podrá
utilizar para expansiones futuras.
BUZZER
Para avisos sonoros, por ejemplo Timbres, se ha utilizado un sencillo BUZZER activo alimentado a 5Vdc. Este componente tiene una carcasa cilíndrica, 2 pines para la alimentación y es muy fácil de controlar. Cada vez que se le alimenta genera un sonido contínuo. Para apagarlo, simplemente hemos de apagar la alimentación. Grácias al bajo consumo, para controlarlo podemos utilizar una de las líneas de E/S del microprocesador. En concreto el pin 9 del dispositivo IC8, si utilizamos el microprocesador de 20 pins, o el pin 15 del dispositivo IC9 si utilizamos uno de 40 pins.
FUNCIONALIDAD DEL INTERFACE DE OPERADOR
Dea las muchas posibilidades de un interface de operador, nosotros hemos escogido una pequeña parte que satisfaga las operaciones mínimas. Si queréis tener una idea más amplia sobre las funciones que realiza un producto comercial, leer la lista de comandos del terminal QTP24, o descargar uno de los manuales de QTP xxx. El software disponible utiliza un display de 20 caracteres y dos líneas, que se controla mediante la tarjeta K51-AVR y se conecta al conector CN5. El programa de control está lleno de explicaciones y anotaciones que nos ayudarán incluso para programadores inexpertos. Entendemos que es muy sencillo añadir o modificar los comandos implementados. En esta misma dirección, se pueden resolver las más complejas funciones.
OPERATIVA DEL PROGRAMA DEL LCD2
El programa Demolcd Bas es un emulador de terminal completo realizado en BASCOM 8051 o BASCOM-AVR para la tarjeta K51-AVR que se conecta al display LCD 20x2 y al dispositivo serie de E/S. Como un verdadero termina, el programa muestra en la pantalla ( LED en este caso) cualquier cosa que se reciba por la línea serie, y envía por la línea serie cualquier cosa que se reciva de la placa (K51-AVR touchs). A diferencia de un terminal corriente, el programa también puede emular comandos, y tiene la ventaja de ser completamente programable.
El MAIN muestra el círculo principal del programa que, como ya hemos dicho, selecciona primero la linea serie como entrada y el display LCD como salida, encuentra si hay algún carácter, y después envia el carácter al display, si la situación cambió, selecciona las teclas del K51-AVR como entrada y la línea serie como salida y repite el mismo proceso, pero en este caso los caracteres de la línea serie no están filtrados.
El SCAN inicia el proceso de respuesta con interrupciones periódicas al Timer 0, con un periodo de 20msec. La primera cosa a hacer es siempre recargar el timer y reinicializarlo inmediatamante, de esta manera la cadencia no se pierde. El programa escanea uno por uno el string de entrada (teclas serie de la K51-AVR), y guarda en el buffer de memoria los caracteres recibidos. De este modo, la posibilidad de perder caracteres que llegan cuando por ejemplo, el programa está realizando operaciones de salida u otro tipo de operaciones, es muy pequeña. Para obtener una información más detallada, referirse a los comentarios del código fuente.
Para seleccionar dispositivos de entrada y salida y utilizar las funciones descritas en estos artículos, es necesario escribir el valor adecuado en el INDEV y OUTDEV, en la sección de constantes del código fuente.
El procesado hace los diferentes trabajos
El INIT inicializa cualquiera de las variables utilizadas
por el programa e inicia el Timer 0.
El Constatus determina si el dispositivo seleccionado como
entrada ha recibido un carácter y lo memoriza en el buffer.
En ningún caso un carácter se pierde debido a una
interrupción porque queda grabado en el buffer ; excepto
si no es posible leer el buffer antes de que se reescriba, lo
cual nos puede dar ocasionar algún problema.
El Conin toma el carácter del buffer del dispositivo seleccionado como entrada y lo entrega como una variable, si no hubiese ningún carácter entrega un 0. Excepto que el carácter también sea un 0 la variable también será un 0, para discriminar cual de los dos eventos es hemos de utilizar el Constatus.
El Conout envia al dispositivo seleccionado como salida el carácter traducido a parámetro. En el caso que envie a un display LCD el carácter es filtrado como se describe en el Elaboraled.
Next es un servicio de ruteo y no está pensado para llamarlo directamente, solo por otro proceso.
El Bip genera un sonido durante 1/10 segundos utilizando el buzzer de la K51-AVR. Durante esta ejecución la interrupción continua recibiendo en la entrada de esta manera no se pierden caracteres.
El Bell genera un sonido durante 1/2 segundos utilizando el buzzer de la K51-AVR. Durante esta ejecución la interrupción continua recibiendo en la entrada de esta manera no se pierden caracteres.
El Aggiustaxy garantiza que la variable Coloumn y Line permanecen entre el límite del display de 20x2. Esto es necesario ya que las instrucciones de alto nivel del BASCOM no manejan el retorno del cursor del display cuando está al final de la línea, de manera que es el programa el que intercede en el movimiento del cursor.
El Elaboraled filtra los caracteres enviados al LCD decidiendo si son imprimidos o deben de ser interpretados como un tipo de comando. Para cambiar el conjunto de caracteres imprimibles es suficiente con modificar el Select Case al inicio del código de Elaboraled (se muestra como "IMMEDIATLY COMMAND" del mismo modo para ejecutar instrucciones asociadas a determinados caracteres).
Particularmente un carácter es considerado como un prefijo que anuncia la llegada de un comando, este carácter no dispone de código y puede ser reconfigurado cambiando el valor de la constante Prefix.
Un comando está compuesto por un código (otro
carácter) y un múmero de parámetro (el siguiente
carácter enviado) variable desde cero hasta el último
que la memoria acepte.
El comando con parámetro 0 se reconoce y ejecuta inmediatamente
su propio código. Un ejemplo de este comando está
explicado en el párrafo "ZERO PARAMETER COMMAND".
El comando con uno o más parámetros activa el mecanismo de recogida (memorizando cada carácter recibido hasta que finalizan los números fijos, en el párrafo "PARAMETER COLLECTION", pueden ver algunos de estos comandos en el párrafo "COMMAND WITH PARAMETER"). La ejecución del código la realizarña cuando haya recogido el último parámetro, ver el párrafo "EXEGUTION COMMAND WITH PARAMETER".
ENCUENTRA LOS CÖDIGOS Y LAS HOJAS DE ESPECIFICACIÓN
Encontrarás los códigos fuentes de los programas hasta ahora disponibles en versión Italiana e Inglesa en las siguientes direcciones:
Las hojas de especificación de los componentes en:
| 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
Home
Index
Categorical Index
CPU
Tables
The
Demo Programs
Es.
BAS. K51
Mini Modules