Vous êtes sur la page 1sur 30

GAMA ALTA DE MICROCONTROLADORES

COMPILADOR C CCS
SISTEMAS EMBEBIDOS

DIGITALES III:

GAMA ALTA DE MICROCONTROLADORES

LCD 2 filas por 16


columnas

PIC18F4550

DIGITALES III:

GAMA ALTA DE
MICROCONTROLADORES

LCD
Las 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 MICROCONTROLADORES

Ejemplos de definicin:
Para utilizarla es necesario mencionarla en el inicio
del programa para ello se escribe:
#include <LCD.C>
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.
DIGITALES III:

GAMA ALTA DE MICROCONTROLADORES

Lcd_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:
DIGITALES III: 5

GAMA ALTA DE MICROCONTROLADORES

\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);
DIGITALES III:

GAMA ALTA DE MICROCONTROLADORES

Printf 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
especificar
01-99: Indica la cantidad de ceros a la izquierda
1.1-9.9 Para indicar caracteres flotantes
DIGITALES III: 7

GAMA ALTA DE MICROCONTROLADORES

T el tipo de variable:
c: Caracter
s: Cadena de caracteres
u: Entero sin signo
d: Entero con signo
Lu:
Ld:

Entero largo sin signo


Entero largo con signo

x: Entero Hexadecimal en minsculas


X: Entero Hexadecimal en maysculas
Lx:
LX:

Entero largo Hexadecimal en minsculas


Entero largo Hexadecimal en maysculas
DIGITALES III: 8

GAMA ALTA DE MICROCONTROLADORES

T el tipo de variable:
f: Flotante con truncado
g: 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);
DIGITALES III: 9

GAMA ALTA DE MICROCONTROLADORES

Ejemplo 2:
pi=3.14159265;
printf(lcd_putc,"\fformato
datos");
printf(lcd_putc,"\nPI=
Recuerde que f es truncado
%f",pi);
para flotantes . Si coloca un
parmetro \nPI=%f", el valor
es redondead
Ejemplo 3:
pi=3.14159265;
printf(lcd_putc,"\fformato
datos");
printf(lcd_putc,"\nPI=
Recuerde que e es en formato
%e",pi);
exponencial.
DIGITALES III: 10

GAMA ALTA DE MICROCONTROLADORES

Observe los siguientes ejemplos que aparecen en la


ayuda de CCS:

DIGITALES III: 11

MA ALTA DE MICROCONTROLADORES

Observe la tabla
residente en la
CGROM de la
pantalla LCD:

DIGITALES III: 12

GAMA ALTA DE MICROCONTROLADORES

La librera LCD permite una conexin de 4lineas en el bus


de datos. La siguiente es la configuracin:
PORTD,0:
Enabled
PORTD,1: RS
PORTD,2: RW
PORTD,4:
PORTD,5: D5
PORTD,6: D6
PORTD,7: D7

D4

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.
DIGITALES III: 13

GAMA ALTA DE MICROCONTROLADORES

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:

DIGITALES III: 14

GAMA ALTA DE MICROCONTROLADORES

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.

DIGITALES III: 15

GAMA ALTA DE MICROCONTROLADORES

Un programa para la pantalla


mencionando la librera a utilizar:

LCD

debe

iniciar

En el segmento void se
inicializa y se procede a
trabajar:

DIGITALES III: 16

GAMA ALTA DE MICROCONTROLADORES

Observe 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.

DIGITALES III: 17

GAMA ALTA DE MICROCONTROLADORES

LCD 4 filas por 16


columnas

PIC18F4550

DIGITALES III:

GAMA ALTA DE
MICROCONTROLADORES

LCD de 4 filas
Existen 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.
19

GAMA ALTA DE
MICROCONTROLADORES

LCD de 4 filas
Observe el siguiente montaje y recuerde que esta
pantalla LCD trae otra configuracin para ubicarse
en las filas:

20

GAMA ALTA DE
MICROCONTROLADORES

Distribucin de la memoria de la LM041L

La distribucin de la memoria es importante


para conocer la posicin de memoria donde
inicia cada fila.

21

GAMA ALTA DE
MICROCONTROLADORES

LCD de 4 filas
1. 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 <LCD_4F.C>
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.
22

GAMA ALTA DE
MICROCONTROLADORES

LCD de 4 filas
5. 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;

}
}

23

GAMA ALTA DE
MICROCONTROLADORES

LCD de 4 filas
6. 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:
24

GAMA ALTA DE
MICROCONTROLADORES

LCD de 4 filas
7.
La
nueva
lcd_gotoxy es :

funcin

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_gotoxysolo

25

GAMA ALTA DE
MICROCONTROLADORES

LCD de 4 filas
lcd_gotoxysolo
Como 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)
{

26

GAMA ALTA DE
MICROCONTROLADORES

La 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_gotoxysolo(0x96);
lcd_putc("l");
27

GAMA ALTA DE
MICROCONTROLADORES

lcd_gotoxysolo(0x97);
Aun
es
necesario
lcd_putc('e');
depurar la librera para
lcd_gotoxysolo(0x98);
evitar la utilizacin de
lcd_putc('s');
funciones de cadena,
lcd_gotoxysolo(0x99);
escritura de carcter a
lcd_putc(' ');
carcter para completar
lcd_gotoxysolo(0x9a);
la fila 3 y en las ultimas
lcd_putc('3');
columnas de fila 4.
lcd_gotoxysolo(0x9b);
lcd_putc('.');
Este tipo de libreras no
lcd_gotoxysolo(0x9c);
se incluyen en CCS y es
lcd_putc('0');
una necesidad construir
lcd_gotoxysolo(0x9d);
sus propias libreras. La
lcd_putc('0');
siguiente imagen ilustra
lcd_gotoxysolo(0x9e);
la aplicacin.
lcd_putc('0');
printf(lcd_putc,"\l2011 pasto
Digitales 3
co");
- 28

PANTALLA LCD DE 4 FILAS

29

30

Vous aimerez peut-être aussi