(3)51单片机入门案列-一个按键实现点亮LED和开启蜂鸣器

通过一个特殊按键s1实现2个功能,一个是点亮led 灯,一个是开启蜂鸣器,也可以增加其他的功能,比如num=3时同时点亮LED灯和开启蜂鸣器


工具:Keil U3 + STC-SP(v6.86)+BST-v51单片机开发板

晶振:11.0592MHZ


实现代码如下:

#include
#include

#define uchar unsigned char

uchar num = 0;          //switch中的选项

sbit led = P1 ^ 0;      //LED灯
sbit s1 = P3 ^ 4;       //特殊按键
sbit beep = P2 ^ 3;     //蜂鸣器

void delay(unsigned char i)
{
    unsigned char m, n;
    for (m = i; m>0; m--)
    for (n = 125; n>0; n--);
}

int main(){

    while (1){
        if (s1  == 0){
            delay(20);          //消除抖动
            if (s1 == 0){
                while (!s1);    //等待按键松开
                num++;
            }
            switch (num){
            case 1:             //LED灯亮
                led = 0;
                beep = 1;
                break;
            case 2:             //蜂鸣器响
                led = 1;
                beep = 0;
                num = 0;        //复位num
                break;
            }
        }
    }
}

你可能感兴趣的:(51单片机入门学习案列)