#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);(0x01< dealay10_us(500000);
dealay10_us(500000);
}
}
else //按键没有按下,则反向流水灯
{
for(i=0;i<8;i++)
{
LED_PORT=
}
}
}
}
怎么按键没有反应
scan_button设置中断了吗
如果不中断,那你要在死循环里反复调用它,否则key的值什么时候变呢
接线错误?
按键错误?
运行程序错误?