void KeyDown()
{
GPIO_KEY=0X0F; // #define GPIO_KEY P1
if(GPIO_KEY!=0X0F) // #define GPIO_DIG P0
{
delay(1000); //消抖
if(GPIO_KEY!=0X0F)
{
GPIO_KEY=0X0F;
// 这里前面不就已经检测到按键已经按下了吗?为什么在附一次值,不会使GPIO_KEY的值定在0x0f
switch(GPIO_KEY)
//在传下去给switch吗?
{
case(0X07): KeyValue=0;break;
case(0X0B): KeyValue=1;break;
case(0X0D): KeyValue=2;break;
case(0X0E): KeyValue=3;break;
}
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue;break;
case(0XB0): KeyValue=KeyValue+4;break;
case(0XD0): KeyValue=KeyValue+8;break;
case(0XE0): KeyValue=KeyValue+12;break;
}
此帖出自
小平头技术问答
#define Forward_Key (P1 = 0X0F)
#define Reverse_Key (P1 = 0xF0)
#define Read_key (P1)
/*************************************************/
Forward_Key;
switch(Read_key)
{
case(0X07): KeyValue=0;break;
case(0X0B): KeyValue=1;break;
case(0X0D): KeyValue=2;break;
case(0X0E): KeyValue=3;break;
}
Reverse_Key;
switch(Read_key)
{
case(0X70): KeyValue=KeyValue;break;
case(0XB0): KeyValue=KeyValue+4;break;
case(0XD0): KeyValue=KeyValue+8;break;
case(0XE0): KeyValue=KeyValue+12;break;
}
/*************************************************/
一周热门 更多>