modulolcd-completo-ccs

Upload: alex-rojas

Post on 05-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 modulolcd-completo-ccs

    1/6

    MDULO LCD

    Escrito por Sixto ReinosoViernes, 01 de Octubre de 2010 16:44 - Actualizado Viernes, 08 de Octubre de 2010 20:07

    MDULOS LCD

    Los mdulos LCD son muy tiles para ver cualquier tipo de informacin. Puedes ver msinformacin en este mismo sitio sobre los mdulos LCD haciendo click en esteenlace.

    El compilador C incluye un archivo (driver)lcd.c . El driverlcd.c est configurado para trabajarcon el puerto d. Modificando este fichero es posible usarlo para cualquier puerto. El fichero enmencin debe llamarse como un

    #include e incluye varias funciones, entre las cuales tenemos:

    lcd_init();

    Es la primera funcin que debe ser llamada. Borra el LCD y lo configura en formato de 4 bits

    con dos lneas y con caracteres de 5x8 puntos, en modo encendido, cursor apagado y sinparpadeo. Configura el LCD con un autoincremento del puntero de direcciones y sindesplazamiento del display real.

    lcd_gotoxy(byte x, byte y);

    Indica la posicin de acceso al LCD. Por ejemplo (1,2) indica la primera posicin de la segundalnea; (2,1) segunda posicin de la primera lnea (El LCD tratado tiene 16 posiciones en cadalnea).

    lcd_getc (byte x, byte y);

    Lee el caracter de la posicin (x,y).

    1 / 6

    http://www.electromicrodigital.com/micros/index.php?option=com_content&view=article&id=62&Itemid=75http://www.electromicrodigital.com/micros/index.php?option=com_content&view=article&id=62&Itemid=75
  • 7/31/2019 modulolcd-completo-ccs

    2/6

    MDULO LCD

    Escrito por Sixto ReinosoViernes, 01 de Octubre de 2010 16:44 - Actualizado Viernes, 08 de Octubre de 2010 20:07

    lcd_putc (char s);

    Escribe la variable en la posicin correspondiente, s es una variable tipo char. Adems sepuede incluir:

    f se limpia el LCD.

    n el cursor va a la posicin (1,2).

    b el cursor retrocede una posicin.

    Existe la funcinprintf que es ms versatil para trabajar en el LCD.

    printf (string)

    printf (cstring, valores,,)

    printf(fname, cstring, valores,,)

    String es una cadena o array de caracteres, valores es una lista de variables separadas porcomas, y fname es una funcin.

    El formato es%nt , donde n es opcional y puede ser:

    2 / 6

  • 7/31/2019 modulolcd-completo-ccs

    3/6

    MDULO LCD

    Escrito por Sixto ReinosoViernes, 01 de Octubre de 2010 16:44 - Actualizado Viernes, 08 de Octubre de 2010 20:07

    1-9 especifica el nmero de caracteres.

    01-09 indica la cantidad de ceros a la izquierda.

    1.1-9.9 para punto flotante.

    t puede indicar:c Caracter

    s Cadena o caracteru Entero sin signod Entero con signoLu Entero largo sin signoLd Entero largo con signox Entero Hexadecimal (minsculas) X Entero hexadecimal (maysculas)

    LX Entero largo Hexadecimal (maysculas) Lx Entero largo Hexadecimal (minsculas) f Flotante con truncadog Flotante con redondeoe Flotante en formato exponencial w Entero sin signo con

    Proyecto 1: MODULO LCD USANDO PUERTO D

    El siguiente programa enva el conocido mensaje "HOLA MUNDO" al LCD.

    3 / 6

  • 7/31/2019 modulolcd-completo-ccs

    4/6

    MDULO LCD

    Escrito por Sixto ReinosoViernes, 01 de Octubre de 2010 16:44 - Actualizado Viernes, 08 de Octubre de 2010 20:07

    #include #fuses HS, NOPROTECT, NOWRT, NOPUT, NOWDT, NOLVP, NOCPD //Ordenes para el

    programador#use delay (clock=12000000)

    #include // Librera para el manejo del lcd para ver las conexiones// abran el archivo C:Archivos de programaPICCDriverslcd.c// y ahi les muestra.

    //////////////////////////////////////////////////////////////////////////////// // D0 enable// D1 rs// D2 rw// D4 D4// D5 D5

    // D6 D6// D7 D7////////////////////////////////////////////////////////////////////////////////

    void main(void){

    lcd_init(); // Antes de usar el lcd,hay que inicializarlolcd_gotoxy(4,1); //sita el cursor en 3 columna, 1 filalcd_putc("HOLA MUNDO!!n LCD en CCS"); // Escribes en la lcd

    }

    El diagrama de conexiones se muestra en la figura.

    4 / 6

  • 7/31/2019 modulolcd-completo-ccs

    5/6

    MDULO LCD

    Escrito por Sixto ReinosoViernes, 01 de Octubre de 2010 16:44 - Actualizado Viernes, 08 de Octubre de 2010 20:07

    Para indicar el valor de una variable se debe utilizar la funcin printf(lcd_putc," %d voltios",variable); El siguiente ejemplo muestra un contador: Proyecto 2: Contador con LCD #include /// libreria para el manejo del pic18F4550 #use delay(clock=12000000) /// declara la frecuencia del cristal #fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT #include // Librera para el manejo del lcd para ver las conexiones// abran el archivo C:Archivos de programaPICCDriverslcd.c// y ahi les muestra. //////////////////////////////////////////////////////////////////////////////// // D0 enable // D1 rs // D2 rw // D4 D4 // D5 D5 // D6 D6 // D7 D7 //////////////////////////////////////////////////////////////////////////////// int i; void main(void){ lcd_init(); // Antes de usar el lcd,hay que inicializarlo while (TRUE){lcd_gotoxy(5,1);lcd_putc("CONTADOR");for (i=0; i

  • 7/31/2019 modulolcd-completo-ccs

    6/6

    MDULO LCD

    Escrito por Sixto ReinosoViernes, 01 de Octubre de 2010 16:44 - Actualizado Viernes, 08 de Octubre de 2010 20:07

    MOVIMIENTO DE TEXTO A LA DERECHA EN EL LCD En muchas ocasiones por mejor presentacin o llamar la atencin, se necesita que el mensajese mueva. Dado la gran versatilidad del lenguaje C, se puede desarrollar programas para lomencionado. El proyecto siguiente muestra el cdigo para desplazar un mensaje hacia laderecha. Proyecto 19. //MOVIMIENTO DE TEXTO HACIA LA DERECHA //************ SIXTO REINOSO - PICMANIATICO ***************// #include #fuses HS, NOPROTECT, NOWRT, NOPUT, NOWDT, NOLVP, NOCPD // rdenes para el programador #use delay (clock=12000000) #include // Librera para el manejo del lcd const char mensaje[]= {"electromicrodigital"}; ///PROGRAMA void main(void) { char y=1; // ndice fla signed char x=-16; // ndice columnas (posiciones)lcd_init(); // inicializa lcd while(TRUE){ //bucle...lcd_gotoxy(x,y) ; // ubica cursor para escribir mensaje lcd_putc(mensaje ) ; // muestra por pantalla el mensaje delay_ms(150);x++; // incremento indice de columnas if(x>16){ // se ha mostrado mensaje entero en la primera fila? x=-16; // SI, ndice columna x=-16, para que inicie el ltimo caracter en la primera posicin y++; // incremento ndice fila (mostrar texto en segunda columna)if(y>2) // se ha mostrado mensaje por segunda fila? y=1; // SI, restaurar ndice de fila }lcd_putc("f" ) ; // borra pantalla } //...infinito }El clip de video muestra el efecto obtenido: Bueno gente, a ver si se animan y mofican el programa para tener el movimiento de texto a laizquierda como indica el clip de video:

    6 / 6