Click here to load reader

ccs lcd 2f y 4f

  • View
    229

  • Download
    0

Embed Size (px)

DESCRIPTION

Electrónica programación pic 16f877A

Text of ccs lcd 2f y 4f

Diapositiva 1

GAMA ALTA DE MICROCONTROLADORESCOMPILADOR C CCS SISTEMAS EMBEBIDOSDIGITALES III: 1

1

GAMA ALTA DE MICROCONTROLADORESPIC18F4550LCD 2 filas por 16 columnasDIGITALES III: 2

2GAMA ALTA DE MICROCONTROLADORES3LCDLas pantallas LCD permiten visualizar la informacin de un sistema digital. Existen diferentes tipos de pantallas, se caracterizan por la cantidad de columnas y filas, de ellas la ms sencilla es la LM016l con 2 filas y 16 columnas, sin embargo existen otras como la LM041l la cual cuenta con 4 filas y 16 columnas.

Existen pantallas para visualizar un mayor numero de caracteres como la LM044l la cual cuenta con 4 filas por 20 columnas. Pero para otras aplicaciones existen pantallas lcd graficas las cuales se trataran en el presente segmento.

CCS cuenta con la librera para comunicarse con una pantalla LCD de 16 filas por 4 columnas.GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 4Ejemplos de definicin:

Para utilizarla es necesario mencionarla en el inicio del programa para ello se escribe:#include

Esta librera cuenta con las siguientes funciones:Lcd_init():Esta funcin permite inicializar la pantalla LCD, esta configurada para utilizar la 4 bits en el bus de datos, 4 lineas y 5 x 8 puntos, en modo encendido, el cursor esta apagado y sin parapadeo del cursor.

Cada carcter que se escriba avanza una posicin.Recuerde que esta es la primer funcin que se debe llamar y no debe pasar las de 100 ms despus del encendido del micro para que la pantalla conozca su modo de funcionamiento.4GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 5Lcd_gotoxy(byte x, byte y)Indica la posicin de acceso a la pantalla LCD, el sitio donde se escribe un carcter. Byte x hace referencia a la columna y el byte Y hace referencia a la fila.

Por ejemplo lcd_gotoxy(10,1) ubica en la primera fila posicin de columna 10.

Lcd_getc(byte x, byte y)Lee el contenido de la posicin en columna x y fila y

lcd_putc(char s)Permite escribir un carcter en la posicion establecida, cuenta con unos modificadores como:

5GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 6\f Limpia la LCD y se ubica en la primera fila y primera columna.

\n El cursor se ubica en la segunda fila y columna 1.

\b El cursor retrocede una posicin

Ejemplos de su uso:lcd_putc("\fMensaje prueba);Ubica el mensaje en la primera fila y borra la pantalla.

Tambin se cuenta con funciones especiales como printf en ese caso la instruccin anterior se puede escribir como:Printf(lcd_putc,"\fMensaje prueba);6GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 7Printf le permite enviar datos a la pantalla y transformarlos al formato requerido.printf(LCD_PUTC, "n=%u,n);

La lnea anterior indica que n es una variable de tipo entero; observe que aparece el smbolo porcentaje seguido de un carcter , este lleva una estructura: %NT , N es opcional y corresponde al numero de caracteres a visualizar y T es el tipo de datos.

N:1-9: Indica cuantos caracteres se deben especificar01-99: Indica la cantidad de ceros a la izquierda1.1-9.9 Para indicar caracteres flotantes7GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 8T el tipo de variable:c: Caracters: Cadena de caracteres

u: Entero sin signod: Entero con signo

Lu: Entero largo sin signoLd: Entero largo con signox: Entero Hexadecimal en minsculasX: Entero Hexadecimal en maysculas

Lx: Entero largo Hexadecimal en minsculasLX: Entero largo Hexadecimal en maysculas8GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 9T el tipo de variable:f: Flotante con truncadog: Flotante con redondo

e: Flotante con formato exponencial

w: Entero sin signo con decimales insertados, la primer cifra indica el total y la segunda los decimales

Ejemplo 1:

valor=5; printf(lcd_putc,"\fformato datos"); printf(lcd_putc,"\nN=%03u",valor);9GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 10Ejemplo 2:

pi=3.14159265; printf(lcd_putc,"\fformato datos"); printf(lcd_putc,"\nPI=%f",pi);

Recuerde que f es truncado para flotantes . Si coloca un parmetro \nPI=%f", el valor es redondeadEjemplo 3:

pi=3.14159265; printf(lcd_putc,"\fformato datos"); printf(lcd_putc,"\nPI=%e",pi);Recuerde que e es en formato exponencial.

10GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 11

Observe los siguientes ejemplos que aparecen en la ayuda de CCS:11

GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 12Observe la tabla residente en la CGROM de la pantalla LCD:12La librera LCD permite una conexin de 4lineas en el bus de datos. La siguiente es la configuracin:

PORTD,0: EnabledPORTD,1:RS PORTD,2:RW

PORTD,4: D4PORTD,5:D5 PORTD,6:D6PORTD,7:D7

La configuracin depende de la versin, pero la librera se puede modificar, para ello se debe ingresar a la librera y establecer como uso para la pantalla LCD el puerto D.GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 13

GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 14

La configuracin depende de la versin, pero la librera se puede modificar, esta por defecto puede trabajar en el puerto B o en el puerto D, el inicio de la librera indica su configuracin:

GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 15

Si se desea cambiar de puerto entonces se puede modificar en la librera los puertos de configuracin, para ello modifique las lneas correspondientes en el segmento

#define LCD_DATA_PORT getenv("SFR:PORTD") //portd #else #define LCD_DATA_PORT getenv("SFR:PORTB") //portb

Por otro puerto diferente, puede ser el puerto C.

GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 16Un programa para la pantalla LCD debe iniciar mencionando la librera a utilizar:

En el segmento void se inicializa y se procede a trabajar:GAMA ALTA DE MICROCONTROLADORESDIGITALES III: 17Observe el siguiente diagrama de conexin de una aplicacin con RS232, LCD y teclado:

Ejercicio en clase:Construya una aplicacin que permita visualizar por medio de una secuencia de 1 a 10 diferentes visualizaciones de un mismo dato, utilice los formatos de PRINTF.

GAMA ALTA DE MICROCONTROLADORESPIC18F4550LCD 4 filas por 16 columnasDIGITALES III: 18

18GAMA ALTA DE MICROCONTROLADORES19LCD de 4 filasExisten otras pantallas como la LM041l la cual cuenta con 4 filas y 16 columnas, tambin la LM044l la cual cuenta con 4 filas por 20 columnas.

CCS cuenta con la librera para comunicarse con una pantalla LCD de 16 filas por 4 columnas y que pasa con estas nuevas pantallas?.

Rta/ Como Usted conoce ensamblador puede crear su propia librera para trabajar con una pantalla de este tipo. Pero es ms facil modificar una librera existente.GAMA ALTA DE MICROCONTROLADORES20LCD de 4 filasObserve el siguiente montaje y recuerde que esta pantalla LCD trae otra configuracin para ubicarse en las filas:

GAMA ALTA DE MICROCONTROLADORES21Distribucin de la memoria de la LM041L

La distribucin de la memoria es importante para conocer la posicin de memoria donde inicia cada fila.GAMA ALTA DE MICROCONTROLADORES22LCD de 4 filas1. Lo primero es construir una librera similar a la LCD.C, para ello se debe ubicar en la ruta:

C:\Program Files\PICC\Drivers 2. Se copia la librera LCD.C y se pega con el nombre LCD_4F.C

3. Cree un nuevo proyecto y una vez pasado el asistente llama a la librera de la LCD de 4 filas#include

4. Es necesario modificar la librera, se debe tener en cuenta las filas y sus posiciones de inicio. Hasta el momento la librera funciona para 2 filas.

GAMA ALTA DE MICROCONTROLADORES23LCD de 4 filas5. Ahora debemos agregar la programacin para ubicarse en la tercera y en la cuarta fila. Observe el siguiente segmento de cdigo en la librera:void lcd_putc(char c){ switch (c) { case '\f' : lcd_send_byte(0,1); delay_ms(2); // este cdigo borra la pantalla y se break;// ubica en fila 1 case '\n' : lcd_gotoxy(1,2); break; case '\b' : lcd_send_byte(0,0x10); break; default : lcd_send_byte(1,c); break; }} GAMA ALTA DE MICROCONTROLADORES24LCD de 4 filas6. Si se observa esta hace uso de LCD_gotoxy, es necesario observar su estructura y modificarla.Es necesario crear nuevas constantes as:

Esta nuevas etiquetas deben modificar la funcin LCD_GOTOXY, para ello es necesario agregar las nuevas opciones. Esto se observa en el siguiente texto:

GAMA ALTA DE MICROCONTROLADORES25LCD de 4 filas7. La nueva funcin lcd_gotoxy es :8. Finalmente se puede modificar la funcin void lcd_putc(char c) as:

9. Despus de unas pruebas fue necesario crear una funcin adicional la cual se denomina lcd_gotoxysoloGAMA ALTA DE MICROCONTROLADORES26LCD de 4 filaslcd_gotoxysoloComo se menciono, despus de unas pruebas fue necesario crear una funcin adicional la cual se denomina lcd_gotoxysolo, esta permite indicar la posicin a partir de la cual empieza a escribir en la memoria de datos de la LCD. Se la puede utilizar de forma directa para ubicarse en una posicin especfica.

lcd_gotoxy solo es valida para ubicarse en la fila 1 y la fila 2.

Digite el siguiente cdigo en la librera:

void lcd_gotoxysolo(BYTE x){ lcd_send_byte(0,X);}GAMA ALTA DE MICROCONTROLADORES27La librera se debe grabar en la carpeta y por ello es necesario cambiar su ubicacin cuando se la llama, si Usted la deja en las libreras de C estas no se actualizan si Usted cambia su cdigo.La nueva ubicacin puede ser:

Los cdigos que se pueden digitar para hacer uso de esta librera son: lcd_init(); pi=3.14159265; printf(lcd_putc,"\fFORMATO DATOS"); printf(lcd_putc,"\npi=%e",pi); lcd_putc("\tdigita");//solo escribe 6 caracteres lcd

Search related