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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers matrix.h Source File

matrix.h

00001 /***** ASCII character data *****
00002 
00003 We define bit patterns for these characters
00004 (ascii 0x20 to 0x7E = 95 characters). 
00005 
00006 ASCII CHAR ASCII CHAR ASCII CHAR ASCII CHAR ASCII CHAR ASCII CHAR
00007 0x20       0x30  0    0x40  @    0x50  P    0x60  `    0x70  p
00008 0x21  !    0x31  1    0x41  A    0x51  Q    0x61  a    0x71  q
00009 0x22  "    0x32  2    0x42  B    0x52  R    0x62  b    0x72  r
00010 0x23  #    0x33  3    0x43  C    0x53  S    0x63  c    0x73  s
00011 0x24  $    0x34  4    0x44  D    0x54  T    0x64  d    0x74  t
00012 0x25  %    0x35  5    0x45  E    0x55  U    0x65  e    0x75  u
00013 0x26  &    0x36  6    0x46  F    0x56  V    0x66  f    0x76  v
00014 0x27  '    0x37  7    0x47  G    0x57  W    0x67  g    0x77  w
00015 0x28  (    0x38  8    0x48  H    0x58  X    0x68  h    0x78  x
00016 0x29  )    0x39  9    0x49  I    0x59  Y    0x69  i    0x79  y
00017 0x2A  *    0x3A  :    0x4A  J    0x5A  Z    0x6A  j    0x7A  z
00018 0x2B  +    0x3B  ;    0x4B  K    0x5B  [    0x6B  k    0x7B  {
00019 0x2C  ,    0x3C  <    0x4C  L    0x5C  \    0x6C  l    0x7C  |
00020 0x2D  -    0x3D  =    0x4D  M    0x5D  ]    0x6D  m    0x7D  }
00021 0x2E  .    0x3E  >    0x4E  N    0x5E  ^    0x6E  n    0x7E  ~
00022 0x2F  /    0x3F  ?    0x4F  O    0x5F  _    0x6F  o    
00023 
00024 
00025 An "A" is defined like this (for a 5x7 array)
00026 
00027     x       = 00100 = 0x04
00028   x   x     = 01010 = 0x0A
00029 x       x   = 10001 = 0x11
00030 x       x   = 10001 = 0x11
00031 x x x x x   = 11111 = 0x1F
00032 x       x   = 10001 = 0x11
00033 x       x   = 10001 = 0x11
00034 
00035 so we could define A like this
00036 
00037 unsigned char A_DATA[7] = { 0x04, 0x0A, 0x11, 0x11, 0x1F, 0x11, 0x11 } ;
00038 
00039 or we could draw a picture and let the preprocessor do the work for us
00040 
00041 #define __x__ 0x04    // __x__ = 00100, so there will only be 32 patterns 
00042 #define _x_x_ 0x0A    // to define
00043 #define x___x 0x11
00044 #define xxxxx 0x1F
00045 
00046 unsigned char A_DATA[7] = { __x__,
00047                             _x_x_,
00048                             x___x,
00049                             x___x,
00050                             xxxxx,
00051                             x___x,
00052                             x___x } 
00053 
00054 now this is much easier to fiddle with if we want to 
00055 define a slightly different look (no need to sketch it
00056 out, find the binary, then  the hex. 
00057 
00058 */
00059 
00060 
00061 #define    _____  0x00
00062 #define    ____x  0x01
00063 #define    ___x_  0x02
00064 #define    ___xx  0x03
00065 #define    __x__  0x04
00066 #define    __x_x  0x05
00067 #define    __xx_  0x06
00068 #define    __xxx  0x07
00069 #define    _x___  0x08
00070 #define    _x__x  0x09
00071 #define    _x_x_  0x0A
00072 #define    _x_xx  0x0B
00073 #define    _xx__  0x0C
00074 #define    _xx_x  0x0D
00075 #define    _xxx_  0x0E
00076 #define    _xxxx  0x0F
00077 #define    x____  0x10
00078 #define    x___x  0x11
00079 #define    x__x_  0x12
00080 #define    x__xx  0x13
00081 #define    x_x__  0x14
00082 #define    x_x_x  0x15
00083 #define    x_xx_  0x16
00084 #define    x_xxx  0x17
00085 #define    xx___  0x18
00086 #define    xx__x  0x19
00087 #define    xx_x_  0x1A
00088 #define    xx_xx  0x1B
00089 #define    xxx__  0x1C
00090 #define    xxx_x  0x1D
00091 #define    xxxx_  0x1E
00092 #define    xxxxx  0x1F
00093 
00094 unsigned char char_data[95][7] = 
00095 { 
00096 
00097     { _____,
00098       _____,
00099       _____,
00100       _____,
00101       _____,
00102       _____,
00103       _____ }, // space
00104 
00105     { __x__,
00106       __x__,
00107       __x__,
00108       __x__,
00109       __x__,
00110       _____,
00111       __x__ }, // !
00112 
00113     { _x_x_,
00114       _x_x_,
00115       _____,
00116       _____,
00117       _____,
00118       _____,
00119       _____ }, // "
00120 
00121     { _____,
00122       _x_x_,
00123       xxxxx,
00124       _x_x_,
00125       xxxxx,
00126       _x_x_,
00127       _____ }, // #
00128 
00129     { __x__,
00130       _xxxx,
00131       x_x__,
00132       _xxx_,
00133       __x_x,
00134       xxxx_,
00135       __x__ }, // $
00136 
00137     { xx___,
00138       xx__x,
00139       ___x_,
00140       __x__,
00141       _x___,
00142       x__xx,
00143       ___xx }, // %
00144 
00145     { _xxx_,
00146       _x_x_,
00147       _xx__,
00148       _x___,
00149       x_x_x,
00150       x__xx,
00151       _xxx_ }, // &
00152 
00153     { __x__,
00154       __x__,
00155       _____,
00156       _____,
00157       _____,
00158       _____,
00159       _____ }, // '
00160 
00161     { ____x,
00162       ___x_,
00163       __x__,
00164       __x__,
00165       __x__,
00166       ___x_,
00167       ____x }, // (
00168 
00169     { x____,
00170       _x___,
00171       __x__,
00172       __x__,
00173       __x__,
00174       _x___,
00175       x____ }, // )
00176 
00177     { _____,
00178       __x__,
00179       x_x_x,
00180       xxxxx,
00181       x_x_x,
00182       __x__,
00183       _____ }, // *
00184 
00185     { _____,
00186       __x__,
00187       __x__,
00188       xxxxx,
00189       __x__,
00190       __x__,
00191       _____ }, // +
00192 
00193     { _____,
00194       _____,
00195       _____, 
00196       _____, 
00197       _____, 
00198       ___x_,
00199       __x__ }, // ,
00200 
00201     { _____,
00202       _____,
00203       _____,
00204       _xxx_,
00205       _____,
00206       _____,
00207       _____ }, // -
00208 
00209     { _____,
00210       _____,
00211       _____,
00212       _____,
00213       _____,
00214       __xx_,
00215       __xx_ }, // .
00216 
00217     { _____,
00218       ____x,
00219       ___x_,
00220       __x__,
00221       _x___,
00222       x____,
00223       _____ }, // /
00224 
00225     { _xxx_,
00226       x___x,
00227       x__xx,
00228       x_x_x,
00229       xx__x,
00230       x___x,
00231       _xxx_ }, // 0
00232 
00233     { __x__,
00234       _xx__,
00235       __x__,
00236       __x__,
00237       __x__,
00238       __x__,
00239       xxxxx }, // 1
00240 
00241     { _xxx_, 
00242       x___x, 
00243       ____x,
00244       __xx_,
00245       _x___,
00246       x____,
00247       xxxxx }, // 2
00248 
00249     { _xxx_,
00250       x___x,
00251       ____x,
00252       __xx_,
00253       ____x,
00254       x___x,
00255       _xxx_ }, // 3
00256 
00257     { x____,
00258       x___x,
00259       x___x,
00260       xxxxx,
00261       ____x,
00262       ____x,
00263       ____x }, // 4
00264 
00265     { xxxxx,
00266       x____,
00267       x____,
00268       xxxx_,
00269       ____x,
00270       x___x,
00271       _xxx_ }, // 5
00272 
00273     { _xxx_,
00274       x___x,
00275       x____,
00276       xxxx_,
00277       x___x,
00278       x___x,
00279       _xxx_ }, // 6 
00280 
00281     { xxxxx,
00282       ____x,
00283       ____x,
00284       ___x_,
00285       __x__,
00286       __x__,
00287       __x__ }, //7
00288 
00289     { _xxx_,
00290       x___x,
00291       x___x,
00292       _xxx_,
00293       x___x,
00294       x___x,
00295       _xxx_ }, //8
00296 
00297     { _xxx_,
00298       x___x,
00299       x___x,
00300       _xxxx,
00301       ____x,
00302       ____x,
00303       ____x }, //9
00304 
00305     { _____,
00306       __x__,
00307       __x__,
00308       _____,
00309       __x__,
00310       __x__,
00311       _____ }, // :
00312 
00313     { _____,
00314       _____,
00315       __x__,
00316       __x__,
00317       _____,
00318       __x__,
00319       _x___ }, // ;
00320 
00321     { ____x,
00322       ___x_,
00323       __x__,
00324       _x___,
00325       __x__,
00326       ___x_,
00327       ____x }, // <
00328 
00329     { _____,
00330       _____,
00331       xxxxx,
00332       _____,
00333       xxxxx,
00334       _____,
00335       _____ }, // =
00336 
00337     { x____,
00338       _x___,
00339       __x__,
00340       ___x_,
00341       __x__,
00342       _x___,
00343       x____ }, // >
00344 
00345     { _xxx_,
00346       x___x,
00347       ___x_,
00348       __x__,
00349       __x__,
00350       _____,
00351       __x__ }, // ?
00352 
00353     { _xxx_,
00354       x___x,
00355       x_x_x,
00356       x_x_x,
00357       x_xxx,
00358       x____,
00359       _xxxx }, // @
00360 
00361     { __x__,
00362       _x_x_,
00363       x___x,
00364       x___x,
00365       xxxxx,
00366       x___x,
00367       x___x }, // A
00368 
00369     { xxxx_,
00370       x___x,
00371       x___x,
00372       xxxx_,
00373       x___x,
00374       x___x,
00375       xxxxx }, // B
00376 
00377     { _xxx_,
00378       x___x,
00379       x____,
00380       x____,
00381       x____,
00382       x___x,
00383       _xxx_ }, // C
00384 
00385     { xxxx_,
00386       x___x,
00387       x___x,
00388       x___x,
00389       x___x,
00390       x___x,
00391       xxxxx }, // D
00392 
00393     { xxxxx,
00394       x____,
00395       x____,
00396       xxx__,
00397       x____,
00398       x____,
00399       xxxxx }, // E
00400 
00401     { xxxxx,
00402       x____,
00403       x____,
00404       xxx__,
00405       x____,
00406       x____,
00407       x____ }, // F
00408 
00409     { _xxx_,
00410       x___x,
00411       x____,
00412       x_xxx,
00413       x___x,
00414       x___x,
00415       _xxx_ }, // G
00416 
00417     { x___x,
00418       x___x,
00419       x___x,
00420       xxxxx,
00421       x___x,
00422       x___x,
00423       x___x }, // H
00424 
00425     { xxxxx,
00426       __x__,
00427       __x__,
00428       __x__,
00429       __x__,
00430       __x__,
00431       xxxxx }, // I
00432 
00433     { xxxxx,
00434       ___x_,
00435       ___x_,
00436       ___x_,
00437       ___x_,
00438       x__x_,
00439       _xx__ }, // J
00440 
00441     { x___x,
00442       x__x_,
00443       x_x__,
00444       xx___,
00445       x_x__,
00446       x__x_,
00447       x___x }, // K
00448 
00449     { x____,
00450       x____,
00451       x____,
00452       x____,
00453       x____,
00454       x____,
00455       xxxxx }, // L
00456 
00457     { x___x,
00458       xx_xx,
00459       x_x_x,
00460       x___x,
00461       x___x,
00462       x___x,
00463       x___x }, // M
00464 
00465     { x___x,
00466       x___x,
00467       xx__x,
00468       x_x_x,
00469       x__xx,
00470       x___x,
00471       x___x }, // N
00472 
00473     { _xxx_,
00474       x___x,
00475       x___x,
00476       x___x,
00477       x___x,
00478       x___x,
00479       _xxx_ }, // O
00480 
00481     { xxxx_,
00482       x___x,
00483       x___x,
00484       xxxx_,
00485       x____,
00486       x____,
00487       x____ }, // P
00488 
00489     { _xxx_,
00490       x___x,
00491       x___x,
00492       x___x,
00493       x_x_x,
00494       x__x_,
00495       _xx_x }, // Q
00496 
00497     { xxxx_,
00498       x___x,
00499       x___x,
00500       xxxx_,
00501       x_x__,
00502       x__x_,
00503       x___x }, // R
00504 
00505     { _xxx_,
00506       x___x,
00507       x____,
00508       _xxx_,
00509       ____x,
00510       x___x,
00511       _xxx_ }, // S
00512 
00513     { xxxxx,
00514       __x__,
00515       __x__,
00516       __x__,
00517       __x__,
00518       __x__,
00519       __x__ }, // T
00520 
00521     { x___x,
00522       x___x,
00523       x___x,
00524       x___x,
00525       x___x,
00526       x___x,
00527       _xxx_ }, // U
00528 
00529     { x___x,
00530       x___x,
00531       x___x,
00532       x___x,
00533       x___x,
00534       _x_x_,
00535       __x__ }, // V
00536 
00537     { x___x,
00538       x___x,
00539       x___x,
00540       x___x,
00541       x_x_x,
00542       xx_xx,
00543       x___x }, // W
00544              
00545     { x___x,
00546       x___x,
00547       _x_x_,
00548       __x__,
00549       _x_x_,
00550       x___x,
00551       x___x }, // X
00552 
00553 
00554     { x___x,
00555       x___x,
00556       _x_x_,
00557       __x__,
00558       __x__,
00559       __x__,
00560       __x__ }, // Y
00561 
00562     { xxxxx,
00563       x___x,
00564       ___x_,
00565       __x__,
00566       _x___,
00567       x___x,
00568       xxxxx }, // Z
00569 
00570     { _xxx_,
00571       _x___,
00572       _x___,
00573       _x___,
00574       _x___,
00575       _x___,
00576       _xxx_ }, // [
00577 
00578     { _____,
00579       x____,
00580       _x___,
00581       __x__,
00582       ___x_,
00583       ____x,
00584       _____ }, // \
00585 
00586     { _xxx_,
00587       ___x_,
00588       ___x_,
00589       ___x_,
00590       ___x_,
00591       ___x_,
00592       _xxx_ }, // ] 
00593 
00594     { __x__,
00595       _x_x_,
00596       x___x,
00597       _____,
00598       _____,
00599       _____,
00600       _____ }, // ^
00601 
00602     { _____,
00603       _____,
00604       _____,
00605       _____,
00606       _____,
00607       _____,
00608       xxxxx }, // _
00609 
00610 // d e f g h i j k l m n o p q r s t u v w x y z
00611 
00612     { _x___,
00613       __x__,
00614       _____,
00615       _____,
00616       _____,
00617       _____,
00618       _____ }, // `
00619 
00620     { _____,
00621       _____,
00622       _____,
00623       _xx__,
00624       x__x_,
00625       x__x_,
00626       _xx_x, }, // a
00627 
00628     { _____,
00629       x____,
00630       x____,
00631       xxxx_,
00632       x___x,
00633       x___x,
00634       xxxx_ }, // b
00635 
00636     { _____,
00637       _____,
00638       _____,
00639       _xxxx,
00640       x____,
00641       x____,
00642       _xxxx, }, // c
00643 
00644     { _____,
00645       ____x,
00646       ____x,
00647       _xxxx,
00648       x___x,
00649       x___x,
00650       _xxxx }, // d
00651 
00652     { _____,
00653       _____,
00654       _xxx_,
00655       x___x,
00656       xxxx_,
00657       x____,
00658       _xxxx, }, // e
00659 
00660     { __xx_,
00661       _x__x,
00662       _x___,
00663       xxxx_,
00664       _x___,
00665       _x___,
00666       _x___, }, // f
00667 
00668     { _____,
00669       _xxx_,
00670       x___x,
00671       x___x,
00672       _xxxx,
00673       ____x,
00674       _xxx_, }, // c
00675 
00676     { _____,
00677       x____,
00678       x____,
00679       xxxx_,
00680       x___x,
00681       x___x,
00682       x___x, }, // h
00683 
00684     { _____,
00685       _____,
00686       __x__,
00687       _____,
00688       __x__,
00689       __x__,
00690       __x__, }, // i
00691 
00692     { _____,
00693       ___x_,
00694       ___x_,
00695       ___x_,
00696       ___x_,
00697       x__x_,
00698       _xx__, }, // j
00699 
00700     { _____,
00701       _____,
00702       x__x_,
00703       x_x__,
00704       xxx__,
00705       x__x_,
00706       x___x, }, // k
00707 
00708     { _____,
00709       _x___,
00710       _x___,
00711       _x___,
00712       _x___,
00713       _x___,
00714       _x___ }, // l
00715 
00716     { _____,
00717       _____,
00718       _____,
00719       x___x,
00720       xx_xx,
00721       x_x_x,
00722       x___x }, // m
00723 
00724     { _____,
00725       _____,
00726       _____,
00727       x_xx_,
00728       xx__x,
00729       x___x,
00730       x___x }, // n
00731 
00732     { _____,
00733       _____,
00734       _____,
00735       _xxx_,
00736       x___x,
00737       x___x,
00738       _xxx_ }, // o
00739 
00740 
00741     { _____,
00742       _xxx_,
00743       _x__x,
00744       _x__x,
00745       _xxx_,
00746       _x___,
00747       _x___, }, // p
00748 
00749     { _____,
00750       _xxx_,
00751       x___x,
00752       _xxx_,
00753       ___x_,
00754       ___x_,
00755       ____x, }, // q
00756 
00757     { _____,
00758       _____,
00759       _x___,
00760       _xxx_,
00761       _x___,
00762       _x___,
00763       _x___ }, // r
00764 
00765     { _____,
00766       _____,
00767       __xxx,
00768       _x___,
00769       __xx_,
00770       ____x,
00771       _xxx_ }, // s
00772 
00773     { _____,
00774       _____,
00775       __x__,
00776       _xxx_,
00777       __x__,
00778       __x__,
00779       __x__ }, // t
00780 
00781     { _____,
00782       _____,
00783       _____,
00784       x___x,
00785       x___x,
00786       x___x,
00787       _xxx_ }, // u
00788 
00789     { _____,
00790       _____,
00791       _____,
00792       x___x,
00793       x___x,
00794       _x_x_,
00795       __x__ }, // v
00796 
00797     { _____,
00798       _____,
00799       _____,
00800       x___x,
00801       x_x_x,
00802       xx_xx,
00803       x___x }, // w
00804              
00805     { _____,
00806       _____,
00807       x___x,
00808       _x_x_,
00809       __x__,
00810       _x_x_,
00811       x___x, }, // x
00812 
00813     { _____,
00814       _____,
00815       x___x,
00816       _x_x_,
00817       __x__,
00818       __x__,
00819       __x__ }, // y
00820 
00821     { _____,
00822       _____,
00823       xxxxx,
00824       ___x_,
00825       __x__,
00826       _x___,
00827       xxxxx }, // z
00828 
00829     { __xx_,
00830       _x___,
00831       _x___,
00832       x____,
00833       _x___,
00834       _x___,
00835       __xx_, }, // {
00836  
00837     { __x__,
00838       __x__, 
00839       __x__, 
00840       __x__, 
00841       __x__, 
00842       __x__, 
00843       __x__, }, // |
00844  
00845     { _xx__,
00846       ___x_,
00847       ___x_,
00848       ____x,
00849       ___x_,
00850       ___x_,
00851       _xx__, }, // }
00852 
00853     { _____,
00854       _x_x_,
00855       x_x_x,
00856       _____,
00857       _____,
00858       _____,
00859       _____, }, // ~
00860 
00861 };
00862