打印

求我的左右循环点亮的问题!

[复制链接]
1304|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
herolhf|  楼主 | 2010-5-7 18:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚学单片机,我按照习题的提示编了一个流水灯循环点亮,先从左再到右,但是发现一个问题,第二次左边点亮时,先是第一个亮就跳到最后一个亮再从左开始点亮。
代码下面
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay_ms(uint time)
{
uint i,j;
for(i=time;i>0;i--)
for(j=112;j>0;j--)
{;}
}
void main(void)
{
uchar right;
uchar left;
uchar loop;
uchar t;
while(1)
{
  left=0xfe;
  P1=left;
  delay_ms(300);
  right=0x7f;
  P1=right;
  delay_ms(300);
  for(loop=0;loop<8;loop++)
  {
    left=(left<<1)|0x01;
        P1=left;
        delay_ms(300);
  }
  for(t=0;t<8;t++)
  {
   right=(right>>1)|0x80;
   P1=right;
   delay_ms(300);

  }
}
}

相关帖子

沙发
doomhaha| | 2010-5-7 18:34 | 只看该作者
改成for(loop=1;loop<8;loop++)试下

使用特权

评论回复
板凳
herolhf|  楼主 | 2010-5-7 18:54 | 只看该作者
改了for(loop=1;loop<8;loop++),发现首次运行从左到右出现先是第一个亮就跳到最后一个亮再从左开始点亮。

使用特权

评论回复
地板
一棵小草| | 2010-5-7 20:11 | 只看该作者
这些问题--------只要自己仿真一下就知道了,而且能提高你的能力。

使用特权

评论回复
5
hanfei08131106| | 2010-5-8 11:09 | 只看该作者
同意四楼的看法

使用特权

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

本版积分规则

0

主题

11

帖子

1

粉丝