Hola. Tengo un problema con dicho PIC, cada pocos segundos se reinicia sin ninguna razón real para ello que pueda ver.
En el esquemático muestro como lo tengo montado (siento que esté un poco chapucero pero creo que en todo caso se entiende y me salía más rápido ponerlo con el Paint, es el archivo contador7.jpg).
Por otra parte yo entiendo que el código está bien:
#include <p16F877.inc>
LIST p=16F877 ;Tipo de PIC
;**************************************************************
;Define la posición del resultado
CONTADOR EQU 0x22
;************************************************************
ORG 00 ;Comando que indica al Ensamblador
;la dirección de la memoria de programa
;donde situar la siguiente instrucción
;**************************************************************
BANKSEL ADCON1
MOVLW 0x06
MOVWF ADCON1
MOVLW 0x10
MOVWF TRISA
MOVLW 0x00
MOVWF TRISC
BANKSEL PORTA
CLRF PORTA
CLRF PORTC
MOVLW 0x3F
MOVWF PORTC
INICIO CLRF CONTADOR
P1 BTFSC PORTA,4
GOTO P1
P0 BTFSS PORTA,4
GOTO P0
INCF CONTADOR,F
MOVLW 0xA
SUBWF CONTADOR,W
BTFSC STATUS,C
CLRF CONTADOR
MOVF CONTADOR,W
CALL CD7SEG
MOVWF PORTC
GOTO P1
CD7SEG ADDWF PCL,F
RETLW B'00000110'
RETLW B'01011011'
RETLW B'01001111'
RETLW B'01100110'
RETLW B'01101101'
RETLW B'01111100'
RETLW B'00000111'
RETLW B'01111111'
RETLW B'01100111'
RETLW B'00111111'
END
Y los bits de configuración entiendo que también (se muestran en bitsconfig):
Sin embargo a los 5 segundos o así de la primera pulsación el "0" se vuelve a poner en el display 7 segmentos.
Lo peor es que no puedo poner el PIC en depuración.
¿Alguien ve dónde puede estar el fallo? ¿O quizás el PIC está estropeado?
Muchas gracias por la atención.
En el esquemático muestro como lo tengo montado (siento que esté un poco chapucero pero creo que en todo caso se entiende y me salía más rápido ponerlo con el Paint, es el archivo contador7.jpg).
Por otra parte yo entiendo que el código está bien:
#include <p16F877.inc>
LIST p=16F877 ;Tipo de PIC
;**************************************************************
;Define la posición del resultado
CONTADOR EQU 0x22
;************************************************************
ORG 00 ;Comando que indica al Ensamblador
;la dirección de la memoria de programa
;donde situar la siguiente instrucción
;**************************************************************
BANKSEL ADCON1
MOVLW 0x06
MOVWF ADCON1
MOVLW 0x10
MOVWF TRISA
MOVLW 0x00
MOVWF TRISC
BANKSEL PORTA
CLRF PORTA
CLRF PORTC
MOVLW 0x3F
MOVWF PORTC
INICIO CLRF CONTADOR
P1 BTFSC PORTA,4
GOTO P1
P0 BTFSS PORTA,4
GOTO P0
INCF CONTADOR,F
MOVLW 0xA
SUBWF CONTADOR,W
BTFSC STATUS,C
CLRF CONTADOR
MOVF CONTADOR,W
CALL CD7SEG
MOVWF PORTC
GOTO P1
CD7SEG ADDWF PCL,F
RETLW B'00000110'
RETLW B'01011011'
RETLW B'01001111'
RETLW B'01100110'
RETLW B'01101101'
RETLW B'01111100'
RETLW B'00000111'
RETLW B'01111111'
RETLW B'01100111'
RETLW B'00111111'
END
Y los bits de configuración entiendo que también (se muestran en bitsconfig):
Sin embargo a los 5 segundos o así de la primera pulsación el "0" se vuelve a poner en el display 7 segmentos.
Lo peor es que no puedo poner el PIC en depuración.
¿Alguien ve dónde puede estar el fallo? ¿O quizás el PIC está estropeado?
Muchas gracias por la atención.