AT89C51单片机 按键控制蜂鸣器和led灯 怎么做

按键控制蜂鸣器和led
按键K1:功能开关开,对应的指示灯亮,蜂鸣器响1s提示。
按键K2:功能开关关,对应的指示灯灭,蜂鸣器响两声,间隔1s提示。
怎么做?
附:电路图

img

img

img

img


#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;
    }
}

电路图都有了,看功能挺多的,不会是开发板吧?能设计出这样的电路图,这么个小程序没必要求助吧?

看我csdn有类似的,要具体解答,可以私信我