[mw_shl_code=c,true]#include "key.h"
#include "delay.h"
#include "lcd.h"
vu8 KEY_Num; //?¨??°??ü??????±???
vu8 FriNum;
extern unsigned char KEY_Num; //???÷???????????¨??°??ü??????±???
KeyScanState_Typedef KeyScanState = KeyScanState_0; //?¨??°??ü?¨?è×???????±?
//·?????IO????????IO??×é????°??ü??°??ü??????
/******************************************************************************
* ?????? : KeyScan
* ?????è?? : °??ü?¨?è???ò
* ???????? : ??
* ?????á?? : ??
* ·????? : °??ü?ü??
******************************************************************************/
void KeyScan(void)
{
// KeyPortStatus = GPIO_ReadInputData(KeyPort) & KeyPortPin;//????°??ü????×???
switch(KeyScanState) //????×????ú?÷??
{
case KeyScanState_0: //×???1????????·?°??ü°???
{
if(KEY1==0 || KEY2==0 || KEY3==0 || KEY4==0|| KEY5==0|| KEY6==0
|| KEY7==0|| KEY8==0|| KEY9==0|| KEY0==0|| KEYPoint==0|| KEYStart==0)
KeyScanState = KeyScanState_1;//??°??ü°??????ü??×???±ê??
break;
}
case KeyScanState_1: //×???2????????·?????
{
if(KEY0==0 ||KEY1==0 || KEY2==0 || KEY3==0 || KEY4==0|| KEY5==0
|| KEY6==0|| KEY7==0|| KEY8==0|| KEY9==0
|| KEYPoint==0|| KEYStart==0 ) //·????????·??°??ü°??????????à????×÷
{
if(KEY0==0) KEY_Num=0;
if(KEY1==0) KEY_Num=1;
if(KEY2==0) KEY_Num=2;
if(KEY3==0) KEY_Num=3;
if(KEY4==0) KEY_Num=4;
if(KEY5==0) KEY_Num=5;
if(KEY6==0) KEY_Num=6;
if(KEY7==0) KEY_Num=7;
if(KEY8==0) KEY_Num=8;
if(KEY9==0) KEY_Num=9;
if(KEYPoint==0)KEY_Num=10;
if(KEYStart==0) KEY_Num=11;
KeyScanState = KeyScanState_2;//?ü??×???±ê??
}
else //???????·??°??ü??°??????ü??×???±ê??
KeyScanState = KeyScanState_0;
break;
}
case KeyScanState_2: //×???3???????ì??
{
if(KEY1==1 && KEY2==1 && KEY3==1 && KEY4==1&& KEY5==1&& KEY6==1
&& KEY7==1 && KEY8==1 && KEY9==1 && KEY0==1 && KEYPoint==1&& KEYStart==1)
{
KeyScanState = KeyScanState_0;
}
break;
}
}
}
void keycontrol(void)
{
// if(time_20ms_ok)
//{
// time_20ms_ok = 0;
KeyScan(); //按键扫描
switch(KEY_Num)
{
case 0: FriNum=0;break;
case 1: FriNum=1;break;
case 2: FriNum=2;break;
case 3: FriNum=3;break;
case 4: FriNum=4;break;
case 5: FriNum=5;break;
case 6: FriNum=6;break;
case 7: FriNum=7;break;
case 8: FriNum=8;break;
case 9: FriNum=9;break;
case 10: FriNum=10;break;
// case 11: FriNum=11;break;
// case 12: FriNum=12;break;
}
//}
}[/mw_shl_code]
|