Program Matrix
Dim ClockPin as sbit at PORTC.3
DIM Latch as sbit at PORTC.7
DIM Datapin as sbit at PORTC.5
Dim Kolom as Byte
Dim Inhoud1 as Byte
Dim Inhoud2 as Byte
Dim Tel as Word
Dim i1 as byte
Dim j1 as word
dim z1 as byte
const font as byte[80] =
(
0x00, 0x7C, 0xFE, 0xB2, 0x9A, 0x8E, 0xFE, 0x7C,
0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x40, 0x00,
0x00, 0x00, 0x62, 0xF2, 0x92, 0x9A, 0xCE, 0x46,
0x00, 0x00, 0x6C, 0xFE, 0x92, 0x92, 0xC6, 0x44,
0x00, 0x08, 0xFE, 0xFE, 0xC8, 0x68, 0x38, 0x18,
0x00, 0x00, 0x9C, 0xBE, 0xA2, 0xA2, 0xE6, 0xE4,
0x00, 0x00, 0x0C, 0x9E, 0x92, 0xD2, 0x7E, 0x3C,
0x00, 0x00, 0xE0, 0xF0, 0x9E, 0x8E, 0x80, 0x80,
0x00, 0x00, 0x6C, 0xFE, 0x92, 0x92, 0xFE, 0x6C,
0x00, 0x00, 0x78, 0xFC, 0x96, 0x92, 0xF2, 0x60
)
Sub Procedure Max_Write_2()
Latch = 0
SPI1_Write(Kolom)
SPI1_Write(Inhoud1)
SPI1_Write(Kolom)
SPI1_Write(Inhoud2)
Latch = 1
end sub
Sub Procedure Max7219_Init()
Kolom = $09
Inhoud1 = $00
Inhoud2 = $00
Max_Write_2 ()
Kolom = $0B
Inhoud1 = $07
Inhoud2 = $07
Max_Write_2()
Kolom = $0C
Inhoud1 = $01
Inhoud2 = $01
Max_Write_2()
Kolom = $0A
Inhoud1 = $01
Inhoud2 = $01
Max_Write_2()
delay_ms(500)
end sub
Sub Procedure Display_Testen()
Kolom = $0F
Inhoud1 = $01
Inhoud2 = $01
Max_Write_2()
DELAY_MS(1000)
Kolom = $0F
Inhoud1 = $00
Inhoud2 = $00
Max_Write_2()
DELAY_MS(1000)
end sub
Sub Procedure Uitzetten_Leds()
FOR i1 = 1 TO 8
Kolom = i1
Inhoud1 = 0
Inhoud2 = 0
Max_Write_2()
Delay_Ms(20)
NEXT i1
end sub
Sub Procedure Karakters()
i1 = 0
while true
j1 = 0
z1 = 0
while z1 < 10
for Kolom = 1 to 8
Inhoud1 = font[j1]
Inhoud2 = font[i1]
Max_Write_2()
delay_ms(10)
j1 = j1 + 1
i1 = i1 + 1
next Kolom
delay_ms(1000)
z1 = z1 + 1
wend
delay_ms(2500)
i1 = i1 + 8
wend
end sub
main:
delay_ms(100)
TRISC = %01011011
SPI1_Init()
Max7219_Init()
Display_Testen()
Uitzetten_Leds()
Karakters()
While true wend
END.