MAX7219 I 8X8 LED DISPLAY
Moderators: pedja089, stojke369, [eDo], trax
Re: MAX7219 I 8X8 LED DISPLAY
Mislim da ne bi trebalo tako...
Nego adresa, pa 8 bajtova, pa sledeca adresa pa 8 bajtova i tako redom... Valjda...
Jer ovako ces ubaciti nule u registre koje ne pises.
Onda ti niz treba biti dug 24 bajta. U onom podprogramu za shiftovanje isto to moras promeniti.
Ili mozda kako si ti rekao, pa lechovati svaki posebno...
Mada mislim da je bolje ubaciti sve podatke pa onda zajednicki latch da bude, da bi se istovremeno svuda prikazali isti podatci. Da ne utice brzina pica na to da se prvo pojave na jednom pa drugom pa trecem...
Nego adresa, pa 8 bajtova, pa sledeca adresa pa 8 bajtova i tako redom... Valjda...
Jer ovako ces ubaciti nule u registre koje ne pises.
Onda ti niz treba biti dug 24 bajta. U onom podprogramu za shiftovanje isto to moras promeniti.
Ili mozda kako si ti rekao, pa lechovati svaki posebno...
Mada mislim da je bolje ubaciti sve podatke pa onda zajednicki latch da bude, da bi se istovremeno svuda prikazali isti podatci. Da ne utice brzina pica na to da se prvo pojave na jednom pa drugom pa trecem...
Re: MAX7219 I 8X8 LED DISPLAY
Za sad nema pomaka,vrtim se u krug,nisam prokuzio kako poslati podatke s prvog displeja na drugi itd
Re: MAX7219 I 8X8 LED DISPLAY
Kreni opet od samog pocetka...
Napuni niz samo nekim podatcima, i probaj to prikazati koristeci sve latch pinove zajedno spojenim. Kad to uspes onda cemo dalje... Ne bi na odmet dosla i neka sema, da ne kopam po datasheetu...
Napuni niz samo nekim podatcima, i probaj to prikazati koristeci sve latch pinove zajedno spojenim. Kad to uspes onda cemo dalje... Ne bi na odmet dosla i neka sema, da ne kopam po datasheetu...
Re: MAX7219 I 8X8 LED DISPLAY
ako spojim sva tri displeja u paralelu,
a LATCH (CS ili LOAD) su sa sva tri displeja spojena na PORTB.2 i s ovim kodom
onda mi se u isto vrijeme na sva tri displeja ispisuje isto slovo
Recimo slovo P krene s desne strane na sva tri displeja i putuje u lijevo, s tim da mi se na srednjem displeju znadu poduplati okomice dobim oblik podebljanog slova .
Prvi i treci displej nemaju tu manu
Ako promjenim MaxWrite u ovaj oblik
onda vise nemam efekt podebljanog slova na srednjem displeju.
ako sam ja dobro skuzio iz data sheeta
ako je ADRESS=0 I DATAREG=0 to znaci da daj chip ne izvrsava nikakvu radnju podaci kako su usli u njega tako i izadju van na iduci MAX u kaskadi.
[0,0,0,0,ADDRESS,DATAREG]
lijevi i srednji displej dobe za adresu i datareg NULU i oni miruju a treci displej dobi podatak za ispis.
Adresa ima vrijednost Y iz koda od 1do8 a data reg ima vrijednost displej[y]
a LATCH (CS ili LOAD) su sa sva tri displeja spojena na PORTB.2 i s ovim kodom
onda mi se u isto vrijeme na sva tri displeja ispisuje isto slovo
Recimo slovo P krene s desne strane na sva tri displeja i putuje u lijevo, s tim da mi se na srednjem displeju znadu poduplati okomice dobim oblik podebljanog slova .
Prvi i treci displej nemaju tu manu
Code: Select all
PomeriNiz:
For i=0 to 6
Displej[i]=displej[i+1]
next i
Displej[7]=0'Ovo bi trebao biti novi red koji ce da izadje sa desne strane, ali dok ne proradi siftovanje neka ga 0.
return
Prikazi_Niz:
for Y =0 to 7
ADDRESS = Y+1
DATAREG = displej[y]
gosub MaxWrite
next Y
return
MaxWrite:
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1 'load the data into the MAX7219
return
Ako promjenim MaxWrite u ovaj oblik
Code: Select all
MaxWrite:
shiftout DAT,CLK,MSBFIRST,[0,0,0,0,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data ZA SKROZ DESNI DISPLEJ
pulsout LOAD,1 'load the data into the MAX7219
shiftout DAT,CLK,MSBFIRST,[0,0, ADDRESS,DATAREG,0,0] 'Shift out the data to the 'MAX7219 'first the address, then data. ZA SREDNJI DISPLEJ
pulsout LOAD,1 'load the data into the MAX7219
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,0,0,0,0] 'Shift out the data to the 'MAX7219 'first the address, then data. ZA LIJEVI DISPLEJ
pulsout LOAD,1 'load the data into the MAX7219
return
ako sam ja dobro skuzio iz data sheeta
ako je ADRESS=0 I DATAREG=0 to znaci da daj chip ne izvrsava nikakvu radnju podaci kako su usli u njega tako i izadju van na iduci MAX u kaskadi.
[0,0,0,0,ADDRESS,DATAREG]
lijevi i srednji displej dobe za adresu i datareg NULU i oni miruju a treci displej dobi podatak za ispis.
Adresa ima vrijednost Y iz koda od 1do8 a data reg ima vrijednost displej[y]
Re: MAX7219 I 8X8 LED DISPLAY
Da li bi se mogao napraviti neki medjuspremnik (buffer) u koji bi se spremali podaci za kolone.
Posto imam tri displeja i svaki ima 8 kolona onda bi velicina buffera trebala biti za 24 kolone byte.
(23,.22,21,20.........................,8,7,6,5,4,3,2,1,0"
za svaki MAX7219 adresa se krece u rasponu od 1 do 8.
1 je prva adresa za vertikalu i u nju se prvu upisuju DATAREG podaci za odredjeni MAX7219.
8 je zadnja adresa i u nju ide zadnji podatak
Primjer kako sam ja to zamislio,
recimo da zelimo ispisat rijec "MIS"
prvo se iz labele SEND_CHAR izdvoje podaci za slovo "M "u ovom obliku: $7F,$02,$0C,$02,$7F i s tim podacima se puni prvih 8 mjesta u bufferu,
nakon toga se izdvajaju podaci iz labele SEND_CHAR za slovo"I" u obliku $00,$41,$7F,$41,$00 i kako oni pune opet prvih osam mjesta u bufferu tako se podaci od slova "M "pomicu za 8 mjesta u lijevo,nakon toga
se izdvajaju podaci za slovo "S "i kako oni pune prvih osam mjesta tako se podaci od slova M,I pomicu jos u lijevo za osam mjesta.
E sad skroz desni MAX mora da cita podatke iz buffera od pozicije 0-7 i sprema u DATAREG, a adresa za njega se krece u rangu od 1-8,
srednji MAX treba da cita podatke iz buffra od 8-15 i sprema u DATAREG ,i njegova adresa se krece u rangu od 1-8
Lijevi MAX cita podatke iz bufera od pozicije 16-23 i sprema u DATAREG i njegova dresa je isto u rangu od 1-8
Da li je to dobra ideja i kako je realizirati.
Da li bi latch od sva tri MAX trebala biti zajedno spojena ili svaki LATCH bi trebao imat svoj pin na procesoru.
CLK im je spojen zajedno, a
DATA ide s PIC-a u prvi MAX na njegov DIN pin a njegov DOUT pin se spaja ina duci MAX7219 na DIN pin.
Posto imam tri displeja i svaki ima 8 kolona onda bi velicina buffera trebala biti za 24 kolone byte.
(23,.22,21,20.........................,8,7,6,5,4,3,2,1,0"
za svaki MAX7219 adresa se krece u rasponu od 1 do 8.
1 je prva adresa za vertikalu i u nju se prvu upisuju DATAREG podaci za odredjeni MAX7219.
8 je zadnja adresa i u nju ide zadnji podatak
Primjer kako sam ja to zamislio,
recimo da zelimo ispisat rijec "MIS"
prvo se iz labele SEND_CHAR izdvoje podaci za slovo "M "u ovom obliku: $7F,$02,$0C,$02,$7F i s tim podacima se puni prvih 8 mjesta u bufferu,
nakon toga se izdvajaju podaci iz labele SEND_CHAR za slovo"I" u obliku $00,$41,$7F,$41,$00 i kako oni pune opet prvih osam mjesta u bufferu tako se podaci od slova "M "pomicu za 8 mjesta u lijevo,nakon toga
se izdvajaju podaci za slovo "S "i kako oni pune prvih osam mjesta tako se podaci od slova M,I pomicu jos u lijevo za osam mjesta.
E sad skroz desni MAX mora da cita podatke iz buffera od pozicije 0-7 i sprema u DATAREG, a adresa za njega se krece u rangu od 1-8,
srednji MAX treba da cita podatke iz buffra od 8-15 i sprema u DATAREG ,i njegova adresa se krece u rangu od 1-8
Lijevi MAX cita podatke iz bufera od pozicije 16-23 i sprema u DATAREG i njegova dresa je isto u rangu od 1-8
Da li je to dobra ideja i kako je realizirati.
Da li bi latch od sva tri MAX trebala biti zajedno spojena ili svaki LATCH bi trebao imat svoj pin na procesoru.
CLK im je spojen zajedno, a
DATA ide s PIC-a u prvi MAX na njegov DIN pin a njegov DOUT pin se spaja ina duci MAX7219 na DIN pin.
Re: MAX7219 I 8X8 LED DISPLAY
Ja sam svoje ideje spucao i nisam nista napravio nema pomaka.Ako neko dobi jos koju ideju neka napise da sprobam.Jos uvijek se tekst vrti na jednom displeju.....
Re: MAX7219 I 8X8 LED DISPLAY
Probaj ovo i na sva 3 displeja treba da dobijes iste slike, slova ili sta vec.
Kad to dobijes, onda napravi
Sa tim ces slati posebne podatke na sva 3 displeja.
Code: Select all
Prikazi_Niz:
for Y =0 to 7
ADDRESS = Y+1
DATAREG = displej[y]
gosub MaxWrite
next Y
return
MaxWrite:
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1 'load the data into the MAX7219
return
Code: Select all
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG3,ADDRESS,DATAREG2,ADDRESS,DATAREG1]
Code: Select all
for Y =0 to 7
ADDRESS = Y+1
DATAREG1 = displej[y]
DATAREG2 = displej[y+8]
DATAREG3 = displej[y+16]
gosub MaxWrite
next Y
return
Re: MAX7219 I 8X8 LED DISPLAY
Upravo sam probao ovo i nazalost ne radi.
Desava se to da na skroz desnom displeju dobivam samo nekakve tockice,srednji displej pokazuje cijelu znamenku bez skrolanja a skroz lijevi displej skrola normalno text s desne strane na lijevu.Jos negdi nekaj fali.
Dok se na srednjem displeju pojavi cijela znamenka onda tek se ta ista znamenka na skroz lijevom displeju pocne skrolati i dok dodje do kraja onda se pojavi na srednjem displeju nova znamenka i tako u krug
evo koda:
dok napisem ovo kako si rekao onda dobim na sva tri displeja u isto vrijeme isti ispis i normalno skrolanje
Desava se to da na skroz desnom displeju dobivam samo nekakve tockice,srednji displej pokazuje cijelu znamenku bez skrolanja a skroz lijevi displej skrola normalno text s desne strane na lijevu.Jos negdi nekaj fali.
Dok se na srednjem displeju pojavi cijela znamenka onda tek se ta ista znamenka na skroz lijevom displeju pocne skrolati i dok dodje do kraja onda se pojavi na srednjem displeju nova znamenka i tako u krug
evo koda:
Code: Select all
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : ZELJKO FERIC *
'* Notice : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 20.10.2014 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
@ ERRORLEVEL -306 ; turn off crossing page boundary message
#CONFIG
__config _HS_OSC & _WDT_ON & _PWRTE_ON &_CP_ON & _BODEN_OFF & _LVP_OFF
#ENDCONFIG
include "modedefs.bas"
Define OSC 20 ' Set Xtal Frequency
TRISA = %00111111 'port a je cijeli ulazni
TRISB = %00000000
TRISC = %00000000
TRISD = %00000000
TRISE = %1111
ADCON1 = 7 ' PORTA i PORTE su digitalni ISKLJUCI KOMPARATORE I ANALOGNE ULAZE
'-----VARIABLES-----
ADDRESS var byte 'variable address for display
DATAREG var byte
DATAREG1 var byte
DATAREG2 var byte
DATAREG3 var byte 'variable data register for display
Y VAR BYTE 'okomice
i var byte
FC VAR BYTE[5]
BrzinaSkrolovanja VAR WORD
CHAR VAR byte
Addr VAR word
Lcd_Data var word
CharLine var byte
Displej var byte[8]
r var byte
BrzinaSkrolovanja = 200
'----- symbolos ------
'-----PIN SETUPS-----
SYMBOL CLK = PORTB.0
SYMBOL DAT = PORTB.1
SYMBOL LOAD = PORTB.2
inicijalizacija :
'MAX7219 chipa obavezno na pocetku programa
low dat 'data pin for MAX7219 (1)
low clk 'clock pin for MAX7219 (13)
low load 'load pin for MAX7219 (12)
'-----MAX7219 SETUP-----
ADDRESS = $0C : DATAREG = $01' NO SHUT, NORMAL OPERATION
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $09 : DATAREG = $00 ' COMBINACION BINARIA, NO DECODE
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0A : DATAREG = $02 ' INTENSIDAD DE LEDS 1(MIN) A F(MAX)
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0B : DATAREG = $07 ' SCAN LIMIT NUMERO DE DIGITOS
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0F : DATAREG = $00
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
main:
For r=0 to 255
Char=0
LOOKUP r,["Pedja089 i ZELJKO FERIC PITOMACA Visnja Karla Reklama za studio"], Char
if char=0 then exit'Automatski detektuj kraj teksta, tako da ne moras svaki put brojati koliko tekst ima slova
GOSUB SendChar
Next r
pause 1000
goto main
SendChar:
SELECT CASE Char
Case 32
FC(0)=$00:FC(1)=$00:FC(2)=$00:FC(3)=$00:FC(4)=$00 ' // sp
Case 33
FC(0)=$00:FC(1)=$00:FC(2)=$2f:FC(3)=$00:FC(4)=$00 ' // !
Case 34
FC(0)=$00:FC(1)=$07:FC(2)=$00:FC(3)=$07:FC(4)=$00 ' // " (shown as \ in Lookdown table)
Case 35
FC(0)=$14:FC(1)=$7f:FC(2)=$14:FC(3)=$7f:FC(4)=$14 ' // #
Case 36
FC(0)=$24:FC(1)=$2a:FC(2)=$7f:FC(3)=$2a:FC(4)=$12 ' // $
Case 37
FC(0)=$c4:FC(1)=$c8:FC(2)=$10:FC(3)=$26:FC(4)=$46 ' // %
Case 38
FC(0)=$36:FC(1)=$49:FC(2)=$55:FC(3)=$22:FC(4)=$50 ' // &
Case 39
FC(0)=$00:FC(1)=$05:FC(2)=$03:FC(3)=$00:FC(4)=$00 ' // '
Case 40
FC(0)=$00:FC(1)=$1c:FC(2)=$22:FC(3)=$41:FC(4)=$00 ' // (
Case 41
FC(0)=$00:FC(1)=$41:FC(2)=$22:FC(3)=$1c:FC(4)=$00 ' // )
Case 42
FC(0)=$14:FC(1)=$08:FC(2)=$3E:FC(3)=$08:FC(4)=$14 ' // *
Case 43
FC(0)=$08:FC(1)=$08:FC(2)=$3E:FC(3)=$08:FC(4)=$08 ' // +
Case 44
FC(0)=$00:FC(1)=$00:FC(2)=$50:FC(3)=$30:FC(4)=$00 ' // ,
Case 45
FC(0)=$10:FC(1)=$10:FC(2)=$10:FC(3)=$10:FC(4)=$10 ' // -
Case 46
FC(0)=$00:FC(1)=$60:FC(2)=$60:FC(3)=$00:FC(4)=$00 ' // .
Case 47
FC(0)=$20:FC(1)=$10:FC(2)=$08:FC(3)=$04:FC(4)=$02 ' // /
Case 48
FC(0)=$3E:FC(1)=$51:FC(2)=$49:FC(3)=$45:FC(4)=$3E ' // 0
Case 49
FC(0)=$00:FC(1)=$42:FC(2)=$7F:FC(3)=$40:FC(4)=$00 ' // 1
Case 50
FC(0)=$42:FC(1)=$61:FC(2)=$51:FC(3)=$49:FC(4)=$46 ' // 2
Case 51
FC(0)=$21:FC(1)=$41:FC(2)=$45:FC(3)=$4B:FC(4)=$31 ' // 3
Case 52
FC(0)=$18:FC(1)=$14:FC(2)=$12:FC(3)=$7F:FC(4)=$10 ' // 4
Case 53
FC(0)=$27:FC(1)=$45:FC(2)=$45:FC(3)=$45:FC(4)=$39 ' // 5
Case 54
FC(0)=$3C:FC(1)=$4A:FC(2)=$49:FC(3)=$49:FC(4)=$30 ' // 6
Case 55
FC(0)=$01:FC(1)=$71:FC(2)=$09:FC(3)=$05:FC(4)=$03 ' // 7
Case 56
FC(0)=$36:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$36 ' // 8
Case 57
FC(0)=$06:FC(1)=$49:FC(2)=$49:FC(3)=$29:FC(4)=$1E ' // 9
Case 58
FC(0)=$00:FC(1)=$36:FC(2)=$36:FC(3)=$00:FC(4)=$00 ' // :
Case 59
FC(0)=$00:FC(1)=$56:FC(2)=$36:FC(3)=$00:FC(4)=$00 ' // ";"
Case 60
FC(0)=$08:FC(1)=$14:FC(2)=$22:FC(3)=$41:FC(4)=$00 ' // <
Case 61
FC(0)=$14:FC(1)=$14:FC(2)=$14:FC(3)=$14:FC(4)=$14 ' // =
Case 62
FC(0)=$00:FC(1)=$41:FC(2)=$22:FC(3)=$14:FC(4)=$08 ' // >
Case 63
FC(0)=$02:FC(1)=$01:FC(2)=$51:FC(3)=$09:FC(4)=$06 ' // ?
Case 64
FC(0)=$32:FC(1)=$49:FC(2)=$59:FC(3)=$51:FC(4)=$3E ' // @
Case 65
FC(0)=$7E:FC(1)=$11:FC(2)=$11:FC(3)=$11:FC(4)=$7E ' // A
Case 66
FC(0)=$7F:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$36 ' // B
Case 67
FC(0)=$3E:FC(1)=$41:FC(2)=$41:FC(3)=$41:FC(4)=$22 ' // C
Case 68
FC(0)=$7F:FC(1)=$41:FC(2)=$41:FC(3)=$22:FC(4)=$1C ' // D
Case 69
FC(0)=$7F:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$41 ' // E
Case 70
FC(0)=$7F:FC(1)=$09:FC(2)=$09:FC(3)=$09:FC(4)=$01 ' // F
Case 71
FC(0)=$3E:FC(1)=$41:FC(2)=$49:FC(3)=$49:FC(4)=$7A ' // G
Case 72
FC(0)=$7F:FC(1)=$08:FC(2)=$08:FC(3)=$08:FC(4)=$7F ' // H
Case 73
FC(0)=$00:FC(1)=$41:FC(2)=$7F:FC(3)=$41:FC(4)=$00 ' // I
Case 74
FC(0)=$20:FC(1)=$40:FC(2)=$41:FC(3)=$3F:FC(4)=$01 ' // J
Case 75
FC(0)=$7F:FC(1)=$08:FC(2)=$14:FC(3)=$22:FC(4)=$41 ' // K
Case 76
FC(0)=$7F:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$40 ' // L
Case 77
FC(0)=$7F:FC(1)=$02:FC(2)=$0C:FC(3)=$02:FC(4)=$7F ' // M
Case 78
FC(0)=$7F:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$7F ' // N
Case 79
FC(0)=$3E:FC(1)=$41:FC(2)=$41:FC(3)=$41:FC(4)=$3E ' // O
Case 80
FC(0)=$7F:FC(1)=$09:FC(2)=$09:FC(3)=$09:FC(4)=$06 ' // P
Case 81
FC(0)=$3E:FC(1)=$41:FC(2)=$51:FC(3)=$21:FC(4)=$5E ' // Q
Case 82
FC(0)=$7F:FC(1)=$09:FC(2)=$19:FC(3)=$29:FC(4)=$46 ' // R
Case 83
FC(0)=$46:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$31 ' // S
Case 84
FC(0)=$01:FC(1)=$01:FC(2)=$7F:FC(3)=$01:FC(4)=$01 ' // T
Case 85
FC(0)=$3F:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$3F ' // U
Case 86
FC(0)=$1F:FC(1)=$20:FC(2)=$40:FC(3)=$20:FC(4)=$1F ' // V
Case 87
FC(0)=$3F:FC(1)=$40:FC(2)=$38:FC(3)=$40:FC(4)=$3F ' // W
Case 88
FC(0)=$63:FC(1)=$14:FC(2)=$08:FC(3)=$14:FC(4)=$63 ' // X
Case 89
FC(0)=$07:FC(1)=$08:FC(2)=$70:FC(3)=$08:FC(4)=$07 ' // Y
Case 90
FC(0)=$61:FC(1)=$51:FC(2)=$49:FC(3)=$45:FC(4)=$43 ' // Z
Case 91
FC(0)=$00:FC(1)=$7F:FC(2)=$41:FC(3)=$41:FC(4)=$00 ' // [
Case 92
FC(0)=$02:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$20 ' // \ (we are using this for Case 34 " above)
Case 93
FC(0)=$00:FC(1)=$41:FC(2)=$41:FC(3)=$7F:FC(4)=$00 ' // ]
Case 94
FC(0)=$04:FC(1)=$02:FC(2)=$01:FC(3)=$02:FC(4)=$04 ' // ^
Case 95
FC(0)=$40:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$40 ' // _
Case 96
' FC(0)=$00:FC(1)=$01:FC(2)=$02:FC(3)=$04:FC(4)=$00 ' // `
FC(0)=$02:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$20 ' // \ (shown as ` in Lookdown table)
Case 97
FC(0)=$20:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$78 ' // a
Case 98
FC(0)=$7F:FC(1)=$48:FC(2)=$44:FC(3)=$44:FC(4)=$38 ' // b
Case 99
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$44:FC(4)=$20 ' // c
Case 100
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$48:FC(4)=$7F ' // d
Case 101
FC(0)=$38:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$18 ' // e
Case 102
FC(0)=$08:FC(1)=$7E:FC(2)=$09:FC(3)=$01:FC(4)=$02 ' // f
Case 103
FC(0)=$0C:FC(1)=$52:FC(2)=$52:FC(3)=$52:FC(4)=$3E ' // g
Case 104
FC(0)=$7F:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$78 ' // h
Case 105
FC(0)=$00:FC(1)=$44:FC(2)=$7D:FC(3)=$40:FC(4)=$00 ' // i
Case 106
FC(0)=$20:FC(1)=$40:FC(2)=$44:FC(3)=$3D:FC(4)=$00 ' // j
Case 107
FC(0)=$7F:FC(1)=$10:FC(2)=$28:FC(3)=$44:FC(4)=$00 ' // k
Case 108
FC(0)=$00:FC(1)=$41:FC(2)=$7F:FC(3)=$40:FC(4)=$00 ' // l
Case 109
FC(0)=$7C:FC(1)=$04:FC(2)=$18:FC(3)=$04:FC(4)=$78 ' // m
Case 110
FC(0)=$7C:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$78 ' // n
Case 111
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$44:FC(4)=$38 ' // o
Case 112
FC(0)=$7C:FC(1)=$14:FC(2)=$14:FC(3)=$14:FC(4)=$08 ' // p
Case 113
FC(0)=$08:FC(1)=$14:FC(2)=$14:FC(3)=$18:FC(4)=$7C ' // q
Case 114
FC(0)=$7C:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$08 ' // r
Case 115
FC(0)=$48:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$20 ' // s
Case 116
FC(0)=$04:FC(1)=$3F:FC(2)=$44:FC(3)=$40:FC(4)=$20 ' // t
Case 117
FC(0)=$3C:FC(1)=$40:FC(2)=$40:FC(3)=$20:FC(4)=$7C ' // u
Case 118
FC(0)=$1C:FC(1)=$20:FC(2)=$40:FC(3)=$20:FC(4)=$1C ' // v
Case 119
FC(0)=$3C:FC(1)=$40:FC(2)=$30:FC(3)=$40:FC(4)=$3C ' // w
Case 120
FC(0)=$44:FC(1)=$28:FC(2)=$10:FC(3)=$28:FC(4)=$44 ' // x
Case 121
FC(0)=$0C:FC(1)=$50:FC(2)=$50:FC(3)=$50:FC(4)=$3C ' // y
Case 122
FC(0)=$44:FC(1)=$64:FC(2)=$54:FC(3)=$4C:FC(4)=$44 ' // z
case 123
' FC(0)=$00:FC(1)=$08:FC(2)=$36:FC(3)=$41:FC(4)=$00' // {
FC(0)=$10:FC(1)=$24:FC(2)=$20:FC(3)=$24:FC(4)=$10 ' // Smily face (shown as { in Lookdown table)
case 124
' FC(0)=$00:FC(1)=$00:FC(2)=$7F:FC(3)=$00:FC(4)=$00 ' // |
FC(0)=$20:FC(1)=$40:FC(2)=$20:FC(3)=$10:FC(4)=$08 ' // Tick (shown as | in Lookdown table)
case 125
' FC(0)=$00:FC(1)=$41:FC(2)=$36:FC(3)=$08:FC(4)=$00' // }
FC(0)=$20:FC(1)=$14:FC(2)=$10:FC(3)=$14:FC(4)=$20 ' // Frown face (shown as } in Lookdown table)
case 126
FC(0)=$10:FC(1)=$08:FC(2)=$08:FC(3)=$10:FC(4)=$08' // ~
end SELECT
GOSUB PomeriNiz
Displej[7]=0 ' Vertikalna prazna linija sa leve strane slova
GOSUB Prikazi_Niz
FOR CharLine=0 to 4
GOSUB PomeriNiz
Displej[i]=FC(CharLine)
GOSUB Prikazi_Niz
PAUSE BrzinaSkrolovanja
Next CharLine
Return
PomeriNiz:
For i=0 to 6
Displej[i]=displej[i+1]
next i
Displej[7]=0'Ovo bi trebao biti novi red koji ce da izadje sa desne strane, ali dok ne proradi siftovanje neka ga 0.
return
Prikazi_Niz:
for Y =0 to 7
ADDRESS = Y+1
DATAREG1 = displej[y]
DATAREG2 = displej[y+8]
DATAREG3 = displej[y+16]
gosub MaxWrite
next Y
return
MaxWrite:
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG3,ADDRESS,DATAREG2,ADDRESS,DATAREG1] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1 'load the data into the MAX7219
return
Code: Select all
Prikazi_Niz:
for Y =0 to 7
ADDRESS = Y+1
DATAREG = displej[y]
gosub MaxWrite
next Y
return
MaxWrite:
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1 'load the data into the MAX7219
return
Re: MAX7219 I 8X8 LED DISPLAY
Do kojeg broja ti ide pomeri niz a do kojeg bi trebalo? I koliko displj niz treba da ima clanova ako imas 24 kolone???
Re: MAX7219 I 8X8 LED DISPLAY
Pedja probao sam to i u niz-u promjeniti ali nije pomoglo jer je bilo jos nedostataka u kodu koji su radili probleme i koji su me zbunili pa sam pustio orginalni kod..Sada je sve ispravljeno i sve radi.
Promjenjeno je sljedece:
FC VAR BYTE[5] ------ u---- FC VAR BYTE[6]
Promjenjeno je sljedece:
FC VAR BYTE[5] ------ u---- FC VAR BYTE[6]
Re: MAX7219 I 8X8 LED DISPLAY
ispravak prijasnjeg posta evo cijelog texta
Pedja probao sam to i u niz-u promjeniti ali nije pomoglo jer je bilo jos nedostataka u kodu koji su radili probleme i koji su me zbunili pa sam pustio orginalni kod..Sada je sve ispravljeno i sve radi.
Promjenjeno je sljedece:
FC VAR BYTE[5] ------ u---- FC VAR BYTE[6]
Displej var byte[8]------u-------Displej var byte[24]
u labeli SEND CHAR na svaki znak na kraju je dodano ovo :FC(5)=$00 da bi imalo razmak izmedju slova
u istoj toj labeli izbačeno je ovo van:
'GOSUB PomeriNiz
'Displej[7]=0
' Vertikalna prazna linija sa leve strane slova
'GOSUB Prikazi_Niz
u istoj toj labeli ovaj red je izmjenjen
Displej=FC(CharLine) u ovaj oblik Displej[i-1]=FC(CharLine)
iz labele POMERI NIZ
izbacen je ovaj red:
'Displej[7]=0
i ovo promjenjeno u ovaj oblik
For i=0 to 6 u ovaj oblik For i=0 to 23
Sada sve radi kao treba tekst se scrola s lijeva na desno bez ijedne greske.
Zahvaljujem Pedji 089 na svestranoj pomoci i strpljenu.Nadam se da cemo se jednom naci i otici na hladno pivo....
evo i finalnog koda
Pedja probao sam to i u niz-u promjeniti ali nije pomoglo jer je bilo jos nedostataka u kodu koji su radili probleme i koji su me zbunili pa sam pustio orginalni kod..Sada je sve ispravljeno i sve radi.
Promjenjeno je sljedece:
FC VAR BYTE[5] ------ u---- FC VAR BYTE[6]
Displej var byte[8]------u-------Displej var byte[24]
u labeli SEND CHAR na svaki znak na kraju je dodano ovo :FC(5)=$00 da bi imalo razmak izmedju slova
u istoj toj labeli izbačeno je ovo van:
'GOSUB PomeriNiz
'Displej[7]=0
' Vertikalna prazna linija sa leve strane slova
'GOSUB Prikazi_Niz
u istoj toj labeli ovaj red je izmjenjen
Displej=FC(CharLine) u ovaj oblik Displej[i-1]=FC(CharLine)
iz labele POMERI NIZ
izbacen je ovaj red:
'Displej[7]=0
i ovo promjenjeno u ovaj oblik
For i=0 to 6 u ovaj oblik For i=0 to 23
Sada sve radi kao treba tekst se scrola s lijeva na desno bez ijedne greske.
Zahvaljujem Pedji 089 na svestranoj pomoci i strpljenu.Nadam se da cemo se jednom naci i otici na hladno pivo....
evo i finalnog koda
Code: Select all
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : ZELJKO FERIC *
'* Notice : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 20.10.2014 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
@ ERRORLEVEL -306 ; turn off crossing page boundary message
#CONFIG
__config _HS_OSC & _WDT_ON & _PWRTE_ON &_CP_ON & _BODEN_OFF & _LVP_OFF
#ENDCONFIG
include "modedefs.bas"
Define OSC 20 ' Set Xtal Frequency
TRISA = %00111111 'port a je cijeli ulazni
TRISB = %00000000
TRISC = %00000000
TRISD = %00000000
TRISE = %1111
ADCON1 = 7 ' PORTA i PORTE su digitalni ISKLJUCI KOMPARATORE I ANALOGNE ULAZE
'-----VARIABLES-----
ADDRESS var byte 'variable address for display
DATAREG var byte
DATAREG1 var byte
DATAREG2 var byte
DATAREG3 var byte 'variable data register for display
Y VAR BYTE 'okomice
i var byte
FC VAR BYTE[6]
BrzinaSkrolovanja VAR WORD
CHAR VAR byte
Addr VAR word
Lcd_Data var word
CharLine var byte
Displej var byte[24]
r var byte
BrzinaSkrolovanja = 200
'----- symbolos ------
'-----PIN SETUPS-----
SYMBOL CLK = PORTB.0
SYMBOL DAT = PORTB.1
SYMBOL LOAD = PORTB.2
inicijalizacija :
'MAX7219 chipa obavezno na pocetku programa
low dat 'data pin for MAX7219 (1)
low clk 'clock pin for MAX7219 (13)
low load 'load pin for MAX7219 (12)
'-----MAX7219 SETUP-----
ADDRESS = $0C : DATAREG = $01' NO SHUT, NORMAL OPERATION
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $09 : DATAREG = $00 ' COMBINACION BINARIA, NO DECODE
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0A : DATAREG = $02 ' INTENSIDAD DE LEDS 1(MIN) A F(MAX)
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0B : DATAREG = $07 ' SCAN LIMIT NUMERO DE DIGITOS
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0F : DATAREG = $00
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
main:
For r=0 to 255
Char=0
LOOKUP r,["Digital Electronic 33405 Pitomaca Tel/FAX:033-800-111 "], Char
if char=0 then exit'Automatski detektuj kraj teksta, tako da ne moras svaki put brojati koliko tekst ima slova
GOSUB SendChar
Next r
pause 1000
goto main
SendChar:
SELECT CASE Char
Case 32
FC(0)=$00:FC(1)=$00:FC(2)=$00:FC(3)=$00:FC(4)=$00 ' // sp
Case 33
FC(0)=$00:FC(1)=$00:FC(2)=$2f:FC(3)=$00:FC(4)=$00:FC(5)=$00'' // !
Case 34
FC(0)=$00:FC(1)=$07:FC(2)=$00:FC(3)=$07:FC(4)=$00:FC(5)=$00' ' // " (shown as \ in Lookdown table)
Case 35
FC(0)=$14:FC(1)=$7f:FC(2)=$14:FC(3)=$7f:FC(4)=$14:FC(5)=$00' ' // #
Case 36
FC(0)=$24:FC(1)=$2a:FC(2)=$7f:FC(3)=$2a:FC(4)=$12:FC(5)=$00' ' // $
Case 37
FC(0)=$c4:FC(1)=$c8:FC(2)=$10:FC(3)=$26:FC(4)=$46:FC(5)=$00' ' // %
Case 38
FC(0)=$36:FC(1)=$49:FC(2)=$55:FC(3)=$22:FC(4)=$50:FC(5)=$00' ' // &
Case 39
FC(0)=$00:FC(1)=$05:FC(2)=$03:FC(3)=$00:FC(4)=$00:FC(5)=$00' ' // '
Case 40
FC(0)=$00:FC(1)=$1c:FC(2)=$22:FC(3)=$41:FC(4)=$00:FC(5)=$00' ' // (
Case 41
FC(0)=$00:FC(1)=$41:FC(2)=$22:FC(3)=$1c:FC(4)=$00:FC(5)=$00' ' // )
Case 42
FC(0)=$14:FC(1)=$08:FC(2)=$3E:FC(3)=$08:FC(4)=$14:FC(5)=$00' ' // *
Case 43
FC(0)=$08:FC(1)=$08:FC(2)=$3E:FC(3)=$08:FC(4)=$08:FC(5)=$00' ' // +
Case 44
FC(0)=$00:FC(1)=$00:FC(2)=$50:FC(3)=$30:FC(4)=$00:FC(5)=$00' ' // ,
Case 45
FC(0)=$10:FC(1)=$10:FC(2)=$10:FC(3)=$10:FC(4)=$10:FC(5)=$00' ' // -
Case 46
FC(0)=$00:FC(1)=$60:FC(2)=$60:FC(3)=$00:FC(4)=$00:FC(5)=$00' ' // .
Case 47
FC(0)=$20:FC(1)=$10:FC(2)=$08:FC(3)=$04:FC(4)=$02:FC(5)=$00' ' // /
Case 48
FC(0)=$3E:FC(1)=$51:FC(2)=$49:FC(3)=$45:FC(4)=$3E:FC(5)=$00' ' // 0
Case 49
FC(0)=$00:FC(1)=$42:FC(2)=$7F:FC(3)=$40:FC(4)=$00:FC(5)=$00' ' // 1 :FC(5)=$00:FC(6)=$00:FC(7)=$00
Case 50
FC(0)=$42:FC(1)=$61:FC(2)=$51:FC(3)=$49:FC(4)=$46:FC(5)=$00' ' // 2
Case 51
FC(0)=$21:FC(1)=$41:FC(2)=$45:FC(3)=$4B:FC(4)=$31:FC(5)=$00' ' // 3
Case 52
FC(0)=$18:FC(1)=$14:FC(2)=$12:FC(3)=$7F:FC(4)=$10:FC(5)=$00' ' // 4
Case 53
FC(0)=$27:FC(1)=$45:FC(2)=$45:FC(3)=$45:FC(4)=$39:FC(5)=$00' ' // 5
Case 54
FC(0)=$3C:FC(1)=$4A:FC(2)=$49:FC(3)=$49:FC(4)=$30:FC(5)=$00' ' // 6
Case 55
FC(0)=$01:FC(1)=$71:FC(2)=$09:FC(3)=$05:FC(4)=$03:FC(5)=$00' ' // 7
Case 56
FC(0)=$36:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$36:FC(5)=$00' ' // 8
Case 57
FC(0)=$06:FC(1)=$49:FC(2)=$49:FC(3)=$29:FC(4)=$1E:FC(5)=$00' ' // 9
Case 58
FC(0)=$00:FC(1)=$36:FC(2)=$36:FC(3)=$00:FC(4)=$00:FC(5)=$00' ' // :
Case 59
FC(0)=$00:FC(1)=$56:FC(2)=$36:FC(3)=$00:FC(4)=$00:FC(5)=$00' ' // ";"
Case 60
FC(0)=$08:FC(1)=$14:FC(2)=$22:FC(3)=$41:FC(4)=$00:FC(5)=$00' ' // <
Case 61
FC(0)=$14:FC(1)=$14:FC(2)=$14:FC(3)=$14:FC(4)=$14 :FC(5)=$00'' // =
Case 62
FC(0)=$00:FC(1)=$41:FC(2)=$22:FC(3)=$14:FC(4)=$08:FC(5)=$00' ' // >
Case 63
FC(0)=$02:FC(1)=$01:FC(2)=$51:FC(3)=$09:FC(4)=$06:FC(5)=$00' ' // ?
Case 64
FC(0)=$32:FC(1)=$49:FC(2)=$59:FC(3)=$51:FC(4)=$3E:FC(5)=$00' ' // @
Case 65
FC(0)=$7E:FC(1)=$11:FC(2)=$11:FC(3)=$11:FC(4)=$7E :FC(5)=$00' // A
Case 66
FC(0)=$7F:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$36:FC(5)=$00' // B
Case 67
FC(0)=$3E:FC(1)=$41:FC(2)=$41:FC(3)=$41:FC(4)=$22:FC(5)=$00' // C
Case 68
FC(0)=$7F:FC(1)=$41:FC(2)=$41:FC(3)=$22:FC(4)=$1C:FC(5)=$00' // D
Case 69
FC(0)=$7F:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$41:FC(5)=$00' // E
Case 70
FC(0)=$7F:FC(1)=$09:FC(2)=$09:FC(3)=$09:FC(4)=$01:FC(5)=$00' // F
Case 71
FC(0)=$3E:FC(1)=$41:FC(2)=$49:FC(3)=$49:FC(4)=$7A:FC(5)=$00' // G
Case 72
FC(0)=$7F:FC(1)=$08:FC(2)=$08:FC(3)=$08:FC(4)=$7F:FC(5)=$00'// H
Case 73
FC(0)=$00:FC(1)=$41:FC(2)=$7F:FC(3)=$41:FC(4)=$00:FC(5)=$00' // I
Case 74
FC(0)=$20:FC(1)=$40:FC(2)=$41:FC(3)=$3F:FC(4)=$01:FC(5)=$00': // J
Case 75
FC(0)=$7F:FC(1)=$08:FC(2)=$14:FC(3)=$22:FC(4)=$41:FC(5)=$00' // K
Case 76
FC(0)=$7F:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$40:FC(5)=$00' // L
Case 77
FC(0)=$7F:FC(1)=$02:FC(2)=$0C:FC(3)=$02:FC(4)=$7F:FC(5)=$00':// M
Case 78
FC(0)=$7F:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$7F:FC(5)=$00' // N
Case 79
FC(0)=$3E:FC(1)=$41:FC(2)=$41:FC(3)=$41:FC(4)=$3E:FC(5)=$00' // O
Case 80
FC(0)=$7F:FC(1)=$09:FC(2)=$09:FC(3)=$09:FC(4)=$06:FC(5)=$00' // P
Case 81
FC(0)=$3E:FC(1)=$41:FC(2)=$51:FC(3)=$21:FC(4)=$5E:FC(5)=$00' // Q
Case 82
FC(0)=$7F:FC(1)=$09:FC(2)=$19:FC(3)=$29:FC(4)=$46:FC(5)=$00' // R
Case 83
FC(0)=$46:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$31:FC(5)=$00' // S
Case 84
FC(0)=$01:FC(1)=$01:FC(2)=$7F:FC(3)=$01:FC(4)=$01:FC(5)=$00' // T
Case 85
FC(0)=$3F:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$3F:FC(5)=$00' // U
Case 86
FC(0)=$1F:FC(1)=$20:FC(2)=$40:FC(3)=$20:FC(4)=$1F:FC(5)=$00' // V
Case 87
FC(0)=$3F:FC(1)=$40:FC(2)=$38:FC(3)=$40:FC(4)=$3F:FC(5)=$00' // W
Case 88
FC(0)=$63:FC(1)=$14:FC(2)=$08:FC(3)=$14:FC(4)=$63:FC(5)=$00' // X
Case 89
FC(0)=$07:FC(1)=$08:FC(2)=$70:FC(3)=$08:FC(4)=$07:FC(5)=$00' // Y
Case 90
FC(0)=$61:FC(1)=$51:FC(2)=$49:FC(3)=$45:FC(4)=$43:FC(5)=$00' // Z
Case 91
FC(0)=$00:FC(1)=$7F:FC(2)=$41:FC(3)=$41:FC(4)=$00 :FC(5)=$00'' // [
Case 92
FC(0)=$02:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$20 :FC(5)=$00'' // \ (we are using this for Case 34 " above)
Case 93
FC(0)=$00:FC(1)=$41:FC(2)=$41:FC(3)=$7F:FC(4)=$00:FC(5)=$00' ' // ]
Case 94
FC(0)=$04:FC(1)=$02:FC(2)=$01:FC(3)=$02:FC(4)=$04:FC(5)=$00' ' // ^
Case 95
FC(0)=$40:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$40 :FC(5)=$00'' // _
Case 96
' FC(0)=$00:FC(1)=$01:FC(2)=$02:FC(3)=$04:FC(4)=$00 ' // `
FC(0)=$02:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$20:FC(5)=$00' ' // \ (shown as ` in Lookdown table)
Case 97
FC(0)=$20:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$78:FC(5)=$00' ' // a
Case 98
FC(0)=$7F:FC(1)=$48:FC(2)=$44:FC(3)=$44:FC(4)=$38:FC(5)=$00'' // b
Case 99
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$44:FC(4)=$20 :FC(5)=$00'' // c
Case 100
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$48:FC(4)=$7F:FC(5)=$00' ' // d
Case 101
FC(0)=$38:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$18:FC(5)=$00' ' // e
Case 102
FC(0)=$08:FC(1)=$7E:FC(2)=$09:FC(3)=$01:FC(4)=$02:FC(5)=$00' ' // f
Case 103
FC(0)=$0C:FC(1)=$52:FC(2)=$52:FC(3)=$52:FC(4)=$3E:FC(5)=$00' ' // g
Case 104
FC(0)=$7F:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$78:FC(5)=$00' ' // h
Case 105
FC(0)=$00:FC(1)=$44:FC(2)=$7D:FC(3)=$40:FC(4)=$00:FC(5)=$00' ' // i
Case 106
FC(0)=$20:FC(1)=$40:FC(2)=$44:FC(3)=$3D:FC(4)=$00:FC(5)=$00' ' // j
Case 107
FC(0)=$7F:FC(1)=$10:FC(2)=$28:FC(3)=$44:FC(4)=$00:FC(5)=$00' ' // k
Case 108
FC(0)=$00:FC(1)=$41:FC(2)=$7F:FC(3)=$40:FC(4)=$00:FC(5)=$00' ' // l
Case 109
FC(0)=$7C:FC(1)=$04:FC(2)=$18:FC(3)=$04:FC(4)=$78:FC(5)=$00' ' // m
Case 110
FC(0)=$7C:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$78:FC(5)=$00' ' // n
Case 111
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$44:FC(4)=$38 :FC(5)=$00'' // o
Case 112
FC(0)=$7C:FC(1)=$14:FC(2)=$14:FC(3)=$14:FC(4)=$08:FC(5)=$00' ' // p
Case 113
FC(0)=$08:FC(1)=$14:FC(2)=$14:FC(3)=$18:FC(4)=$7C:FC(5)=$00' ' // q
Case 114
FC(0)=$7C:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$08:FC(5)=$00' ' // r
Case 115
FC(0)=$48:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$20:FC(5)=$00' ' // s
Case 116
FC(0)=$04:FC(1)=$3F:FC(2)=$44:FC(3)=$40:FC(4)=$20:FC(5)=$00' ' // t
Case 117
FC(0)=$3C:FC(1)=$40:FC(2)=$40:FC(3)=$20:FC(4)=$7C:FC(5)=$00' ' // u
Case 118
FC(0)=$1C:FC(1)=$20:FC(2)=$40:FC(3)=$20:FC(4)=$1C:FC(5)=$00' ' // v
Case 119
FC(0)=$3C:FC(1)=$40:FC(2)=$30:FC(3)=$40:FC(4)=$3C:FC(5)=$00' ' // w
Case 120
FC(0)=$44:FC(1)=$28:FC(2)=$10:FC(3)=$28:FC(4)=$44:FC(5)=$00' ' // x
Case 121
FC(0)=$0C:FC(1)=$50:FC(2)=$50:FC(3)=$50:FC(4)=$3C:FC(5)=$00' ' // y
Case 122
FC(0)=$44:FC(1)=$64:FC(2)=$54:FC(3)=$4C:FC(4)=$44:FC(5)=$00' ' // z
case 123
' FC(0)=$00:FC(1)=$08:FC(2)=$36:FC(3)=$41:FC(4)=$00' // {
FC(0)=$10:FC(1)=$24:FC(2)=$20:FC(3)=$24:FC(4)=$10:FC(5)=$00' ' // Smily face (shown as { in Lookdown table)
case 124
' FC(0)=$00:FC(1)=$00:FC(2)=$7F:FC(3)=$00:FC(4)=$00 ' // |
FC(0)=$20:FC(1)=$40:FC(2)=$20:FC(3)=$10:FC(4)=$08:FC(5)=$00' ' // Tick (shown as | in Lookdown table)
case 125
' FC(0)=$00:FC(1)=$41:FC(2)=$36:FC(3)=$08:FC(4)=$00' // }
FC(0)=$20:FC(1)=$14:FC(2)=$10:FC(3)=$14:FC(4)=$20:FC(5)=$00' ' // Frown face (shown as } in Lookdown table)
case 126
FC(0)=$10:FC(1)=$08:FC(2)=$08:FC(3)=$10:FC(4)=$08:FC(5)=$00'' // ~
end SELECT
FOR CharLine=0 to 5
GOSUB PomeriNiz
Displej[i-1]=FC(CharLine)
GOSUB Prikazi_Niz
PAUSE BrzinaSkrolovanja
Next CharLine
Return
PomeriNiz:
For i=0 to 23
Displej[i]=displej[i+1]
next i
return
Prikazi_Niz:
for Y =0 to 7
ADDRESS = Y+1
DATAREG1 = displej[y]
DATAREG2 = displej[y+8]
DATAREG3 = displej[y+16]
gosub MaxWrite
next Y
return
MaxWrite:
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG3,ADDRESS,DATAREG2,ADDRESS,DATAREG1] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1 'load the data into the MAX7219
return
Re: MAX7219 I 8X8 LED DISPLAY
Drago mi je da ti uspelo. Nema na cemu... Daj neki snimak ili sliku da vidimo kako to izgleda.
Re: MAX7219 I 8X8 LED DISPLAY
STRING preko makroa ne radi. I dalje ispisuje samo svako drugo slovo,ali to mi nije ni previse bitno,ako uspijem skuziti problem OK ako ne nema veze
VARIJABLA radi perfektno preko makroa,evo i primjera.
Primjer ispisa varijable preko makroa:
i include file PEDJA MACRO2
VARIJABLA radi perfektno preko makroa,evo i primjera.
Primjer ispisa varijable preko makroa:
Code: Select all
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : ZELJKO FERIC *
'* Notice : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 25.10.2014 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
INCLUDE "pedja_MACRO2.pbp"
temperatura var word
temperatura = 1
main:
temperatura = temperatura +5
@ PrintVar _temperatura
pause 1000
goto main
i include file PEDJA MACRO2
Code: Select all
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : ZELJKO FERIC *
'* Notice : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 20.10.2014 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
@ ERRORLEVEL -306 ; turn off crossing page boundary message
#CONFIG
__config _HS_OSC & _WDT_ON & _PWRTE_ON &_CP_ON & _BODEN_OFF & _LVP_OFF
#ENDCONFIG
include "modedefs.bas"
Define OSC 20 ' Set Xtal Frequency
TRISA = %00111111 'port a je cijeli ulazni
TRISB = %00000000
TRISC = %00000000
TRISD = %00000000
TRISE = %1111
ADCON1 = 7 ' PORTA i PORTE su digitalni ISKLJUCI KOMPARATORE I ANALOGNE ULAZE
VarData var word
'-----VARIABLES-----
ADDRESS var byte 'variable address for display
DATAREG var byte
DATAREG1 var byte
DATAREG2 var byte
DATAREG3 var byte 'variable data register for display
Y VAR BYTE 'okomice
i var byte
FC VAR BYTE[6]
BrzinaSkrolovanja VAR WORD
CHAR VAR byte
Addr VAR word
Lcd_Data var byte
CharLine var byte
Displej var byte[24]
r var byte
BrzinaSkrolovanja = 20
wordChar var word
t var byte
'----- symbolos ------
'-----PIN SETUPS-----
SYMBOL CLK = PORTB.0
SYMBOL DAT = PORTB.1
SYMBOL LOAD = PORTB.2
inicijalizacija :
'MAX7219 chipa obavezno na pocetku programa
low dat 'data pin for MAX7219 (1)
low clk 'clock pin for MAX7219 (13)
low load 'load pin for MAX7219 (12)
'-----MAX7219 SETUP-----
ADDRESS = $0C : DATAREG = $01' NO SHUT, NORMAL OPERATION
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $09 : DATAREG = $00 ' COMBINACION BINARIA, NO DECODE
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0A : DATAREG = $02 ' INTENSIDAD DE LEDS 1(MIN) A F(MAX)
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0B : DATAREG = $07 ' SCAN LIMIT NUMERO DE DIGITOS
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
ADDRESS = $0F : DATAREG = $00
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG,ADDRESS,DATAREG,ADDRESS,DATAREG] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1
goto overlcd
' @ PrintVar macro function
' format should look like this: @ PrintVar x,y, _anyvariable
ASM
PrintVar macro Variable ; input values from: @PrintVar 0,1, _any_variable
local OverVar
goto OverVar
OverVar
MOVE?WW Variable, _VarData ; move variable in statement to VarData
L?CALL _GLCD_VariableOut ; call VariableOut function
endm
ENDASM
GLCD_VariableOut:
For t = 4 to 0 step -1
char= 48+ vardata DIG t
If vardata<10000 and t=4 then char= 32' Zero Suppression for the second digit
If vardata<1000 and t=3 then char= 32 ' Zero Suppression for the Third digit
If vardata<100 and t=2 then char= 32 ' Zero Suppression for the Forth digit
If vardata<10 and t=1 then char= 32
gosub SendChar
NEXT t
return
SendChar:
SELECT CASE Char
Case 32
FC(0)=$00:FC(1)=$00:FC(2)=$00:FC(3)=$00:FC(4)=$00 ' // sp
Case 33
FC(0)=$00:FC(1)=$00:FC(2)=$2f:FC(3)=$00:FC(4)=$00:FC(5)=$00'' // !
Case 34
FC(0)=$00:FC(1)=$07:FC(2)=$00:FC(3)=$07:FC(4)=$00:FC(5)=$00' ' // " (shown as \ in Lookdown table)
Case 35
FC(0)=$14:FC(1)=$7f:FC(2)=$14:FC(3)=$7f:FC(4)=$14:FC(5)=$00' ' // #
Case 36
FC(0)=$24:FC(1)=$2a:FC(2)=$7f:FC(3)=$2a:FC(4)=$12:FC(5)=$00' ' // $
Case 37
FC(0)=$c4:FC(1)=$c8:FC(2)=$10:FC(3)=$26:FC(4)=$46:FC(5)=$00' ' // %
Case 38
FC(0)=$36:FC(1)=$49:FC(2)=$55:FC(3)=$22:FC(4)=$50:FC(5)=$00' ' // &
Case 39
FC(0)=$00:FC(1)=$05:FC(2)=$03:FC(3)=$00:FC(4)=$00:FC(5)=$00' ' // '
Case 40
FC(0)=$00:FC(1)=$1c:FC(2)=$22:FC(3)=$41:FC(4)=$00:FC(5)=$00' ' // (
Case 41
FC(0)=$00:FC(1)=$41:FC(2)=$22:FC(3)=$1c:FC(4)=$00:FC(5)=$00' ' // )
Case 42
FC(0)=$14:FC(1)=$08:FC(2)=$3E:FC(3)=$08:FC(4)=$14:FC(5)=$00' ' // *
Case 43
FC(0)=$08:FC(1)=$08:FC(2)=$3E:FC(3)=$08:FC(4)=$08:FC(5)=$00' ' // +
Case 44
FC(0)=$00:FC(1)=$00:FC(2)=$50:FC(3)=$30:FC(4)=$00:FC(5)=$00' ' // ,
Case 45
FC(0)=$10:FC(1)=$10:FC(2)=$10:FC(3)=$10:FC(4)=$10:FC(5)=$00' ' // -
Case 46
FC(0)=$00:FC(1)=$60:FC(2)=$60:FC(3)=$00:FC(4)=$00:FC(5)=$00' ' // .
Case 47
FC(0)=$20:FC(1)=$10:FC(2)=$08:FC(3)=$04:FC(4)=$02:FC(5)=$00' ' // /
Case 48
FC(0)=$3E:FC(1)=$51:FC(2)=$49:FC(3)=$45:FC(4)=$3E:FC(5)=$00' ' // 0
Case 49
FC(0)=$00:FC(1)=$42:FC(2)=$7F:FC(3)=$40:FC(4)=$00:FC(5)=$00' ' // 1 :FC(5)=$00:FC(6)=$00:FC(7)=$00
Case 50
FC(0)=$42:FC(1)=$61:FC(2)=$51:FC(3)=$49:FC(4)=$46:FC(5)=$00' ' // 2
Case 51
FC(0)=$21:FC(1)=$41:FC(2)=$45:FC(3)=$4B:FC(4)=$31:FC(5)=$00' ' // 3
Case 52
FC(0)=$18:FC(1)=$14:FC(2)=$12:FC(3)=$7F:FC(4)=$10:FC(5)=$00' ' // 4
Case 53
FC(0)=$27:FC(1)=$45:FC(2)=$45:FC(3)=$45:FC(4)=$39:FC(5)=$00' ' // 5
Case 54
FC(0)=$3C:FC(1)=$4A:FC(2)=$49:FC(3)=$49:FC(4)=$30:FC(5)=$00' ' // 6
Case 55
FC(0)=$01:FC(1)=$71:FC(2)=$09:FC(3)=$05:FC(4)=$03:FC(5)=$00' ' // 7
Case 56
FC(0)=$36:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$36:FC(5)=$00' ' // 8
Case 57
FC(0)=$06:FC(1)=$49:FC(2)=$49:FC(3)=$29:FC(4)=$1E:FC(5)=$00' ' // 9
Case 58
FC(0)=$00:FC(1)=$36:FC(2)=$36:FC(3)=$00:FC(4)=$00:FC(5)=$00' ' // :
Case 59
FC(0)=$00:FC(1)=$56:FC(2)=$36:FC(3)=$00:FC(4)=$00:FC(5)=$00' ' // ";"
Case 60
FC(0)=$08:FC(1)=$14:FC(2)=$22:FC(3)=$41:FC(4)=$00:FC(5)=$00' ' // <
Case 61
FC(0)=$14:FC(1)=$14:FC(2)=$14:FC(3)=$14:FC(4)=$14 :FC(5)=$00'' // =
Case 62
FC(0)=$00:FC(1)=$41:FC(2)=$22:FC(3)=$14:FC(4)=$08:FC(5)=$00' ' // >
Case 63
FC(0)=$02:FC(1)=$01:FC(2)=$51:FC(3)=$09:FC(4)=$06:FC(5)=$00' ' // ?
Case 64
FC(0)=$32:FC(1)=$49:FC(2)=$59:FC(3)=$51:FC(4)=$3E:FC(5)=$00' ' // @
Case 65
FC(0)=$7E:FC(1)=$11:FC(2)=$11:FC(3)=$11:FC(4)=$7E :FC(5)=$00' // A
Case 66
FC(0)=$7F:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$36:FC(5)=$00' // B
Case 67
FC(0)=$3E:FC(1)=$41:FC(2)=$41:FC(3)=$41:FC(4)=$22:FC(5)=$00' // C
Case 68
FC(0)=$7F:FC(1)=$41:FC(2)=$41:FC(3)=$22:FC(4)=$1C:FC(5)=$00' // D
Case 69
FC(0)=$7F:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$41:FC(5)=$00' // E
Case 70
FC(0)=$7F:FC(1)=$09:FC(2)=$09:FC(3)=$09:FC(4)=$01:FC(5)=$00' // F
Case 71
FC(0)=$3E:FC(1)=$41:FC(2)=$49:FC(3)=$49:FC(4)=$7A:FC(5)=$00' // G
Case 72
FC(0)=$7F:FC(1)=$08:FC(2)=$08:FC(3)=$08:FC(4)=$7F:FC(5)=$00'// H
Case 73
FC(0)=$00:FC(1)=$41:FC(2)=$7F:FC(3)=$41:FC(4)=$00:FC(5)=$00' // I
Case 74
FC(0)=$20:FC(1)=$40:FC(2)=$41:FC(3)=$3F:FC(4)=$01:FC(5)=$00': // J
Case 75
FC(0)=$7F:FC(1)=$08:FC(2)=$14:FC(3)=$22:FC(4)=$41:FC(5)=$00' // K
Case 76
FC(0)=$7F:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$40:FC(5)=$00' // L
Case 77
FC(0)=$7F:FC(1)=$02:FC(2)=$0C:FC(3)=$02:FC(4)=$7F:FC(5)=$00':// M
Case 78
FC(0)=$7F:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$7F:FC(5)=$00' // N
Case 79
FC(0)=$3E:FC(1)=$41:FC(2)=$41:FC(3)=$41:FC(4)=$3E:FC(5)=$00' // O
Case 80
FC(0)=$7F:FC(1)=$09:FC(2)=$09:FC(3)=$09:FC(4)=$06:FC(5)=$00' // P
Case 81
FC(0)=$3E:FC(1)=$41:FC(2)=$51:FC(3)=$21:FC(4)=$5E:FC(5)=$00' // Q
Case 82
FC(0)=$7F:FC(1)=$09:FC(2)=$19:FC(3)=$29:FC(4)=$46:FC(5)=$00' // R
Case 83
FC(0)=$46:FC(1)=$49:FC(2)=$49:FC(3)=$49:FC(4)=$31:FC(5)=$00' // S
Case 84
FC(0)=$01:FC(1)=$01:FC(2)=$7F:FC(3)=$01:FC(4)=$01:FC(5)=$00' // T
Case 85
FC(0)=$3F:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$3F:FC(5)=$00' // U
Case 86
FC(0)=$1F:FC(1)=$20:FC(2)=$40:FC(3)=$20:FC(4)=$1F:FC(5)=$00' // V
Case 87
FC(0)=$3F:FC(1)=$40:FC(2)=$38:FC(3)=$40:FC(4)=$3F:FC(5)=$00' // W
Case 88
FC(0)=$63:FC(1)=$14:FC(2)=$08:FC(3)=$14:FC(4)=$63:FC(5)=$00' // X
Case 89
FC(0)=$07:FC(1)=$08:FC(2)=$70:FC(3)=$08:FC(4)=$07:FC(5)=$00' // Y
Case 90
FC(0)=$61:FC(1)=$51:FC(2)=$49:FC(3)=$45:FC(4)=$43:FC(5)=$00' // Z
Case 91
FC(0)=$00:FC(1)=$7F:FC(2)=$41:FC(3)=$41:FC(4)=$00 :FC(5)=$00'' // [
Case 92
FC(0)=$02:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$20 :FC(5)=$00'' // \ (we are using this for Case 34 " above)
Case 93
FC(0)=$00:FC(1)=$41:FC(2)=$41:FC(3)=$7F:FC(4)=$00:FC(5)=$00' ' // ]
Case 94
FC(0)=$04:FC(1)=$02:FC(2)=$01:FC(3)=$02:FC(4)=$04:FC(5)=$00' ' // ^
Case 95
FC(0)=$40:FC(1)=$40:FC(2)=$40:FC(3)=$40:FC(4)=$40 :FC(5)=$00'' // _
Case 96
' FC(0)=$00:FC(1)=$01:FC(2)=$02:FC(3)=$04:FC(4)=$00 ' // `
FC(0)=$02:FC(1)=$04:FC(2)=$08:FC(3)=$10:FC(4)=$20:FC(5)=$00' ' // \ (shown as ` in Lookdown table)
Case 97
FC(0)=$20:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$78:FC(5)=$00' ' // a
Case 98
FC(0)=$7F:FC(1)=$48:FC(2)=$44:FC(3)=$44:FC(4)=$38:FC(5)=$00'' // b
Case 99
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$44:FC(4)=$20 :FC(5)=$00'' // c
Case 100
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$48:FC(4)=$7F:FC(5)=$00' ' // d
Case 101
FC(0)=$38:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$18:FC(5)=$00' ' // e
Case 102
FC(0)=$08:FC(1)=$7E:FC(2)=$09:FC(3)=$01:FC(4)=$02:FC(5)=$00' ' // f
Case 103
FC(0)=$0C:FC(1)=$52:FC(2)=$52:FC(3)=$52:FC(4)=$3E:FC(5)=$00' ' // g
Case 104
FC(0)=$7F:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$78:FC(5)=$00' ' // h
Case 105
FC(0)=$00:FC(1)=$44:FC(2)=$7D:FC(3)=$40:FC(4)=$00:FC(5)=$00' ' // i
Case 106
FC(0)=$20:FC(1)=$40:FC(2)=$44:FC(3)=$3D:FC(4)=$00:FC(5)=$00' ' // j
Case 107
FC(0)=$7F:FC(1)=$10:FC(2)=$28:FC(3)=$44:FC(4)=$00:FC(5)=$00' ' // k
Case 108
FC(0)=$00:FC(1)=$41:FC(2)=$7F:FC(3)=$40:FC(4)=$00:FC(5)=$00' ' // l
Case 109
FC(0)=$7C:FC(1)=$04:FC(2)=$18:FC(3)=$04:FC(4)=$78:FC(5)=$00' ' // m
Case 110
FC(0)=$7C:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$78:FC(5)=$00' ' // n
Case 111
FC(0)=$38:FC(1)=$44:FC(2)=$44:FC(3)=$44:FC(4)=$38 :FC(5)=$00'' // o
Case 112
FC(0)=$7C:FC(1)=$14:FC(2)=$14:FC(3)=$14:FC(4)=$08:FC(5)=$00' ' // p
Case 113
FC(0)=$08:FC(1)=$14:FC(2)=$14:FC(3)=$18:FC(4)=$7C:FC(5)=$00' ' // q
Case 114
FC(0)=$7C:FC(1)=$08:FC(2)=$04:FC(3)=$04:FC(4)=$08:FC(5)=$00' ' // r
Case 115
FC(0)=$48:FC(1)=$54:FC(2)=$54:FC(3)=$54:FC(4)=$20:FC(5)=$00' ' // s
Case 116
FC(0)=$04:FC(1)=$3F:FC(2)=$44:FC(3)=$40:FC(4)=$20:FC(5)=$00' ' // t
Case 117
FC(0)=$3C:FC(1)=$40:FC(2)=$40:FC(3)=$20:FC(4)=$7C:FC(5)=$00' ' // u
Case 118
FC(0)=$1C:FC(1)=$20:FC(2)=$40:FC(3)=$20:FC(4)=$1C:FC(5)=$00' ' // v
Case 119
FC(0)=$3C:FC(1)=$40:FC(2)=$30:FC(3)=$40:FC(4)=$3C:FC(5)=$00' ' // w
Case 120
FC(0)=$44:FC(1)=$28:FC(2)=$10:FC(3)=$28:FC(4)=$44:FC(5)=$00' ' // x
Case 121
FC(0)=$0C:FC(1)=$50:FC(2)=$50:FC(3)=$50:FC(4)=$3C:FC(5)=$00' ' // y
Case 122
FC(0)=$44:FC(1)=$64:FC(2)=$54:FC(3)=$4C:FC(4)=$44:FC(5)=$00' ' // z
case 123
' FC(0)=$00:FC(1)=$08:FC(2)=$36:FC(3)=$41:FC(4)=$00' // {
FC(0)=$10:FC(1)=$24:FC(2)=$20:FC(3)=$24:FC(4)=$10:FC(5)=$00' ' // Smily face (shown as { in Lookdown table)
case 124
' FC(0)=$00:FC(1)=$00:FC(2)=$7F:FC(3)=$00:FC(4)=$00 ' // |
FC(0)=$20:FC(1)=$40:FC(2)=$20:FC(3)=$10:FC(4)=$08:FC(5)=$00' ' // Tick (shown as | in Lookdown table)
case 125
' FC(0)=$00:FC(1)=$41:FC(2)=$36:FC(3)=$08:FC(4)=$00' // }
FC(0)=$20:FC(1)=$14:FC(2)=$10:FC(3)=$14:FC(4)=$20:FC(5)=$00' ' // Frown face (shown as } in Lookdown table)
case 126
FC(0)=$10:FC(1)=$08:FC(2)=$08:FC(3)=$10:FC(4)=$08:FC(5)=$00'' // ~
end SELECT
FOR CharLine=0 to 5
GOSUB PomeriNiz
Displej[i-1]=FC(CharLine)
GOSUB Prikazi_Niz
PAUSE BrzinaSkrolovanja
Next CharLine
Return
PomeriNiz:
For i=0 to 23
Displej[i]=displej[i+1]
next i
return
Prikazi_Niz:
for Y =0 to 7
ADDRESS = Y+1
DATAREG1 = displej[y]
DATAREG2 = displej[y+8]
DATAREG3 = displej[y+16]
gosub MaxWrite
next Y
return
MaxWrite:
shiftout DAT,CLK,MSBFIRST,[ADDRESS,DATAREG3,ADDRESS,DATAREG2,ADDRESS,DATAREG1] 'Shift out the data to the 'MAX7219 'first the address, then data.
pulsout LOAD,1 'load the data into the MAX7219
return
overlcd:
Re: MAX7219 I 8X8 LED DISPLAY
Probaj umesto data u makrou staviti DW pa da vidimo onda sta ce biti. Probao bi ja, ali nisam pri kompijuteru...
Re: MAX7219 I 8X8 LED DISPLAY
Da li si mislio na makro za string da prepravim u ovaj oblik:
data je zamjenjen u DW i nema razlike i dalje svako drugo slovo.
Nema razlike isto cita svako drugo slovo.
Code: Select all
ASM
PrintStr macro Str
local TheString, OverStr
goto OverStr
TheString
DW Str, 0
OverStr
MOVE?CW TheString, _Addr
L?CALL _StringOut
endm
ENDASM
StringOut:
Readcode Addr, Char ' Get a character
if Char = 0 then StringDone ' Look for Null char, Stop if found
Lcd_Data = Char
gosub SendChar ' puttext
Addr = Addr + 1 ' Point to next character
goto StringOut ' Continue with rest of the string
StringDone:
return
Nema razlike isto cita svako drugo slovo.
Re: MAX7219 I 8X8 LED DISPLAY
To sam mislio... Mozes probati i da zamenis DW sa DB, ako i onda daje svako drugo, onda ne znam zasto ne radi, i sta se desava. A to bi mi ponekad zatrebalo, pa ako ovo sa DB ne bude radilo moracu baciti oko ocemu se tacno radi.
Re: MAX7219 I 8X8 LED DISPLAY
Sad sam nabrzaka isprobao to zamjenit i dobijem ovaj rezultat:
Ako napisem ovako : DB Str, 0 onda cita ova slova ej09)
a ako napisem DB, Str, 0 onda pise ova slova Pda8:
rijec je za ispis Pedja089:)
Razlika je u zarezu iz DB
Ako napisem ovako : DB Str, 0 onda cita ova slova ej09)
a ako napisem DB, Str, 0 onda pise ova slova Pda8:
rijec je za ispis Pedja089:)
Razlika je u zarezu iz DB
Re: MAX7219 I 8X8 LED DISPLAY
Probaj sa zarezom, i ovo bi trebalo onda da radi
Code: Select all
Na pocetku include stavi
wordChar var word
Addr var word
Ovo dole zameni...
StringOut:
Readcode Addr, wordChar ' Get a character
Char =wordChar.byte0
if Char = 0 then StringDone ' Look for Null char, Stop if found
gosub SendChar ' puttext
Char =wordChar.byte1
if Char = 0 then StringDone ' Look for Null char, Stop if found
gosub SendChar ' puttext
Addr = Addr + 1 ' Point to next character
goto StringOut ' Continue with rest of the string
StringDone:
return