| |
;=============================================================================
;Traffic lights PIC demo. JDC1999.
;=============================================================================
;
; Winks 3 coloured LEDs in Traffic light sequence.
;
;
;=============================================================================
;load in predefined register/data equates
MACLIB "P16F8X.INC"
;=============================================================================
;setup the PIC
DEVICE PIC16F84
DEVICE RC_OSC
DEVICE WDT_OFF
DEVICE PWRT_ON
DEVICE PROTECT_OFF
;=============================================================================
;set to start of ram
ORG 0CH
;pause vars
C1 DS 1
C2 DS 1
C3 DS 1
;=============================================================================
;setup reset vector
ORG 0
JMP START
ORG 5
RETW 'TRAFFIC'
;=============================================================================
START
MOV PORTB,#0 ;start with all leds off
SETB RP0 ;set register page 1
MOV TRISB,#0 ;set portb to all outputs
CLRB RP0 ;set register page 0
MAINLOOP
MOV PORTB,#01B ;RED=Stop!
CALL PAUSE
CALL PAUSE
CALL PAUSE
CALL PAUSE
MOV PORTB,#11B ;Amber
CALL PAUSE
MOV PORTB,#100B ;Green=Go!
CALL PAUSE
CALL PAUSE
CALL PAUSE
CALL PAUSE
MOV PORTB,#10B ;Amber
CALL PAUSE
JMP MAINLOOP ;do it forever
;=============================================================================
;pause for about a second
PAUSE
MOV C3,#4
CLR C2
CLR C1
PAUSELOOP
NOP
DJNZ C1,PAUSELOOP
DJNZ C2,PAUSELOOP
RET
;=============================================================================
;THEND
;=============================================================================
|
|