I always wanted to tinker with PICs, but never got around to it until someone sent me some PicAxe chips for free. Nothing special to program them, just download the BASIC compiler software, a couple resistors and a serial cable, like from an old serial mouse and your ready.
I made a 5x3 matrix simple character display using minimal parts as you can see. using a shift register on one of the pins, the display can be made into a 7xwhatever length is needed.
The code is mostly data for the characters and a simple frame buffer routine that grabs the data from memory and writes it to the screen.
The point in this is just learning. I have no end product in mind. I challenge myself by writing the code without outside help.
For those interested, here is the program that counts from 1 to F (hex) and loops.
'LED matrix display program for PicAxe 18X
'load digit pattern data into memory
poke $50, %10010000
poke $51, %11111000
poke $52, %10000000
poke $53, %11101000
poke $54, %10101000
poke $55, %10111000
poke $56, %10101000
poke $57, %10101000
poke $58, %11111000
poke $59, %00111000
poke $5a, %00100000
poke $5b, %11111000
poke $5c, %10111000
poke $5d, %10101000
poke $5e, %01001000
poke $5f, %11111000
poke $60, %10101000
poke $61, %11101000
poke $62, %00001000
poke $63, %00001000
poke $64, %11111000
poke $65, %11111000
poke $66, %10101000
poke $67, %11111000
poke $68, %10111000
poke $69, %10101000
poke $6a, %11111000
poke $6b, %11110000
poke $6c, %00101000
poke $6d, %11110000
poke $6e, %11111000
poke $6f, %10101000
poke $70, %01010000
poke $71, %01110000
poke $72, %10001000
poke $73, %01010000
poke $74, %11111000
poke $75, %10001000
poke $76, %01110000
poke $77, %11111000
poke $78, %10101000
poke $79, %10001000
poke $7a, %11111000
poke $7b, %00101000
poke $7c, %00001000
'column scan data
poke $c0, %0110
poke $c1, %0101
poke $c2, %0011
b6 = 100 'b6 = time length of fixed display
b7 = $50 'memory location start of graphics
writescr: 'routine writes data to LED matrix
if b6 = 100 then gosub update
b6=b6 + 1
b1 = $ed
b2 = $c0
for b3 = 0 to 2
peek b1, b4
peek b2, b5
let pins = b4 + b5
inc b2
inc b1
next
goto writescr
update: 'routine to update graphics aperture
b6 = 0
peek b7, b8 : poke $ed, b8
b7 = b7 + 1
peek b7, b8 : poke $ee, b8
b7 = b7 + 1
peek b7, b8 : poke $ef, b8
b7 = b7 + 1
if b7 = $7d then let b7 = $50 endif
return