微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 菜鸟求解函数段

菜鸟求解函数段

时间: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”什么意思,,返回值实现什么功能

任何数和1相与,取值不变。P1&0x01用于检查P1^0是否为1,P1&0x02用于检查P1^1,P1&0x80用于检查P1^7。返回哪个数值表示第几个按键被按下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top