#include<P16f877.inc>
LIST p=16F877
errorlevel 1,-302 ;to disable MPLAB bank warnings.
cblock 0x20 ;start of general purpose registers
count1 ;used in delay routine
counta ;used in delay routine
countb ;used in delay routine
endc
org 0
bsf STATUS,5
movlw 00h
movwf TRISB
movwf TRISC
movwf TRISD
bcf STATUS,5
LED
movlw b'00000001' ; red on
movwf PORTB
call Delay
call Delay
movlw b'00000000' ; red oFF
movwf PORTB
movlw b'00000001'; yellow on
movwf PORTC
call Delay
movlw b'00000000' ; yellow off
movwf PORTC
movlw b'00000001'; green on
movwf PORTD
call Delay
movlw b'00000000' ; green off
movwf PORTD
goto LED
Delay movlw d'500' ;delay 500 ms (20 MHz clock)
movwf count1
d1 movlw 0xC7
movwf counta
movlw 0x01
movwf countb
Delay_0
decfsz counta, f
goto $+2
decfsz countb, f
goto Delay_0
decfsz count1 ,f
goto d1
retlw 0x00
;********************************************************
; END of control processing
;********************************************************
end