K51-AVR

6 of 7

EXPERIMENTAL CARD FOR 8051 AND AVR MICROPROCESSORS FAMILY

Salvatore Damino


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:

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

Las hojas de especificación de los componentes en:

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