Está en la página 1de 7

Lcd Biblioteca

El PRO mikroC para PIC proporciona una biblioteca para la comunicacin con los LCD
(controladores compatibles con HD44780) a travs de la interfaz de 4 bits. Un ejemplo
de conexiones Lcd se da en el esquema de la parte inferior de esta pgina.
Para la creacin de un conjunto de caracteres personalizados Lcd utilizar caracteres Lcd
personalizada de herramientas.

Biblioteca Dependencia rbol


Las dependencias externas de Lcd Biblioteca
Las siguientes
variables se
deben definir
en todos los
proyectos que
utilizan Lcd
Biblioteca:

Descripc
in:

Ejemplo:

extern sbit
sfr LCD_RS:

Registrar
Seleccion
ar lnea.

sbit LCD_RS en RB4_bit;

extern sbit
sfr LCD_EN:

Habilitar
lnea.

sbit LCD_EN en RB5_bit;

extern sbit
sfr LCD_D7;

Datos 7
lnea.

sbit LCD_D7 en RB3_bit;

extern sbit
sfr LCD_D6;

Datos 6
lnea.

sbit LCD_D6 en RB2_bit;

extern sbit
sfr LCD_D5;

Datos de
5 lneas.

sbit LCD_D5 en RB1_bit;

extern sbit
sfr LCD_D4;

Datos de
4 lneas.

sbit LCD_D4 en RB0_bit;

extern sbit
sfr LCD_RS_Dire
ction;

Registrar
Select
pin
direccin.

sbit LCD_RS_Direction en T
RISB4_bit;

extern sbit
sfr LCD_EN_Dire
ction;

Habilitar
direccin
pin.

sbit LCD_EN_Direction en T
RISB5_bit;

extern sbit
sfr LCD_D7_Dire
ction;

Datos 7
pin
direccin.

sbit LCD_D7_Direction en T
RISB3_bit;

extern sbit
sfr LCD_D6_Dire
ction;

Datos de
6 pines
direccin.

sbit LCD_D6_Direction en T
RISB2_bit;

extern sbit
sfr LCD_D5_Dire

Datos 5
pines

sbit LCD_D5_Direction en T
RISB1_bit;

ction;

direccin.

extern sbit
sfr LCD_D4_Dire
ction;

Datos de
4 pines
direccin.

sbit LCD_D4_Direction en T
RISB0_bit;

Rutinas Biblioteca

Lcd_Init
Lcd_Out
Lcd_Out_Cp
Lcd_Chr
Lcd_Chr_Cp
Lcd_Cmd

Lcd_Init
Prototipo

void Lcd_Init ();

Devolucione
s

Nada.

Descripcin

Inicializa el mdulo LCD.

Requiere

Las variables globales:

LCD_D7: Bit de datos 7

LCD_D6: bits de datos 6

LCD_D5: bits de datos 5

LCD_D4: Bit de datos 4

LCD_RS: Register Select (datos / instrucciones) pin


de seal

LCD_EN: Habilitar pin de seal

LCD_D7_Direction: Direccin del pasador de datos

LCD_D6_Direction: Direccin del pasador de Datos

LCD_D5_Direction: Direccin del pasador de datos

LCD_D4_Direction: Direccin del pasador de datos

LCD_RS_Direction: Direccin del pasador


Regstrate Seleccionar

LCD_EN_Direction: Direccin del pasador Habilitar


seal
debe definirse antes de usar esta funcin.

Ejemplo

// Pinout Lcd settings


sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;

sbit LCD_D4 at RB0_bit;


// Pin direction
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;
...
Lcd_Init ();

Lcd_Out
Prototipo

void Lcd_Out ( carbn fila, carbn columna, Char *


texto);

Devolucione
s

Nada.

Descripcin

Imprime el texto en la pantalla LCD a partir de la posicin


especificada. Ambas variables de cadena y literales se pueden
pasar como un texto.
Parmetros:

fila: empezando nmero de fila posicin

columna: empezando nmero de columna posicin

texto: el texto que se escribir

Requiere

El mdulo Lcd necesita ser inicializado. Ver Lcd_Init rutina.

Ejemplo

// Escribir el texto "Hola!" en la pantalla LCD a


partir de la fila 1, columna 3:
Lcd_Out (1, 3, "Hola");

Lcd_Out_Cp
Prototipo

void Lcd_Out_Cp ( Char * texto);

Devolucione
s

Nada.

Descripcin

Imprime el texto en la pantalla LCD en la posicin actual del


cursor. Ambas variables de cadena y literales se pueden pasar
como un texto.
Parmetros:

texto: el texto que se escribir

Requiere

El mdulo Lcd necesita ser inicializado. Ver Lcd_Init rutina.

Ejemplo

// Escribir texto "Here!" en la posicin actual del


cursor:

Lcd_Out_Cp ("Aqu!");

Lcd_Chr
Prototipo

void Lcd_Chr
( carbn fila, carbn columna, carbn out_char);

Devolucione
s

Nada.

Descripcin

Carcter imprime en la pantalla LCD en la posicin


especificada. Ambas variables y literales se pueden pasar como
un personaje.
Parmetros:

fila: la escritura nmero de fila posicin

columna: la escritura nmero de columna posicin

out_char: carcter para ser escrito

Requiere

El mdulo Lcd necesita ser inicializado. Ver Lcd_Init rutina.

Ejemplo

// Escribir el carcter "i" en la fila 2, columna 3:


Lcd_Chr (2, 3, 'i');

Lcd_Chr_Cp
Prototipo

void Lcd_Chr_Cp ( carbn out_char);

Devolucione
s

Nada.

Descripcin

Carcter imprime en la pantalla LCD en la posicin actual del


cursor. Ambas variables y literales se pueden pasar como un
personaje.
Parmetros:

out_char: carcter para ser escrito

Requiere

El mdulo Lcd necesita ser inicializado. Ver Lcd_Init rutina.

Ejemplo

// Escribir el carcter "e" en la posicin actual del


cursor:
Lcd_Chr_Cp ('e');

Lcd_Cmd
Prototipo

void Lcd_Cmd ( carbn out_char);

Devolucione
s

Nada.

Descripcin

Enva comando para Lcd.


Parmetros:

out_char: comando que se enviar

Nota: Las constantes predefinidas se pueden pasar a la


funcin, vea Comandos LCD disponible .
Requiere

El mdulo Lcd necesita ser inicializado. Ver Lcd_Init mesa.

Ejemplo

// Pantalla Clear LCD:


Lcd_Cmd (_LCD_CLEAR);

Comandos LCD disponible


Comando Lcd

Propsito

_LCD_FIRST_ROW

Mover el cursor a la primera fila

_LCD_SECOND_ROW

Mover el cursor a la segunda fila

_LCD_THIRD_ROW

Mover el cursor a la tercera fila

_LCD_FOURTH_ROW

Mover el cursor a la cuarta fila

_LCD_CLEAR

Borrar pantalla

_LCD_RETURN_HOME

Cursor Volver a la posicin inicial, devuelve una pantalla


desplazado a su posicin original. RAM de datos de pantalla no se
ve afectada.

_LCD_CURSOR_OFF

Apague cursor

_LCD_UNDERLINE_ON

Subrayar cursor en

_LCD_BLINK_CURSOR_ON

Blink cursor sobre

_LCD_MOVE_CURSOR_LEFT

Move cursor hacia la izquierda sin cambiar de pantalla RAM de


datos

_LCD_MOVE_CURSOR_RIGH
T

Mover el cursor hacia la derecha sin cambiar de pantalla RAM de


datos

_LCD_TURN_ON

Gire la pantalla Lcd en

_LCD_TURN_OFF

Gire la pantalla LCD apagada

_LCD_SHIFT_LEFT

Pantalla Shift dej sin cambiar de pantalla RAM de datos

_LCD_SHIFT_RIGHT

Shift pantalla derecha sin cambiar de pantalla RAM de datos

Ejemplo Biblioteca
El cdigo siguiente muestra el uso de las rutinas Lcd Biblioteca:
Cdigo Copiar al portapapeles

// Mdulo LCD connections


sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;

sbit LCD_EN_Direction at
sbit LCD_D4_Direction at
sbit LCD_D5_Direction at
sbit LCD_D6_Direction at
sbit LCD_D7_Direction at
// Conexiones del mdulo

TRISB5_bit;
TRISB0_bit;
TRISB1_bit;
TRISB2_bit;
TRISB3_bit;
LCD End

Char txt1 [] = "mikroElektronika";


Char txt2 [] = "EasyPIC6";
Char txt3 [] = "Lcd4bit";
Char txt4 [] = "ejemplo";
charlas i;
sin efecto Move_Delay () {
texto en movimiento
Delay_ms (500);
movimiento aqu
}
void main () {
ANSEL = 0;
digital
ANSELH = 0;
C1ON_bit = 0;
C2ON_bit = 0;

// variable de bucle
// Funcin utilizada para el
// Puede cambiar la velocidad de

alfileres // Configurar un AS / S
// Deshabilitar los comparadores

Lcd_Init ();

// Inicializar LCD

Lcd_Cmd (_LCD_CLEAR);
Lcd_Cmd (_LCD_CURSOR_OFF);
Lcd_Out (1,6, txt3);

// Borrar pantalla
// Cursor fuera
// Escribir texto en primera fila

Lcd_Out (2,6, txt4);


Delay_ms (2000);
Lcd_Cmd (_LCD_CLEAR);
Lcd_Out (1,1, txt1);
Lcd_Out (2,5, txt2);

// Escribir texto en segunda fila


// pantalla Clear
// Escribir texto en primera fila
// Escribir texto en segunda fila

Delay_ms (2000);
// Texto en movimiento
para (i = 0; i <4; i ++) {
veces
Lcd_Cmd (_LCD_SHIFT_RIGHT);
Move_Delay ();
}
mientras que (1) {
de (i = 0; i <8; i ++) {
veces
Lcd_Cmd (_LCD_SHIFT_LEFT);
Move_Delay ();
}
para (i = 0; i <8; i ++) {
veces

// Mover texto a la derecha 4

// bucle sin fin


// Mover texto a la izquierda 7

// Mover texto a la derecha 7

Lcd_Cmd (_LCD_SHIFT_RIGHT);
Move_Delay ();
}
}
}

También podría gustarte