CONEXION PREDETERMINADA DEL LCD CON PROTON
PRINT
La instruccion utilzada para el manejo de una pantalla LCD alfanumerica es PRINT y se usa segun la siguiente sintaxis:
PRINT AT posicion_Y, posision_X, expresion1, expresion2,expresion3,....,
posicion_Y => corresponde a la linea donde se escribira
posicion_X => corresponde a la columna
Luego de esto los datos a escribir separados por comas, estos pueden ser valores o expresiones matematicas, boleanas, y cadenas de texto.
Las cadena de texto deben ser encerradas entre comillas, por ejemplo:
PRINT AT 1,1, "HOLA MUNDO"
PRINT AT 1,1 "HOLA"," ", "MUNDO"
Tambien existen una serie de modificadores que permiten dar formato a los valores numericos que se desean visuaizar, son las siguientes:
BIN => Binario
DEC => Decimal
HEX => Hexadecimal
SBIN => Binario con signo
SDEC => Decimal con signo
SHEX => Hexadecimal con signo
IBIN => Binario con el caracter % al inicio
IDEC => Decimal con el caracter # al inicio
IHEX => Hexadecimal con el caracter $ al inicio
ISBIN => Binario con signo y con el caracter % al inicio
ISDEC => Decimal con signo y con el caracter # al inicio
ISHEX => Hexadecimal consigno y con el caracter $ al inicio
REP c\n = > Envia un caracter c, n veces
STR array\n = > envia una parte de un arreglño
CSTR cdata 0 => envia una cadena definida en la instruccion cdata.
Cuando utilizamos DEC, HEX O BIN, se puede determinar el numerpo de caracteres deseados colocandole un numero, si quisieramos 2 decimales seria, DEC2, cuatro decimales DEC4, si se omite este numero y simplemente se coloxca DEC, el po defecto es 3 decimales.
Ejemplo 1:
DIM VAR1 AS BYTE
VAR1 = 15
PRINT AT 1,1, "HOLA MUNDO" 'Muestra "HOLA MUNDO"
PRINT AT 2,1, DEC VAR1 'Muestra 15
PRINT AT 2,1, DEC4 VAR1 'Muestra 0015
PRINT AT 3,1, "VAR1 HEX = " , HEX VAR1 ' Muestra "VAR1 HEX = F"
PRINT AT 4,1, "VAR1 BIN = " , BIN VAR1 ' Muestra "VAR1 BIN = 1111"
PRINT AT 6,1 ,"VAR1 HEX= " , HEX4 VAR1 ' Muestra "VAR1 HEX= 000F"
Si es una variable punto flotante la que se quiere visualizar, el digito que se le agrega a DEC, determina el numero de digitos despues del punto decimal, por ejemplo:
DIM FLT_VAR AS FLOAT
FLT_VAR = 3.145
PRINT DEC2 FLT_VAR ' Muestra 3,14
PRINT DEC4 FLT _VAR ' Muestra 3,1400
PRINT DEC1 FLT_VAR ' Muestra 3,1
DECLARACIONES ASOCIADAS AL LCD
Existen seis declaraciones para ser usadas con el LCD alfanumerico y la instruccion PRINT, y son :
DECLARE LCD_TYPE 1 or 0 , GRAPHIC or ALPHA
Informa al compilador el tipo de LCD que se direccionara a traves de la instruccion PRINT, 1 es para Grafica y 0 para Alfanumerica, si esta declaracion no es usada, la configuracion por defecto es del tipo Alfanumerico.
DECLARE LCD_INTERFACE 4 or 8
Informa al compilador cuantas lineas de datos seran usadas para el manejo del LCD, ocho o cuatro lineas.
DECLARE LCD_DTPIN PORT . PIN
Asigna el puerto a ser usado por las lineas de datos del LCD, esta puede ser conectada usando 8 lineas de datos ó cuatro lineas de datos, si se utilizan solo cuatro lineas, estas deben ser conectadas a los cuatro pines mas sgnificativos, o los cuatro menos significaivos, y esto puede ser configurado de la manera siguiente:
DECLARE LCD_DTPIN PORTB.0
' Usado para interface de cuatro lineas y deben ser conectadas desde RB0 hasta RB7
DECLARE LCD_DTPIN PORTB.4
' Usado para interface de cuatro lineas y deben ser conectadas desde RB4 hasta RB7
Si esta declaracion no es utilizada la configuracion por defecto es PORTB.4.
DECLARE LCD_LINES 1 , 2 , or 4
Informa al compilador el numero de lineas del LCD.
Las LCD´s alfanumericas vienen en un rango de medidas dadas por el numero de filas y columnas, el tipo mas popular es el de 16 columnas por dos fila (16X2), aunque tamebien las de 16X4. Si esta declaracion no es usada la configuracion por defecto es de 2 lineas.
Recomiendo en todo programa no obviar las declaraciones aunque se desee utilizar la configuiracion por defecto, el formato del codigo del programa lo desarrollo asi:
CODIGO DE EJEMPLO:
Device 16f877
XTAL 4
PORTB_PULLUPS = TRUE
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Configuracion del LCD'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DECLARE LCD_TYPE 0 ' LCD alfanumerica
DECLARE LCD_INTERFACE 4 ' 4 lineas de datos
DECLARE LCD_DTPIN PORTB.4 ' lineas de datos al PORTB RB4->RB7
DECLARE LCD_ENPIN PORTB.2 ' EN al pin RB2
DECLARE LCD_RSPIN PORTB.3 ' RS al pin RB3
DECLARE LCD_LINES 4 ' LCD de cuatro lineas
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Inicio: ' Etiqueta
print at 1,1, "Linea 1"
print at 6,1, "Linea 6"
Fin: ' Etiqueta
muy buena tu explicación, gracias. Aunque sería bueno q colocaras ejercicios resueltos sobre la LCD con el teclado,ya que es muy común en la universidad.
ResponderEliminarno se si puedas ayudarme, pero monte una programación para una alfanumérica de 4 lineas y falla.. escribe cosas aleatoriamente ... esa misma programación si la uso con una alfanumérica de 2 lineas.. trabaja perfectamente
ResponderEliminarDeclare LCD_TYPE 0 'DECLARAMOS LOS PUERTOS DE SALIDA Y DE PROGRAMACION.
Declare LCD_INTERFACE 4 ; 4 lineas de datos
Declare LCD_DTPIN PORTD.4
Declare LCD_ENPIN PORTD.3
Declare LCD_RSPIN PORTD.2
Declare LCD_LINES 4
esto es lo que he usado como programación de lcd
Hola, se pueden escoger los pines de datos del LCD (D4-D0) usando cualquier pin del PIC? por ejemplo los pines del puerto B B6-B2 o los que yo quiera, así como se hace en arduino.
ResponderEliminar