lunes, 3 de enero de 2011

Libreria CCS para manejo de LCDs alfanumericos

Pues aqui dejo una libreria que me hice para manejar LCDs alfanumericos con 6 pines de un microcontrolador y su correspondiente explicación de funcionamiento.
En el video adjunto se puede ver un proyecto haciendo uso de la misma.

alphaLCDLowPin rev.3 (01-ENE-2011)
Funcionamiento:
// Libreria CCS para el manejo basico de LCDs alfanumericos basados en el chip
//    HD44789. Es valida para LCDs de 1 a 4 lineas (cualquier numero de
//    caracteres por linea), con caracteres de 5x8 puntos.
// Esta libreria implementa la escritura en el lcd (no permite la lectura)
//    en modo 4 bits. de manera que utiliza solo 6 pines (2 de control y 4
//    de datos).
//    Incorpora una pantalla de test (mostrada al inicializar el LCD,
//    se pueden comentar/descomentar las lineas correspondientes para
//    desactivarla/activarla.
//    Mantiene el control de la posicion del cursor en todo momento,
//    por lo que si al LCD se le envia una cadena mayor del numero de caracteres
//    por linea que tiene, la cadena continua escribiendose en la linea
//    siguiente (en la anterior debido a la organizacion de la memoria del LCD
//    se saltaba una linea).
// Definicion de pines utilizados del LCD:
//    Conecta el pin RW a masa (unicamente se realizan escrituras).
//    El pin VEE (o V0 en algunos casos) se le da tension mediante el cursor de
//    un potenciometro conectado entre +5v y 0v para el ajuste de contraste.
//    Los pines DB0,DB1,DB2 y DB3 no se utilizan (se pueden dejar al aire).
// Metodos implementados:
// lcd_init (): debe ser llamada antes de utilizar el LCD para inicializarlo.
//    por defecto se inicia con lcd on, cursor off, y blink off (modo 1,0,0).
// lcd_gotoxy(x, y): mueve el cursor a la columna(x)/linea(y) deseada,
//    (el primer caracter de la primera linea es 1,1).
// lcd_putc(c): Escribe la cadena c en el lcd (al llegar al final de una linea
//    continua en la siguiente, si es la ultima recomienza por la primera).
// lcd_clear(): Borra la pantalla del lcd y mueve al cursor a la posicion 1,1
// lcd_clearFrom(int8 x, int8 y, int8 charsToClear): borra desde x e y indicados
//    el numero de caracteres indicado en charsToClear.
// lcd_mode(int1 lcdOn,cursorOn,blinkOn): Cambia el modo del lcd entre
//    pantalla encendida1 o apagada0 (util para hacer parpadear el lcd),
//    cursor0 (linea debajo del caracter) o cursor1, parpadeo1 (cuadro intermitente
//    que ocupa todo el caracter) parpadeo0.
// lcd_send_byte(BOOLEAN esComando, int8 n): Manejo avanzado para el envio de
//    comandos manuales (normalmente no se usara) esComando=true es enviar
//    comando avanzado (ver datasheet) y esComando=false es enviar dato.
// void lcd_DefineChar(int8 charIndex,int8 byte7,int8 byte6,int8 byte5,int8
//    byte4,int8 byte3,int8 byte2,int8 byte1,int8 byte0): Crear caracter personal.
//    Se pueden definir hasta 8 caracteres personalizados (charIndex[0]..charIndex[7].



Descarga del archivo