working keypad

Dependencies:   mbed

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;
    }
}