打印

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

[复制链接]
1679|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝