;16F628
;DEVICE 16F628
LIST P=16F628,
#INCLUDE P16F628.inc
RP1 EQU 0x06
RP0 EQU 0x05
PORTA EQU 0x05
PORTB EQU 0x06
STATUS EQU 0x03
TRISA EQU 0x85
TRISB EQU 0x86
PC EQU 0X02
C1 EQU 0X30
C2 EQU 0X31
C3 EQU 0X32
C4 EQU 0X33
C5 EQU 0X34
C6 EQU 0X35
C7 EQU 0X36
C8 EQU 0X37
;PORT SETUP
SETUP
BSF STATUS, RP0
MOVLW 0xff ;PORTA RA0-RA7 INPUTS
MOVWF TRISA
MOVLW 0x00
MOVWF TRISB ;PORTB ALL OUTPUTS
BCF STATUS, RP1
NOP
NOP
CLRF PORTA
CLRF PORTB
MOVLW D'255'
MOVWF 0x30
MOVLW D'200'
MOVWF 0x31
MOVLW D'150'
MOVWF 0x32
MOVLW D'100'
MOVWF 0x33
MOVLW D'75'
MOVWF 0x34
MOVLW D'50'
MOVWF 0x35
MOVLW D'25'
MOVWF 0x36
MOVLW D'13'
MOVWF 0x37
MAIN
MOVF PORTA, 0 ; move porta into W
btfsc PORTA,0
goto Routine0
btfsc PORTA,1
goto Routine1
btfsc PORTA,2
goto Routine2
btfsc PORTA,3
goto Routine3
btfsc PORTA,4
goto Routine4
btfsc PORTA,5
goto Routine5
btfsc PORTA,6
goto Routine6
btfsc PORTA,7
goto Routine7
goto MAIN
Routine0
bsf PORTB,0
LOOP decfsz C1,1
GOTO LOOP
bcf PORTB,0
GOTO MAIN
Routine1
bsf PORTB,1
LOOP1 decfsz C2,1
GOTO LOOP1
bcf PORTB,1
GOTO MAIN
Routine2
bsf PORTB,2
LOOP2 decfsz C3,1
GOTO LOOP2
bcf PORTB,2
GOTO MAIN
Routine3
bsf PORTB,3
LOOP3 decfsz C4,1
GOTO LOOP3
bcf PORTB,3
GOTO MAIN
Routine4
bsf PORTB,4
LOOP4 decfsz C5,1
GOTO LOOP4
bcf PORTB,4
GOTO MAIN
Routine5
bsf PORTB,5
LOOP5 decfsz C6,1
GOTO LOOP5
bcf PORTB,5
GOTO MAIN
Routine6
bsf PORTB,6
LOOP6 decfsz C7,1
GOTO LOOP6
bcf PORTB,6
GOTO MAIN
Routine7
bsf PORTB,7
LOOP7 decfsz C2,1
GOTO LOOP7
bcf PORTB,7
GOTO MAIN
END