Code:
'****************************************************************
'* Name : MY FIRST SCROLLING LED.BAS *
'* Author : Tyson Earl *
'* Notice : Copyright (c) 2008 Ty's Custom Electronics *
'* : All Rights Reserved *
'* Date : 8/13/2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
DEFINE OSC 12
'ADCON1 = 4 'this sets ANO, AN1, AN3 ON
ADCON1 = 7' ALL DIGITAL
TRISB = 0
TRISC = 0
SINK VAR PORTB 'ROWS
SOURCE VAR PORTC 'COLUMNS
x var byte
y var byte
z var byte
A VAR BYTE
B VAR BYTE
S VAR BYTE
STP VAR BYTE
CHAR var byte[8]
SOURCEA VAR WORD
SOURCEB VAR WORD
SOURCEC VAR WORD
SOURCED VAR WORD
SOURCEE VAR WORD
SOURCEF VAR WORD
SOURCEG VAR WORD
SOURCEH VAR WORD
COL1 VAR PORTB.0 'COLUMS ARE COMMON CATHODE, DO ALL THE SINKIN'
COL2 VAR PORTB.1
COL3 VAR PORTB.2
COL4 VAR PORTB.3
COL5 VAR PORTB.4
COL6 VAR PORTB.5
COL7 VAR PORTB.6
COL8 VAR PORTB.7
ROW1 VAR PORTC.0 'ROWS ARE THE INDIVIDUAL ANODES, DO ALL THE SOURCIN'
ROW2 VAR PORTC.1
ROW3 VAR PORTC.2
ROW4 VAR PORTC.3
ROW5 VAR PORTC.4
ROW6 VAR PORTC.5
ROW7 VAR PORTC.6
ROW8 VAR PORTC.7
HIGH SINK 'TURN OFF DOT MATRIX, NO SINKING CURRENT
LOW SOURCE 'NO SOURCED CURRENT
MAIN:
'********************************
'HAPPY FACE APPEARS ON DOT MATRIX
'********************************
FOR z = 0 TO 200 'MULTIPLEX (SCAN) SCREEN 201 TIMES
PAUSE 1
PORTB = %11111110
SOURCEA = %00111100
PORTC = SOURCEA
PAUSE 1
PORTB = %11111101
SOURCEB = %01101110
PORTC = SOURCEB
PAUSE 1
PORTB = %11111011
SOURCEC = %11011011
PORTC = SOURCEC
PAUSE 1
PORTB = %11110111
SOURCED = %10111111
PORTC = SOURCED
PAUSE 1
PORTB = %11101111
SOURCEE = %10111111
PORTC = SOURCEE
PAUSE 1
PORTB = %11011111
SOURCEF = %11011011
PORTC = SOURCEF
PAUSE 1
PORTB = %10111111
SOURCEG = %01101110
PORTC = SOURCEG
PAUSE 1
PORTB = %01111111
SOURCEH = %00111100
PORTC = SOURCEH
NEXT z
'****************************************
'SMILEY FACE SHIFTS QUICKLY ACROSS SCREEN
'****************************************
FOR STP = 0 TO 7 'SCROLL MR. SMILEY OFF SCREEN
FOR S = 0 TO 20 'SCAN SCREEN 21 TIMES (FAST) BETWEEN SCROLLING
PAUSE 1
PORTB = %11111110
PORTC = SOURCEA >>STP
PAUSE 1
PORTB = %11111101
PORTC = SOURCEB >>STP
PAUSE 1
PORTB = %11111011
PORTC = SOURCEC >>STP
PAUSE 1
PORTB = %11110111
PORTC = SOURCED >>STP
PAUSE 1
PORTB = %11101111
PORTC = SOURCEE >>STP
PAUSE 1
PORTB = %11011111
PORTC = SOURCEF >>STP
PAUSE 1
PORTB = %10111111
PORTC = SOURCEG >>STP
PAUSE 1
PORTB = %01111111
PORTC = SOURCEH >>STP
NEXT S
NEXT STP
GOTO MAIN
HERE IS MY OTHER MAIN PROGRAM THAT DOES NOT WORK
Code:
'IN MAIN2 I WANT TO BE ABLE TO ENTER A "PARSED" STRING/SENTENCE TO THE SCREEN
'THE IDEA BEING THAT YOU CAN ENTER IN "I DID IT!" AND THE 8X8 DOT MATRIX WILL
'SCROLL ...I DID IT! FAST ACROSS SCREEN
MAIN2: 'NOT WORKING OBVIOUSLY
FOR CHAR = "A","B","C","D","E") 'LOOKUP ASCII DECIMAL VALUE BY STEP/SHIFT????
FOR STP = 0 TO 8 'SCROLL CHARACTER OFF PAGE NOT SURE HOW TO IMPLEMENT
FOR S = 0 TO 20 'MULTIPLEX SCREEN PAUSING ~10ms EACH SCAN
GoSub display 'FETCH THE 8 ROWS
NEXT S
NEXT STP
NEXT CHAR
GOTO MAIN2
'LETS ASSUME THAT THE DECIMAL VALUES FOR A~E WHERE ACTUALLY 0,1,2,3,4
'IN THIS LOOKUP TABLE I WANT TO FETCH ALL 8 ROWS THAT MAKE UP ASCII CHARACTER
'EVENTUALLY I WILL NEED TO HAVE FULL ASCII TABLE BUILT TO LOOKUP (IN TO)
display: 'A 'B 'C 'D 'E
Lookup CHAR[0], [$3F, $06, $5B, $4F, $66], PORTC
PORTB = %11111110
PAUSE 1
Lookup CHAR[1], [$3F, $06, $5B, $4F, $66], PORTC
PORTB = %11111101
PAUSE 1
Lookup CHAR[2], [$3F, $06, $5B, $4F, $66], PORTC
PORTB = %11111011
PAUSE 1
Lookup CHAR[3], [$3F, $06, $5B, $4F, $66], PORTC
PORTB = %11111011
PAUSE 1
Lookup CHAR[4], [$3F, $06, $5B, $4F, $66], PORTC
PORTB = %11101111
PAUSE 1
Lookup CHAR[5], [$3F, $06, $5B, $4F, $66], PORTC
PORTB = %11011111
PAUSE 1
Lookup CHAR[6], [$3F, $06, $5B, $4F, $66], PORTC
PORTB = %10111111
PAUSE 1
Lookup CHAR[7], [$3F, $06, $5B, $4F, $66], PORTC
PORTB = %01111111
PAUSE 1
RETURN
OBVIOUSLY you cannot count your way through a STING, and also probably obviously I have not idea what I am doing with the arrays either. I think by looking at my working program you will see where I am heading with MAIN2: and be able to offer some ideas that might get me back on track. I have tried to comment our all my ideas.
Bookmarks