TODOPIC
Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: Diego E. en 18 de Abril de 2008, 14:09:45
-
Hola grupo, no he podido simular un LCD a 4 bits en proteus; pero en la práctica funciona bien, ahora si lo simulo a 8 bits trabaja bien. Será que el código que utilizo no es compatible con el algoritmo del proteus ?
:(
-
Yo los LCD's que he simulado a 4 bits van bien.
Un saludo
-
gracias por responder, no se que sucede pienso que la forma como estructuro la rutina no es muy compatible con el algoritmo de proteus, o quiza la forma como se inicializa el display, acá te presento parte del código
RUTINA DEL DISPLAY
display_4b movlw b'00101000' ;CODIGO PARA DISPLAY A 4 BITS
call c_display_4b
;movlw b'00111000' ;CODIGO PARA DISPLAY A 8 BITS
;call c_display_4b
;==================
movlw b'00001100' ;CODIGO QUE ACTIVA EL DISPLAY
call c_display_4b
movlw b'00000110' ;CODIGO QUE DEFINE EL CURSOR PARA
call c_display_4b ;QUE SE DESPLACE HACIA LA DERECHA
;movlw b'00000111' ;CODIGO QUE DEFINE EL CURSOR PARA
;call c_display_4b ;QUE DESPLACE HACIA LA IZQUIERDA
;TODO EL MENSAJE
movlw 0x01 ;LIMPIA EL DISPLAY
call c_display_4b
;======================================
movlw h'80' ;DIRECCION DONDE SE VA A EMPEZAR A
call c_display_4b ;ESCRIBIR EL MENSAJE " HOLA "
movlw "H" ;SE CARGA EL CARACTER Y SE ENVIA
call d_display_4b ;AL LCD
movlw "O"
call d_display_4b
movlw "L"
call d_display_4b
movlw "A"
call d_display_4b
nop
goto $-1
;====================================================================
c_display_4b bcf porta,rs ;RUTINA DE DISPLAY LCD
goto $+2 ;PARA TRABAJAR A CUATRO BITS
d_display_4b bsf porta,rs
bsf porta,e
call tiempo_d
movwf portb
call nop_10
bcf porta,e
bsf porta,e
call tiempo_d
swapf portb,f
call nop_10
bcf porta,e
call tiempo_d
return
;====================================================================
nop_10 nop ;RETARDO DE 10 Ms PARA ACTIVAR EL
nop ;ENABLE DEL LCD
nop
nop
nop
nop
return
;====================================================================
tiempo_d nop ;RETARDO DE 2048 Ms TIEMPO QUE DEBE
nop ;ESPERAR ANTES DE ENVIAR OTRO DATO
nop ;AL LCD
nop
nop
decfsz conta1,f
goto tiempo_d
return
-
uffffffffffff yo trabajo en "C" y el ASM aunque lo manejo y lo domino no me gusta ni un pelo.
Un saludo
-
Si te corre el programa montado, es porque esta bien tu rutina. Debes tener en cuenta la frecuencia de trabajo de la LCD, en las propiedades del dispositivo esta, no se si sera de pronto eso.
No creo que sea incopatibilidad de proteus, yo he probado con C18, CCS, HiTech y assembler y no me ha dado lata :). Que version del proteus tienes?
Un saludo
pd// de que parte de colombia eres?
-
tengo la versión 7.1 de proteus.
Ahora les cuento que resolví el problema de la siguiente manera: creee un módulo con un pic que me convierte de 4 a 8 bits y este me sirve de interfase, lo he probado con mis aplicaciones a 4 bits y trabaja bien, de todos modos muchas gracias
:lol:
-
Hola:
Hay varias librerias para el 16F87xx, yo te adjunto una que modifique para el 16f84 por si te sirve. Saludos a todos.