; Blue2 Project
LIST P=18F1320
#include <P18F1320.INC>
CONFIG OSC=INTIO2,LVP=OFF,WDT=OFF
cblock 0x01
d1,d2,d3
endc
org 0x0000
Main clrf LATB ;clear output latch
movlw 0x7f
movwf ADCON1 ;set port b for digital inputs
bcf INTCON2,RBPU ;turn on soft pullups
movlw 0x02 ;make sure osc is set
movwf OSCCON
BURP btfss PORTB,RB0 ;check for button #1 pressed
call BUTT1
btfss PORTB,RB2 ;check for button #2 pressed
call BUTT2
btfss PORTB,RB5 ;check for button #3 pressed
call BUTT3
goto BURP
L1
LED1 bcf TRISA,0 ;RA0 output
bcf TRISA,6 ;RA6 output
bsf TRISA,7 ;RA7 tristate (open)
bsf LATA,0 ;RA6 High (5V)
bcf LATA,6 ;RA7 Low (GND)
call DubDelay
return
L2
LED2 bcf TRISA,0 ;RA0 output
bcf TRISA,6 ;RA6 output
bsf TRISA,7 ;RA7 tristate (open)
bcf LATA,0 ;RA6 Low (GND)
bsf LATA,6 ;RA7 High (5V)
call DubDelay
return
L3
LED3 bsf TRISA,0 ;RA0 tristate (open)
bcf TRISA,6 ;RA6 output
bcf TRISA,7 ;RA7 output
bsf LATA,6 ;RA6 High (5V)
bcf LATA,7 ;RA7 Low (GND)
call DubDelay
return
L4
LED4 bsf TRISA,0 ;RA0 tristate (open)
bcf TRISA,6 ;RA6 output
bcf TRISA,7 ;RA7 output
bcf LATA,6 ;RA6 Low (GND)
bsf LATA,7 ;RA7 High (5V)
call DubDelay
return
L5
LED5 bcf TRISA,0 ;RA0 output
bsf TRISA,6 ;RA6 tristate (open)
bcf TRISA,7 ;RA7 output
bcf LATA,0 ;RA0 Low (GND)
bsf LATA,7 ;RA7 High (5V)
call DubDelay
return
L6
LED6 bcf TRISA,0 ;RA0 output
bsf TRISA,6 ;RA6 tristate (open)
bcf TRISA,7 ;RA7 output
bsf LATA,0 ;RA7 High (5V)
bcf LATA,7 ;RA6 Low (GND)
call DubDelay
return
;bra LED1 ;repeat
bra Main
;***********************************
DubDelay
movlw 0x50
movwf d1
movlw 0x50
movwf d2
Del_1 decfsz d1, f
goto $+4
decfsz d2, f
goto Del_1
goto $+2
nop
return
BUTT1 movlw 0x03
movwf d3
B11 call L1
call L2
call L3
call L4
call L5
call L6
decfsz d3, f
goto B11
bsf TRISA,0
bsf TRISA,6
bsf TRISA,7
return
BUTT2 movlw 0x03
movwf d3
B22 call L1
call L2
call L3
call L4
call L5
call L6
call L5
call L4
call L3
call L2
decfsz d3, f
goto B22
bsf TRISA,0
bsf TRISA,6
bsf TRISA,7
return
BUTT3 movlw 0x03
movwf d3
B33 call L3
call L4
decfsz d3, f
goto B33
bsf TRISA,0
bsf TRISA,6
bsf TRISA,7
movlw 0x03
movwf d3
B34 call L2
call L5
decfsz d3, f
goto B34
bsf TRISA,0
bsf TRISA,6
bsf TRISA,7
movlw 0x03
movwf d3
B35 call L1
call L6
decfsz d3, f
goto B35
bsf TRISA,0
bsf TRISA,6
bsf TRISA,7
return
end