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

Título: LCD a 4bits
Publicado 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 ?

  :(
Título: Re: LCD a 4bits
Publicado por: jfh900 en 18 de Abril de 2008, 14:49:15
Yo los LCD's que he simulado a 4 bits van bien.

Un saludo
Título: Re: LCD a 4bits
Publicado por: Diego E. en 18 de Abril de 2008, 15:31:55
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
Título: Re: LCD a 4bits
Publicado por: jfh900 en 18 de Abril de 2008, 17:06:40
uffffffffffff yo trabajo en "C" y el ASM aunque lo manejo y lo domino no me gusta ni un pelo.

Un saludo
Título: Re: LCD a 4bits
Publicado por: MLO__ en 21 de Abril de 2008, 17:22:24
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?
Título: Re: LCD a 4bits
Publicado por: Diego E. en 22 de Abril de 2008, 14:35:13
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:
Título: Re: LCD a 4bits
Publicado por: rober_gv en 27 de Mayo de 2008, 16:32:39
Hola:

   Hay varias librerias para el 16F87xx, yo te adjunto una que modifique para el 16f84 por si te sirve. Saludos a todos.