TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: saracatunga en 03 de Octubre de 2006, 18:10:25
-
hice el siguiente código , lo simulo en proteus y el lcd permanece en blanco
Define LCD_DREG PORTB
Define LCD_DBIT 0
Define LCD_RSREG PORTB
Define LCD_RSBIT 5
Define LCD_EREG PORTB
Define LCD_EBIT 4
hola VAR WORD
inicio:
hola=300
Lcdout $fe,$c6,# hola
end
-
hice el siguiente código , lo simulo en proteus y el lcd permanece en blanco
Define LCD_DREG PORTB
Define LCD_DBIT 0
Define LCD_RSREG PORTB
Define LCD_RSBIT 5
Define LCD_EREG PORTB
Define LCD_EBIT 4
hola VAR WORD
inicio:
hola=300
Lcdout $fe,$c6,# hola
end
Hola:
El codigo esta bien, lo que esta haciendo es posicionando el cursor en la segunda línea y mostrando el valor de la variable hola, prueba con una pequeña pausa antes del end,
Lcdout $fe,$c6,#hola
pause 500
end
Si no te funciona revisa el conexionado.
-
Pero, la segunda linea no es $FE, $C0?
-
Hola te hago una pregunta el lcd es 2x16 ya que según tu programa en mio que es lcd 2x16 aparece en la segunda linea casi a la mitad, y creo yo que si lo mandas a la posicion $c6 en uno de un linea no aparece en la pantalla.
te paso por las dudas el codigo que utilizo y que funcion:
define LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4
define LCD_LINES 2 ´el mio es de dos linea por eso va esto.
DATO VAR WORD
INICIO:
pause 500
DATO = 100
LCDOUT $FE,1,"EL VALOR ES:" ´con esto limpio la pantalla y pongo una etiqueta para que quede lindo nomas jaja
lcdout $fe,$c6,# DATO
end
Ojo igual yo recien empiezo en esto pero creo que ese puede ser el problema.
-
PRIMERO COMO VEO KIERES COLOCAR EL LCD EN EL PUERTO B:
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
INICIO:
LCDOUT $FE,1
LCDOUT $FE,2,"PRIM. LINEA"
LCDOUT $FE,$C0,"SEGUN. LINEA"
PAUSE 2000
GOTO INICIO
CON ESTO EL PIN DE RS VA AL PORT B.1, EL E DEL LCD VA AL PORTB.2,EL BUS DE DATOS PIN D7 DEL LCD A PORTB.7 , PIN D6 DEL LCD A PORTB.6 ,PIN D5 DEL LCD A PORTB.5 ,PIN D4 DEL LCD A PORTB.4
NO TIENES QUE DEFINIR EL BUS DE DATOS POR DEFECTO ES 4
LA POSICION DEL CURSOR VA DESDE 128 A 143 EN LA PRIMEREA LINEA, Y DESDE 192 A 207 EN LA SEGUNDA LINEA
ME EXPLICO EN TU PROGRAMA COLOCASTE LCDOUT $FE,$C6,#DATO
$C6 ESTA EN HEXADECIMAL ES LO MISMO QUE COLOCAR LCDOUT $FE,198,#DATO QUE CORRESPONDERIA EN EL CENTRO DE LA SEGUNDA LINEA.
SI QUIERES SABER DE COMO HACER CARACTERES ESPECIALES POSTEA OTRO TEMA Y TE EXPLICO
-
Hola:
de seguir los errores mira aqui:
http://www.todopic.com.ar/foros/index.php?topic=2810.105
si no te funciona asi, me temo mucho mi amigo que el circuito esta mal armado, utilizar el lcd para un mensaje de esos es muy sencillo y no hay pierde, si el circuito esta bien armado, el programa debe funcionar, si estas armando y no funciona y el circuito esta bien armado, entonces revisa tus componentes, podria ser que uno de ellos este fallando.
Cualquier cosa comentala por aqui, espero que sea algo bueno :mrgreen:
-
HOLA
LO QUE PASA ES QUE CUANDO QUIERO PONER EL BUS DE DATOS DEL LCD EN 8 POR EL PUERTO B Y LOS PINES RS Y E POR EL PUERTO A NO QUIERE HACER NADA :x
LES MANDO MI PROGRAMA Y MI CONEXION PARA VER SI ME PUEDEN AYUDAR
-
Haber prueba este codigo:
define lcd_dreg portb
define lcd_bits 8
DEFINE LCD_EREG PORTa
DEFINE LCD_EBIT 2
DEFINE LCD_RSREG PORTa
DEFINE LCD_RSBIT 1
adcon1=7
lcdout$fe,1,"hi"
en realidad solo añadi el ADCON1 que hace digital el PORTA si hablamos del 877 verdad??
-
HOLA LES COMENTO QUE YA ESTA RESUELTO EL PROBLEMA :mrgreen:
PERO AL PRINCIPIO EL PIC TOMABA LOS PUERTOS DEFAULT COMO SI LOS DIFINES NUNKA EXIXTIERAN
TE COMENTO QUE ERA POR LAS MINUSCULAS QUE TIENES EN ESE CODIGO
GRACIAS
SALUDOS Y GRACIAS POR SU AYUDA