新手请教:怎么实现按一个键使一个数码管在两种状态下...

2019-07-16 00:06发布

新手请教:
初学单片机C语言。有个小问题请教高手!
怎么实现按一个键使一个数码管在两种状态下来回切换呢?按一下显示一个状态,再按一下显示显示原来状态!

我定义了一个变量,不知道为什么程序运行后,能实现一次切换,切换后就不能要切换到原状态了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
ses66
2019-07-17 14:44
while 语句的一般形式为:
while(表达式)语句
其中表达式是循环条件,语句为循环体。
while 语句的语义是:计算表达式的值,当值为真(非 0)时, 执行循环体语句。其执行
过程可用下图表示。
1.jpg
do-while 语句的一般形式为:
do
语句
while(表达式);
这个循环与 while 循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为
真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while 循环至少要执行一次
循环语句。其执行过程可用下图表示。
2.jpg
在 C 语言中,for 语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为:
for(表达式 1;表达式 2;表达式 3) 语句
它的执行过程如下:
1)  先求解表达式 1。
2)  求解表达式 2,若其值为真(非 0),则执行 for 语句中指定的内嵌语句,然后执行下面
第 3)步;若其值为假(0),则结束循环,转到第 5)步。
3)  求解表达式 3。
4)  转回上面第 2)步继续执行。
5)  循环结束,执行 for 语句下面的一个语句。
其执行过程可用下图表示。
3.jpg
for 语句最简单的应用形式也是最容易理解的形式如下:
for(循环变量赋初值;循环条件;循环变量增量) 语句
循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值; 循环条件是一个
关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后
按什么方式变化。这三个部分之间用“;”分开。
例如:
for(i=1; i<=100; i++)sum=sum+i;
先给 i 赋初值 1,判断 i 是否小于等于 100, 若是则执行语句,之后值增加 1。再重新判断,
直到条件为假,即 i>100 时,结束循环。
相当于:
i=1;
while(i<=100)
{ sum=sum+i;
i++;
}
对于 for 循环中语句的一般形式,就是如下的 while 循环形式:
表达式 1;
while(表达式 2)
{语句
表达式 3;
}
注意:
1)  for 循环中的“表达式 1(循环变量赋初值)”、“表达式 2(循环条件)”和“表达式 3(循
环变量增量)”都是选择项, 即可以缺省,但“;”不能缺省。
2)  省略了“表达式 1(循环变量赋初值)”, 表示不对循环控制变量赋初值。
3)  省略了“表达式 2(循环条件)”, 则不做其它处理时便成为死循环。
例如:
for(i=1;;i++)sum=sum+i;
相当于:
i=1;
while(1)
{sum=sum+i;
i++;}
4)  省略了“表达式 3(循环变量增量)”, 则不对循环控制变量进行操作,这时可在语句体中
加入修改循环控制变量的语句。
例如:
for(i=1;i<=100;)
{sum=sum+i;
i++;}
5)  省略了“表达式 1(循环变量赋初值)”和“表达式 3(循环变量增量)”。
例如:
for(;i<=100;)
{sum=sum+i;
i++;}
相当于:
while(i<=100)
{sum=sum+i;
i++;}
6)  3 个表达式都可以省略。
例如:
for(;;)语句
相当于:
while(1)语句
7)  表达式 1 可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。
例如:
for(sum=0;i<=100;i++)sum=sum+i;
8)  表达式 1 和表达式 3 可以是一个简单表达式也可以是逗号表达式。
for(sum=0,i=1;i<=100;i++)sum=sum+i;
或:
for(i=0,j=100;i<=100;i++,j--)k=i+j;
9)  表达式 2 一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其
值非零,就执行循环体。
例如:
for(i=0;(c=getchar())!=’ ’;i+=c);
又如:
for(;(c=getchar())!=’ ’;)
printf(“%c”,c);
几种循环的比较
1)  四种循环都可以用来处理同一个问题,一般可以互相代替。但一般不提倡用goto型循
环。
2)  while和do-while循环,循环体中应包括使循环趋于结束的语句。for语句功能最强。
3)  用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完
成,而for语句可以在表达式1中实现循环变量的初始化。
授之以鱼不如授之以渔
相信你应该知道该怎么改了吧。{:12:}

一周热门 更多>