简述标志位的使用-51单片机为例

      通常在编写单片机代码的时候 ,会遇到一个开关量或者一个输出的引脚信息在多个或者特定的位置使用,就会导致很混乱,所以,衍生出一个叫做标志位的方式。增强代码的可读性。

       标志位其实也可以叫做状态位,其实就是使用一个变量来记录一个调用的信息而不发生引脚的状态改变。举个栗子来说,你老爹叫你去买零食,你并没马上去买,而是拿个小本本记录下来 ,因为有可能你老母也会叫你买酱油,等待这一个应答的结果,那假如你老母没有买酱油的回答,你就会去帮你老爹买零食,同理,你老母要是叫你去买酱油,你也会将这个信息记录在小本本上面,一起去买,小本本就是状态位,你就是执行的,你老爹和老母就是下命令的!

        关键的代码:

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

	}
}

这仅仅只是一个最简单的标志位的实现功能,标志位的用途其实是很广泛的!

如果您有更好的想法,或者作者的文章当中有什么不正确的地方,欢迎在评论区留言讨论,大家一起进步!

如果您觉得文章对您有帮助,请麻烦点赞支持一下哈!您的支持是我最大的创作动力!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值