Hola buenas noches!!
Un amigo me pidio que le ayudara con un programa:
tiene cuatro leds, estan en el puerto B del pic16f819, cuando inicia el programa se prende el primer led, se espera 20 segundos, se prende el segundo led, se espera 20 segundos, se prende el tercer led, se espera 20 segundos, se prende el cuarto led y ahi se tiene que esperar 3 horas.
Despues de ese tiempo se apaga el primer led, se espera 20 segundos, se apaga el segundo led, se espera 20 segundos, se apaga el tercer led, se espera 20 segundos, se apaga el cuarto led y ahi se tiene que esperar 12 horas y cuando pasa ese tiempo vuele a empezar.
A qui le dejo el codigo de mi programa (el programa en mplab y la simulacion para que vean), algo tiene mal porque en la simulacion en proteus prende bien los 4 leds pero cuando termina el tiempo de las 3 horas (es decir la rutina tiempo) no apaga los leds, los apaga todos y los vuelve a prender.
Ojala puedan decirme que tiene mal y ayudarme para corregirlo, por favor!!!!!
si alguien tiene una mejor opcion y asi evitarme tantos retardos seria muy chido
Código:
list p=16f819
include "p16F819.inc"
CBLOCK 0X20
ENDC
ORG 0X00
goto INICIO
ORG 0X04
INICIO
;MOVLW 0x07
;MOVWF CMCON
BCF STATUS,6
BSF STATUS,5
MOVLW B'1111'
MOVWF TRISA
CLRF TRISB
BCF STATUS,5
BCF STATUS,6
CLRF PORTB
PRENDE
MOVLW B'00010000'
MOVWF PORTB
CALL Retardo_20s
MOVLW B'00110000'
MOVWF PORTB
CALL Retardo_20s
MOVLW B'01110000'
MOVWF PORTB
CALL Retardo_20s
MOVLW B'11110000'
MOVWF PORTB
CALL tiempo ; se espera 3 horas
MOVLW B'11100000'
MOVWF PORTB
CALL Retardo_20s
MOVLW B'11000000'
MOVWF PORTB
CALL Retardo_20s
MOVLW B'10000000'
MOVWF PORTB
CALL Retardo_20s
CLRF PORTB
CALL tiempo2 ; se esper 12 horas
GOTO PRENDE
tiempo2 ;12 horas
call tiempo
call tiempo
call tiempo
call tiempo
return
tiempo ; 3 horas
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
call Retardo_20s
return
INCLUDE <RETARDOS.INC>
end