新手求助!!!我写的一个程序无法循环,请高手给看看

[复制链接]
 楼主| lin168335255 发表于 2011-9-24 20:52 | 显示全部楼层 |阅读模式
#include<reg52.h>      //申述头文件  
delay(unsigned int t)  //定义延迟函数
{
while(t--)
{
}
}
unsigned int i,n=0x7f,m=0xfe; //定义无字符型变量,取值0~255
/*----------------主函数-------------*/
void main()
{
while(1)
{
if(n<0xff)
{
for(i=0;i<8;i++)       //加入for循环,循环8次
{
P1=0xff;
delay(6000);           //延迟
P1=n;
delay(6000);
}
n>>=1;                //使n右移一位
n=n|0x80;
}
         
if(n>=0xff)
{
for(i=0;i<8;i++)
{
P1=0xff;
delay(6000);
P1=m;
delay(6000);
}
m<<=1;
m=m|0x01;
}
/*加入
if(m>=0xff)
{
n=0x7f;
m=0xfe;   */
}
}
}
如果加入红色的部分 第二个if函数就没用了 请问这是为什么?去掉红色的部分不循环 请高手给改循环 谢谢
}
NE5532 发表于 2011-9-24 22:24 | 显示全部楼层
xuebichongkafei 发表于 2011-9-25 01:12 | 显示全部楼层
的N是怎么增加的,没看懂,只定义了一个N并赋初值,没有看到N的增加或者减小,怎么判断N的值?
   后面有右移,右移数据在变小,并上0x80也是在减小,这样一来第一个if语句在初值的条件N<0xff下进去了,但是后面的if条件语句N永远小于0xff,这样if语句都进不了!前面的if语句也跳不出来!后面的功能有啥用?
     至于红色部分,程序在一开始状态下能进入?我很奇怪呢!呵呵:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部