keyscan.c
来自「是一个可以快速实现的多功能六路抢答器 包括源代码和运行文件」· C语言 代码 · 共 57 行
C
57 行
//========================================================
// 语法格式: unsigned int KeyScan(void)
// 实现功能: 获得键盘值并返回
// 参数: 无
// 返回值: 键盘值
//========================================================
# include "SPCE061A.h"
unsigned int KeyScan1(void)
{
unsigned int uiData;
unsigned int uiTemp;
uiData = *P_IOA_Data; //读取IOA端口输入
uiData = uiData&0x0003; //仅取低八位有效值
if(uiData!=0) //非零则表示有键按下
{
delay(); //延时消抖
uiTemp = *P_IOA_Data;
uiTemp = uiTemp&0x0003; //仅取低八位有效值
if(uiData != uiTemp)
uiData = 0; //两次读数不相等,则置返回值为0
}
return uiData; //返回键值
}
unsigned int KeyScan2(void)
{
unsigned int uiData;
unsigned int uiTemp;
uiData = *P_IOA_Data; //读取IOA端口输入
uiData = uiData&0x00fc; //仅取高八位有效值
if(uiData!=0) //非零则表示有键按下
{
delay(); //延时消抖
uiTemp = *P_IOA_Data;
uiTemp = uiTemp&0x00fc; //仅取高八位有效值
if(uiData != uiTemp)
uiData = 0; //两次读数不相等,则置返回值为0
}
return uiData; //返回键值
}
void delay(void)
{
unsigned int uiCount;
for(uiCount = 0;uiCount < 50; uiCount++)
{
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?