目录
简介:
一. 1个独立按钮控制一个灯例子
二. 在加一个独立按键,控制第二个灯
三. 第一个开关 开灯, 第二个开关关灯
四. 点一下开灯,在点一下关灯
五. 总结
简介:
51 单片机具有强大的控制能力,而独立按键则提供了一种简单的输入方式。
当把独立按键与 51 单片机连接后,可以通过按键的按下和释放来触发相应的事件。
在这个场景中,通常会使用单片机的引脚与按键相连来检测按键状态。当按键被按下时,单片机可以检测到相应引脚的电平变化。
然后通过编程,根据不同的按键状态来控制连接在单片机上的灯的亮灭状态。比如,按下某个按键时,对应的灯亮起;再按一次,灯熄灭。
在编程方面,需要不断地检测按键状态,并根据状态执行相应的灯控制逻辑。可以采用轮询或者中断的方式来实现对按键的监测。
这种通过独立按键控制灯的方式简单而直接,非常适合初学者理解和掌握单片机的输入输出控制原理。同时,也可以在此基础上进行扩展和创新,实现更加复杂的功能和交互。
总之,51 单片机与独立按键的结合,为实现简单的人机交互和控制提供了有效的途径,在很多实际项目和实验中都有广泛的应用。
一. 1个独立按钮控制一个灯例子
#include <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器
sbit KEY1 = P3^1; // 独立按键
#define LED P2 // 指示灯
void main()
{
while (1)
{
if(KEY1 ==0)
{
LED = 0XFE;
}
else
{
LED = 0XFF;
}
}
}
代码,中间犯了个错误导致一直仿真失败.
可以这样写
还可以这样写
经过前面的例子,后面就可以随意发挥了.
二. 在加一个独立按键,控制第二个灯
#include <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器
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 <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器
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 <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器
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 <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器
//#include <SiLABS\shared\si8051Basestdbool.h>
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 <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器
#include <SiLABS\shared\si8051Base\stdbool.h>
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 单片机和独立按键组成的灯控系统具有简洁、实用的特点,是学习和应用单片机技术的基础内容,为进一步开发更复杂的系统提供了良好的起点和思路。