找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3344|回复: 0
收起左侧

while语句的困惑 求解

[复制链接]
ID:40506 发表于 2012-5-19 22:38 | 显示全部楼层 |阅读模式

------------------------------------------------*/
#include<reg51.h>    

sbit key1=P1^0;

sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;

main()
{
  bit Flag;
while(!Flag)

      {
      if(!key1)     {P2=0xFE;Flag=1;}
   else if(!key2){P2=0xFD;Flag=1;}
   else if(!key3){P2=0xFB;Flag=1;}
   else if(!key4){P2=0xF7;Flag=1;}
      }
 
while(Flag)

}

这是个4通道抢答器的程序    我发现如果不加最后那句while(Flag),则按键并没被锁定,按下key1,1号灯亮,接着按key2,又变成2号灯亮了,

按道理讲,当第一次按下key1后,Flag的状态不是变化了吗,应该不符合while的条件了啊,为什么还能继续执行里面的if else语句了?

本人初学,求各位大侠指点迷津

 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表