LIST P=16F84A
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
#include "p16F84A.inc"
#DEFINE Banco0 bcf STATUS,RP0
#DEFINE Banco1 bsf STATUS,RP0
#DEFINE Salida PORTB,1
#DEFINE Salida1 PORTB,0
cblock 0x25
Contador
Contador1
Contador2
Contador3
Contador4
Contador5
Contador6
Contador7
Dato
Dato1
Dato2
endc
org 0
goto inicio
Retardo
movwf Dato
Brinca
decfsz Dato,f
goto Brinca1
return
Brinca1
call Retardo1
goto Brinca
Retardo1
movlw .2
movwf Dato1
ciclo4
movlw .28
movwf Dato2
decfsz Dato1,f
goto ciclo3
nop
nop
return
ciclo3
decfsz Dato2,f
goto ciclo3
goto ciclo4
inicio
Banco1
clrf TRISB
movlw b'00001111'
movwf TRISA
Banco0
movlw .25
movwf Contador
movlw .20
movwf Contador2
movwf Dato
movwf Dato1
movwf Dato2
movlw .160
movwf Contador3
movwf Contador1
movlw .0
Servo0
btfss PORTA,1
goto Servo0.1
call Retardo_500ms
incf Contador
decf Contador1
goto Servo0.2
Servo0.1
btfss PORTA,0
goto Servo0.2
call Retardo_500ms
decf Contador
incf Contador1
goto Servo0.2
Servo0.2
movfw Contador
bsf Salida
call Retardo
movfw Contador1
bcf Salida
call Retardo
goto Servo1
Servo1
btfss PORTA,2
goto Servo1.1
call Retardo_500ms
incf Contador2
decf Contador3
goto Servo1.2
Servo1.1
btfss PORTA,3
goto Servo1.2
call Retardo_500ms
decf Contador2
incf Contador3
goto Servo1.2
Servo1.2
movfw Contador2
bsf Salida1
call Retardo
movfw Contador3
bcf Salida1
call Retardo
goto Servo0
INCLUDE <RETARDOS.INC>
end