Hola:
Bueno aqui pongo mi ejemplo para pic 16F84A y LCD a 4bits.
En la pagina
http://www.x-robotics.com/ en rutinas---> LCD 16x2 existe una clara explicacion del LCD, el pinout del mismo y la tabla ascci.
El comando que utiliza PBP para mostrar datos en el LCD es:
LCDOUT Item {,Item...}
Como bien lo dice la ayuda, PBP soporta displays con controlador Hitachi 44780 o compatible, adicionalmente se pueden utilizar los siguientes operadores y comandos:
Alli podemos ver todos los comandos que podemos utilizar para que el LCD haga cierta accion, ejemplo:
LCDOUT $FE,1 "Borra el display
LCDOUT $FE, $C0 " mueve el cursor al inicio de la segunda linea
Para los operadores se utiliza de la misma manera, ejemplo:
lcdout $FE,1,bin4 flag " Borra la pantalla y muestra en el display el valor de flag en un numero binario de 4 bits.
Para poder definir a que pines se quiere conectar el lcd, los bits a utilizar y demas, se debe utilizar las siguientes definiciones al inicio del programa (Se puede utilizar solo las necesarias).
" Set LCD Data port
DEFINE LCD_DREG PORTB
" Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_DBIT 4
" Set LCD Register Select port
DEFINE LCD_RSREG PORTB
" Set LCD Register Select bit
DEFINE LCD_RSBIT 1
" Set LCD Enable port
DEFINE LCD_EREG PORTB
" Set LCD Enable bit
DEFINE LCD_EBIT 0
" Set LCD bus size (4 or 8 bits)
DEFINE LCD_BITS 4
" Set number of lines on LCD
DEFINE LCD_LINES 2
" Set command delay time in us
DEFINE LCD_COMMANDUS 2000
" Set data delay time in us
DEFINE LCD_DATAUS 50
Bueno, mi circuito en Proteus es este:
Y el codigo este:
Codigo:
"Giovanni Lafebre
"Cuenca - Ecuador
"Ejemplo para LCD a modo 4 bits
Define LCD_DREG PORTB "bit de datos del LCD empezando
Define LCD_DBIT 0 "por B.0 ,B.1, B.2 y B.3
Define LCD_RSREG PORTB "bit de registro del LCD conectar
Define LCD_RSBIT 5 "en el puerto B.5
Define LCD_EREG PORTB "bit de Enable conectar en el
Define LCD_EBIT 4 "puerto B.4
inicio:
lcdout $FE,1,"HOLA TODOPIC " "borra el lcd y muestra el mensaje.
end
Esto es lo mas basico, solamente muestra un mensaje en el lcd, nada mas por ahora.