Andrew Bell
/
lab3_keypad
working keypad
main.cpp
- Committer:
- andrewbw01
- Date:
- 2021-02-12
- Revision:
- 0:97427cf843b1
File content as of revision 0:97427cf843b1:
#include "mbed.h" BusOut LED_Disp(p7,p11,p9,p8,p5,p6,p10,p12); DigitalOut col1 (p26); // pin 4 on keypad DigitalOut col2 (p28); // pin 2 DigitalOut col3 (p24); // pin 6 DigitalIn row1 (p27); // pin 3 DigitalIn row2 (p22); // pin 8 DigitalIn row3 (p23); // pin 7 DigitalIn row4 (p25); // pin 5 DigitalOut test1(LED1); DigitalOut test2(LED2); DigitalOut test3 (LED3); int count; void DisplayNumber(int); char keypad(void) { col1 = 1; //colunm 1 high col2 = 0; col3 = 0; if (row1==1) { while(row1==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(1); } else if (row2==1) { while (row2==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(4); } else if (row3==1) { while (row3==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(7); } else if (row4==1) { while (row4==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(11); } return(0); } char keypad2(void) { col1 = 0; //colunm 2 high col2 = 1; col3 = 0; if (row1==1) { while(row1==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(2); } else if (row2==1) { while (row2==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(5); } else if (row3==1) { while (row3==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(8); } else if (row4==1) { while (row4==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(0); } return(0); } char keypad3(void) { col1 = 0; //colunm 3 high col2 = 0; col3 = 1; if (row1==1) { while (row1==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(3); } else if (row2==1) { while (row2==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(6); } else if (row3==1) { while (row3==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(9); } else if (row4==1) { while (row4==1){} col1 = 0; col2 = 0; col3 = 0; DisplayNumber(10); } return(0); } int main() { DisplayNumber(0); while(1) { keypad(); keypad2(); keypad3(); } } void DisplayNumber(int num) { switch(num) { case 0: LED_Disp = ~0x3F; break; case 1: LED_Disp = ~0x06; break; case 2: LED_Disp = ~0x5B; break; case 3: LED_Disp = ~0x4F; break; case 4: LED_Disp = ~0x66; break; case 5: LED_Disp = ~0x6D; break; case 6: LED_Disp = ~0x7D; break; case 7: LED_Disp = ~0x07; break; case 8: LED_Disp = ~0x7F; break; case 9: LED_Disp = ~0x67; break; case 10: //# LED_Disp = ~0x5c; break; case 11: //* LED_Disp = ~0x63; break; } }