/*****************************************/
#include "key.h"
#include "shumaguan.h"
#include <rtx51tny.h>
#include "reg52.h"
#include "1602.h"
bit flag = 0;
unsigned char KeyScan() //带返回值的子函数
{
unsigned char i;
unsigned char cord_l;//声明列线和行线的值的储存变量
LED=~LED;
if(!KEY0)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY0)
{
cord_l=0X01;
flag = 1;
OUT0=0;
OUT1=1;
OUT2=1;
OUT3=1;
}
}
else if(!KEY1)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY1)
{
cord_l=0X02;
flag = 1;
OUT0=1;
OUT1=0;
OUT2=1;
OUT3=1;
}
}
else if(!KEY2)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY2)
{
cord_l=0X03;
flag = 1;
OUT0=1;
OUT1=1;
OUT2=0;
OUT3=1;
}
}
else if(!KEY3)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY3)
{
cord_l=0X04;
flag = 1;
OUT0=1;
OUT1=1;
OUT2=1;
OUT3=0;
}
}
else if(!KEY4)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY4)
{
cord_l=0X05;
flag = 1;
}
}
else if(!KEY5)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY5)
{
cord_l=0X06;
flag = 1;
}
}
else if(!KEY6)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY6)
{
cord_l=0X07;
flag = 1;
}
}
else if(!KEY7)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY7)
{
cord_l=0X08;
flag = 1;
}
}
/************************************/
if(flag) //按键事件
{
for(i=0;i<3;i++)
{
os_wait2(K_TMO,10);
}
flag=0; //清除按键事件
return(cord_l);
}
else
return 0;
}
#include "key.h"
#include "shumaguan.h"
#include <rtx51tny.h>
#include "reg52.h"
#include "1602.h"
bit flag = 0;
unsigned char KeyScan() //带返回值的子函数
{
unsigned char i;
unsigned char cord_l;//声明列线和行线的值的储存变量
LED=~LED;
if(!KEY0)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY0)
{
cord_l=0X01;
flag = 1;
OUT0=0;
OUT1=1;
OUT2=1;
OUT3=1;
}
}
else if(!KEY1)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY1)
{
cord_l=0X02;
flag = 1;
OUT0=1;
OUT1=0;
OUT2=1;
OUT3=1;
}
}
else if(!KEY2)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY2)
{
cord_l=0X03;
flag = 1;
OUT0=1;
OUT1=1;
OUT2=0;
OUT3=1;
}
}
else if(!KEY3)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY3)
{
cord_l=0X04;
flag = 1;
OUT0=1;
OUT1=1;
OUT2=1;
OUT3=0;
}
}
else if(!KEY4)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY4)
{
cord_l=0X05;
flag = 1;
}
}
else if(!KEY5)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY5)
{
cord_l=0X06;
flag = 1;
}
}
else if(!KEY6)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY6)
{
cord_l=0X07;
flag = 1;
}
}
else if(!KEY7)
{
os_wait2(K_TMO,1);//软件消抖
if(!KEY7)
{
cord_l=0X08;
flag = 1;
}
}
/************************************/
if(flag) //按键事件
{
for(i=0;i<3;i++)
{
os_wait2(K_TMO,10);
}
flag=0; //清除按键事件
return(cord_l);
}
else
return 0;
}