? ? ? 通常在编写单片机代码的时候 ,会遇到一个开关量或者一个输出的引脚信息在多个或者特定的位置使用,就会导致很混乱,所以,衍生出一个叫做标志位的方式。增强代码的可读性。
???????标志位其实也可以叫做状态位,其实就是使用一个变量来记录一个调用的信息而不发生引脚的状态改变。举个栗子来说,你老爹叫你去买零食,你并没马上去买,而是拿个小本本记录下来 ,因为有可能你老母也会叫你买酱油,等待这一个应答的结果,那假如你老母没有买酱油的回答,你就会去帮你老爹买零食,同理,你老母要是叫你去买酱油,你也会将这个信息记录在小本本上面,一起去买,小本本就是状态位,你就是执行的,你老爹和老母就是下命令的!
? ? ? ? 关键的代码:
#include <reg52.h>
#define ON_STATUS 0 //led灯接的是高电平,需要低电平才能点亮 所以0是点亮,1是灭灯
#define OFF_STATUS 1
sbit Led1 = P1^0; //定义点灯的接口
void main()
{
int Mark; //定义一个标志位,初始化值是1,使用一个整型变量定义
Led1 == 1;
while(1)
{
//************************************
if(KEY1 == 1)//如果KEY2等于1(高电平)灯灭
{
Delay10ms();
Mark = OFF_STATUS;
}
if(KEY2 == 0) //如果KEY2等于0(低电平)灯亮
{
Delay10ms();
Mark = ON_STATUS;
}
//*************************************
if(Mark == ON_STATUS)//使用标志位点灯
{Led1 = 0;}
if(Mark == OFF_STATUS)
{Led1 = 1;}
}
}
这仅仅只是一个最简单的标志位的实现功能,标志位的用途其实是很广泛的!
如果您有更好的想法,或者作者的文章当中有什么不正确的地方,欢迎在评论区留言讨论,大家一起进步!
如果您觉得文章对您有帮助,请麻烦点赞支持一下哈!您的支持是我最大的创作动力!
|