list p=16f877A ; list directive to define processor
#include <p16f877A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
CBLOCK 0x0C
FIRST
SECOND
THIRD
ENDC
ORG 0x000
goto main ; go to beginning of program
ORG 0x004
; isr code can go here
main
BANKSEL TRISC
MOVLW 0x00
MOVWF TRISC
BANKSEL PORTC
FORWARD:
MOVLW B'00000001'
MOVWF PORTC
CALL DELAY
MOVLW B'00000000'
MOVWF PORTC
CALL DELAY
GOTO FORWARD
DELAY ; 1 second delay
MOVLW .10
MOVWF THIRD
LOOP_1_SEC:
MOVLW .250
MOVWF SECOND
LOOP_125_MS:
MOVLW .250
MOVWF FIRST
LOOP_.5_MS:
NOP
DECFSZ FIRST,F
GOTO LOOP_.5_MS
DECFSZ SECOND,F
GOTO LOOP_125_MS
DECFSZ THIRD,F
GOTO LOOP_1_SEC
return
END