Mark Banfield
/
LED_dot_matrix_4
Scrolling message on 7x5 LED dot matrix
main.cpp@0:efe3e11ca185, 2010-08-10 (annotated)
- Committer:
- markbanfield
- Date:
- Tue Aug 10 16:23:16 2010 +0000
- Revision:
- 0:efe3e11ca185
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
markbanfield | 0:efe3e11ca185 | 1 | #include "mbed.h" |
markbanfield | 0:efe3e11ca185 | 2 | |
markbanfield | 0:efe3e11ca185 | 3 | /* |
markbanfield | 0:efe3e11ca185 | 4 | MJB |
markbanfield | 0:efe3e11ca185 | 5 | 10th August 2010 |
markbanfield | 0:efe3e11ca185 | 6 | |
markbanfield | 0:efe3e11ca185 | 7 | |
markbanfield | 0:efe3e11ca185 | 8 | To power a LED 7x5 dot matrix. |
markbanfield | 0:efe3e11ca185 | 9 | |
markbanfield | 0:efe3e11ca185 | 10 | This project uses the display from RS Components: 247-3141. |
markbanfield | 0:efe3e11ca185 | 11 | |
markbanfield | 0:efe3e11ca185 | 12 | The connections are as follows: |
markbanfield | 0:efe3e11ca185 | 13 | Pin 16 = column 1 Display pin 1 (left-most column) |
markbanfield | 0:efe3e11ca185 | 14 | Pin 17 = column 2 Display pin 3 |
markbanfield | 0:efe3e11ca185 | 15 | Pin 18 = column 3 Display pin 10 |
markbanfield | 0:efe3e11ca185 | 16 | Pin 19 = column 4 Display pin 7 |
markbanfield | 0:efe3e11ca185 | 17 | Pin 20 = column 5 Display pin 8 (right-most column) |
markbanfield | 0:efe3e11ca185 | 18 | |
markbanfield | 0:efe3e11ca185 | 19 | Pin 21 = row 1 Display pin 12 (top-most row) |
markbanfield | 0:efe3e11ca185 | 20 | Pin 22 = row 2 Display pin 11 |
markbanfield | 0:efe3e11ca185 | 21 | Pin 23 = row 3 Display pin 2 |
markbanfield | 0:efe3e11ca185 | 22 | Pin 24 = row 4 Display pin 9 |
markbanfield | 0:efe3e11ca185 | 23 | Pin 25 = row 5 Display pin 4 |
markbanfield | 0:efe3e11ca185 | 24 | Pin 26 = row 6 Display pin 5 |
markbanfield | 0:efe3e11ca185 | 25 | Pin 27 = row 7 Display pin 6 |
markbanfield | 0:efe3e11ca185 | 26 | |
markbanfield | 0:efe3e11ca185 | 27 | The code causes the message to scroll across the display. |
markbanfield | 0:efe3e11ca185 | 28 | */ |
markbanfield | 0:efe3e11ca185 | 29 | |
markbanfield | 0:efe3e11ca185 | 30 | BusOut Rows (p21, p22, p23, p24, p25, p26, p27); |
markbanfield | 0:efe3e11ca185 | 31 | BusOut Cols (p16, p17, p18, p19, p20); |
markbanfield | 0:efe3e11ca185 | 32 | BusOut IntLEDs(LED1, LED2, LED3, LED4); |
markbanfield | 0:efe3e11ca185 | 33 | |
markbanfield | 0:efe3e11ca185 | 34 | |
markbanfield | 0:efe3e11ca185 | 35 | int DotPattern1[] = {0x7f, 0x7f, 0x7f, 0x7f, 0x7f, |
markbanfield | 0:efe3e11ca185 | 36 | 0x7F, 0x00, 0x7F, 0x7E, 0x7E, |
markbanfield | 0:efe3e11ca185 | 37 | 0x00, 0x7E, 0x7E, 0x7F, 0x78, |
markbanfield | 0:efe3e11ca185 | 38 | 0x47, 0x3F, 0x47, 0x3F, 0x47, |
markbanfield | 0:efe3e11ca185 | 39 | 0x78, 0x7F, 0x7F, 0x7F, 0x7F, |
markbanfield | 0:efe3e11ca185 | 40 | 0x5D, 0x3A, 0x36, 0x4D, 0x7F, |
markbanfield | 0:efe3e11ca185 | 41 | 0x43, 0x3F, 0x5F, 0x3F, 0x43, |
markbanfield | 0:efe3e11ca185 | 42 | 0x7F, 0x02, 0x7F, 0x7D, 0x40, |
markbanfield | 0:efe3e11ca185 | 43 | 0x3D, 0x5D, 0x7F, 0x47, 0x3B, |
markbanfield | 0:efe3e11ca185 | 44 | 0x3B, 0x57, 0x7F, 0x00, 0x7B, |
markbanfield | 0:efe3e11ca185 | 45 | 0x03, 0x7F, 0x47, 0x2B, 0x2B, |
markbanfield | 0:efe3e11ca185 | 46 | 0x37, 0x7F, 0x37, 0x2B, 0x5B, |
markbanfield | 0:efe3e11ca185 | 47 | 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, |
markbanfield | 0:efe3e11ca185 | 48 | 0x7f, 0x7f, 0x7f, 0x7f, 0x7f |
markbanfield | 0:efe3e11ca185 | 49 | }; //Message = "ITW Switches". |
markbanfield | 0:efe3e11ca185 | 50 | |
markbanfield | 0:efe3e11ca185 | 51 | float count; |
markbanfield | 0:efe3e11ca185 | 52 | int ColCount; |
markbanfield | 0:efe3e11ca185 | 53 | int pattern; |
markbanfield | 0:efe3e11ca185 | 54 | int loop; |
markbanfield | 0:efe3e11ca185 | 55 | int index; |
markbanfield | 0:efe3e11ca185 | 56 | |
markbanfield | 0:efe3e11ca185 | 57 | int main() { |
markbanfield | 0:efe3e11ca185 | 58 | |
markbanfield | 0:efe3e11ca185 | 59 | while (1) { |
markbanfield | 0:efe3e11ca185 | 60 | |
markbanfield | 0:efe3e11ca185 | 61 | index=0; |
markbanfield | 0:efe3e11ca185 | 62 | while (index<65) { |
markbanfield | 0:efe3e11ca185 | 63 | loop=0; |
markbanfield | 0:efe3e11ca185 | 64 | while (loop<4) { |
markbanfield | 0:efe3e11ca185 | 65 | IntLEDs = index; |
markbanfield | 0:efe3e11ca185 | 66 | count = 1; |
markbanfield | 0:efe3e11ca185 | 67 | pattern = 0+index; |
markbanfield | 0:efe3e11ca185 | 68 | while (count<0x20) { |
markbanfield | 0:efe3e11ca185 | 69 | Cols = count; |
markbanfield | 0:efe3e11ca185 | 70 | Rows = DotPattern1[pattern]; |
markbanfield | 0:efe3e11ca185 | 71 | wait_ms(5); |
markbanfield | 0:efe3e11ca185 | 72 | count = count*2; |
markbanfield | 0:efe3e11ca185 | 73 | pattern++; |
markbanfield | 0:efe3e11ca185 | 74 | } |
markbanfield | 0:efe3e11ca185 | 75 | loop++; |
markbanfield | 0:efe3e11ca185 | 76 | } |
markbanfield | 0:efe3e11ca185 | 77 | |
markbanfield | 0:efe3e11ca185 | 78 | index++; |
markbanfield | 0:efe3e11ca185 | 79 | } |
markbanfield | 0:efe3e11ca185 | 80 | } |
markbanfield | 0:efe3e11ca185 | 81 | } |
markbanfield | 0:efe3e11ca185 | 82 | |
markbanfield | 0:efe3e11ca185 | 83 | |
markbanfield | 0:efe3e11ca185 | 84 | |
markbanfield | 0:efe3e11ca185 | 85 | |
markbanfield | 0:efe3e11ca185 | 86 |