Escolar Documentos
Profissional Documentos
Cultura Documentos
include<P16F877A.inc>
;DECLARACION DE FUSIBLES
__CONFIG _XT_OSC & _CP_OFF & _WDT_OFF & _PWRTE_ON
;ETIQUETAS
CONTA_3
CONTA_2
CONTA_1
CONTA_10
CONTA_5
EQU
EQU
EQU
EQU
EQU
0X20
0X21
0X22
0X23
0X24
;INICIO DE PROGRAMA
ORG 0
GOTO INICIO
ORG 5
INICIO
ELECCION
AUTOMATICO
BSF STATUS,5
MOVLW 0X06
MOVWF ADCON1
MOVLW 0XFF
MOVWF TRISA
CLRF TRISB
BCF STATUS,5
CLRF PORTA
CLRF PORTB
BTFSC PORTA,4
GOTO AUTOMATICO
GOTO MANUAL
MOVLW B'00000101'
MOVWF PORTB
CALL RETARDOF
MOVLW B'00000001'
MOVWF PORTB
CALL RETARDO_I
MOVLW B'00000101'
MOVWF PORTB
CALL RETARDOF
MOVLW B'00000100'
MOVWF PORTB
CALL RETARDO_I
MOVLW B'00000101'
MOVWF PORTB
CALL RETARDOF
MOVLW B'00001010'
MOVWF PORTB
CALL RETARDOB
CLRF PORTB
MANUAL
CLRF PORTA
CLRF PORTB
AVANCE
BTFSS PORTA,0
GOTO DERECHA
GOTO F_ACT_FWD
DERECHA
IZQUIERDA
ATRAS
BTFSS PORTA,1
GOTO IZQUIERDA
GOTO D_ACT_DER
BTFSS
PORTA,2
GOTO
ATRAS
GOTO
I_ACT_IZQ
BTFSS
GOTO
GOTO
PORTA,3
MANUAL
B_ACT_ATRAS
F_ACT_FWD
MOVLW
B'00000101'
orario)giran de manera que el carro avanza
MOVWF
PORTB
BTFSS
PORTA,4
GOTO
SIGUE_FWD
GOTO
AUTOMATICO
SIGUE_FWD
BTFSC
PORTA,0
GOTO
F_ACT_FWD
GOTO
MANUAL
B_ACT_ATRAS
SIGUE_ATRAS
D_ACT_DER
MOVLW
MOVWF
BTFSS
GOTO
GOTO
BTFSC
GOTO
GOTO
B'00001010'
PORTB
PORTA,4
SIGUE_ATRAS
AUTOMATICO
PORTA,3
B_ACT_ATRAS
MANUAL
MOVLW
MOVWF
BTFSS
B'00000001'
PORTB
PORTA,4
GOTO
GOTO
BTFSC
SIGUE_DER
AUTOMATICO
PORTA,1
;NO
;SI
;Esta desactivado el modo de
GOTO
GOTO
D_ACT_DER
MANUAL
atico?
SIGUE_DER
recha?
I_ACT_IZQ
MOVLW
B'00000100'
el carro rota haia la izquierda
MOVWF
PORTB
BTFSS
PORTA,4
atico?
GOTO
SIGUE_IZQ
GOTO
AUTOMATICO
SIGUE_IZQ
BTFSC
PORTA,2
quierda
GOTO
I_ACT_IZQ
GOTO
MANUAL
RETARDOB
MOVLW
MOVWF
MOVLW
MOVWF
movlw
movwf
d'10'
CONTA_10
d'5'
CONTA_5
d'10'
CONTA_3
movlw
movwf
movlw
movwf
nop
decfsz
d'100'
CONTA_2
d'250'
CONTA_1
goto
decfsz
goto
decfsz
goto
DECFSZ
GOTO
DECFSZ
GOTO
return
$-.2
CONTA_2,F
$-.6
CONTA_3,F
$-.10
CONTA_5,F
$-.14
CONTA_10,F
$-.18
MOVLW
MOVWF
movlw
movwf
movlw
movwf
movlw
movwf
nop
decfsz
goto
decfsz
goto
decfsz
goto
DECFSZ
goto
return
d'5'
CONTA_5
d'10'
CONTA_3
d'100'
CONTA_2
d'250'
CONTA_1
movlw
movwf
movlw
movwf
movlw
movwf
nop
decfsz
goto
decfsz
goto
decfsz
goto
return
END
d'10'
CONTA_3
d'100'
CONTA_2
d'250'
CONTA_1
CONTA_1,F
a si llega a cero
RETARDOF
RETARDO_I
CONTA_1,F
$-.2
CONTA_2,F
$-.6
CONTA_3,F
$-.10
CONTA_5,F
$-.14
CONTA_1,F
$-.2
CONTA_2,F
$-.6
CONTA_3,F
$-.10
;no opera
;CONTA_1<-CONTA_1 - 1 y salt