'Constants 'DPin CON 1 ' shift data to MAX7219 include "modedefs.bas" define OSC 20 'MSBFirst con 1 inputMaxLength con 3 Decode CON $09 ' bcd decode Intensity CON $0A ' brightness Scan CON $0B ' scan (column) limit ShutDn CON $0C ' shutdown (1 = on) Test CON $0F ' display test mode Yes CON 1 No CON 0 'variable load var portc.5 clock var portc.7 DPin var portc.6 led var portc.4 index VAR byte ' loop counter idxOdd VAR index.Bit0 ' is index odd? (1 = yes) inputArray var byte'(inputMaxLength) 'instantiating a byte array for serial in rx var portd.4 ' receive pin tx var portd.5 d7219 VAR Byte ' data for MAX7219 char VAR Byte ' character ee address col VAR byte ' column value row VAR byte ' row value rec var byte output led output Dpin output Clock output Load output tx input rx ' ----[ Initialization ]-------------------------------------------------- ' Initialize: PAUSE 100 'DirL = %111 ' clock, data and load pins For Index = 0 To 5 LOOKUP Index, [Scan,2,Intensity,7,ShutDn,1], d7219 SHIFTOUT Dpin, Clock, MSBFirst, [d7219] If (idxOdd <> 1) Then NoLoad PULSOUT Load, 3 ' load parameter NoLoad: Next main: inputArray = 0 For col = 1 To 3 'rec = inputArray[col-1] serin2 rx, 16468, [inputArray] SHIFTOUT Dpin, Clock, MSBFirst, [col,inputArray] PULSOUT Load, 3 Next 'pause 100 'PAUSE 500 'next 'outer for loop 'serin2 rx,16468,3000,mian, [rec] 'serin2 rx,16468,100,main, [inputArray] 'serout2 tx,16468,[inputArray] 'echo 'gosub display GoTo main display: For col = 1 To 3 'rec = inputArray[col-1] serin2 rx, 16468, 100, main, [inputArray] SHIFTOUT Dpin, Clock, MSBFirst, [col,rec] PULSOUT Load, 3 Next PAUSE 500 'next 'outer for loop Return