⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyscan.c

📁 基于KeilC 平台的单片机源码
💻 C
字号:
#include<reg52.h>
#include<absacc.h>

#define uchar unsigned char
#define uint  unsigned int
#define TRUE 1
#define FALSE 0
#define UP 0x0d;
#define DOWN 0x0e;
#define CANCEL 0x0a;
#define ENTER 0x0b;
#define F1 0x0c;
#define F4 0x0f

bit key_flag;
//uchar code KeyValue[16]={0x11,0x21,0x41,0x81,
//                    0x12,0x22,0x42,0x82,
//                   0x14,0x24,0x44,0x84,
//                   0x18,0x28,0x48,0x88};
void deley_10ms(void);
uchar keyscan(void);

void main(void)
{
uchar key_value=0;
uchar key=0xff;

key_flag=0;
key_value = keyscan();

do{
  if (key_flag)
     {
       switch(key_value)
       {
        case 0x11: 
        key=1;
		break;
        case 0x21:
        key=2;
	    break;
        case 0x41:
        key=3;
	    break;
        case 0x81:
        key=4;
	    break;
        case 0x12:
        key=5;
	    break;
        case 0x22:
        key=6;
	    break;
        case 0x42: 
        key=7;
		break;
        case 0x82:
        key=8;
	    break;
        case 0x14:
        key=CANCEL;    //取消健
	    break;
        case 0x24:
        key=9;
	    break;
        case 0x44:
        key=0;
        break;
        case 0x84:
        key=ENTER;    //确认
	    break;
        case 0x18: 
        key=F1;
		break;
        case 0x28:
        key=UP;
		break;
        case 0x48: 
        key=DOWN;
		break;
        case 0x88: 
        key=F4;
		break;
        default:
	    break;
       }
	   key_flag=0;
     }
  }while(TRUE);
  P1=key;
}


/********扫描按键函数**********/
uchar keyscan(void)
{
uchar readkey,rereadkey;
uchar x_temp,y_temp;
key_flag=0;

x_temp=(P1=0x0f)&0x0f;
if(x_temp==0x0f)return(0xff);
y_temp=(P1=0xf0)&0xf0;
readkey=x_temp|y_temp;
deley_10ms();
x_temp=(P1=0x0f)&0x0f;
if(x_temp==0x0f)return(0xff);
y_temp=(P1=0xf0)&0xf0;
rereadkey=x_temp|y_temp;

if(readkey==rereadkey)
 {
  key_flag=1;
  return(readkey);
 }
}


/***********延时函数*************/
void deley_10ms(void)
{
uchar j,i=10;
while(i--)
 {
 for(j=1;j<=120;j++);
 }
}

⌨️ 快捷键说明

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