Autor Tema: Problemas con pic 16f877a en LCD  (Leído 325 veces)

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

Desconectado Goten222

  • PIC10
  • *
  • Mensajes: 2
Problemas con pic 16f877a en LCD
« en: 09 de Febrero de 2017, 02:48:38 »
Hola tengo un problema con el PIC16F877A no me corre un programa  que anteriormente habia hecho con el PIC16F84A y me salio  ya cambie las librerias pero no me queda no se a que se deba. El programa lo saque de el libro "Microcontrolador pic16f84a desarrollo de proyectos"
agradeceria sus respuestas
ESTE ES EL PROGRAMA QUE NO ME QUEDA CON EL PIC16F877A
; ZONA DE DATOS **********************************************************************

   LIST      P=16F877A
   INCLUDE      <P16F877A.INC>
   __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

   CBLOCK 0x21
   ENDC

; ZONA DE CÓDIGOS ********************************************************************


   ORG   0
Inicio
     call   LCD_Inicializa
Principal
   movlw   'H'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'o'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'l'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'a'
   call   LCD_Caracter
   call   Retardo_500ms
   call   LCD_Borra            ; Borra la pantalla.
   call   Retardo_500ms
   goto   Principal

   INCLUDE <LCD_4BIT.INC>
   INCLUDE <RETARDOS.INC>
   END   
-------------------------------------------------------
ESE ES EL PROGRAMA QUE ME QUEDO CON EL PIC16F84A
-------------------------------------------------------------------------------
; ZONA DE DATOS **********************************************************************

   LIST      P=16F84A
   INCLUDE      <P16F84A.INC>
   __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

   CBLOCK 0x0C
   ENDC

; ZONA DE CÓDIGOS ********************************************************************

   ORG   0
Inicio
     call   LCD_Inicializa
Principal
   movlw   'J'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'U'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'A'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'N'
   call   LCD_Caracter
   call   Retardo_500ms
               
   
   call   LCD_UnEspacioBlanco
   call   Retardo_500ms
   movlw   'D'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'E'
   call   LCD_Caracter
   call   Retardo_500ms
   
   call   LCD_UnEspacioBlanco
   call   Retardo_500ms

   
   movlw   'D'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'I'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'O'
   call   LCD_Caracter
   call   Retardo_500ms
   movlw   'S'
   call   LCD_Caracter
   call   Retardo_500ms
   
   call   LCD_Caracter
   call   Retardo_500ms
   

   call   LCD_Borra
   
   
               ;.
   
   
   
   call   Retardo_500ms
   goto   Principal

   INCLUDE <LCD_4BIT.INC>
   INCLUDE <RETARDOS.INC>
   END
   

Desconectado Pinolillo16

  • PIC16
  • ***
  • Mensajes: 188
Re:Problemas con pic 16f877a en LCD
« Respuesta #1 en: 09 de Febrero de 2017, 03:31:58 »
Hola Goten, para poder apoyarte quisiera saber lo siguiente:

Es todo el código?
El del PIC16F84A, te funciono?
Con que cristal manejas ambos?

Yo veo que suceden varias cosas. Despues del ORG 0 que es la zona del reset tienes que configurar los pines e/s del PIC, ademas de esto el 877 tiene ADC que por default estan activos. Asi mismo si tienes un cristal de mas de 8mhz tu pic debes configurarlo como HS. Espero nos puedas brindar mas información para poder apoyarte.

Saludos

Desconectado Goten222

  • PIC10
  • *
  • Mensajes: 2
Re:Problemas con pic 16f877a en LCD
« Respuesta #2 en: 17 de Febrero de 2017, 02:13:34 »
El cristal es de 4MHz y el programa funciona bien con el PIC16F84A pero no se por que al cambiarlo al 16f877a no me queda si ya cambie la direccion de 0x0c a 0x20

Desconectado Pinolillo16

  • PIC16
  • ***
  • Mensajes: 188
Re:Problemas con pic 16f877a en LCD
« Respuesta #3 en: 17 de Febrero de 2017, 03:14:05 »
A que pines del PIC16F877a conectaste el bus de datos, y tambien los pines de control?

Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 5742
Re:Problemas con pic 16f877a en LCD
« Respuesta #4 en: 23 de Febrero de 2017, 15:10:34 »
El cristal es de 4MHz y el programa funciona bien con el PIC16F84A pero no se por que al cambiarlo al 16f877a no me queda si ya cambie la direccion de 0x0c a 0x20

Seguramente por que el PIC16F877A posee pines analogicos, al momento del reset estos arrancan como analogicos, y deberias pasarlos a digital.
El 16F84A no posee esto, y por eso te funciona.
O agregas en el codigo de tu libreria, o en el comienzo, agrega las lineas modificando el registro ADCON1 que es el que necesitas, es decir con un:

MOVLW 0x06
MOVWF ADCON1

Recorda que el ADCON1 esta en el banco1


 

anything