打印
[51单片机]

菜鸟刚起步 遇到问题求大神指教

[复制链接]
1480|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
13669185270|  楼主 | 2013-11-17 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8个发光管间隔200ms由上至下,再由下至上,再由上至下,再由下至上,然后全部熄灭再以300ms间隔全部闪烁5次。重复上面过程。
  

我自己编程之后写进去,现象是:8个发光管由上到下,再由下到上,然后就全部发光。和要求不一样啊

#include <reg52.h>
#include <intrins.h>
unsigned int a;b;c;
unsigned char d;
void delay (unsigned char x);

void main()
{
        while(1)
        {       
                c=2;
                while(c--)
                {       
                        d=0xfe;
                        for(a=7;a>0;a--)
                        {
                                P1=d;
                                delay(68);
                                d=_crol_(d,1);
                        }
                        d=0x7f;
                        for(a=7;a>0;a--)
                        {
                                P1=d;
                                delay(68);
                                d=_cror_(d,1);
                        }
                }
                P1=0xfe;
                delay(68);
                P1=0xff;
               
                c=5;
                while(c--)
                {
                        P1=0x00;
                        delay(100);
                        P1=0xff;
                        delay(100);
                }
        }               
}

void delay(unsigned char x)
{
        for(a=500;a>0;a--)
        for(c=x;c>0;c--);
}



求解~~~~~~~~~~~~~~

相关帖子

沙发
jt4117| | 2013-11-17 22:23 | 只看该作者
void delay( unsigned char mData )
{
   while( mData-- );
}

main( )
{
  unsigned char i;
  P1 = 0xFF;
  delay(10);
  for( i=0; i<8; i++ )
{
   P1 = ~(0xFF&(1<<i));
   delay(68);
}
for( i=6; i>=0; i-- )
{
   P1 = ~(0xFF&(1<<i));
   delay(68);   
}
P1 = 0xFF;
delay(300);
for( i=0; i<5; i++ )
{
   P1=0;
   delay(300);
   P1=0xFF;
   delay(300);
}
}

使用特权

评论回复
板凳
岩上翠鸟| | 2013-11-18 10:19 | 只看该作者
你的while 循环不对,你仔细看看while的用法,    程序思路是对的,但是用法错了。。。要是看不明白 ,你断点调试一下就明白 了。。。

使用特权

评论回复
地板
ayb_ice| | 2013-11-18 10:25 | 只看该作者
还不如查表

使用特权

评论回复
5
hyh19890917| | 2013-11-20 21:36 | 只看该作者
c溢出了吧。。

使用特权

评论回复
6
chenyu988| | 2013-11-21 12:00 | 只看该作者
c=5;
                while(c--)
                {
                        P1=0x00;
                        delay(100);//注意这里
                        P1=0xff;
                        delay(100);
                }
delay(100)后,c的值变成了0

使用特权

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

本版积分规则

1

主题

21

帖子

0

粉丝