problema con lcd

#1
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
 
#2
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.
 
#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?



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
 

Adjuntos

Última edición:
#4
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. :apreton:
 

Adjuntos

Última edición:
Arriba