Derek Calland
/
Cathode_SevenSegDisplay
Hex Values when using a Common Cathode arrangement for the LED's
main.cpp@0:c973368c963d, 2013-03-13 (annotated)
- Committer:
- Degs
- Date:
- Wed Mar 13 21:01:58 2013 +0000
- Revision:
- 0:c973368c963d
For Newbies to compare Hex values for LED's
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Degs | 0:c973368c963d | 1 | /*Program Example 3.5: Simple demonstration of 7-segment display. Display digits 0 to 9 in turn. |
Degs | 0:c973368c963d | 2 | */ |
Degs | 0:c973368c963d | 3 | #include "mbed.h" |
Degs | 0:c973368c963d | 4 | BusOut display_units(p5,p6,p7,p8,p9,p10,p11,p12); // segments a,b,c,d,e,f,g,DP |
Degs | 0:c973368c963d | 5 | BusOut display_tens(p21,p22,p23,p24,p25,p26,p27,p28); |
Degs | 0:c973368c963d | 6 | DigitalOut Seconds_Ticker(p30); |
Degs | 0:c973368c963d | 7 | |
Degs | 0:c973368c963d | 8 | char SegConvert( char SegValue); |
Degs | 0:c973368c963d | 9 | |
Degs | 0:c973368c963d | 10 | int main() |
Degs | 0:c973368c963d | 11 | { |
Degs | 0:c973368c963d | 12 | while(1) { |
Degs | 0:c973368c963d | 13 | for(char j=0; j<10; j++) { |
Degs | 0:c973368c963d | 14 | display_tens = SegConvert(j); |
Degs | 0:c973368c963d | 15 | for(char i=0; i<10; i++) { |
Degs | 0:c973368c963d | 16 | display_units = SegConvert(i); |
Degs | 0:c973368c963d | 17 | for(int s=0;s<60; s++) { |
Degs | 0:c973368c963d | 18 | Seconds_Ticker = 1; |
Degs | 0:c973368c963d | 19 | wait(0.5); |
Degs | 0:c973368c963d | 20 | Seconds_Ticker = 0; |
Degs | 0:c973368c963d | 21 | wait(0.5);} |
Degs | 0:c973368c963d | 22 | } |
Degs | 0:c973368c963d | 23 | } |
Degs | 0:c973368c963d | 24 | } |
Degs | 0:c973368c963d | 25 | } |
Degs | 0:c973368c963d | 26 | |
Degs | 0:c973368c963d | 27 | char SegConvert(char SegValue) |
Degs | 0:c973368c963d | 28 | { |
Degs | 0:c973368c963d | 29 | char SegByte=0x00; |
Degs | 0:c973368c963d | 30 | switch (SegValue) { |
Degs | 0:c973368c963d | 31 | //DP G F E D C B A |
Degs | 0:c973368c963d | 32 | case 0: SegByte = 0x3F; break; //0 0 1 1 1 1 1 1 binary |
Degs | 0:c973368c963d | 33 | //display 0 |
Degs | 0:c973368c963d | 34 | case 1: SegByte = 0x86; break; //1 0 0 0 0 1 1 0 |
Degs | 0:c973368c963d | 35 | //display 1 + DP |
Degs | 0:c973368c963d | 36 | case 2: SegByte = 0x5B; break; |
Degs | 0:c973368c963d | 37 | case 3: SegByte = 0x4F; break; |
Degs | 0:c973368c963d | 38 | case 4: SegByte = 0x66; break; |
Degs | 0:c973368c963d | 39 | case 5: SegByte = 0x6D; break; |
Degs | 0:c973368c963d | 40 | case 6: SegByte = 0x7D; break; |
Degs | 0:c973368c963d | 41 | case 7: SegByte = 0x07; break; |
Degs | 0:c973368c963d | 42 | case 8: SegByte = 0x7F; break; |
Degs | 0:c973368c963d | 43 | case 9: SegByte = 0x6F; break; |
Degs | 0:c973368c963d | 44 | } //end of switch |
Degs | 0:c973368c963d | 45 | return SegByte; |
Degs | 0:c973368c963d | 46 | } |