desktop

Problema de calentamiento del PIC12F629

PIN 1 en voltaje de +5V
PIN 8 en tierra
PIN5,6,7 a los led´s

Le cargue el siguiente programa, que trabaja con oscilador interno, pero no prenden los led,s y también se empieza a calentar. Hay algún error en el programa o en la conecciones que me haga falta? Que me preocupa su calentamiento.

He probado con 3 diferente y tienen la misma reacción....a ninguno he dejado que se caliente demasiado como para dañarlos


LIST P=PIC12F629
#include <P12F629.INC>
ERRORLEVEL -302
__CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &_INTRC_OSC_NOCLKOUT & _MCLRE_OFF


CounterA EQU 0x20
CounterB EQU 0x21
CounterC EQU 0x22

#Define PIN0 GPIO,0 ; Salida 1
#Define PIN1 GPIO,1 ; Salida 2
#Define PIN2 GPIO,2 ; Salida 3



ORG H'0000'
GOTO INICIO

ORG H'0004'
GOTO INICIO


ORG H'0005'

INICIO

call 0x3FF ; acatando reocmendacion de Veguepic
movwf OSCCAL ; acatando reocmendacion de Veguepic

BCF STATUS,RP0
CLRF GPIO
MOVLW 07h
MOVWF CMCON
BSF STATUS,RP0
MOVLW B'11100000'
MOVWF TRISIO ; Instruccion que falta observacion de AKENAFAB
; CALL CALIBRAROSC
; MOVWF OSCCAL
CLRF INTCON
BCF STATUS,RP0
CLRF GPIO

;aca comenzaria tu programa


LOOP
CALL Temp
BSF PIN0
CALL Temp
BCF PIN0
BSF PIN1
CALL Temp
BCF PIN1
BSF PIN2
CALL Temp
BCF PIN2
GOTO LOOP


Temp movlw D'4'
movwf CounterC
movlw D'209'
movwf CounterB
movlw D'255'
movwf CounterA
loop decfsz CounterA,1
goto loop
decfsz CounterB,1
goto loop
decfsz CounterC,1
goto loop
return

; ORG 0X3FF
;CALIBRAROSC
; RETLW 0x78 ;

org 0x3FF ; acatando reocmendacion de Veguepic
retlw 0x20 ; acatando reocmendacion de Veguepic tambien probado con 0x78 comentario de AKENAFAB

end
 
Hola, no creo que sea un problema del programa, le has puesto resistencias limitadoras a los leds?
 
de hecho si son de 330 y tambien he probado con de 1k y 10k y aun asi se calienta. Incluso lo he dejado desconectado de los leds, dejando el puro pic con su voltaje y aun asi se calienta =S


Tambien para ver si no estaban dañados hoy he hido a comprar otros 2 y tambien se calientan.
 
Última edición:
hola como estan, en este momento no puedo cooperar con ustedes pero me gustaria una orientacion hacerca de las interrupt en los pic16f887, disculpen si estoy fuera del tema pero no encuentro como poner un tema. gracias!!!!!!!!!
 
de hecho si son de 330 y tambien he probado con de 1k y 10k y aun asi se calienta. Incluso lo he dejado desconectado de los leds, dejando el puro pic con su voltaje y aun asi se calienta =S


Tambien para ver si no estaban dañados hoy he hido a comprar otros 2 y tambien se calientan.

Queda por mirar lo obvio, algun corto entre pistas o algo similar, por ejemplo, un pin que vos creas que es entrada y esta configurado como salida en nivel logico contrario al nivel fisico del pin.
 
de hecho si era eso, el regulador estaba dañado. Gracias.


Ahora se me presento otro problema le escribí el programa ese tanto en los calentados como e los no calentados y no corre, también el siguiente y tampoco

También he puesto el pin4 a tierra y vcc por si es eso y tampoco así funciona


list P=12f629

#INCLUDE <P12F629.INC>


__CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &_INTRC_OSC_NOCLKOUT & _MCLRE_OFF

#DEFINE PWMR GPIO, 0
#DEFINE PWMA GPIO, 1
#DEFINE PWMV GPIO, 2
#DEFINE RETOMAR 0X30, 0
TMR0AUX EQU 0X20
VALORR EQU 0X21
VALORA EQU 0X22
VALORV EQU 0X23
ROJO EQU 0X24
AZUL EQU 0X25
VERDE EQU 0X26
SIGUI1 EQU 0X27
SIGUI2 EQU 0X28
SIGCOLOR EQU 0X29


ORG 0X00
GOTO INICIO
ORG 0X04

BSF RETOMAR
BCF INTCON, 2
INCFSZ SIGUI1
GOTO NADA
CALL OTROS
NADA BCF INTCON, 2
RETFIE

;INICIO CLRF STATUS
; BSF STATUS, RP0
; CLRF TRISA
; CLRF TRISB
; MOVLW B'10100000'
; MOVWF 0X0B
; MOVLW B'10000101'
; MOVWF OPTION_REG
; BCF STATUS, RP0
; CLRF SIGCOLOR



INICIO CLRF STATUS
BSF STATUS, RP0
MOVLW B'10000101'
MOVWF OPTION_REG
MOVLW B'10100000'
MOVWF INTCON
CLRF PIE1
BCF STATUS, RP0
CLRF PIR1
BSF STATUS, RP0
MOVLW 0XFF
MOVLW PCON
MOVLW 0X80
MOVWF OSCCAL
CLRF WPU
CLRF IOC
CLRF GPIO
BCF STATUS, RP0
CLRF SIGCOLOR

MOVLW D'254'
MOVWF ROJO
MOVWF VALORR
MOVLW D'0'
MOVWF AZUL
MOVWF VALORA
MOVLW D'0'
MOVWF VERDE
MOVWF VALORV
CLRF GPIO
MOVLW D'2'
MOVWF SIGUI2


;SECCION DEL PWM PARA EL COLOR ROJO------------------------------------------------------------

SIGPWMR MOVF TMR0,0
MOVWF TMR0AUX
MOVF VALORR, 0
BTFSC STATUS, Z
GOTO NOROJO
BCF PWMR
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO SIGPWMA
NOROJO BSF PWMR
CLRF VALORR


;SECCION DEL PWM PARA EL COLOR AZUL------------------------------------------------------------


SIGPWMA MOVF VALORA, 0
BTFSC STATUS, Z
GOTO NOAZUL
BCF PWMA
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO SIGPWMV
NOAZUL BSF PWMA
CLRF VALORA

;SECCION DEL PWM PARA EL COLOR VERDE-----------------------------------------------------------


SIGPWMV MOVF VALORV, 0
BTFSC STATUS, Z
GOTO NOVERDE
BCF PWMV
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO RELLENO
NOVERDE BSF PWMV
CLRF VALORV

;SECCION DEL RELLENADO DE COLOR----------------------------------------------------------------

RELLENO BTFSS RETOMAR
GOTO SIGPWMR
MOVF ROJO, 0
MOVWF VALORR
MOVF AZUL, 0
MOVWF VALORA
MOVF VERDE, 0
MOVWF VALORV
BCF RETOMAR
GOTO SIGPWMR

INCLUDE "SECUENCIA.LIB"


ORG 0X3FF
CALIBRAROSC RETLW 0x80 ;calibro oscilador a 4 mhz +- 2%






END



tengo osciloscopio y al checar las terminales todas permanecen apagadas. en cambio con el programa similar pero para el 16f84, corre perfectamente.



__CONFIG _CP_OFF & _WDT_OFF & _HS_OSC & _PWRTE_OFF

list P=16f84A

INCLUDE "P16F84A.INC"


#DEFINE PWMR PORTB, 1
#DEFINE PWMA PORTB, 2
#DEFINE PWMV PORTB, 3
#DEFINE RETOMAR 0X30, 0
TMR0AUX EQU 0X20
VALORR EQU 0X21
VALORA EQU 0X22
VALORV EQU 0X23
ROJO EQU 0X24
AZUL EQU 0X25
VERDE EQU 0X26
SIGUI1 EQU 0X27
SIGUI2 EQU 0X28
SIGCOLOR EQU 0X29

ORG 0X00
GOTO INICIO
ORG 0X04

BSF RETOMAR
BCF INTCON, 2
INCFSZ SIGUI1
GOTO NADA
; DECFSZ SIGUI2
; GOTO NADA
CALL OTROS
NADA BCF INTCON, 2
RETFIE

INICIO CLRF STATUS
BSF STATUS, RP0
CLRF TRISA
CLRF TRISB
MOVLW B'10100000'
MOVWF 0X0B
MOVLW B'10000101'
MOVWF OPTION_REG
BCF STATUS, RP0
CLRF SIGCOLOR

MOVLW D'254'
MOVWF ROJO
MOVWF VALORR
MOVLW D'0'
MOVWF AZUL
MOVWF VALORA
MOVLW D'0'
MOVWF VERDE
MOVWF VALORV
CLRF PORTA
CLRF PORTB
MOVLW D'2'
MOVWF SIGUI2


;SECCION DEL PWM PARA EL COLOR ROJO------------------------------------------------------------

SIGPWMR MOVF TMR0,0
MOVWF TMR0AUX
MOVF VALORR, 0
BTFSC STATUS, Z
GOTO NOROJO
BCF PWMR
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO SIGPWMA
NOROJO BSF PWMR
CLRF VALORR


;SECCION DEL PWM PARA EL COLOR AZUL------------------------------------------------------------


SIGPWMA MOVF VALORA, 0
BTFSC STATUS, Z
GOTO NOAZUL
BCF PWMA
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO SIGPWMV
NOAZUL BSF PWMA
CLRF VALORA

;SECCION DEL PWM PARA EL COLOR VERDE-----------------------------------------------------------


SIGPWMV MOVF VALORV, 0
BTFSC STATUS, Z
GOTO NOVERDE
BCF PWMV
XORWF TMR0AUX, 0
BTFSS STATUS, Z
GOTO RELLENO
NOVERDE BSF PWMV
CLRF VALORV

;SECCION DEL RELLENADO DE COLOR----------------------------------------------------------------

RELLENO BTFSS RETOMAR
GOTO SIGPWMR
MOVF ROJO, 0
MOVWF VALORR
MOVF AZUL, 0
MOVWF VALORA
MOVF VERDE, 0
MOVWF VALORV
BCF RETOMAR
GOTO SIGPWMR

INCLUDE "SECUENCIA.LIB"


END


alguien sabe que me esta fallando e la configuración o en la programación??

hola como estan, en este momento no puedo cooperar con ustedes pero me gustaria una orientacion hacerca de las interrupt en los pic16f887, disculpen si estoy fuera del tema pero no encuentro como poner un tema. gracias!!!!!!!!!

mira de ese desconozco como puedes ver batallo con los "sencillos" pero para poder poner un nuevo tema en la lista de los temas arriba a la izquierda hay un botón que dice nuevo tema.....dale ahí y listo, espero poderte haber ayudado con eso mínimo =)
 
Última edición:
Atrás
Arriba