Autor Tema: LCD con 16F877A no me funciona  (Leído 15490 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #15 en: 22 de Febrero de 2016, 13:37:15 »
muchas gracias estimado KILLERJC voy a intentar lo que me dices , si puedes luego revisalo  y me das tu parecer.
saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:LCD con 16F877A no me funciona
« Respuesta #16 en: 22 de Febrero de 2016, 23:05:33 »
Como te decia, tu codigo esta mal, no respetas la rutina de inicializacion del LCD que provee el fabricante. Por eso mismo te dije que usaras la libreria esa.

Hay que tener una cosas en cuenta al usar la libreria. Las cuales expuse aca:
http://www.todopic.com.ar/foros/index.php?topic=45929.msg383703#msg383703

Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #17 en: 22 de Febrero de 2016, 23:30:50 »
hola  KILLERJC hoy volvi al .inc como me aconsejastes pero no logro que funcione, algo estoy haciendo mal y no me doy cuenta donde esta el error.
Gracias por tu atencion.

Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #18 en: 22 de Febrero de 2016, 23:59:26 »
Ahi me di cuenta que me faltaba el mensaje el cual coloque luego de inicializar el lcd, pero sigo sin ver nada.

CALL      LCD_Inicializa   
   
   MOVLW   'B'
        CALL    LCD_Caracter
        MOVLW   'I'
        CALL    LCD_Caracter
   MOVLW   'E'
        CALL    LCD_Caracter
        MOVLW   'N'
        CALL    LCD_Caracter
   MOVLW   'V'
        CALL    LCD_Caracter
        MOVLW   'E'
        CALL    LCD_Caracter
   MOVLW   'N'
        CALL    LCD_Caracter
        MOVLW   'I'
        CALL    LCD_Caracter
   MOVLW   'D'
        CALL    LCD_Caracter
        MOVLW   'O'
        CALL    LCD_Caracter
                GOTO    $-1

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:LCD con 16F877A no me funciona
« Respuesta #19 en: 23 de Febrero de 2016, 01:44:14 »
Una correcion al loop principal, saque afuera la inicializacion del LCD, y agregue un NOP, asi el GOTO $-1 salta al NOP y no al CALL

Código: ASM
  1. ORG             000H
  2.                 CALL    SETUP
  3.                 CALL    LCD_Inicializa                  ; En el setup inicial y fuera del loop principal.
  4.  
  5. ;*****************************************************************************
  6. ;MENU RUTINA PPAL DEL PROGRAMA
  7. ;*****************************************************************************
  8. MENU    
  9.                 MOVLW   'B'
  10.                 CALL    LCD_Caracter
  11.                 MOVLW   'I'
  12.                 CALL    LCD_Caracter
  13.                 MOVLW   'E'
  14.                 CALL    LCD_Caracter
  15.                 MOVLW   'N'
  16.                 CALL    LCD_Caracter
  17.                 MOVLW   'V'
  18.                 CALL    LCD_Caracter
  19.                 MOVLW   'E'
  20.                 CALL    LCD_Caracter
  21.                 MOVLW   'N'
  22.                 CALL    LCD_Caracter
  23.                 MOVLW   'I'
  24.                 CALL    LCD_Caracter
  25.                 MOVLW   'D'
  26.                 CALL    LCD_Caracter
  27.                 MOVLW   'O'
  28.                 CALL    LCD_Caracter
  29.  
  30.                 NOP
  31.                 GOTO    $-1
  32.                 GOTO    MENU            ; No deberia llegar nunca aca

Y en el archivo de la configuracion del LCD, el CBLOCK le falta ponerle el valor, lo cual quedaria asi:

Código: ASM
  1. CBLOCK 0x70
  2.         LCD_Dato
  3.         LCD_GuardaDato
  4.         LCD_GuardaTRISB
  5.         LCD_Auxiliar1
  6.         LCD_Auxiliar2
  7.         ENDC

( Elegi 0x70 asi no colisiona con ningun otro )

Y una cosa mas...

Si vas a crar registros para usarlos en los delays, usa siempre los mismos, es decir tenes asi:

Delay 1ms: GRAL1 y GRAL2
Delay 1.5ms : TOTO
Delay 25s : PDel0, PDel1, PDel2

Mientras que podrias hacerlo asi:

Delay 25s : PDel0, PDel1, PDel2
Delay 1ms: PDel0, PDel1
Delay 1.5ms : PDel0

Y listo... ahora solo tenes definido 3 registros y podes usar todos los delays sin problema, mientras que antes tenias 6 sin sentido.


Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #20 en: 24 de Febrero de 2016, 11:41:36 »
Exelente !! mas tarde cuando llegue a casa me pongo a probarlo y te comento , muchas pero muchas gracias !!!
abrazo
Ruben Dario Figueredo
Pergamino,BsAs,Argentina

Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #21 en: 24 de Febrero de 2016, 13:55:16 »
hola , aunque no entendi bien lo de los delays te comento que sigo sin poder ver algo , reforme segun lo que me dijiste , pero no reforme el tema de los delays , anda igual o sin ese arreglo no funciona.
* Ejmplo LCD 4 bit 877.asm
(6.44 kB - descargado 215 veces)
* LCD_4BIT_1.INC
(11.34 kB - descargado 202 veces)
« Última modificación: 24 de Febrero de 2016, 13:59:26 por VOLTIO »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:LCD con 16F877A no me funciona
« Respuesta #22 en: 24 de Febrero de 2016, 15:05:10 »
Te falto agregarle el NOP antes del GOTO $-1 . Aparte de eso por ahora no veo nada distinto.

Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #23 en: 24 de Febrero de 2016, 15:22:31 »
Debo tener algun problema en el hard o no se , no me funciona  , sigo revisando

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:LCD con 16F877A no me funciona
« Respuesta #24 en: 24 de Febrero de 2016, 23:40:04 »
Una pregunta, que posee este archivo ?

include <RETARDOS.INC>

Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #25 en: 25 de Febrero de 2016, 12:02:44 »
no son los retardo que usa el include del lcd ??

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:LCD con 16F877A no me funciona
« Respuesta #26 en: 25 de Febrero de 2016, 12:21:27 »
Si pero seguro que ahi dentro hay un CBLOCK tambien. Por eso te pedi que lo pasaras :P

Y te olvidaste el NOP antes del GOTO $-1 en el loop principal.

Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #27 en: 25 de Febrero de 2016, 13:37:37 »
en los mensajes anteriores esta el archivo, igual ahi lo subo.
* RETARDOS.INC
(9.82 kB - descargado 207 veces)

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:LCD con 16F877A no me funciona
« Respuesta #28 en: 25 de Febrero de 2016, 13:52:41 »
Código: ASM
  1. CBLOCK
  2.         R_ContA                         ; Contadores para los retardos.
  3.         R_ContB
  4.         R_ContC
  5.         ENDC

Ves..

Ponele un

   CBLOCK 0x60

Sino los delays que usa la libreria del LCD no van a funcionar correctamente.

Desconectado VOLTIO

  • PIC16
  • ***
  • Mensajes: 154
Re:LCD con 16F877A no me funciona
« Respuesta #29 en: 25 de Febrero de 2016, 14:01:25 »
se los puse pero no anda igual


 

anything