单片机中定义flag有啥作用flag=1和flag=0都是什么意思

voidbubble_sort(intarray[],intn){inti,j,flag,temp;for(i=0;i<n-1;i++){flag=1;for(j=0;j... void bubble_sort(int array[],int n)
{ int i,j,flag,temp;
for(i = 0; i < n-1; i++)
{
flag = 1;
for(j = 0; j < n-i-1; j++)
{
if(array[j] > array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = 0; } }
if(flag == 1) break;
printf("%d ",i); } return; }
展开
 我来答
帐号已注销
2021-06-23 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:158万
展开全部

这是复合运算符,~flag把变量flag的值取反,=则把flag取反后的值再赋值给flag。1(flag不等于1)和flag=1;它的作用主要是让单片机的一项功能实现不同的1(flag不等于1)和flag=1予以区别开来。

void

dt0()

interrupt

1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t0++;

if(flag!=1)

{

if(t0==10)

//流水灯程序

{

t0=0;

temp=_crol_(temp,1);

P1=temp;

}

}

else

辅助进位标志AF

在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:

(1)在字操作时,发生低字节向高字节进位或借位时;

(2)在字节操作时,发生低4位向高4位进位或借位时。

奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。

以上内容参考:百度百科-FLAG

maxuwenku
推荐于2018-01-22 · TA获得超过830个赞
知道答主
回答量:5
采纳率:0%
帮助的人:7.9万
展开全部
flag是程序员自己起的变量名,一般情况下将其看作为标志位。我们通常将它视为uchar型变量,将flag赋值时,有flag=!1(flag不等于1)和flag=1;它的作用主要是让单片机的一项功能实现不同的操作,不同的操作通常时间先后顺序不等,不同的操作即通过设置flag=!1(flag不等于1)和flag=1予以区别开来。举个例子:我们要在定时器T0中先后实现1秒和2秒的不同定时,在C语言中,我们定义好的flag变量默认为是0,我们假设先实现1秒的定时,在中断程序中,我们先写if(flag!=1){。。。} 后面再写else { .........}。在不同的语句中就可以实现一个定时器T0为两个不同的中断服务。

具体程序如下:
void dt0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t0++;
if(flag!=1)
{
if(t0==10) //流水灯程序
{
t0=0;
temp=_crol_(temp,1);
P1=temp;
}
}
else //当flag等于1时执行下面的语句
{
if(t0%4==0)
P1=~P1;//对流水灯的电位取反
if(t0==60)//如果三秒钟时间到
{
TR0=0;
P1=0;
flag1=1;
}
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyh001123
2011-01-30 · TA获得超过1.4万个赞
知道大有可为答主
回答量:8341
采纳率:66%
帮助的人:6244万
展开全部
flag是用来做标志的,程序运行的过程中flag会产生变化,flag=1就是使flag为1,然后程序中检测flag的值,如果为1,则表示没有变化,如果为0,则表示变化了,以此来判断程序的执行情况.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhxiufan
推荐于2017-09-01 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38375
国家科技进步奖

向TA提问 私信TA
展开全部
从你的描述中看来,这里的flag是程序作者定义的一个位变量,flag字面上是标志的意思,所以作者就是将它作为一个标志,标志某种状态,用来控制程序的流向,实现控制对象的有效运动方向或收发数据的成功与否等。比如:
void uart() interrupt 4
{
if(RI)
{
RI=0;

temp=SBUF;

flag=1; //串口接受到数据,标志置1

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2011-01-30 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
flag是编写程序的人,自己起的变量名。
flag=1和flag=0所代表的意思,只有编程者自己知道,别人,只能根据程序来猜测而已。
如果楼主在这里显示出程序,大家也许猜测出flag=1和flag=0所代表的意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式