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

[复制链接]
 楼主| 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函数就没用了 请问这是为什么?去掉红色的部分不循环 请高手给改循环 谢谢
}
 楼主| lin168335255 发表于 2011-9-27 23:15 | 显示全部楼层
请问M为什么会跑到0xffff  不是只跑到0xff吗
delin17 发表于 2011-9-28 08:46 | 显示全部楼层
unsigned int?
unsigned char?
watch186 发表于 2011-9-28 16:57 | 显示全部楼层
就是   unsigned int 定义的问题  定义的太大啦!!!用unsigned char 定义  m,后面才能判断m>=0xff吧
kerovv 发表于 2011-9-28 18:20 | 显示全部楼层
才知道右移可以这样>>=写
落叶行健ywm 发表于 2011-10-16 00:15 | 显示全部楼层
m<<=1;
m=m|
这些怎么都放在for循环外面了!!!
冷血疯子鱼 发表于 2011-11-15 15:12 | 显示全部楼层
这个程序看后我想哭,我以前也这样写程序.其实我觉得程序的格式也很重要.
寅辰思瑜 发表于 2011-11-22 08:13 | 显示全部楼层
学习了
耐0857 发表于 2011-11-22 08:49 | 显示全部楼层
m<<=1;
m=m|0x01;
改为
n<<=1;
n=n|0x01;
fjzzclc 发表于 2011-11-23 13:06 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

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