按键K1:功能开关开,对应的指示灯亮,蜂鸣器响1s提示。
按键K2:功能开关关,对应的指示灯灭,蜂鸣器响两声,间隔1s提示。
这位老师走错地方了哦,这里不是你的学生微信群,不要把作业发到这里来。
#include <reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit LED1=P2^0;
sbit BEEP=P2^5;
sbit k1=P3^1;
sbit k2=P3^0;
#define KEY1_PRESS 1
#define KEY2_PRESS 2
#define KEY_UNPRESS 0
u16 y=0;
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
u8 key_scan(u8 mode)
{
static u8 key=1;
if(mode)key=1;
if(key==1&&(k1==0||k2==0))
{
delay_10us(1000);
key=0;
if(k1==0)
return KEY1_PRESS;
else if(k2==0)
return KEY2_PRESS;
}
else if(k1==1&&k2==1)
{
key=1;
}
return KEY_UNPRESS;
}
void main()
{
u8 key=0;
while(1)
{
key=key_scan(0);
if(key==KEY1_PRESS)
BEEP=~BEEP;
LED1=1;
if(key==KEY2_PRESS)
BEEP=~BEEP;
LED1=0;
}
}