thrix
- 17th February 2004, 23:44
hi all... i manage to program my led matrix with the following code. is there any way to make it simpler?
I VAR WORD 'DELAY FOR ALL COLUMN DISPLAY
J VAR WORD 'DELAY FOR SHIFT LEFT NO 1 DISPLAY
K VAR WORD 'DELAY FOR SHIFT LEFT NO 2 DISPLAY
L VAR WORD 'DELAY FOR SHIFT LEFT NO 3 DISPLAY
M VAR WORD 'DELAY FOR SHIFT LEFT NO 4 DISPLAY
N VAR WORD 'DELAY FOR SHIFT LEFT NO 5 DISPLAY
TRISA = 255
TRISB = 0
MAIN:
FOR I = 0 TO 25
GOTO LOOP
loop:
' DISPLAYING AT ALL COLUMN
PORTB = $7F ''''''''''''''''''
LOW PORTA.4 ' END POINT '
PAUSE 3 ' '
HIGH PORTA.4 ''''''''''''''''''
PORTB = $8
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
PORTB = $8
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
PORTB = $8
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $7F 'STARTING POINT
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
NEXT
'SHIFT NO 1 TO LEFT
FOR J = 0 TO 25
PORTB = $8
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
PORTB = $8
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $8
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
PORTB = $7F 'END POINT
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
NEXT
'SHIFT LEFT NO 2
FOR K = 0 TO 25
PORTB = $8
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
PORTB = $8
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $7F ' END POINT
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
' --------------> ' COLUMN 3 IS HIGH
PORTB = $7F ' STARTING POINT
LOW PORTA.4
PAUSE 3
HIGH PORTA.4
NEXT
'SHIFT LEFT NO 3
FOR L = 0 TO 25
PORTB = $8
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
PORTB = $7F 'END POINT
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $7F ' STARTING POINT
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
PORTB = $8
LOW PORTA.4
PAUSE 3
HIGH PORTA.4
NEXT
'SHIFT LEFT NO 4
FOR M = 0 TO 25
PORTB = $7F 'END POINT
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
PORTB = $7F ' STARTTING POINT
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
PORTB = $8
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
PORTB = $8
LOW PORTA.4
PAUSE 3
HIGH PORTA.4
NEXT
'SHIFT LEFT NO 5
FOR N = 0 TO 25
PORTB = $7F 'STARTING POINT
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $8
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
PORTB = $8
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
PORTB = $8
LOW PORTA.4
PAUSE 3
HIGH PORTA.4
NEXT
goto MAIN
' Go back to loop and blink LED forever
End
I VAR WORD 'DELAY FOR ALL COLUMN DISPLAY
J VAR WORD 'DELAY FOR SHIFT LEFT NO 1 DISPLAY
K VAR WORD 'DELAY FOR SHIFT LEFT NO 2 DISPLAY
L VAR WORD 'DELAY FOR SHIFT LEFT NO 3 DISPLAY
M VAR WORD 'DELAY FOR SHIFT LEFT NO 4 DISPLAY
N VAR WORD 'DELAY FOR SHIFT LEFT NO 5 DISPLAY
TRISA = 255
TRISB = 0
MAIN:
FOR I = 0 TO 25
GOTO LOOP
loop:
' DISPLAYING AT ALL COLUMN
PORTB = $7F ''''''''''''''''''
LOW PORTA.4 ' END POINT '
PAUSE 3 ' '
HIGH PORTA.4 ''''''''''''''''''
PORTB = $8
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
PORTB = $8
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
PORTB = $8
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $7F 'STARTING POINT
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
NEXT
'SHIFT NO 1 TO LEFT
FOR J = 0 TO 25
PORTB = $8
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
PORTB = $8
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $8
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
PORTB = $7F 'END POINT
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
NEXT
'SHIFT LEFT NO 2
FOR K = 0 TO 25
PORTB = $8
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
PORTB = $8
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $7F ' END POINT
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
' --------------> ' COLUMN 3 IS HIGH
PORTB = $7F ' STARTING POINT
LOW PORTA.4
PAUSE 3
HIGH PORTA.4
NEXT
'SHIFT LEFT NO 3
FOR L = 0 TO 25
PORTB = $8
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
PORTB = $7F 'END POINT
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $7F ' STARTING POINT
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
PORTB = $8
LOW PORTA.4
PAUSE 3
HIGH PORTA.4
NEXT
'SHIFT LEFT NO 4
FOR M = 0 TO 25
PORTB = $7F 'END POINT
LOW PORTA.0
PAUSE 3
HIGH PORTA.0
PORTB = $7F ' STARTTING POINT
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
PORTB = $8
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
PORTB = $8
LOW PORTA.4
PAUSE 3
HIGH PORTA.4
NEXT
'SHIFT LEFT NO 5
FOR N = 0 TO 25
PORTB = $7F 'STARTING POINT
LOW PORTA.1
PAUSE 3
HIGH PORTA.1
PORTB = $8
LOW PORTA.2
PAUSE 3
HIGH PORTA.2
PORTB = $8
LOW PORTA.3
PAUSE 3
HIGH PORTA.3
PORTB = $8
LOW PORTA.4
PAUSE 3
HIGH PORTA.4
NEXT
goto MAIN
' Go back to loop and blink LED forever
End