Andrew Bell
/
assesment
working hello message on seven seg
main.cpp@0:84215c8c21e8, 2021-02-17 (annotated)
- Committer:
- andrewbw01
- Date:
- Wed Feb 17 17:26:31 2021 +0000
- Revision:
- 0:84215c8c21e8
working hello message on seven seg
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
andrewbw01 | 0:84215c8c21e8 | 1 | #include "mbed.h" |
andrewbw01 | 0:84215c8c21e8 | 2 | |
andrewbw01 | 0:84215c8c21e8 | 3 | BusOut LED_Disp(p7,p11,p9,p8,p5,p6,p10,p12); |
andrewbw01 | 0:84215c8c21e8 | 4 | |
andrewbw01 | 0:84215c8c21e8 | 5 | void DisplayNumber(int); |
andrewbw01 | 0:84215c8c21e8 | 6 | |
andrewbw01 | 0:84215c8c21e8 | 7 | DigitalOut col1 (p26); // pin 4 on keypad |
andrewbw01 | 0:84215c8c21e8 | 8 | DigitalOut col2 (p28); // pin 2 |
andrewbw01 | 0:84215c8c21e8 | 9 | DigitalOut col3 (p24); // pin 6 |
andrewbw01 | 0:84215c8c21e8 | 10 | |
andrewbw01 | 0:84215c8c21e8 | 11 | DigitalIn row1 (p27); // pin 3 |
andrewbw01 | 0:84215c8c21e8 | 12 | DigitalIn row2 (p22); // pin 8 |
andrewbw01 | 0:84215c8c21e8 | 13 | DigitalIn row3 (p23); // pin 7 |
andrewbw01 | 0:84215c8c21e8 | 14 | DigitalIn row4 (p25); // pin 5 |
andrewbw01 | 0:84215c8c21e8 | 15 | |
andrewbw01 | 0:84215c8c21e8 | 16 | int main() |
andrewbw01 | 0:84215c8c21e8 | 17 | { |
andrewbw01 | 0:84215c8c21e8 | 18 | while(1) |
andrewbw01 | 0:84215c8c21e8 | 19 | { |
andrewbw01 | 0:84215c8c21e8 | 20 | LED_Disp = ~0x76; //bit pattern for 0 |
andrewbw01 | 0:84215c8c21e8 | 21 | wait(0.8); |
andrewbw01 | 0:84215c8c21e8 | 22 | LED_Disp = ~0x79; //bit pattern for 1 |
andrewbw01 | 0:84215c8c21e8 | 23 | wait(0.8); |
andrewbw01 | 0:84215c8c21e8 | 24 | LED_Disp = ~0x30; //2 |
andrewbw01 | 0:84215c8c21e8 | 25 | wait(0.8); |
andrewbw01 | 0:84215c8c21e8 | 26 | LED_Disp = 0xFF; |
andrewbw01 | 0:84215c8c21e8 | 27 | wait(0.3); |
andrewbw01 | 0:84215c8c21e8 | 28 | LED_Disp = ~0x30; //3 |
andrewbw01 | 0:84215c8c21e8 | 29 | wait(0.8); |
andrewbw01 | 0:84215c8c21e8 | 30 | LED_Disp = ~0x3F; //4 |
andrewbw01 | 0:84215c8c21e8 | 31 | wait(0.8); |
andrewbw01 | 0:84215c8c21e8 | 32 | |
andrewbw01 | 0:84215c8c21e8 | 33 | } |
andrewbw01 | 0:84215c8c21e8 | 34 | } |
andrewbw01 | 0:84215c8c21e8 | 35 | |
andrewbw01 | 0:84215c8c21e8 | 36 | char keypad(void) |
andrewbw01 | 0:84215c8c21e8 | 37 | { |
andrewbw01 | 0:84215c8c21e8 | 38 | col1 = 1; //colunm 1 high |
andrewbw01 | 0:84215c8c21e8 | 39 | col2 = 0; |
andrewbw01 | 0:84215c8c21e8 | 40 | col3 = 0; |
andrewbw01 | 0:84215c8c21e8 | 41 | |
andrewbw01 | 0:84215c8c21e8 | 42 | if (row1==1) |
andrewbw01 | 0:84215c8c21e8 | 43 | { |
andrewbw01 | 0:84215c8c21e8 | 44 | while(row1==1){} |
andrewbw01 | 0:84215c8c21e8 | 45 | |
andrewbw01 | 0:84215c8c21e8 | 46 | col1 = 0; |
andrewbw01 | 0:84215c8c21e8 | 47 | col2 = 0; |
andrewbw01 | 0:84215c8c21e8 | 48 | col3 = 0; |
andrewbw01 | 0:84215c8c21e8 | 49 | DisplayNumber(1); |
andrewbw01 | 0:84215c8c21e8 | 50 | |
andrewbw01 | 0:84215c8c21e8 | 51 | |
andrewbw01 | 0:84215c8c21e8 | 52 | } |
andrewbw01 | 0:84215c8c21e8 | 53 | else if (row2==1) |
andrewbw01 | 0:84215c8c21e8 | 54 | { |
andrewbw01 | 0:84215c8c21e8 | 55 | while (row2==1){} |
andrewbw01 | 0:84215c8c21e8 | 56 | |
andrewbw01 | 0:84215c8c21e8 | 57 | col1 = 0; |
andrewbw01 | 0:84215c8c21e8 | 58 | col2 = 0; |
andrewbw01 | 0:84215c8c21e8 | 59 | col3 = 0; |
andrewbw01 | 0:84215c8c21e8 | 60 | DisplayNumber(4); |
andrewbw01 | 0:84215c8c21e8 | 61 | } |
andrewbw01 | 0:84215c8c21e8 | 62 | else if (row3==1) |
andrewbw01 | 0:84215c8c21e8 | 63 | { |
andrewbw01 | 0:84215c8c21e8 | 64 | while (row3==1){} |
andrewbw01 | 0:84215c8c21e8 | 65 | |
andrewbw01 | 0:84215c8c21e8 | 66 | col1 = 0; |
andrewbw01 | 0:84215c8c21e8 | 67 | col2 = 0; |
andrewbw01 | 0:84215c8c21e8 | 68 | col3 = 0; |
andrewbw01 | 0:84215c8c21e8 | 69 | DisplayNumber(7); |
andrewbw01 | 0:84215c8c21e8 | 70 | } |
andrewbw01 | 0:84215c8c21e8 | 71 | else if (row4==1) |
andrewbw01 | 0:84215c8c21e8 | 72 | { |
andrewbw01 | 0:84215c8c21e8 | 73 | while (row4==1){} |
andrewbw01 | 0:84215c8c21e8 | 74 | |
andrewbw01 | 0:84215c8c21e8 | 75 | col1 = 0; |
andrewbw01 | 0:84215c8c21e8 | 76 | col2 = 0; |
andrewbw01 | 0:84215c8c21e8 | 77 | col3 = 0; |
andrewbw01 | 0:84215c8c21e8 | 78 | DisplayNumber(11); |
andrewbw01 | 0:84215c8c21e8 | 79 | } |
andrewbw01 | 0:84215c8c21e8 | 80 | |
andrewbw01 | 0:84215c8c21e8 | 81 | return(0); |
andrewbw01 | 0:84215c8c21e8 | 82 | } |
andrewbw01 | 0:84215c8c21e8 | 83 | |
andrewbw01 | 0:84215c8c21e8 | 84 | |
andrewbw01 | 0:84215c8c21e8 | 85 | |
andrewbw01 | 0:84215c8c21e8 | 86 | |
andrewbw01 | 0:84215c8c21e8 | 87 | |
andrewbw01 | 0:84215c8c21e8 | 88 | |
andrewbw01 | 0:84215c8c21e8 | 89 | |
andrewbw01 | 0:84215c8c21e8 | 90 | void DisplayNumber(int num) |
andrewbw01 | 0:84215c8c21e8 | 91 | { |
andrewbw01 | 0:84215c8c21e8 | 92 | switch(num) |
andrewbw01 | 0:84215c8c21e8 | 93 | { |
andrewbw01 | 0:84215c8c21e8 | 94 | case 0: |
andrewbw01 | 0:84215c8c21e8 | 95 | LED_Disp = ~0x3F; |
andrewbw01 | 0:84215c8c21e8 | 96 | break; |
andrewbw01 | 0:84215c8c21e8 | 97 | case 1: |
andrewbw01 | 0:84215c8c21e8 | 98 | LED_Disp = ~0x06; |
andrewbw01 | 0:84215c8c21e8 | 99 | break; |
andrewbw01 | 0:84215c8c21e8 | 100 | case 2: |
andrewbw01 | 0:84215c8c21e8 | 101 | LED_Disp = ~0x5B; |
andrewbw01 | 0:84215c8c21e8 | 102 | break; |
andrewbw01 | 0:84215c8c21e8 | 103 | case 3: |
andrewbw01 | 0:84215c8c21e8 | 104 | LED_Disp = ~0x4F; |
andrewbw01 | 0:84215c8c21e8 | 105 | break; |
andrewbw01 | 0:84215c8c21e8 | 106 | case 4: |
andrewbw01 | 0:84215c8c21e8 | 107 | LED_Disp = ~0x66; |
andrewbw01 | 0:84215c8c21e8 | 108 | break; |
andrewbw01 | 0:84215c8c21e8 | 109 | case 5: |
andrewbw01 | 0:84215c8c21e8 | 110 | LED_Disp = ~0x6D; |
andrewbw01 | 0:84215c8c21e8 | 111 | break; |
andrewbw01 | 0:84215c8c21e8 | 112 | case 6: |
andrewbw01 | 0:84215c8c21e8 | 113 | LED_Disp = ~0x7D; |
andrewbw01 | 0:84215c8c21e8 | 114 | break; |
andrewbw01 | 0:84215c8c21e8 | 115 | case 7: |
andrewbw01 | 0:84215c8c21e8 | 116 | LED_Disp = ~0x07; |
andrewbw01 | 0:84215c8c21e8 | 117 | break; |
andrewbw01 | 0:84215c8c21e8 | 118 | case 8: |
andrewbw01 | 0:84215c8c21e8 | 119 | LED_Disp = ~0x7F; |
andrewbw01 | 0:84215c8c21e8 | 120 | break; |
andrewbw01 | 0:84215c8c21e8 | 121 | case 9: |
andrewbw01 | 0:84215c8c21e8 | 122 | LED_Disp = ~0x67; |
andrewbw01 | 0:84215c8c21e8 | 123 | break; |
andrewbw01 | 0:84215c8c21e8 | 124 | case 10: //# |
andrewbw01 | 0:84215c8c21e8 | 125 | LED_Disp = ~0x5c; |
andrewbw01 | 0:84215c8c21e8 | 126 | break; |
andrewbw01 | 0:84215c8c21e8 | 127 | case 11: //* |
andrewbw01 | 0:84215c8c21e8 | 128 | LED_Disp = ~0x63; |
andrewbw01 | 0:84215c8c21e8 | 129 | break; |
andrewbw01 | 0:84215c8c21e8 | 130 | } |
andrewbw01 | 0:84215c8c21e8 | 131 | } |
andrewbw01 | 0:84215c8c21e8 | 132 | |
andrewbw01 | 0:84215c8c21e8 | 133 |