Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INCLUDE<P16F877A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
ORG
GOTO
ORG
0X00
PORTS
0X05
CONTA_1
CONTA_2
CONTA_3
EQU
EQU
EQU
PORTS
CLRF
BSF
MOVLW
MOVWF
MOVLW
CLRF
BCF
GOTO
CLRF
CLRF
CLRF
CLRF
BTFSS
STATUS
STATUS,5
0X06
ADCON1
0XFF
TRISB
STATUS,5
INICIO
PORTA
PORTB
PORTC
PORTD
PORTA,0
GOTO
CALL
AUN_NO
RETARDO_T
INICIO
AUN_NO
ado?
0X20
0X21
0X22
;PORTA: digital IN
;PORTB: digital OUT
;Entrando al banco 0
pera 2 segundos
MOVLW
B'00111111'
segundos, entonces comienza a girar M1
MOVWF
PORTB
(M1 gira en sentido horario)
CALL
S1
active S1
CLRF
PORTA
S1
BTFSS
PORTA,1
ado?
GOTO
S1
MOVLW
B'00000000'
apaga M1
MOVWF
PORTB
TODAVIA
ado?-E1
BTFSS
PORTD,0
GOTO
MOVLW
MOVWF
CALL
TODAVIA
B'00000001'
PORTD
RETARDO_1T
MOVWF
PORTD
CALL
S2
CLRF
BTFSS
PORTA
PORTA,2
GOTO
BTFSS
S2
PORTD,1
pera 4 segundos
SUBE
active S2
S2
ado?
AUN
ado?--E2
GOTO
MOVLW
AUN
B'00000010'
MOVWF
CALL
PORTD
S3
CLRF
PORTA
BTFSS
PORTA,3
apaga M1
active S3
S3
ado?
GOTO
S3
MOVLW
B'00000111'
mienza a girar M2
MOVWF
PORTC
(M2 gira en sentido horario)
CALL
RETARDO_2T
CALL
S4
CLRF
PORTA
S4
BTFSS
PORTA,4
ado?
GOTO
S4
TAMBIEN
BTFSS
PORTA,5
GOTO
TAMBIEN
GOTO
INICIO
RETARDO_T
movlw
movwf
movlw
movwf
movlw
movwf
nop
decfsz
goto
decfsz
lta si llega a 0
goto
ta_1
decfsz
lta si llega a 0
goto
ta_1
return
.20
CONTA_3
.100
CONTA_2
.250
CONTA_1
RETARDO_1T
.40
CONTA_3
.100
CONTA_2
.250
CONTA_1
movlw
movwf
movlw
movwf
movlw
movwf
nop
decfsz
goto
decfsz
lta si llega a 0
goto
ta_1
decfsz
lta si llega a 0
CONTA_1,1
$-.2
CONTA_2,1
$-.6
CONTA_3,1
$-.10
CONTA_1,1
$-.2
CONTA_2,1
$-.6
CONTA_3,1
; W <- m
; CONTA_3 <- W
; W <-m
; CONTA_2 <- W
; W <- n
;CONTA_1W
;no opera
;CONTA_1CONTA_1-1 y salta si llego a 0
;NO es 0, entonces salta al nop
;SI es 0, entonces CONTA_2CONTA_2 -1 y sa
;No es 0, entonces regresa a cargar con
;SI es 0, entonces CONTA_2CONTA_2 -1 y sa
;No es 0, entonces regresa a cargar con
; W <- m
; CONTA_3 <- W
; W <-m
; CONTA_2 <- W
; W <- n
;CONTA_1W
;no opera
;CONTA_1CONTA_1-1 y salta si llego a 0
;NO es 0, entonces salta al nop
;SI es 0, entonces CONTA_2CONTA_2 -1 y sa
;No es 0, entonces regresa a cargar con
;SI es 0, entonces CONTA_2CONTA_2 -1 y sa
goto
$-.10
ta_1
return
RETARDO_2T
movlw
movwf
movlw
movwf
movlw
movwf
nop
decfsz
goto
decfsz
lta si llega a 0
goto
ta_1
decfsz
lta si llega a 0
goto
ta_1
return
END
.60
CONTA_3
.100
CONTA_2
.250
CONTA_1
CONTA_1,1
$-.2
CONTA_2,1
$-.6
CONTA_3,1
$-.10
; W <- m
; CONTA_3 <- W
; W <-m
; CONTA_2 <- W
; W <- n
;CONTA_1W
;no opera
;CONTA_1CONTA_1-1 y salta si llego a 0
;NO es 0, entonces salta al nop
;SI es 0, entonces CONTA_2CONTA_2 -1 y sa
;No es 0, entonces regresa a cargar con
;SI es 0, entonces CONTA_2CONTA_2 -1 y sa
;No es 0, entonces regresa a cargar con