Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

15/04/2012 #1


problema con lcd
Tengo un problema con un LCD en Basic. No consigo hacerlo funcionar ya que me tira el error "illegal character". Ahi les dejo el code a ver si me ayudan:
Código:
'Preparo el LCD

	Define LCD_BITS = 8
	Define LCD_DREG = PORTB
	Define LCD_DBIT = 0
	Define LCD_RSREG = PORTA
	Define LCD_RSBIT = 0
	Define LCD_RWREG = PORTA
	Define LCD_RWBIT = 1
	Define LCD_EREG = PORTA
	Define LCD_EBIT = 2
	Define LCD_READ_BUSY_FLAG = 1
Lcdinit 

pause 500

main:
Lcdout $fe, 1
Lcdout "Hola"
pause 500
goto main
End
15/04/2012 #2
Moderador

Avatar de D@rkbytes

rakata dijo: Ver Mensaje
Tengo un problema con un LCD en Basic. No consigo hacerlo funcionar ya que me tira el error "illegal character". Ahi les dejo el code a ver si me ayudan:
Saludos rakata
Quita los signos = de las definiciones.
No se que compilador estes usando para tu programa.
En PICBASIC PRO no llevan ese signo.
La definición (Define LCD_READ_BUSY_FLAG = 1) No la conocia, ni la tengo registrada.

Prueba quitando los signos, y espero soluciones tu problema.

Suerte y hasta luego.
15/04/2012 #3


Era eso, muchas gracias.
Otra cosa, para el LCD en este caso desde D0 a D4 iria conectado a RB0 hasta RB4?

Era eso, muchas gracias.
Otra cosa, para el LCD en este caso desde D0 a D4 iria conectado a RB0 hasta RB4?

---------- Actualizado después de 42 minutos ----------

Entonces quien me puede decir por que mi lcd no muestra nada cuando lo simulo?
Ahi va el code y una imagen de comoesta en proteus

Código:
'Configuramos los fuses 
        @__CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
        @__CONFIG    _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
        @__CONFIG    _CONFIG2L, _PWRT_OFF_2L & _BOR_ON_2L & _BORV_3_2L & _VREGEN_ON_2L
        @__CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
        @__CONFIG    _CONFIG3H, _CCP2MX_ON_3H & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_OFF_3H
        @__CONFIG    _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L



TRISB=0
TRISA=0


'Preparo el LCD

	Define LCD_BITS  4
	Define LCD_RWREG PORTA
	Define LCD_RWBIT 1
	Define LCD_DREG  PORTB
	Define LCD_DBIT  0
	Define LCD_RSREG  PORTA
	Define LCD_RSBIT  0
	Define LCD_EREG  PORTA
	Define LCD_EBIT  2
	Define LCD_LINES 2
	Define LCD_READ_BUSY_FLAG  1
	Lcdinit 

pause 500

main:
LCDout $fe, 1, "Hola"
LCDout $FE, $C0, "Mundo"
pause 500
goto main
End
Imágenes Adjuntas
Tipo de Archivo: png wefr.PNG (28,4 KB (Kilobytes), 6 visitas)
15/04/2012 #4
Moderador

Avatar de D@rkbytes

rakata dijo: Ver Mensaje
Era eso, muchas gracias.
Otra cosa, para el LCD en este caso desde D0 a D4 iria conectado a RB0 hasta RB4?

Entonces quien me puede decir por que mi lcd no muestra nada cuando lo simulo?
Ahi va el code y una imagen de comoesta en proteus
Saludos.
Prueba usando este código.
Código:
DEFINE LCD_DREG PORTB        ; Puerto de datos del LCD
DEFINE LCD_DBIT     4        ; Iniciar los datos del LCD desde RB4 a RB7
DEFINE LCD_RSREG PORTB        ; Puerto del LCD (Register Select)
DEFINE LCD_RSBIT    1        ; Bit del LCD RB1(RS)
DEFINE LCD_EREG PORTB        ; Puerto del LCD (Enable)
DEFINE LCD_EBIT     3        ; Bit del LCD RB3(E)
DEFINE LCD_RWREG PORTB        ; Puerto del LCD (Read/Write)
DEFINE LCD_RWBIT    2        ; Bit del LCD RB2 (RW)
DEFINE LCD_BITS     4        ; Tamaño del BUS del LCD
DEFINE LCD_LINES    2        ; Número de líneas del LCD
DEFINE LCD_COMMANDUS 2000    ; Retardo del comando en uS.
DEFINE LCD_DATAUS   50        ; Retardo del tiempo de datos en uS.
;*******************************************************************************
; Configuración opcional de registros
CMCON = 7                    ; %00000111    (7) Comparadores analógicos OFF
ADCON1 = $F                 ; %00001111    (15) ADC 0FF
TRISB = 1                    ; %00000001    (1) Configuración del puerto B
;*******************************************************************************
PAUSE   100
LCDOUT  $FE,1                ; Borrar Display
LCDOUT  $FE,$80,"HOLA MUNDO" ; Primer Línea
LCDOUT  $FE,$C0,"HELLO WORLD" ; Segunda Línea
END
En este ejemplo no es necesario que hagas un Loop, ya que los caracteres en pantalla, se retienen.
Me pregunto. ¿Que compilador o programa estas usando?

PD. No sé si el compilador que estas usando requiera la directiva Lcdinit

Suerte y hasta luego.
Imágenes Adjuntas
Tipo de Archivo: gif LCD16X2(4Bits).gif (25,9 KB (Kilobytes), 6 visitas)
15/04/2012 #5


Uso Picbasic pro
15/04/2012 #6
Moderador

Avatar de D@rkbytes

rakata dijo: Ver Mensaje
Uso Picbasic pro
Ok. Siendo así, adjunto los archivos del proyecto.
Simulación incluida.
Archivos Adjuntos
Tipo de Archivo: rar 18F2550_LCD16X2.rar (27,5 KB (Kilobytes), 12 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.