PDA

View Full Version : Customizing font style for running message...



tacbanon
- 24th June 2012, 00:47
Hi everyone,
I'm trying to modify font style for the led matrix display(2x 8x8) please image below.
6546
and the following table is the font I'm using..


lookup adres_sec,[$7C,$0A,$09,$0A,$7C,0_ ;A
,$7F,$49,$49,$49,$36,0_ ;B
,$3E,$41,$41,$41,$22,0_ ;C
,$7F,$41,$41,$41,$3E,0_ ;D
,$7F,$49,$49,$49,$41,0]veri ;E

As I understood there are hex values for each letter to turn on the individual leds in columns. Is it possible to change the style like bold and italic and is there a tool that will make this task easier? Sorry to ask this too but is it possible to display animated icon like pac-man? I appreciate any help.

Thanks in advance,
tacbanon

ScaleRobotics
- 24th June 2012, 16:19
The excel file attached lets you create fonts in dot matrix, and outputs the binary code for each column. Here is a description: http://www.instructables.com/id/LED-Scolling-Dot-Matrix-Font-Graphics-Generator-/
6548

Here is one example of bold dot matrix font: http://www.identifont.com/show?1SN
6549

tacbanon
- 24th June 2012, 22:14
Hello scalerobotics,
Thanks for sharing. I will try it and post here my output.

Regards,
tacbanon

Jerson
- 25th June 2012, 02:01
There is something called the dot factory http://www.pavius.net/2009/07/the-dot-factory-an-lcd-font-and-image-generator/ This is one very useful tool which allows you to convert any font/image from your PC.

tacbanon
- 25th June 2012, 06:07
@Jerson

Cool...thanks for the link.

kind regards,
tacbanon

tacbanon
- 29th June 2012, 15:28
Hello, I'm back...I understand how to make the text message stop and scroll forward... can any one point out how can I make it scroll up.
Bellow is the code I'm using...


porta=0 : portb=0 : portc=0 : portd=0
trisa=0 : trisb=0 : trisc=0 : trisd=0
porte=0 : trise=0
harf_reg var byte
adres_sec var byte
yinele var byte
sutun_reg var byte[300]
veri var byte
yazi_reg var byte
i VAR BYTE
x var byte
z var byte
y var byte
t var byte
q var byte
sure var byte
yedek var byte

CLEAR : portd=255:sure=200 :GOTO oku:
oku:
call yazi : yazi_reg=yazi_reg+1 : z=harf_reg
for i=1 to z
call yazi : yazi_reg=yazi_reg+1 : call data_sec
for y=0 to yinele
call datalar
sutun_reg[t]=veri : t=t+1
adres_sec=adres_sec+1
next y
next i
t=0
goto gonder
gonder:
FOR Q=0 TO 5
for i=0 to 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111110:pauseus sure:portc=%11111111
next i
for i=0 to 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111101:pauseus sure:portc=%11111111
next i
for i=0 to 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111011:pauseus sure:portc=%11111111
next i

for i=0 to 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11110111:pauseus sure:portc=%11111111
next i

for i=0 to 11
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11101111:pauseus sure:portc=%11111111
next i
t=0
NEXT Q
goto kaydir
kaydir:
yedek=sutun_reg[0]
for i=0 to 239
sutun_reg[i]=sutun_reg[i+1]
next i
sutun_reg[240]=yedek
goto gonder
yazi:
lookup yazi_reg,[10,"HELLO WORLD"],harf_reg
return

data_sec:
select case harf_reg
case "A"
adres_sec=0 : yinele=5 : return
case "B"
adres_sec=6 : yinele=5 : return
case "C"
adres_sec=12 : yinele=5 : return
case "D"
adres_sec=18 : yinele=5 : return
case "E"
adres_sec=24 : yinele=5 : return
case "F"
adres_sec=30 : yinele=5 : return
case "G"
adres_sec=36 : yinele=5 : return
case "H"
adres_sec=42 : yinele=5 : return
case "I"
adres_sec=48 : yinele=3 : return
case "i"
adres_sec=52 : yinele=3 : return
case "J"
adres_sec=56 : yinele=5 : return
case "K"
adres_sec=62 : yinele=5 : return
case "L"
adres_sec=68 : yinele=5 : return
case "M"
adres_sec=74 : yinele=5 : return
case "N"
adres_sec=80 : yinele=5 : return
case "O"
adres_sec=86 : yinele=5 : return
case "P"
adres_sec=92 : yinele=5 : return
case "Q"
adres_sec=98 : yinele=5 : return
case "R"
adres_sec=104 : yinele=5 : return
case "S"
adres_sec=110 : yinele=5 : return
case "T"
adres_sec=116 : yinele=5 : return
case "U"
adres_sec=122 : yinele=5 : return
case "ü"
adres_sec=128 : yinele=5 : return
case "V"
adres_sec=134 : yinele=5 : return
case "W"
adres_sec=140 : yinele=5 : return
case "X"
adres_sec=146 : yinele=5 : return
case "Y"
adres_sec=152 : yinele=5 : return
case "Z"
adres_sec=158 : yinele=5 : return
case " "
adres_sec=164 : yinele=5 : return
case "0"
adres_sec=170 : yinele=5 : return
case "1"
adres_sec=176 : yinele=3 : return
case "2"
adres_sec=180 : yinele=5 : return
case "3"
adres_sec=186 : yinele=5 : return
case "4"
adres_sec=192 : yinele=5 : return
case "5"
adres_sec=198 : yinele=5 : return
case "6"
adres_sec=204 : yinele=5 : return
case "7"
adres_sec=210 : yinele=5 : return
case "8"
adres_sec=216 : yinele=5 : return
case "9"
adres_sec=222 : yinele=5 : return
end select

datalar:

lookup adres_sec,[$05, $24, $74, $54, $7C, $78_ ;A
,$7F,$49,$49,$49,$36,0_ ;B
,$3E,$41,$41,$41,$22,0_ ;C
,$7F,$41,$41,$41,$3E,0_ ;D
,$7F,$49,$49,$49,$41,0_ ;E
,$7F,$09,$09,$09,$01,0_ ;F
,$3E,$41,$49,$49,$3A,0_ ;G
,$7F,$08,$08,$08,$7F,0_ ;H
,$41,$7F,$41,0_ ;I
,$44,$7D,$44,0_ ;Ý
,$20,$40,$41,$3F,$01,0_ ;J
,$7F,$08,$14,$22,$41,0_ ;K
,$7F,$40,$40,$40,$40,0_ ;L
,$7F,$02,$04,$02,$7F,0_ ;M
,$7F,$04,$08,$10,$7F,0_ ;N
,$3E,$41,$41,$41,$3E,0_ ;O
,$7F,$09,$09,$09,$06,0_ ;P
,$3E,$41,$51,$61,$3E,0_ ;Q
,$7F,$09,$19,$29,$46,0_ ;R
,$26,$49,$49,$49,$32,0_ ;S
,$01,$01,$7F,$01,$01,0_ ;T
,$3F,$40,$40,$40,$3F,0_ ;U
,$1E,$41,$01,$41,$1E,0_ ;Ü
,$1F,$20,$40,$20,$1F,0_ ;V
,$3F,$40,$30,$40,$3F,0_ ;W
,$63,$14,$08,$14,$63,0_ ;X
,$07,$08,$70,$08,$07,0_ ;Y
,$61,$51,$49,$45,$43,0_ ;Z
,$00,$00,$00,$00,$00,0_ ;Space
,$3E,$51,$49,$45,$3E,0_ ;0
,$42,$7F,$40,0_ ;1
,$62,$51,$49,$45,$42,0_ ;2
,$22,$49,$49,$49,$36,0_ ;3
,$18,$14,$12,$7F,$10,0_ ;4
,$2F,$49,$49,$49,$31,0_ ;5
,$3E,$49,$49,$49,$32,0_ ;6
,$61,$11,$09,$05,$03,0_ ;7
,$36,$49,$49,$49,$36,0_ ;8
,$26,$49,$49,$49,$3E,0],veri ;9
return



This is the code for scrolling..


kaydir:
yedek=sutun_reg[0]
for i=0 to 239
sutun_reg[i]=sutun_reg[i+1]
next i
sutun_reg[240]=yedek



Thanks in advance,
tacbanon

SteveB
- 30th June 2012, 01:12
What you want to do is shift the bits for each byte. Shift left to scroll up, shift right to scroll down.

Scroll up: sutun_reg[i]=sutun_reg[i] << 1

Scroll up: sutun_reg[i]=sutun_reg[i] >> 1

Note that this does NOT carry the bits over, so after doing it 8 times, the display will be blank.

If you want to display to "roll", then you would need to save the MSbit (or LSbit scrolling down) and then make it the LSbit (MSbit for scrolling down)after the shift.

so, here's one way to do that (there is likely a more efficient way).


temp_byte = sutun_reg[i]
temp_bit = temp_byte.7
temp_byte = temp_byte << 1
temp_byte.0 = temp_bit
sutun_reg[i] = temp_byte

tacbanon
- 30th June 2012, 03:52
@ SteveB



temp_byte = sutun_reg[i]
temp_bit = temp_byte.7
temp_byte = temp_byte << 1
temp_byte.0 = temp_bit
sutun_reg[i] = temp_byte


Thank you for the info and code..works awesome on my setup. However I was thinking of adding a little delay when (each letter are complete and reached the base of the matrix), before it'll scroll up again. I tried to add pauseus 200 in the code below but no effect..what do you think I'm missing?


pauseus 200
for i=0 to 30
;sutun_reg[i]=sutun_reg[i+1]
temp_byte = sutun_reg[i]
temp_bit = temp_byte.7
temp_byte = temp_byte << 1
temp_byte.0 = temp_bit
sutun_reg[i] = temp_byte
next i


Kind regards,
tacbanon

SteveB
- 30th June 2012, 04:55
"pauseus 200" is too quick, hardly a blink of an eye (it's 1/5 of a millisecond). Try "PAUSE 1000" This will be a 1 sec pause.

SteveB
- 30th June 2012, 05:02
Here is a little more optimized code for the scroll up:


temp_byte = sutun_reg[i]
temp_Byte = temp_Byte << 1
temp_Byte.0 = STATUS.0
sutun_reg[i] = temp_byte

It get's rid of the bit variable by taking advantage of the fact that the underlying assembly instruction moves the MSbit from the left shift into the "C" bit (which is bit 0) of the "STATUS" register.

This will also work in a similar way for scrolling down:


temp_byte = sutun_reg[i]
temp_Byte = temp_Byte >> 1
temp_Byte.7= STATUS.0
sutun_reg[i] = temp_byte

tacbanon
- 30th June 2012, 09:28
@SteveB
Thanks again for the update...but sorry to bother you with this again, my text is scrolling downward at pauseus 200(fast) but in a certain point I want to pause it for about a 1 sec before it continue its process again.
6560

I tried to place pause within the program but not the exact output I'm trying to achieve...hope there is a way to do this.

regards,
tacbanon

SteveB
- 30th June 2012, 14:19
You need to pause after 8 cycles, this should work:


Scroll_Position = Scroll_Position + 1
IF Scroll_Position = 8 THEN
PAUSE 1000
Scroll_Position = 0
ELSE
PAUSE 100
ENDIF

It looks like it should go after the "NEXT Q"

tacbanon
- 30th June 2012, 19:09
Scroll_Position = Scroll_Position + 1
IF Scroll_Position = 8 THEN
PAUSE 1000
Scroll_Position = 0
ELSE
PAUSE 100
ENDIF

Hi,
The only problem now I'm having is that when it execute the "PAUSE 1000" it clears the matrix(blank) and prints again the letters after the pause.

Kind regards,
tacbanon

SteveB
- 1st July 2012, 15:11
Please post the code you have now. That will help sort out the logic.
I suspect the problem is that you need to execute the output code under "Gondor:" frequently enough to refresh the display, and the pause in interfering with the refresh.

tacbanon
- 1st July 2012, 18:53
Please post the code you have now. That will help sort out the logic.
I suspect the problem is that you need to execute the output code under "Gondor:" frequently enough to refresh the display, and the pause in interfering with the refresh.

I did try to find to place the code(you gave) and test it(by trial and error)...but having no luck. The following is the code I'm working on.


porta=0 : portb=0 : portc=0 : portd=0
trisa=0 : trisb=0 : trisc=0 : trisd=0
porte=0 : trise=0
harf_reg var byte
adres_sec var byte
yinele var byte
sutun_reg var byte[300]
veri var byte
yazi_reg var byte
i VAR BYTE
x var byte
z var byte
y var byte
t var byte
q var byte
Scroll_Position var byte
temp_byte var byte
temp_bit var bit
sure var byte
yedek var byte

CLEAR : portd=255:sure=500 :GOTO oku:
oku:
call yazi : yazi_reg=yazi_reg+1 : z=harf_reg
for i=1 to z
call yazi : yazi_reg=yazi_reg+1 : call data_sec
for y=0 to yinele
call datalar
sutun_reg[t]=veri : t=t+1
adres_sec=adres_sec+1
next y
next i
t=0



goto gonder
gonder:
;---------------------------------------------------
Scroll_Position = Scroll_Position + 1
IF Scroll_Position = 16 THEN ; when this is TRUE it clears the matrix(turned off leds) for 1second

pause 1000
Scroll_Position = 0

ELSE
ENDIF

;---------------------------------------------------
FOR Q=0 TO 5

for i=0 to 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111110:pauseus sure:portc=%11111111
next i

for i=0 to 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111101:pauseus sure:portc=%11111111
next i
for i=0 to 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111011:pauseus sure:portc=%11111111
next i

for i=0 to 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11110111:pauseus sure:portc=%11111111
next i

for i=0 to 11
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11101111:pauseus sure:portc=%11111111

next i

t=0

NEXT Q

goto kaydir
kaydir:

yedek=sutun_reg[0]
for i=0 to 30

temp_byte = sutun_reg[i]
temp_Byte = temp_Byte << 1
temp_Byte.0 = STATUS.0
sutun_reg[i] = temp_byte

;----------------------------------



next i


goto gonder
yazi:
lookup yazi_reg,[12,"HELLO WORLD"],harf_reg
return

data_sec:
select case harf_reg
case "A"
adres_sec=0 : yinele=5 : return
case "B"
adres_sec=6 : yinele=5 : return
case "C"
adres_sec=12 : yinele=5 : return
case "D"
adres_sec=18 : yinele=5 : return
case "E"
adres_sec=24 : yinele=5 : return
case "F"
adres_sec=30 : yinele=5 : return
case "G"
adres_sec=36 : yinele=5 : return
case "H"
adres_sec=42 : yinele=5 : return
case "I"
adres_sec=48 : yinele=3 : return
case "i"
adres_sec=52 : yinele=3 : return
case "J"
adres_sec=56 : yinele=5 : return
case "K"
adres_sec=62 : yinele=5 : return
case "L"
adres_sec=68 : yinele=5 : return
case "M"
adres_sec=74 : yinele=5 : return
case "N"
adres_sec=80 : yinele=5 : return
case "O"
adres_sec=86 : yinele=5 : return
case "P"
adres_sec=92 : yinele=5 : return
case "Q"
adres_sec=98 : yinele=5 : return
case "R"
adres_sec=104 : yinele=5 : return
case "S"
adres_sec=110 : yinele=5 : return
case "T"
adres_sec=116 : yinele=5 : return
case "U"
adres_sec=122 : yinele=5 : return
case "ü"
adres_sec=128 : yinele=5 : return
case "V"
adres_sec=134 : yinele=5 : return
case "W"
adres_sec=140 : yinele=5 : return
case "X"
adres_sec=146 : yinele=5 : return
case "Y"
adres_sec=152 : yinele=5 : return
case "Z"
adres_sec=158 : yinele=5 : return
case " "
adres_sec=164 : yinele=5 : return
case "0"
adres_sec=170 : yinele=5 : return
case "1"
adres_sec=176 : yinele=3 : return
case "2"
adres_sec=180 : yinele=5 : return
case "3"
adres_sec=186 : yinele=5 : return
case "4"
adres_sec=192 : yinele=5 : return
case "5"
adres_sec=198 : yinele=5 : return
case "6"
adres_sec=204 : yinele=5 : return
case "7"
adres_sec=210 : yinele=5 : return
case "8"
adres_sec=216 : yinele=5 : return
case "9"
adres_sec=222 : yinele=5 : return
end select

datalar:

lookup adres_sec,[$05, $24, $74, $54, $7C, $78_ ;A
,$7F,$49,$49,$49,$36,0_ ;B
,$3E,$41,$41,$41,$22,0_ ;C
,$7F,$41,$41,$41,$3E,0_ ;D
,$7F,$49,$49,$49,$41,0_ ;E
,$7F,$09,$09,$09,$01,0_ ;F
,$3E,$41,$49,$49,$3A,0_ ;G
,$7F,$08,$08,$08,$7F,0_ ;H
,$41,$7F,$41,0_ ;I
,$44,$7D,$44,0_ ;Ý
,$20,$40,$41,$3F,$01,0_ ;J
,$7F,$08,$14,$22,$41,0_ ;K
,$7F,$40,$40,$40,$40,0_ ;L
,$7F,$02,$04,$02,$7F,0_ ;M
,$7F,$04,$08,$10,$7F,0_ ;N
,$3E,$41,$41,$41,$3E,0_ ;O
,$7F,$09,$09,$09,$06,0_ ;P
,$3E,$41,$51,$61,$3E,0_ ;Q
,$7F,$09,$19,$29,$46,0_ ;R
,$26,$49,$49,$49,$32,0_ ;S
,$01,$01,$7F,$01,$01,0_ ;T
,$3F,$40,$40,$40,$3F,0_ ;U
,$1E,$41,$01,$41,$1E,0_ ;Ü
,$1F,$20,$40,$20,$1F,0_ ;V
,$3F,$40,$30,$40,$3F,0_ ;W
,$63,$14,$08,$14,$63,0_ ;X
,$07,$08,$70,$08,$07,0_ ;Y
,$61,$51,$49,$45,$43,0_ ;Z
,$00,$00,$00,$00,$00,0_ ;Space
,$3E,$51,$49,$45,$3E,0_ ;0
,$42,$7F,$40,0_ ;1
,$62,$51,$49,$45,$42,0_ ;2
,$22,$49,$49,$49,$36,0_ ;3
,$18,$14,$12,$7F,$10,0_ ;4
,$2F,$49,$49,$49,$31,0_ ;5
,$3E,$49,$49,$49,$32,0_ ;6
,$61,$11,$09,$05,$03,0_ ;7
,$36,$49,$49,$49,$36,0_ ;8
,$26,$49,$49,$49,$3E,0],veri ;9
return



Thanks for taking the time helping...

regards,
tacbanon

SteveB
- 1st July 2012, 22:45
I can't test it out here, but I suspect that the problem with the longer pause is that the matrix wasn't being refreshed. So I modified a couple of things to control the flow of the program a little.

I made a "Main_Loop" inside of which "gonder" is called as a GOSUB and the scrolling is controlled with a GOSUB to "kaydir". So both of those sections of code now terminate in a RETURN.

This allows for the modified pause control. As you can see, the longer pause is multiple short pauses with a call to "gonder" in between to keep the display refreshed.

Hope this helps.



porta=0 : portb=0 : portc=0 : portd=0
trisa=0 : trisb=0 : trisc=0 : trisd=0
porte=0 : trise=0
harf_reg VAR BYTE
adres_sec VAR BYTE
yinele VAR BYTE
sutun_reg VAR BYTE[300]
veri VAR BYTE
yazi_reg VAR BYTE
i VAR BYTE
x VAR BYTE
z VAR BYTE
y VAR BYTE
t VAR BYTE
q VAR BYTE
Scroll_Position VAR BYTE
Pause_Cnt VAR BYTE
temp_byte VAR byte
temp_bit VAR bit
sure VAR BYTE
yedek VAR BYTE

CLEAR
portd=255 : sure=500

oku:
CALL yazi : yazi_reg=yazi_reg+1 : z=harf_reg
FOR i=1 TO z
CALL yazi : yazi_reg=yazi_reg+1 : CALL data_sec
FOR y=0 TO yinele
CALL datalar
sutun_reg[t]=veri : t=t+1
adres_sec=adres_sec+1
NEXT y
NEXT i
t=0

Main_Loop:
GOSUB gonder

Scroll_Position = Scroll_Position + 1
IF Scroll_Position = 16 THEN
For Pause_Cnt = 1 to 10 '<-- Change to control duration of pause after scroll, 10 = 1 sec, 20 = 2 sec, ...
Pause 100
GOSUB gonder
Next Pause_Cnt
Scroll_Position = 0
ELSE
GOSUB Kaydir
PAUSE 100
ENDIF

GOTO Main_Loop


'-------------------------------------------------------------------------------
yazi:
LOOKUP yazi_reg,[12,"HELLO WORLD"],harf_reg
RETURN

'-------------------------------------------------------------------------------
gonder:
FOR Q=0 TO 5
FOR i=0 TO 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111110:PAUSEUS sure:portc=%11111111
NEXT i
FOR i=0 TO 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111101:PAUSEUS sure:portc=%11111111
NEXT i
FOR i=0 TO 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11111011:PAUSEUS sure:portc=%11111111
NEXT i
FOR i=0 TO 15
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11110111:PAUSEUS sure:portc=%11111111
NEXT i
FOR i=0 TO 11
portb=sutun_reg[t] : t=t+1
porta=i
portc=%11101111:PAUSEUS sure:portc=%11111111
NEXT i
t=0
NEXT Q
Return

'-------------------------------------------------------------------------------
kaydir:
yedek=sutun_reg[0]
FOR i=0 TO 30
temp_byte = sutun_reg[i]
temp_Byte = temp_Byte << 1
temp_Byte.0 = STATUS.0
sutun_reg[i] = temp_byte
NEXT i
RETURN

'-------------------------------------------------------------------------------
data_sec:
SELECT CASE harf_reg
CASE "A"
adres_sec=0 : yinele=5 : RETURN
CASE "B"
adres_sec=6 : yinele=5 : RETURN
CASE "C"
adres_sec=12 : yinele=5 : RETURN
CASE "D"
adres_sec=18 : yinele=5 : RETURN
CASE "E"
adres_sec=24 : yinele=5 : RETURN
CASE "F"
adres_sec=30 : yinele=5 : RETURN
CASE "G"
adres_sec=36 : yinele=5 : RETURN
CASE "H"
adres_sec=42 : yinele=5 : RETURN
CASE "I"
adres_sec=48 : yinele=3 : RETURN
CASE "i"
adres_sec=52 : yinele=3 : RETURN
CASE "J"
adres_sec=56 : yinele=5 : RETURN
CASE "K"
adres_sec=62 : yinele=5 : RETURN
CASE "L"
adres_sec=68 : yinele=5 : RETURN
CASE "M"
adres_sec=74 : yinele=5 : RETURN
CASE "N"
adres_sec=80 : yinele=5 : RETURN
CASE "O"
adres_sec=86 : yinele=5 : RETURN
CASE "P"
adres_sec=92 : yinele=5 : RETURN
CASE "Q"
adres_sec=98 : yinele=5 : RETURN
CASE "R"
adres_sec=104 : yinele=5 : RETURN
CASE "S"
adres_sec=110 : yinele=5 : RETURN
CASE "T"
adres_sec=116 : yinele=5 : RETURN
CASE "U"
adres_sec=122 : yinele=5 : RETURN
CASE " "
adres_sec=128 : yinele=5 : RETURN
CASE "V"
adres_sec=134 : yinele=5 : RETURN
CASE "W"
adres_sec=140 : yinele=5 : RETURN
CASE "X"
adres_sec=146 : yinele=5 : RETURN
CASE "Y"
adres_sec=152 : yinele=5 : RETURN
CASE "Z"
adres_sec=158 : yinele=5 : RETURN
CASE " "
adres_sec=164 : yinele=5 : RETURN
CASE "0"
adres_sec=170 : yinele=5 : RETURN
CASE "1"
adres_sec=176 : yinele=3 : RETURN
CASE "2"
adres_sec=180 : yinele=5 : RETURN
CASE "3"
adres_sec=186 : yinele=5 : RETURN
CASE "4"
adres_sec=192 : yinele=5 : RETURN
CASE "5"
adres_sec=198 : yinele=5 : RETURN
CASE "6"
adres_sec=204 : yinele=5 : RETURN
CASE "7"
adres_sec=210 : yinele=5 : RETURN
CASE "8"
adres_sec=216 : yinele=5 : RETURN
CASE "9"
adres_sec=222 : yinele=5 : RETURN
END SELECT

'-------------------------------------------------------------------------------
datalar:
LOOKUP adres_sec,[$05, $24, $74, $54, $7C, $78_ ;A
,$7F,$49,$49,$49,$36,0_ ;B
,$3E,$41,$41,$41,$22,0_ ;C
,$7F,$41,$41,$41,$3E,0_ ;D
,$7F,$49,$49,$49,$41,0_ ;E
,$7F,$09,$09,$09,$01,0_ ;F
,$3E,$41,$49,$49,$3A,0_ ;G
,$7F,$08,$08,$08,$7F,0_ ;H
,$41,$7F,$41,0_ ;I
,$44,$7D,$44,0_ ;
,$20,$40,$41,$3F,$01,0_ ;J
,$7F,$08,$14,$22,$41,0_ ;K
,$7F,$40,$40,$40,$40,0_ ;L
,$7F,$02,$04,$02,$7F,0_ ;M
,$7F,$04,$08,$10,$7F,0_ ;N
,$3E,$41,$41,$41,$3E,0_ ;O
,$7F,$09,$09,$09,$06,0_ ;P
,$3E,$41,$51,$61,$3E,0_ ;Q
,$7F,$09,$19,$29,$46,0_ ;R
,$26,$49,$49,$49,$32,0_ ;S
,$01,$01,$7F,$01,$01,0_ ;T
,$3F,$40,$40,$40,$3F,0_ ;U
,$1E,$41,$01,$41,$1E,0_ ;
,$1F,$20,$40,$20,$1F,0_ ;V
,$3F,$40,$30,$40,$3F,0_ ;W
,$63,$14,$08,$14,$63,0_ ;X
,$07,$08,$70,$08,$07,0_ ;Y
,$61,$51,$49,$45,$43,0_ ;Z
,$00,$00,$00,$00,$00,0_ ;Space
,$3E,$51,$49,$45,$3E,0_ ;0
,$42,$7F,$40,0_ ;1
,$62,$51,$49,$45,$42,0_ ;2
,$22,$49,$49,$49,$36,0_ ;3
,$18,$14,$12,$7F,$10,0_ ;4
,$2F,$49,$49,$49,$31,0_ ;5
,$3E,$49,$49,$49,$32,0_ ;6
,$61,$11,$09,$05,$03,0_ ;7
,$36,$49,$49,$49,$36,0_ ;8
,$26,$49,$49,$49,$3E,0],veri ;9
RETURN

tacbanon
- 1st July 2012, 23:39
Hello SteveB,
Your'e awesome...works great as you expected. :D
I will build to extend the length of led matrix display and post here the results.

Regards,
tacbanon

SteveB
- 2nd July 2012, 00:20
Glad it worked! :D