Ola!!! Estoy intentando hacer un programa para el pic12f629. El programa consiste en lo siguiente. Cuando pulso el interruptor me ponga a 1 el pin GPIO 0 y me encienda el motor haciendo intervalos entre encendido y apagado y asi sucesivamente hasta que lo suelte.
El problema es que cuando lo pulso no sucede nada y cuando lo suelto pasa lo mismo
Esquema:
Programa:
LIST P=12F629
#INCLUDE <P12F629.INC>
RADIX HEX
;VARIABLES//====================================================
CONTADOR1 EQU 0X0C
;PROGRAMA//====================================================
ORG 0
GOTO INICIO
ORG 5
TEMPO MOVWF CONTADOR1
BORRAR1 CLRF TMR0
REPETIR1 BTFSS TMR0,7
GOTO REPETIR1
DECFSZ CONTADOR1,1
GOTO BORRAR1
RETURN
INICIO MOVLW B'00000111'
MOVWF CMCON
BSF STATUS,RP0
BSF TRISIO,0
BCF TRISIO,2
MOVLW B'00000111'
MOVWF OPTION_REG
BCF STATUS,RP0
COMPROBAR BTFSC GPIO,0
GOTO CICLO
GOTO COMPROBAR
CICLO BSF GPIO,1
MOVLW .15
CALL TEMPO
BCF GPIO,0
MOVLW .8
CALL TEMPO
GOTO COMPROBAR
END
El problema es que cuando lo pulso no sucede nada y cuando lo suelto pasa lo mismo
Esquema:
Programa:
LIST P=12F629
#INCLUDE <P12F629.INC>
RADIX HEX
;VARIABLES//====================================================
CONTADOR1 EQU 0X0C
;PROGRAMA//====================================================
ORG 0
GOTO INICIO
ORG 5
TEMPO MOVWF CONTADOR1
BORRAR1 CLRF TMR0
REPETIR1 BTFSS TMR0,7
GOTO REPETIR1
DECFSZ CONTADOR1,1
GOTO BORRAR1
RETURN
INICIO MOVLW B'00000111'
MOVWF CMCON
BSF STATUS,RP0
BSF TRISIO,0
BCF TRISIO,2
MOVLW B'00000111'
MOVWF OPTION_REG
BCF STATUS,RP0
COMPROBAR BTFSC GPIO,0
GOTO CICLO
GOTO COMPROBAR
CICLO BSF GPIO,1
MOVLW .15
CALL TEMPO
BCF GPIO,0
MOVLW .8
CALL TEMPO
GOTO COMPROBAR
END
Última edición: