打印

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

[复制链接]
1380|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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函数就没用了 请问这是为什么?去掉红色的部分不循环 请高手给改循环 谢谢
}

相关帖子

沙发
PaperKite| | 2011-9-25 09:21 | 只看该作者
delay(unsigned int t)  //函数  没有返回值请加个void
注意缩进格式呀
没有红色的部分n会跑到0xFF,m跑到0xFFFF
没有见到不循环

使用特权

评论回复
板凳
lin168335255|  楼主 | 2011-9-27 23:12 | 只看该作者
请问M为什么会跑到0xffff  不是只跑到0xff吗

使用特权

评论回复
地板
lin168335255|  楼主 | 2011-9-27 23:13 | 只看该作者
请问M为什么会跑到0xffff  不是只跑到0xff吗

使用特权

评论回复
5
lin168335255|  楼主 | 2011-9-27 23:13 | 只看该作者
请问M为什么会跑到0xffff  不是只跑到0xff吗

使用特权

评论回复
6
lin168335255|  楼主 | 2011-9-27 23:14 | 只看该作者
请问M为什么会跑到0xffff  不是只跑到0xff吗

使用特权

评论回复
7
老鱼探戈| | 2011-9-28 08:45 | 只看该作者
你的m是unsigned int 型的
取值范围是0x00-0xff 用unsigned char型

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

粉丝