Autor Tema: Ayuda en el programa mas simple  (Leído 5743 veces)

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

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Ayuda en el programa mas simple
« en: 13 de Agosto de 2009, 16:49:01 »
Hola amigos, soy muy nuevo en esto por que estoy empeaando, tengo hecho el programa mas simple que es encender un led con el PIC 16F84 de cualquira de sus salidas y no me funciona en la placa de pruebas.
lo he probado en el simulador de mplab y funciona correctamente, lo he probado en el PIC SIMULADOR IDE, y funciona correctamente, pero cuando lo monto en la placa de pruebas el led no se enciende.

He leido muchos post del foro y no soluciono el problema, estoy ya desesperado, he comprobado la configuracion con CP off, WDT off, PWRT off  XT, he comprobado las conexiones y alimentaciones, son correctas, la patilla 4 la tengo con una resistencia de 10K a 5v, la resistencia del led es de 270R.

Si quereis os paso el programa pero no lo veo necesario ya que en los simuladores funciona bien.

En fin a ver si salgo de esta por que quiero realizar muchos circuitos. GRACIAS.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda en el programa mas simple
« Respuesta #1 en: 13 de Agosto de 2009, 18:59:02 »
Bienvenido al foro electronico39!

Y si, coloca el código y el esquema de como has realizado las conexiones a ver si así detectamos cual es el problema.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: Ayuda en el programa mas simple
« Respuesta #2 en: 13 de Agosto de 2009, 19:27:35 »
Hola electrónico39, bienvenido al foro. Te recomiendo que pongas el código por si fuera algo de programación cosa que no creo. Comprueba bién tu circuíto. Mira bien si al micro le llegan los 5Vdc y si el oscilador está oscilando. Comprueba la patilla MCLR que tenga 5Vdc, yo creo que se está reseteando el micro y por eso no se enciende el led.

Ya nos cuentas,

Un saludo.
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Re: Ayuda en el programa mas simple
« Respuesta #3 en: 14 de Agosto de 2009, 11:20:10 »
Gracias por contestar, a ver si puedo salir de esta para poder realizar muchos mas circuitos, por que soy un fanatico de la electronica y he realizado muchos muchos circuitos electronicos.

Aqui os paso el programa que he realizado para empezar:

   list      p=16F84          ; list directive to define processor
   #include <p16F84.inc>     ; processor specific variable definitions

                        
status   equ      0x03
trisA   equ      0x85
trisB   equ      0x86
   
ptoB   equ      0x06
ptoA   equ      0x05


reset   org      0x00      ;inicio del programa
   goto   inicio
      org   0x05
inicio   bsf   status,5   ;paso al banco 1
      clrf   trisA      ;puerto A como salidas
      clrf   trisB      ;puerto B como salidas
      bcf   status,5

led      bsf   ptoB,1      ;enciendo led
      goto    led      ;infinito

      end


Es lo mas simple que hay para comprobar que el micro hace lo que tu quieres, por eso empiezo por este sencillo programa y luego ya ire complicandolo con otros proyectos que quiero aprender.

El esquema no se como pasarlo, pero os digo las conexiones y espero que las entendais bien.

Tengo la fuente de alimentacion a 9v entra al regulador 7805 con un condensador en paralelo a la entrada de 47uF y otro a la salida de 47uF electroliticos. Y a tengo los 5v que necesito para el PIC, con su patilla 5 a negativo y la 14 a 5v. En la patilla 4 coloco una resistencia de 10k y la otra patilla de la resistencia a 5v. He probado tambien con esto mismo, a poner otra resistencia con punto de conexion de la patilla 4 y la resistencia de 10k, de 100R y negativo. Luego la patilla 15 y 16 un cristal de 4,096Mhz y en cada patilla un condensador de 22pF y negativo, como viene en todos los esquemas de este PIC.
Y en la patilla 7 que es RB1 una resistencia de 270R con el diodo led a negativo.

No me pregunteis si el diodo esta bien polarizado o no porque tengo hechos cientos de circuitos electronicos.

Y nada mas, espero vuestra colavoracion.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda en el programa mas simple
« Respuesta #4 en: 14 de Agosto de 2009, 12:58:21 »
En el código no veo el problema, lo único, que si incluyes p16F84.inc ya no es necesario declarar status, trisA,... ya que estos registros, y sus bits está declarados en él. Revisa el siguiente link.

Luego configura los fuses de la siguiente manera, para asegurar que el PIC al alimentarlo espere unos ms en estabilización de la tensión (PWRTE), y asegurarnos que el cristal esta configurado correctamente (XT):
 
__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

En el circuito, procura que el oscilador este lo mas próximo al PIC junto a sus capacitores, asegura las conexiones, y la patita mas corta o la que tiene una muesca en la capsula del led va a negativo o gnd. Si sigue sin funcionar habría que comprobar que realmente se esta grabado el hex en el PIC.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Re: Ayuda en el programa mas simple
« Respuesta #5 en: 14 de Agosto de 2009, 13:57:39 »
Aqui estoy otra vez, otra vez gracias por contestar, les comento que el oscilador lo tengo pegadito al PIC con los condensadores, he vuelto a borrar la PIC y programarla cambiando la configuracion de los fuses por esta,  __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC, lo he vuelto a probar y tampoco se enciende el led.

He comprobado tensiones, y son estas:

palilla 5-14= 4,98v
patilla 4-5  = 4,88v aprx.
patilla 15-5= 2,32v aprx.
patilla 16-5= 0,88v aprx.
patilla 7-5   = 0,03v

y asi todas las del puerto B y puerto A. He cambiado la PIC por otra igual y tampoco funciona. Me tiene desesperado y si esto no funciona, no puedo seguir haciendo otros proyectos.
tengo unas ganas enormes de salir de esta. Muchas gracias por ayudadme.

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Re: Ayuda en el programa mas simple
« Respuesta #6 en: 14 de Agosto de 2009, 14:16:18 »
Por cierto, una duda, cuando haces el programa en el MPLAB y pulsas CTRL+F10, ¿genera el archivo HEX para pasarlo al PIC directamente? o hay que generarlo, por que en la carpeta donde lo guardo, tengo un archivo HEX con el mismo nombre que el asm.

Por que a ver si el archivo que le cargo al pic no es el correcto.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda en el programa mas simple
« Respuesta #7 en: 14 de Agosto de 2009, 14:52:34 »
CTRL+10 :shock: No me acuerdo y no lo tengo instalado  :mrgreen: Pero hay que colocar Build All. Cuando cargas el hex al WinPIC800, si se ve solo FF, entonces no se ha generado correctamente.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Re: Ayuda en el programa mas simple
« Respuesta #8 en: 15 de Agosto de 2009, 05:55:23 »
Gracias suky por contestar.

Cuando cargo el archivo HEX en el winpic800, no aparece 3FFF, sino que aparecen numeros y letras en las primeras lineas.
Lo primero que hago cuando abro el winpic800 es leer el pic, despues lo borro, entonces si aparecen, al volverlo a leer 3FFF, entonces abro la carpeta donde esta el archivo y abro el archivo que supuestamente me ha creado en MPLAB, y lo cargo en la PIC. Termina el proceso correctamente sin errores, cierro el winpic800 lo saco del programador TE20, lo monto en la placa de pruebas y no hace nada.

Algo me falta y no se lo que es.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda en el programa mas simple
« Respuesta #9 en: 15 de Agosto de 2009, 09:26:28 »
Por lo que comentas el Hex parece haberse generado correctamente. Aquí hay un pdf que muestra como hacer un proyecto, compilarlo y simularlo, fíjate capaz encuentras alguna diferencia. Sino, no se que pasa!  :undecided: No me doy cuenta de donde esta el problema  :?

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Re: Ayuda en el programa mas simple
« Respuesta #10 en: 15 de Agosto de 2009, 09:50:09 »
Gracias suky, lo voy a descargar y lo estudiare a ver si encuentro algo que me lo solucione. Gracias

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Re: Ayuda en el programa mas simple
« Respuesta #11 en: 15 de Agosto de 2009, 15:35:19 »
Hola suky, gracias por la informacion que me pasas, me he descargado el PDF, y esta muy bien, lo he estado observando y realizo los mismos pasos que este manual y no encuentro el fallo. He cambiado todos los cables, a las patillas del cristal lo he bañado un poco con estaño por si no hace buen contacto, compruebo las tensiones, y son las mismas. Esto ya me desespera.

Si tienes algun programa que hayas probado en la practica y te ha funcionado, te lo agradeceria que me lo pasaras a esta direccion polanvilla@telefonica.net  y probarlo yo haber si me funciona en mi placa de pruebas, por si es la placa o es el programa. GRACIAS.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda en el programa mas simple
« Respuesta #12 en: 15 de Agosto de 2009, 17:04:21 »
No tengo micro para probarlo, pero seguro que este código funciona:

Código: ASM
  1. ; **** Encabezado ****
  2.  list p=16F84A
  3.  #include P16F84A.inc
  4.  __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
  5. ;**** Definicion de variables ****
  6. Contador1       equ             0x0C
  7. Contador2       equ             0x0D
  8.  
  9.  
  10. ;**** Inicio del Micro ****
  11. Reset          
  12.         org     0x00            ; Aqui comienza el micro.-
  13.         goto    Inicio          ; Salto a inicio de mi programa.-
  14.        
  15. ; **** Programa Principal ****
  16. ;**** Configuracion de puertos ***
  17.         org     0x05            ; Origen del codigo de programa.-
  18. Inicio         
  19.         bsf     STATUS,RP0      ; Pasamos de Banco 0 a Banco 1.-
  20.         bcf     TRISB,0         ; Pin RB0 como salida.-
  21.         bcf     STATUS,RP0      ; Paso del Banco 1 al Banco 0
  22.         bcf     PORTB,0         ; El Led comienza apagado.-
  23. ;**** Control de Led ****
  24. Bucle          
  25.         bsf     PORTB,0         ; Enciende Led
  26.         call    Demora_190ms;
  27.         bcf     PORTB,0         ; Apaga el Led
  28.         call    Demora_190ms;
  29.         goto    Bucle           ;      
  30.        
  31. ;...........................................
  32. ;**** Demora ****
  33. Demora_190ms
  34.         movlw   0xFF                    ;
  35.         movwf   Contador1               ; Iniciamos contador1.-
  36. Repeticion1
  37.         movlw   0xFF                    ;
  38.         movwf   Contador2               ; Iniciamos contador2
  39. Repeticion2
  40.         decfsz  Contador2,1             ; Decrementa Contador2 y si es 0 sale.-        
  41.         goto    Repeticion2             ; Si no es 0 repetimos ciclo.-
  42.         decfsz  Contador1,1             ; Decrementa Contador1.-
  43.         goto    Repeticion1             ; Si no es cero repetimos ciclo.-
  44.         return                          ; Regresa de la subrutina.-
  45.  
  46.         end


Adjunto *.hex.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Re: Ayuda en el programa mas simple
« Respuesta #13 en: 16 de Agosto de 2009, 07:23:24 »
Muchisimas gracias suky, antes de probar tu programa, ya he encontrado el problema, si el programa estaba bien, si el MPLAB me genera bien el HEX, si la conexion estaba bien, las alimentaciones son correctas, solo me quedaba probar los componentes. Y efectivamente el fallo estaba en los componentes, comprobe las resistencias, cambie la PIC, el cristal es nuevo, solo me quedaba los condensadores del oscilador. Asi es que manos a la obra, cogi los condensadores los mire detenidamente la numeracion que ponia en ellos, y dije, me estoy confundiendo de valor. En los condensadores ponia 224Kp, y pense que eran 22pF. Entonces dije, estos condensadores son de 220 como minimo, busque en mi estuche de componentes y encontre unos de 82pF, se los cambie y SORPRESA, ahora si se enciende el led.

Seguidamente le cargue tu programa, que observandolo, vi que era intermitente y efectivamente FUNCIONA. QUE GUAY, ya puedo realizar mas pruebas y montar circuitos que es lo que me gusta y me divierto.

Gracias tios, soys geniales, con vosotros se aprende muchisimo estare siempre en contacto para seguir aprendiendo y echar un cable al que lo necesite.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda en el programa mas simple
« Respuesta #14 en: 16 de Agosto de 2009, 09:50:37 »
 :-/ :-/ Realmente no entendía porque no funcionaba si parecía todo correcto, pero bueno siempre se nos escapan esas pequeñeces. Me alegro que funciones, ahora a recuperar el tiempo perdido  :undecided:

Saludos!
No contesto mensajes privados, las consultas en el foro