找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3370|回复: 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语句了?

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

 

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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