Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

20/01/2012 #1


Problema con Pic16f887
Hola amigos, llevo ya 2 dias buscando por la red y leyendo el datasheet pero no doy con mi problema.

Por el proyecto que estoy haciendo decidí usar el pic16f887 por su gran numero de pines. Anteriormente he hecho otros proyectos con lcd y diferente Pic y me han funcionado bien.

Lo extraño, esque con este pic no funciona e incluso al simularlo en proteus, el mismo programa con el pic 16f84a(por ejemplo) funciona a la perfección. He reducido el circuito al máximo de tal modo que solo los 4 pines de datos, el RS y E estan al puerto B, con oscilador interno y ni aun así funciona. Solo consigo ver una linea que parpadea 2 veces y no vuelve a encender hasta que reinicio el pic.

Espero que alguien pueda ayudarme porque ya no se que mas hacer.
Gracias y un saludo



* Aunque el problema no creo que es de aqui, uso PBP
20/01/2012 #2

Avatar de arrivaellobo

Deberías publicar el código por lo menos..
20/01/2012 #3


Código:
Define osc 4
 alldigilal

Define LCD_DREG PORTB 
Define LCD_DBIT 4     
Define LCD_RSREG PORTB
Define LCD_RSBIT 1    
Define LCD_EREG PORTB 
Define LCD_EBIT 2     


TRISB=%00000000

Bf0 var byte
Bf1 var byte


inicio
pause 1000


LCDOUT $FE, 1 
LCDOUT $FE, 1, "Hola mundo"   
Lcdout $fe, $C0, "Hola mundo"  
pause 1000

lcdout $fe, 1,"Decimal: ", dec 25
Lcdout $fe, $C0,"Binario: ", hex 25


pause 1000

LCDOUT $FE, 1       
FOR Bf0 = 0 TO 13
  LOOKUP Bf0,["Hola mundo"],Bf1
  lcdout $fe,$0C,Bf1
  pause 400
NEXT 

lcdout $FE, $C0
FOR Bf0 = 0 TO 13
  LOOKUP Bf0,["Hola mundo"],Bf1
  lcdout $fe,$0C,Bf1
  pause 400
NEXT 

goto inicio
end
Aqui está, pero creo que el problema es de configuración del pic porque en un 16f84a si funciona.
20/01/2012 #4

Avatar de arrivaellobo

Uff, yo no uso basic.. asi que espero que alguien que sepa te pueda ayudar.. jajaja
un saludo!
21/01/2012 #5


Chicle dijo: Ver Mensaje
Código:
Define osc 4
 alldigilal

Define LCD_DREG PORTB 
Define LCD_DBIT 4     
Define LCD_RSREG PORTB
Define LCD_RSBIT 1    
Define LCD_EREG PORTB 
Define LCD_EBIT 2     


TRISB=%00000000

Bf0 var byte
Bf1 var byte


inicio
pause 1000


LCDOUT $FE, 1 
LCDOUT $FE, 1, "Hola mundo"   
Lcdout $fe, $C0, "Hola mundo"  
pause 1000

lcdout $fe, 1,"Decimal: ", dec 25
Lcdout $fe, $C0,"Binario: ", hex 25


pause 1000

LCDOUT $FE, 1       
FOR Bf0 = 0 TO 13
  LOOKUP Bf0,["Hola mundo"],Bf1
  lcdout $fe,$0C,Bf1
  pause 400
NEXT 

lcdout $FE, $C0
FOR Bf0 = 0 TO 13
  LOOKUP Bf0,["Hola mundo"],Bf1
  lcdout $fe,$0C,Bf1
  pause 400
NEXT 

goto inicio
end
Aqui está, pero creo que el problema es de configuración del pic porque en un 16f84a si funciona.
No es el Basic que yo uso pero es buena practica en la cabecera y para dejar fuera de toda duda a la hora de compilar comenzar con la declaración del Pic utilizado y la configuración de los fusibles algo así :

Device = 16F877

Config HS_OSC,WDT_OFF,PWRTE_OFF,CP_OFF,BODEN_ON,LVP_OFF
Declare Xtal = 20
All_Digital= true 'El puerto es digital
PortB_Pullups = On ' Enable PORTB pullup resistors

por otro lado hablas del oscilador interno pero el 877 que yo sepa no lo tiene por ahí puede estar la falla.

Saludos.


Ric.
21/01/2012 #6
Moderador

Avatar de D@rkbytes

Saludos.
No se con que editor esta escrito el programa de Chicle parece del PIC Simulator IDE
Lo pase a PIC Basic Pro de MCS que es el lenguaje mas sencillo para trabajar con LCD
Aca dejo el programa de Chicle compilado mas su simulación en ISIS
Archivos Adjuntos
Tipo de Archivo: rar LCD.rar (9,0 KB (Kilobytes), 69 visitas)
22/01/2012 #7


Muchas gracias a todos por vuestro interes mostrado.

El compilador que he usado ha sido PBP de microcode. Ya solucioné el problema. EL pic que he usado era 887 no 877 como entendisteis.
Con el 877 si funciona el codigo que hice sin editar nada.

El problema estaba en el registro ANSELH. Pero tengo la duda de si utilicé ALLDIGITAL ¿Porque con otros pics con entradas analogicas no me obliga a especificar el registro?

Gracias de nuevo a todos
Un saludo
06/12/2014 #8


amigo como pudiste resolver el problema del lcd y pic 16f887??
06/12/2014 #9
Moderador

Avatar de D@rkbytes

Ya lo mencionó...
Chicle dijo: Ver Mensaje
El problema estaba en el registro ANSELH. Pero tengo la duda de si utilicé ALLDIGITAL ¿Por qué con otros pics con entradas analógicas no me obliga a especificar el registro?
theviluis dijo: Ver Mensaje
Amigo, ¿cómo pudiste resolver el problema del lcd y pic 16f887?
¿Cual es el problema que tienes con la pantalla y el PIC?
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.