📄 keypad.c
字号:
/*******************************Copyright (c)**********************************
***************************************By Z.Q.Yang****************************/
/******************************************************************************
*文件名:Keypad.c
*功能:键盘驱动c文件
*头文件:"config.h","keypad.h"
*作者:Z.Q.Yang
*******************************************************************************/
#include"config.h"
#include"keypad.h"
/******************************************************************************
*函数名:delay
*功能:短延时函数
*入口参数:z:延时长短控制
*出口参数:无
*作者:Z.Q.Yang
******************************************************************************/
void delay(uint8 z)
{
uint16 i;
for(;z>0;z--)
for(i=0;i<10000;i++);
}
/******************************************************************************
*函数名:KeyPadInit
*作用:键盘初始化函数
*入口参数:无
*出口参数:无
*作者:Z.Q.Yang
******************************************************************************/
void KeyPadInit(void)
{
PINSEL1&=0x0000ffff; /*设置管脚连接*/
IODIR&=~KEYPADX; /*设置IO口方向*/
IODIR|=KEYPADY;
IOCLR=KEYPADY|KEYPADX;
}
/******************************************************************************
*函数名:KeyPadScan
*作用:键盘扫描函数
*入口参数:无
*出口参数:键码
*作者:Z.Q.Yang
******************************************************************************/
uint8 KeyPadScan(void)
{
uint32 scode;
uint8 i;
uint8 code;
IOCLR=KEYPADY;
if((IOPIN&KEYPADX)!=KEYPADX) /*扫描键盘*/
{
delay(10);
if((IOPIN&KEYPADX)!=KEYPADX)
{
IOSET=KEYPADY;
scode=0x10000000;
for(i=0;i<4;i++)
{
IOCLR=scode;
if((IOPIN&KEYPADX)!=KEYPADX)
{
code=(scode|(IOPIN&KEYPADX))>>24;
// for(;((IOPIN&KEYPADX)!=KEYPADX););
delay(200);
return code;
}
scode=(scode<<1);
}
}
}
return 0;
}
/******************************************************************************
*函数名:GetKey
*作用:获取键值函数
*入口参数:无
*出口参数:键值
*作者:Z.Q.Yang
******************************************************************************/
uint8 GetKey(void)
{
uint8 code;
code=KeyPadScan(); /*读取键值*/
switch(code)
{
case 0x1e:return 1;break;
case 0x1d:return 2;break;
case 0x1b:return 3;break;
case 0x17:return 'a';break;
case 0x2e:return 4;break;
case 0x2d:return 5;break;
case 0x2b:return 6;break;
case 0x27:return 'b';break;
case 0x4e:return 7;break;
case 0x4d:return 8;break;
case 0x4b:return 9;break;
case 0x47:return 'c';break;
case 0x8e:return 'd';break;
case 0x8d:return 0;break;
case 0x8b:return 'e';break;
case 0x87:return 'f';break;
default:return 'h';
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -