Académique Documents
Professionnel Documents
Culture Documents
COMPILADOR C CCS
SISTEMAS EMBEBIDOS
DIGITALES III:
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.
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:
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
T el tipo de variable:
c: Caracter
s: Cadena de caracteres
u: Entero sin signo
d: Entero con signo
Lu:
Ld:
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
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
DIGITALES III: 11
MA ALTA DE MICROCONTROLADORES
Observe la tabla
residente en la
CGROM de la
pantalla LCD:
DIGITALES III: 12
D4
DIGITALES III: 14
DIGITALES III: 15
LCD
debe
iniciar
En el segmento void se
inicializa y se procede a
trabajar:
DIGITALES III: 16
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
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
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:
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
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
29
30