用51单片机实现按键控制LED灯亮灭

用51单片机实现按键控制LED灯亮灭

#include<reg51.h>//头文件
sbit LED=P2^0;//位定义LED灯
sbit k1=P3^1;//位定义按键
void delay()//延时函数
{
    unsigned char a,b;
	for(a=0;a<200;a++)
	for(b=0;b<200;b++);
}
void key()//按键处理函数
{
	if(k1==0)//判断按键是否按下(按键按下时k=0)
	{
		delay();//如果按下按键延时消抖
		if(k1==0)//如果按键仍然按下
		{
			LED=~LED;//对LED取反,原来亮则灭,原来灭则亮
		}
		while(!k1);//等待按键松开(松开时k=1,!k=0,跳出循环,
		           //未松开时,k=0,!k=1,执行while的分号空语句,一直等待)
	}
}
void main()//主函数
{
	while(1)
	{
		key();//调用按键处理函数
	}
}

注:

  1. 该单片机开发板按键K1接单片机P3口的1端口。
  2. LED灯接单片机的P2口

版权声明:本文为CSDN博主「小标电子生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_51950774/article/details/116718008

生成海报
点赞 0

小标电子生

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许