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

matrix.h

Committer:
tonymudd
Date:
2011-06-15
Revision:
0:69eeea586a16

File content as of revision 0:69eeea586a16:

/***** 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,
      _____,
      _____,
      _____,
      _____, }, // ~

};