打印

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

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

使用特权

评论回复
5
kerovv| | 2011-9-28 18:20 | 只看该作者
才知道右移可以这样>>=写

使用特权

评论回复
6
落叶行健ywm| | 2011-10-16 00:15 | 只看该作者
m<<=1;
m=m|
这些怎么都放在for循环外面了!!!

使用特权

评论回复
7
冷血疯子鱼| | 2011-11-15 15:12 | 只看该作者
这个程序看后我想哭,我以前也这样写程序.其实我觉得程序的格式也很重要.

使用特权

评论回复
8
寅辰思瑜| | 2011-11-22 08:13 | 只看该作者
学习了

使用特权

评论回复
9
耐0857| | 2011-11-22 08:49 | 只看该作者
m<<=1;
m=m|0x01;
改为
n<<=1;
n=n|0x01;

使用特权

评论回复
10
fjzzclc| | 2011-11-23 13:06 | 只看该作者
学习了

使用特权

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

本版积分规则

0

主题

12

帖子

1

粉丝