key.c

来自「GPS开发」· C语言 代码 · 共 69 行

C
69
字号
//======================================================
// 文件名称:	Key.c
// 功能描述:	键盘初始化,键盘扫描,获取键值 
// 维护记录:	2007-8-10	v1.0
//======================================================
#include "spce061a.h"
#include "picture.h"
static int result;    						// 当键盘按下时用于存储键值.
static char down;    						// 有键盘按下时置1

//=============================================================
// 语法格式:	void Key_Init(void)
// 实现功能:	键盘初始化
// 参数:		无
// 返回值:		无
//=============================================================
void Init_Key(void)
{
	*P_IOA_Dir |= 0x000;    				// IOA0,1,2下拉输入
	*P_IOA_Attrib |= 0x0000;
	*P_IOA_Buffer |= 0x0000;
}

//=============================================================
// 语法格式:	void Key_ServiceLoop(void)
// 实现功能:	键盘扫描函数
// 参数:		无
// 返回值:		无
//=============================================================
int Key_ServiceLoop(void)
{
	int temp1,temp2 ;   
	
	temp1 = *P_IOA_Data;
	temp1 = temp1&0x7;   					// 去抖
	if (temp1 == 0)
		return -1;
	delay(0xffff);
	temp2=*P_IOA_Data;
	temp2=temp2 & 0x7;
	if(temp2 == temp1)
	{
		down = 1;
		result = temp2;
		return temp2;
	}
	else
	{
		down = 0;
		return -1;
	}
}

//=============================================================
// 语法格式:	int Key_GetValue(void)
// 实现功能:	得到键值函数   
// 参数:		无
// 返回值:		按下返回键值,没有按下返回-1
//=============================================================	
int Key_GetValue(void)
{
	if(down == 1)
	{	
		down = 0;
		return	result;
	}
	else
		return  -1;
}		

⌨️ 快捷键说明

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