Autor Tema: Problemas con el PIC16F628  (Leído 2900 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado wharata

  • PIC10
  • *
  • Mensajes: 4
Problemas con el PIC16F628
« en: 21 de Mayo de 2009, 21:38:30 »
Hola Amigos, estoy comenzando a programar el PIC16F628, pero en lo más básico como es encender un led no puedo hacerlo funcionar, ya he probado mil alternativas, de lenguaje, con el programador, cambié de PIC por si estaba fallado el que usaba y no logro que funcione mi pequeño programa, lo curioso es que he usado el simulador de MPLAB verificando paso a paso el funcionamiento y en teoría funciona, pero como siempre pasa, la teoría no es igual a la práctica, se que esto es muy tonto para Uds., pero quisiera de ser posible si alguien pudiera darme una mano y talves pueda orientarme en donde esta mi falla.
La idea del software es hacer parpadear un led a 1Hz por el bit 0 del PORTA, el software que desarrolle es este:

;Primer proyecto después de mucho tiempo, voy a hacer parpadear un led a una
;frecuencia de 1Hz
      list   p=16f628
      errorlevel 1, -302
;Declaración de registros
status      equ   0x03
cmcon      equ   0x1f
trisa      equ    0x85
trisb      equ   0x86
porta      equ   0x05
;Declaración de variables
tiempo0      equ   0x20      ;en estos registros, se almacenan los tiempos de espera
tiempo1      equ   0x21
tiempo2      equ   0x22
;Declaración de bits
rp0      equ   5
rp1      equ   6
ra0      equ   0
;Inicio
      org   0
      
      movlw   0x07
      movwf   cmcon      ;apaga los comparadores, configura puertos como I/O
      bsf   status,   rp0   ;selecciona bank 1
      bcf   status,   rp1
      clrf   trisa      ;configura todos los bits del puerto A como salida
      movlw   0x01
      movwf   trisb      ;configura bit1 del puerto B como entrada, los demas como salida
;Rutina Oscilador
      bcf   status,   rp0   ;selecciona bank 0
led      bsf   porta,   ra0   ;enciende led
loop3      movlw   0x03
      movwf   tiempo2
loop2      movlw   0xfe
      movwf   tiempo1
loop1      movlw   0xda
      movwf   tiempo0
loop0      decfsz   tiempo0,1      
      goto   loop0      ;salta hasta que transcurran 659µSeg.
      decfsz   tiempo1,1
      goto   loop1      ;salta hasta que transcurran 167mSeg.
      decfsz   tiempo2,1
      goto   loop2      ;salta hasta que transcurran 501mSeg.
      btfss   porta,   ra0   ;verifica si el led esta apagado o encendido
      goto   led      ;esta apagado, va a encenderlo
      bcf   porta,   ra0   ;apaga led
      goto   loop3
      
      end

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas con el PIC16F628
« Respuesta #1 en: 21 de Mayo de 2009, 21:50:43 »
Muestranos como estas configurando los fuses del microcontrolador y como lo estas aplicando en el hardware. Aquí puedes ver varios ejemplos en asm para este PIC.
No contesto mensajes privados, las consultas en el foro

Desconectado wharata

  • PIC10
  • *
  • Mensajes: 4
Re: Problemas con el PIC16F628
« Respuesta #2 en: 21 de Mayo de 2009, 22:09:16 »
Muchisimas gracias Suky por tu rapidísima respuesta, bueno, te informo como tengo configuados los Fuses ahora en el programador:
OSC: INTRC/IO
WATCHDOG: OFF
POWER-UP TIMER: ON
RESET: INT
BROWN OUT: OFF
DATA EE MEMORY CODE PROTECTION: OFF
LOW VOLTAGE PROGRAMMING: ON

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Problemas con el PIC16F628
« Respuesta #3 en: 21 de Mayo de 2009, 22:57:02 »
por que el low voltage programming? los osciladores internos suelen ser mas mañosos, proba con uno externo primero hasta que te funcione.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado wharata

  • PIC10
  • *
  • Mensajes: 4
Re: Problemas con el PIC16F628
« Respuesta #4 en: 22 de Mayo de 2009, 00:34:27 »
Gracias Gente!!!, resuelto el problema después de lidiar un par de dias, 2 pasos tuve que ejecutar, como primera medida seguí la sugerencia de Bruno y desactivé Low Voltage Programming, y como segunda y no menos importante tuve que colocarle una resistencia a +V al pin 4 (MCLR), probé el fuse tanto activado como desactivado y la resistencia fue necesaria en ambos casos.
Gracias nuevamente, seguiré aprendiendo.
Saludos

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Problemas con el PIC16F628
« Respuesta #5 en: 22 de Mayo de 2009, 00:47:59 »
 :shock: Ahh joer! Habiamos asumido que estabas con una resistencia en MCLR, sino el uC se resetea constantemente y nada sucede. No se ese micro permite deshabilitar el MCLR.

En fin, felicitaciones!.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything