微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于矩阵键盘使用(小白问题)

关于矩阵键盘使用(小白问题)

时间:10-02 整理:3721RD 点击:
  #include <reg52.h>
  sbit led=P1^4;
  void main()
  {
  char temp;
  led=1;
  while(1)
   {
  P3=0xfe;
  temp=P3;
  temp=temp&0xf0;
    if(temp!=0xf0)
     led=0;
    else
        led=1;
   

   }
  }
我的这段代码有什么问题?为什么按键之后led没有亮?
求大神指导。谢谢了

#include <reg52.h>  sbit led=P1^4;
  void main()
  {
  char temp;
  led=1;
  while(1)
   {
  P3=0xfe;
  temp=P3;
  temp=temp&0xf0;
    if(temp!=0xf0)
     led=0;
    else
        led=1;
   
   }
  }你这个程序我下载到我的实验班中灯直接就亮了,但是我把char temp改成unsigned char temp能正常工作

while语句中
temp = 0xfe & 0xf0; //0xf0  
执行if中的else语句,故led=1;
所以led没有亮。
另外,你的程序中并没有处理按键的代码,跟按键没有关系。

所有按钮都按一次看看!还有你这个程序松手后LED是不会亮的哦!

所有都试过了,按了好久。

就是说temp=P3,假如按下了,不是按键处理吗?(小白,所有问题比较多,不用见怪。)

程序看起来是没有问题的!

按下按键灯应该会闪一下吧

你的键盘是怎么接的?再就是常按指定按键

太感谢了,用signed char 的确可以了,不过请问你可以解释一下吗?为什么用char和int就不行了?

CHAR 的数据是-128到127  TEMP=0XFE明显超出界限了!

如果是CHAR 的问题 你用INT型变量也是可以的!

哦哦,谢谢,原来是这样

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

网站地图

Top