泼忒头! 2022-09-19 11:38 采纳率: 0%
浏览 30

按键控制流水灯,怎么按键没用

#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define LED_PORT P2
sbit KEY1=P3^1;
sbit KEY2=P3^0;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
#define KEY1_PRESS 1
#define KEY_unPRESS 0
void dealay10_us(ten_us) //延迟
{
while(ten_us--);
}
u8 scan_button() //判断按键是否按下
{
if(KEY1==0)
{
dealay10_us(1000) ;
if(KEY1==0)
return KEY1_PRESS ;
}

return KEY_unPRESS;
}
void main()
{
u8 i=0;
u8 KEY=scan_button;
while(1)
{
if(KEY==KEY1_PRESS) //按键按下,则正向流水灯
{
for(i=0;i<8;i++)
{
LED_PORT=(0x80>>i);
dealay10_us(500000);
}
}
else //按键没有按下,则反向流水灯
{
for(i=0;i<8;i++)
{
LED_PORT=
(0x01<<i);
dealay10_us(500000);
}
}

}

}

怎么按键没有反应

  • 写回答

3条回答 默认 最新

  • 於黾 2022-09-19 11:46
    关注

    scan_button设置中断了吗
    如果不中断,那你要在死循环里反复调用它,否则key的值什么时候变呢

    评论

报告相同问题?

问题事件

  • 创建了问题 9月19日