Conmutador de dos botones, Pic16f877

#1
BUENO LO Q HACE ESTE PROGRAMA...... TOMA el valor de dos pulsadores en el puerto b
y prende o apaga el puerto A el RA0............ bueno no logro hacer q el progrma corra en mplab dice q q el ptach exedio los 62 caracteres y no se como solucionra esto
espero q me ayuden les dejo el programa xacias de ante mano.........
pd me salen un monton de warnings pero tal ves sea por eso...........

List P=16f877A ; tipo de microcontrolador
#INCLUDE <P16F877A.inc> ; archivo de definicioneS
__CONFIG 0x3F71
PDel0 EQU 0x70
PDel1 EQU 0x71
CONF_ADCON1 EQU b'00000110' ; configura portA como E/S DIGITAL
ORG 0x000 ; origen de programacion
GOTO INICIO
;---------------------------------------------------------------
; RETARDO DE 20 MS
;---------------------------------------------------------------
RET_20ms movlw .21
movwf PDel0
Ploop1 movlw .237
movwf PDel1
Ploop2 clrwdt
decfsz PDel1, 1
goto Ploop2
decfsz PDel0, 1
goto Ploop1
PDelL1 goto PDelL2
PDelL2 clrwdt
return
;---------------------------------------------------------------
; Programa Principal
;---------------------------------------------------------------
INICIO
bsf STATUS,RP0 ;Ir al banco1
bcf STATUS,RP1
movlw CONF_ADCON1 ;Conf. PuertoA como digital
movwf ADCON1
movlw 0xFF ;Conf. PortB como entrada
movwf TRISB
movlw 0x00 ;Conf PortA como salida
movwf TRISA
bcf STATUS,RP0 ;Ir al Banco0
bcf STATUS,RP1
TEST_0
BTFSC PORTB,0 ; comprueba si RBO=0
GOTO TEST_1 ; si RBO=1 comprueba a comprobar RB1
CALL RET_20ms ; si RBO=O (pulsado) llama a un retardo.
BTFSC PORTB,0 ; comprueba de q RBO=0 si no HUBO ERROR
GOTO TEST_0
SUELTA_0
BTFSS PORTB,0 ; comprueba si RBO=1 (si se solto)
GOTO SUELTA_0 ; no SOLTARON (RBO=0) sigue en bucle
GOTO CONMUTA ; va a prender o apagar el foco
TEST_1
BTFSC PORTB,1 ; comprueba si RB1=0
GOTO TEST_0 ; si RB1=1 comprueba a comprobar RB1
CALL RET_20ms ; si RB1=O (pulsado) llama a un retardo.
BTFSC PORTB,0 ; comprueba de q RB1=0 si no HUBO ERROR
GOTO TEST_1
SUELTA_1
BTFSS PORTB,1 ; comprueba si RBO=1 (si se solto)
GOTO SUELTA_1 ; no SOLTARON (RBO=0) sigue en bucle
GOTO CONMUTA ; va a prender o apagar el foco
CONMUTA
BTFSS PORTA,0
GOTO ON
GOTO OFF
ON
bsf PORTA,0
GOTO TEST_0
OFF
bcf PORTA,0
GOTO TEST_0
END
 
#2
Es por la dirección donde se encuentra el archivo, hay que ubicarlo en una dirección mas cercana a la raiz del disco, por ejemplo C:\conmutador
 
#3
che muchas gracias ya lo compile......... ya estare subiendo mi proyecto para q lo esten viendo los compañeros del foros xcias por la ayuda.........
 

Temas similares

Arriba