📄 key_3.c
字号:
//******************************************//
// 源 文 件:KEY_3.C //
// 描 述:键盘控制相关函数 //
// 主要功能:61学习板s2,s3,s4三键控制 //
// 编写作者:王蓓颖 //
// 编写日期:2005-09-07 //
// 整理日期:2005-10-30 //
//******************************************//
#include "SPCE061V004.H"
#define UP 1
#define DOWN 0
extern SetX_flag;
extern SetY_flag;
extern X_Disp[2];
extern X_Coordinate;
extern Y_Disp[3];
extern Y_Coordinate;
extern MODE_FLAG;
//=======================================================
//函数:Init_Key_3()
//描述:初始化s2,s3,s4三键
//参数:void
//返回:无
//=======================================================
void Init_Key_3()
{
*P_IOA_Dir &= 0xfff8;
*P_IOA_Attrib &= 0xfff8;
//*P_IOA_Attrib |= 0x0007;
*P_IOA_Data &= 0xfff8;
}
//=======================================================
//函数:KeyProess()
//描述:s2,s3,s4三键控制处理
//参数:void
//返回:键值
//=======================================================
unsigned int KeyProess()
{
//unsigned int M=MODE_FLAG;
unsigned int key,tkey;
unsigned long int count = 0;
key = 0;
key = *P_IOA_Data & 0x0007;
tkey = key;
while(tkey != 0)
{
*P_Watchdog_Clear = 1;
tkey = *P_IOA_Data & 0x0007;
count += 1;
}
if(count >0xffffff)
{
key |= 0x80;
}
Delay(2);
if(MODE_FLAG == 0)
{
switch(key)
{
case 0x01: //up
Select(UP);
break;
case 0x02: //down
Select(DOWN);
break;
case 0x04: //ok
Decide();
break;
default:
break;
}
}
if(MODE_FLAG == 5)
{
switch(key)
{
case 0x01: //left
SelectLR(1);
break;
case 0x02: //right
SelectLR(0);
break;
case 0x04: //ok
Chose();
break;
default:
break;
}
}
if((MODE_FLAG == 1) || (MODE_FLAG == 2) || (MODE_FLAG == 4))
{
if(SetY_flag == 1)
{
switch(key)
{
case 0x01:
Y_Coordinate +=1; //add
if(Y_Coordinate > 100)
{
Y_Coordinate = 0;
}
Y_Disp[0] += 1;
if(Y_Disp[0] == 10)
{
Y_Disp[1] += 1;
Y_Disp[0] = 0;
if(Y_Disp[1] == 10)
{
Y_Disp[2] += 1;
Y_Disp[1] = 0;
}
}
if((Y_Disp[2] == 1) & (Y_Disp[0] == 1))
{
Y_Disp[2] = 0;
Y_Disp[1] = 0;
Y_Disp[0] = 0;
}
break;
case 0x02:
Y_Coordinate -=1; //add
if(Y_Coordinate < 0)
{
Y_Coordinate = 100;
}
Y_Disp[0] -= 1;
if(Y_Disp[0] <0)
{
Y_Disp[1] -= 1;
Y_Disp[0] = 9;
if(Y_Disp[1]<0)
{
Y_Disp[2] -= 1;
Y_Disp[1] = 9;
}
}//abstrust
if(Y_Disp[2] < 0)
{
Y_Disp[2] = 1;
Y_Disp[1] = 0;
Y_Disp[0] = 0;
}
break;
case 0x04:
SetY_flag = 0;
break;
case 0x84:
//flag_exit = 1;
break;
default:
break;
}
}
if(SetX_flag == 1)
{
switch(key)
{
case 0x01:
X_Coordinate +=1; //add
if(X_Coordinate > 80)
{
X_Coordinate = 0;
}
X_Disp[0] += 1;
if(X_Disp[0] == 10)
{
X_Disp[1] += 1;
X_Disp[0] = 0;
}
if((X_Disp[1] == 8) & (X_Disp[0] == 1))
{
X_Disp[1] = 0;
X_Disp[0] = 0;
}
break;
case 0x02:
X_Coordinate -=1; //add
if(X_Coordinate < 0)
{
X_Coordinate = 80;
}
X_Disp[0] -= 1;
if(X_Disp[0] <0)
{
X_Disp[1] -= 1;
X_Disp[0] = 9;
}//abstrust
if(X_Disp[1] < 0)
{
X_Disp[1] = 8;
X_Disp[0] = 0;
}
break;
case 0x04:
SetX_flag = 0;
SetY_flag = 1;
break;
case 0x84:
//flag_exit = 1;
break;
default:
break;
}
}
}
return key;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -