Matrix driver for HDSP-200x four character 5x7 alphanumeric displays. These are 12 pin DIL package ICs full of LEDs arranged in 4 characters of 5 columns & 7 rows each. The ones I have are the yellow HDSP-2001, but they are also available in red (HDSP-2000), high efficiency red (HDSP-2002) or green (HDSP 2003). I don't know if they are easily available anymore, but I thought, since I've got 30 or so, I'd have a go at programming them. See my notepad (http://mbed.org/users/tonymudd/notebook/led-matrix-display/) for videos of this working.
Dependents: alpha_message TP1_matriz
Diff: matrix.h
- Revision:
- 0:69eeea586a16
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/matrix.h Wed Jun 15 22:27:52 2011 +0000 @@ -0,0 +1,862 @@ +/***** ASCII character data ***** + +We define bit patterns for these characters +(ascii 0x20 to 0x7E = 95 characters). + +ASCII CHAR ASCII CHAR ASCII CHAR ASCII CHAR ASCII CHAR ASCII CHAR +0x20 0x30 0 0x40 @ 0x50 P 0x60 ` 0x70 p +0x21 ! 0x31 1 0x41 A 0x51 Q 0x61 a 0x71 q +0x22 " 0x32 2 0x42 B 0x52 R 0x62 b 0x72 r +0x23 # 0x33 3 0x43 C 0x53 S 0x63 c 0x73 s +0x24 $ 0x34 4 0x44 D 0x54 T 0x64 d 0x74 t +0x25 % 0x35 5 0x45 E 0x55 U 0x65 e 0x75 u +0x26 & 0x36 6 0x46 F 0x56 V 0x66 f 0x76 v +0x27 ' 0x37 7 0x47 G 0x57 W 0x67 g 0x77 w +0x28 ( 0x38 8 0x48 H 0x58 X 0x68 h 0x78 x +0x29 ) 0x39 9 0x49 I 0x59 Y 0x69 i 0x79 y +0x2A * 0x3A : 0x4A J 0x5A Z 0x6A j 0x7A z +0x2B + 0x3B ; 0x4B K 0x5B [ 0x6B k 0x7B { +0x2C , 0x3C < 0x4C L 0x5C \ 0x6C l 0x7C | +0x2D - 0x3D = 0x4D M 0x5D ] 0x6D m 0x7D } +0x2E . 0x3E > 0x4E N 0x5E ^ 0x6E n 0x7E ~ +0x2F / 0x3F ? 0x4F O 0x5F _ 0x6F o + + +An "A" is defined like this (for a 5x7 array) + + x = 00100 = 0x04 + x x = 01010 = 0x0A +x x = 10001 = 0x11 +x x = 10001 = 0x11 +x x x x x = 11111 = 0x1F +x x = 10001 = 0x11 +x x = 10001 = 0x11 + +so we could define A like this + +unsigned char A_DATA[7] = { 0x04, 0x0A, 0x11, 0x11, 0x1F, 0x11, 0x11 } ; + +or we could draw a picture and let the preprocessor do the work for us + +#define __x__ 0x04 // __x__ = 00100, so there will only be 32 patterns +#define _x_x_ 0x0A // to define +#define x___x 0x11 +#define xxxxx 0x1F + +unsigned char A_DATA[7] = { __x__, + _x_x_, + x___x, + x___x, + xxxxx, + x___x, + x___x } + +now this is much easier to fiddle with if we want to +define a slightly different look (no need to sketch it +out, find the binary, then the hex. + +*/ + + +#define _____ 0x00 +#define ____x 0x01 +#define ___x_ 0x02 +#define ___xx 0x03 +#define __x__ 0x04 +#define __x_x 0x05 +#define __xx_ 0x06 +#define __xxx 0x07 +#define _x___ 0x08 +#define _x__x 0x09 +#define _x_x_ 0x0A +#define _x_xx 0x0B +#define _xx__ 0x0C +#define _xx_x 0x0D +#define _xxx_ 0x0E +#define _xxxx 0x0F +#define x____ 0x10 +#define x___x 0x11 +#define x__x_ 0x12 +#define x__xx 0x13 +#define x_x__ 0x14 +#define x_x_x 0x15 +#define x_xx_ 0x16 +#define x_xxx 0x17 +#define xx___ 0x18 +#define xx__x 0x19 +#define xx_x_ 0x1A +#define xx_xx 0x1B +#define xxx__ 0x1C +#define xxx_x 0x1D +#define xxxx_ 0x1E +#define xxxxx 0x1F + +unsigned char char_data[95][7] = +{ + + { _____, + _____, + _____, + _____, + _____, + _____, + _____ }, // space + + { __x__, + __x__, + __x__, + __x__, + __x__, + _____, + __x__ }, // ! + + { _x_x_, + _x_x_, + _____, + _____, + _____, + _____, + _____ }, // " + + { _____, + _x_x_, + xxxxx, + _x_x_, + xxxxx, + _x_x_, + _____ }, // # + + { __x__, + _xxxx, + x_x__, + _xxx_, + __x_x, + xxxx_, + __x__ }, // $ + + { xx___, + xx__x, + ___x_, + __x__, + _x___, + x__xx, + ___xx }, // % + + { _xxx_, + _x_x_, + _xx__, + _x___, + x_x_x, + x__xx, + _xxx_ }, // & + + { __x__, + __x__, + _____, + _____, + _____, + _____, + _____ }, // ' + + { ____x, + ___x_, + __x__, + __x__, + __x__, + ___x_, + ____x }, // ( + + { x____, + _x___, + __x__, + __x__, + __x__, + _x___, + x____ }, // ) + + { _____, + __x__, + x_x_x, + xxxxx, + x_x_x, + __x__, + _____ }, // * + + { _____, + __x__, + __x__, + xxxxx, + __x__, + __x__, + _____ }, // + + + { _____, + _____, + _____, + _____, + _____, + ___x_, + __x__ }, // , + + { _____, + _____, + _____, + _xxx_, + _____, + _____, + _____ }, // - + + { _____, + _____, + _____, + _____, + _____, + __xx_, + __xx_ }, // . + + { _____, + ____x, + ___x_, + __x__, + _x___, + x____, + _____ }, // / + + { _xxx_, + x___x, + x__xx, + x_x_x, + xx__x, + x___x, + _xxx_ }, // 0 + + { __x__, + _xx__, + __x__, + __x__, + __x__, + __x__, + xxxxx }, // 1 + + { _xxx_, + x___x, + ____x, + __xx_, + _x___, + x____, + xxxxx }, // 2 + + { _xxx_, + x___x, + ____x, + __xx_, + ____x, + x___x, + _xxx_ }, // 3 + + { x____, + x___x, + x___x, + xxxxx, + ____x, + ____x, + ____x }, // 4 + + { xxxxx, + x____, + x____, + xxxx_, + ____x, + x___x, + _xxx_ }, // 5 + + { _xxx_, + x___x, + x____, + xxxx_, + x___x, + x___x, + _xxx_ }, // 6 + + { xxxxx, + ____x, + ____x, + ___x_, + __x__, + __x__, + __x__ }, //7 + + { _xxx_, + x___x, + x___x, + _xxx_, + x___x, + x___x, + _xxx_ }, //8 + + { _xxx_, + x___x, + x___x, + _xxxx, + ____x, + ____x, + ____x }, //9 + + { _____, + __x__, + __x__, + _____, + __x__, + __x__, + _____ }, // : + + { _____, + _____, + __x__, + __x__, + _____, + __x__, + _x___ }, // ; + + { ____x, + ___x_, + __x__, + _x___, + __x__, + ___x_, + ____x }, // < + + { _____, + _____, + xxxxx, + _____, + xxxxx, + _____, + _____ }, // = + + { x____, + _x___, + __x__, + ___x_, + __x__, + _x___, + x____ }, // > + + { _xxx_, + x___x, + ___x_, + __x__, + __x__, + _____, + __x__ }, // ? + + { _xxx_, + x___x, + x_x_x, + x_x_x, + x_xxx, + x____, + _xxxx }, // @ + + { __x__, + _x_x_, + x___x, + x___x, + xxxxx, + x___x, + x___x }, // A + + { xxxx_, + x___x, + x___x, + xxxx_, + x___x, + x___x, + xxxxx }, // B + + { _xxx_, + x___x, + x____, + x____, + x____, + x___x, + _xxx_ }, // C + + { xxxx_, + x___x, + x___x, + x___x, + x___x, + x___x, + xxxxx }, // D + + { xxxxx, + x____, + x____, + xxx__, + x____, + x____, + xxxxx }, // E + + { xxxxx, + x____, + x____, + xxx__, + x____, + x____, + x____ }, // F + + { _xxx_, + x___x, + x____, + x_xxx, + x___x, + x___x, + _xxx_ }, // G + + { x___x, + x___x, + x___x, + xxxxx, + x___x, + x___x, + x___x }, // H + + { xxxxx, + __x__, + __x__, + __x__, + __x__, + __x__, + xxxxx }, // I + + { xxxxx, + ___x_, + ___x_, + ___x_, + ___x_, + x__x_, + _xx__ }, // J + + { x___x, + x__x_, + x_x__, + xx___, + x_x__, + x__x_, + x___x }, // K + + { x____, + x____, + x____, + x____, + x____, + x____, + xxxxx }, // L + + { x___x, + xx_xx, + x_x_x, + x___x, + x___x, + x___x, + x___x }, // M + + { x___x, + x___x, + xx__x, + x_x_x, + x__xx, + x___x, + x___x }, // N + + { _xxx_, + x___x, + x___x, + x___x, + x___x, + x___x, + _xxx_ }, // O + + { xxxx_, + x___x, + x___x, + xxxx_, + x____, + x____, + x____ }, // P + + { _xxx_, + x___x, + x___x, + x___x, + x_x_x, + x__x_, + _xx_x }, // Q + + { xxxx_, + x___x, + x___x, + xxxx_, + x_x__, + x__x_, + x___x }, // R + + { _xxx_, + x___x, + x____, + _xxx_, + ____x, + x___x, + _xxx_ }, // S + + { xxxxx, + __x__, + __x__, + __x__, + __x__, + __x__, + __x__ }, // T + + { x___x, + x___x, + x___x, + x___x, + x___x, + x___x, + _xxx_ }, // U + + { x___x, + x___x, + x___x, + x___x, + x___x, + _x_x_, + __x__ }, // V + + { x___x, + x___x, + x___x, + x___x, + x_x_x, + xx_xx, + x___x }, // W + + { x___x, + x___x, + _x_x_, + __x__, + _x_x_, + x___x, + x___x }, // X + + + { x___x, + x___x, + _x_x_, + __x__, + __x__, + __x__, + __x__ }, // Y + + { xxxxx, + x___x, + ___x_, + __x__, + _x___, + x___x, + xxxxx }, // Z + + { _xxx_, + _x___, + _x___, + _x___, + _x___, + _x___, + _xxx_ }, // [ + + { _____, + x____, + _x___, + __x__, + ___x_, + ____x, + _____ }, // \ + + { _xxx_, + ___x_, + ___x_, + ___x_, + ___x_, + ___x_, + _xxx_ }, // ] + + { __x__, + _x_x_, + x___x, + _____, + _____, + _____, + _____ }, // ^ + + { _____, + _____, + _____, + _____, + _____, + _____, + xxxxx }, // _ + +// d e f g h i j k l m n o p q r s t u v w x y z + + { _x___, + __x__, + _____, + _____, + _____, + _____, + _____ }, // ` + + { _____, + _____, + _____, + _xx__, + x__x_, + x__x_, + _xx_x, }, // a + + { _____, + x____, + x____, + xxxx_, + x___x, + x___x, + xxxx_ }, // b + + { _____, + _____, + _____, + _xxxx, + x____, + x____, + _xxxx, }, // c + + { _____, + ____x, + ____x, + _xxxx, + x___x, + x___x, + _xxxx }, // d + + { _____, + _____, + _xxx_, + x___x, + xxxx_, + x____, + _xxxx, }, // e + + { __xx_, + _x__x, + _x___, + xxxx_, + _x___, + _x___, + _x___, }, // f + + { _____, + _xxx_, + x___x, + x___x, + _xxxx, + ____x, + _xxx_, }, // c + + { _____, + x____, + x____, + xxxx_, + x___x, + x___x, + x___x, }, // h + + { _____, + _____, + __x__, + _____, + __x__, + __x__, + __x__, }, // i + + { _____, + ___x_, + ___x_, + ___x_, + ___x_, + x__x_, + _xx__, }, // j + + { _____, + _____, + x__x_, + x_x__, + xxx__, + x__x_, + x___x, }, // k + + { _____, + _x___, + _x___, + _x___, + _x___, + _x___, + _x___ }, // l + + { _____, + _____, + _____, + x___x, + xx_xx, + x_x_x, + x___x }, // m + + { _____, + _____, + _____, + x_xx_, + xx__x, + x___x, + x___x }, // n + + { _____, + _____, + _____, + _xxx_, + x___x, + x___x, + _xxx_ }, // o + + + { _____, + _xxx_, + _x__x, + _x__x, + _xxx_, + _x___, + _x___, }, // p + + { _____, + _xxx_, + x___x, + _xxx_, + ___x_, + ___x_, + ____x, }, // q + + { _____, + _____, + _x___, + _xxx_, + _x___, + _x___, + _x___ }, // r + + { _____, + _____, + __xxx, + _x___, + __xx_, + ____x, + _xxx_ }, // s + + { _____, + _____, + __x__, + _xxx_, + __x__, + __x__, + __x__ }, // t + + { _____, + _____, + _____, + x___x, + x___x, + x___x, + _xxx_ }, // u + + { _____, + _____, + _____, + x___x, + x___x, + _x_x_, + __x__ }, // v + + { _____, + _____, + _____, + x___x, + x_x_x, + xx_xx, + x___x }, // w + + { _____, + _____, + x___x, + _x_x_, + __x__, + _x_x_, + x___x, }, // x + + { _____, + _____, + x___x, + _x_x_, + __x__, + __x__, + __x__ }, // y + + { _____, + _____, + xxxxx, + ___x_, + __x__, + _x___, + xxxxx }, // z + + { __xx_, + _x___, + _x___, + x____, + _x___, + _x___, + __xx_, }, // { + + { __x__, + __x__, + __x__, + __x__, + __x__, + __x__, + __x__, }, // | + + { _xx__, + ___x_, + ___x_, + ____x, + ___x_, + ___x_, + _xx__, }, // } + + { _____, + _x_x_, + x_x_x, + _____, + _____, + _____, + _____, }, // ~ + +}; +