菜鸟求解函数段
时间:10-02
整理:3721RD
点击:
#include "Key.h"
#include "reg52.h"
void Key_Init(void)
{
P1 = 0xff;
}
unsigned char Key_Scan(void)
{
if(P1 != 0xff)
{
if(!(P1&0x01))
return 1;
else if(!(P1&0x02))
return 2;
else if(!(P1&0x04))
return 3;
else if(!(P1&0x08))
return 4;
else if(!(P1&0x10))
return 5;
else if(!(P1&0x20))
return 6;
else if(!(P1&0x40))
return 7;
else if(!(P1&0x80))
return 8;
else
return 0;
}
return 0;
}
这是按键函数段,if语句里的“p1&0x01”什么意思,,返回值实现什么功能
#include "reg52.h"
void Key_Init(void)
{
P1 = 0xff;
}
unsigned char Key_Scan(void)
{
if(P1 != 0xff)
{
if(!(P1&0x01))
return 1;
else if(!(P1&0x02))
return 2;
else if(!(P1&0x04))
return 3;
else if(!(P1&0x08))
return 4;
else if(!(P1&0x10))
return 5;
else if(!(P1&0x20))
return 6;
else if(!(P1&0x40))
return 7;
else if(!(P1&0x80))
return 8;
else
return 0;
}
return 0;
}
这是按键函数段,if语句里的“p1&0x01”什么意思,,返回值实现什么功能
任何数和1相与,取值不变。P1&0x01用于检查P1^0是否为1,P1&0x02用于检查P1^1,P1&0x80用于检查P1^7。返回哪个数值表示第几个按键被按下