51单片机-独立按键控制灯灯灯

51单片机-独立按键控制灯灯灯

码农世界 2024-05-22 前端 59 次浏览 0个评论

        学了一星期了,前两天又看了遍【计算机科学速成课】,终于知道代码怎么控制的单片机上的灯,蜂鸣器,之类的了.也算是可以按自己的理解写一些功能了.

        一.1个独立按钮控制一个灯例子

                

#include    //此文件中定义了单片机的一些特殊功能寄存器
 sbit KEY1 = P3^1;  // 独立按键
 #define LED P2  // 指示灯
void main()
{
	while (1)
	{
		if(KEY1 ==0)
		{
			LED = 0XFE;
		}
		else
		{
            LED = 0XFF;
		}
	}
	
}

代码,中间犯了个错误导致一直仿真失败. 

可以这样写

还可以这样写

经过前面的例子,后面就可以随意发挥了.

二.在加一个独立按键,控制第二个灯

#include    //此文件中定义了单片机的一些特殊功能寄存器
 sbit KEY1 = P3^1;  // 独立按键
 #define LED P2  // 指示灯
void main()
{
	while (1)                           
	{
		if((P3 & 0x01) == 0)
		{
			LED = 0XFE;
		}
		else
		{
		if((P3 & 0x02) == 0)
		{
			LED = 0XFD;
		}
		else
		{
            LED = 0XFF;
		}
		}
	
	}
	
}

简单点还可以这样写

#include    //此文件中定义了单片机的一些特殊功能寄存器
  sbit KEY1 = P3^0;  // 独立按键
  sbit KEY2 = P3^1;  // 独立按键
  sbit LED1 = P2^0;  // 指示灯1
  sbit LED2 = P2^1;  // 指示灯2
void main()
{
	while (1)                           
	{
		LED1 = KEY1;
		LED2 = KEY2;
	}
	
}

三. 第一个开关 开灯, 第二个开关关灯

#include    //此文件中定义了单片机的一些特殊功能寄存器
 sbit KEY1 = P3^0;  // 独立按键
  sbit KEY2 = P3^1;  // 独立按键
 #define LED P2  // 指示灯
void main()
{
	while (1)                           
	{
		if(KEY1 == 0)
		{
			LED = 0XFE;
		}
		if(KEY2 == 0)
		{
			LED = 0XFF;
		}
		
	}
	
}

四.点一下开灯,在点一下关灯

#include    //此文件中定义了单片机的一些特殊功能寄存器
//#include 
  sbit KEY1 = P3^0;  // 独立按键
 // sbit KEY2 = P3^1;  // 独立按键
  sbit LED1 = P2^0;  // 指示灯1
 // sbit LED2 = P2^1;  // 指示灯2
void main()
{
	bit firstIn = 1;
	while (1)                           
	{
		if (KEY1 == 0 && firstIn == 1)
		{ 
			firstIn = 0;
			LED1 =~LED1;
		}
		if (KEY1 == 1)
		{
			firstIn = 1;
		}
		//LED1 = KEY1;
		//LED2 = KEY2;
	}
	
}

习惯用bool的话, 还可以这样写.

#include    //此文件中定义了单片机的一些特殊功能寄存器
#include 
  sbit KEY1 = P3^0;  // 独立按键
 // sbit KEY2 = P3^1;  // 独立按键
  sbit LED1 = P2^0;  // 指示灯1
 // sbit LED2 = P2^1;  // 指示灯2
void main()
{
	bool firstIn = 1;
	while (1)                           
	{
		if (KEY1 == 0 && firstIn)
		{ 
			firstIn = false;
			LED1 =~LED1;
		}
		if (KEY1 == 1)
		{
			firstIn = true;
		}
		//LED1 = KEY1;
		//LED2 = KEY2;
	}
	
}

转载请注明来自码农世界,本文标题:《51单片机-独立按键控制灯灯灯》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,59人围观)参与讨论

还没有评论,来说两句吧...

Top