keyscan.h

来自「此程序是基于89s52单片机的c程序」· C头文件 代码 · 共 123 行

H
123
字号
#define uchar unsigned char
#define uint unsigned int

//uchar num;
uchar temp1;
uchar num=0xff;

uchar key_scan( )
{	
		num=0;
        P2=0xfe;
        temp1=P2;
        temp1=temp1&0xf0;
        if(temp1!=0xf0)	
        {
            delay(10,300);
            if(temp1!=0xf0)
            {
                switch (temp1)
                {
                    case 0xe0: num='0';
                         break;
                    case 0xd0: num='1';
                         break;
                    case 0xb0: num='2';
                         break;
                    case 0x70: num='3';
                         break;
                }
            }
        }
      while(temp1!=0xf0)  
            {
              temp1=P2;
              temp1=temp1&0xf0;
            }
            

        P2=0xfd;
        temp1=P2;
        temp1=temp1&0xf0;
        if(temp1!=0xf0)
        {
            delay(10,300);
            if(temp1!=0xf0)
            {
                switch (temp1)
                {
                    case 0xe0: num='4';
                         break;
                    case 0xd0: num='5';
                         break;
                    case 0xb0: num='6';
                         break;
                    case 0x70: num='7';
                         break;
                }
            }
        }
        while(temp1!=0xf0)
            {
              temp1=P2;
              temp1=temp1&0xf0;
            }


        P2=0xfb;
        temp1=P2;
        temp1=temp1&0xf0;
        if(temp1!=0xf0)
        {
            delay(10,300);
            if(temp1!=0xf0)
            {
                switch (temp1)
                {
                    case 0xe0: num='8';
                         break;
                    case 0xd0: num='9';
                         break;
                    case 0xb0: num='A';
                         break;
                    case 0x70: num='B';
                         break;
                }
            }
        }
        while(temp1!=0xf0)
            {
              temp1=P2;
              temp1=temp1&0xf0;
            } 


        P2=0xf7;
        temp1=P2;
        temp1=temp1&0xf0;
        if(temp1!=0xf0)
        {
            delay(10,300);
            if(temp1!=0xf0)
            {
                switch (temp1)
                {
                    case 0xe0: num='C';
                         break;
                    case 0xd0: num='D';
                         break;
                    case 0xb0: num='E';
                         break;
                    case 0x70: num='F';
                         break;
                }
            }
        }
        while(temp1!=0xf0)
            {
              temp1=P2;
              temp1=temp1&0xf0; 
            } 
     return(num);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?