公众号文章同步阅读网址:www.netor0x86.com
前面的文章中,关于用按键控制 LED 灯的文章有三篇,分别是:
本篇文章继续介绍用按键控制 LED 的示例,本次用一个按键来控制 LED 灯的亮与灭。
对于按键和 LED 灯的控制前面都已经介绍完了,并且也写了几个小的示例,用一个按键控制 LED 灯的亮与灭,只是单纯的代码问题了。编程的思路也很简单,在进入死循环之前,先对 LED 灯进行初始化(比如初始化 LED 灯为灭,即送出一个高电平),然后检测到按键被按下后,将 LED 灯的电平状态取反,然后根据状态给 LED 送响应的电平。
代码实现是很简单的,都是以前的代码,只是多了一个状态,代码如下:
#include <intrins.h>
#include "reg52.h"
sbit led1 = P3 ^ 7;
sbit key1 = P2 ^ 1;
void Delay2000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 15;
j = 2;
k = 235;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
led1 = 1;
while (1)
{
if (key1 == 0)
{
Delay2000ms();
if (key1 == 0)
{
// 关键代码,就是一个取反运算
led1 = !led1;
}
}
}
}
代码是之前代码的改进,在进入 main() 函数后,先将 led1 初始化为高电平,然后检测到按键被按下后,对 led1 的状态进行取反,此时状态变为 0;当再次按下按键,在进行取反,状态变为 1。
本篇文章就此结束,并没有新鲜的知识,只是一个简单的 C 语言运算符的应用!