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

作者 : admin 本文共1999个字,预计阅读时间需要5分钟 发布时间: 2024-06-10 共3人阅读

       

目录

简介:

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

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

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

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

五. 总结


简介:

51 单片机具有强大的控制能力,而独立按键则提供了一种简单的输入方式。

当把独立按键与 51 单片机连接后,可以通过按键的按下和释放来触发相应的事件。

在这个场景中,通常会使用单片机的引脚与按键相连来检测按键状态。当按键被按下时,单片机可以检测到相应引脚的电平变化。

然后通过编程,根据不同的按键状态来控制连接在单片机上的灯的亮灭状态。比如,按下某个按键时,对应的灯亮起;再按一次,灯熄灭。

在编程方面,需要不断地检测按键状态,并根据状态执行相应的灯控制逻辑。可以采用轮询或者中断的方式来实现对按键的监测。

这种通过独立按键控制灯的方式简单而直接,非常适合初学者理解和掌握单片机的输入输出控制原理。同时,也可以在此基础上进行扩展和创新,实现更加复杂的功能和交互。

总之,51 单片机与独立按键的结合,为实现简单的人机交互和控制提供了有效的途径,在很多实际项目和实验中都有广泛的应用。

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

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

#include    //此文件中定义了单片机的一些特殊功能寄存器

 sbit KEY1 = P3^1;  // 独立按键

 #define LED P2  // 指示灯

void main()
{
	while (1)
	{
		if(KEY1 ==0)
		{
			LED = 0XFE;
		}
		else
		{
            LED = 0XFF;
		}

	}
	
}

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

51单片机-独立按键控制灯灯灯插图(1)

可以这样写

51单片机-独立按键控制灯灯灯插图(2)

还可以这样写

51单片机-独立按键控制灯灯灯插图(3)

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

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

51单片机-独立按键控制灯灯灯插图(4)

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

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

51单片机-独立按键控制灯灯灯插图(5)

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

	}
	
}

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

51单片机-独立按键控制灯灯灯插图(6)

#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 单片机搭配独立按键可实现对灯的灵活控制。

通过硬件连接,将按键与单片机引脚相连,单片机能实时检测按键状态的变化。

在编程方面,利用代码来持续监测按键动作,根据不同的按键按下情况执行相应的灯控制逻辑,如点亮、熄灭或切换不同的亮灯模式等。

其特点包括:

  • 原理简单易懂,适合初学者学习和实践。
  • 能直观展现输入与输出的控制关系。

应用场景多样:

  • 教学实验中帮助理解单片机的控制机制。
  • 一些简单的电子设备中用于便捷的人机交互控制。

总之,51 单片机和独立按键组成的灯控系统具有简洁、实用的特点,是学习和应用单片机技术的基础内容,为进一步开发更复杂的系统提供了良好的起点和思路。

本站无任何商业行为
个人在线分享 » 51单片机-独立按键控制灯灯灯
E-->