• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单片机控制独立键盘相关程序问题

有花堪折 2020-10-12 浏览量:1400
// 要求:按下key1时led电点亮,按下key2时熄灭
//问题;按下key1时能点亮led,但是按下key2时不能熄灭
#include<reg52.h>
sbit led=P1^0;
sbit key1=P3^0;
sbit key2=P3^2;
void delay(int x)
{
int yz;
for(z=x;z>0;z--)
  for(y=114;y>0;y--);

}
void main()
{
while(1)
{
  if(key1==0)
   {
    delay(20);
    if(key1==0)
    led=0;
   }
else if(key2==0)
{
delay(20);

  if(key2==0)
   led=0xff;
}
  }
   }

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • void main()
    {
    while(1)
    {
      if(key1==0)
       {
        delay(20);
        if(key1==0)
        led=0;
       }


      if(key2==0)
       {
        delay(20);
        if(key2==0)
        led=1;
       }
    }
    }
    • 发布于 2020-10-12
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 你的led=0xff表示熄灭,还是led=1表示熄灭?

    其他地方除了代码不整洁外,看不出大的问题。

    • 发布于2020-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • led是位操作所以不能用0xff表示,应该用1表示
    • 发布于2020-10-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 建议把led=0xff改为led=1,不然操作可能会有问题
    • 发布于2020-10-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 这里问题是后面那个else,因为KEY1为0且KEY2为0时它并不会熄灭
    • 发布于2020-11-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单片机控制独立键盘相关程序问题