8个流水灯来回点亮设计程序

  • 格式:doc
  • 大小:35.00 KB
  • 文档页数:5

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机C语言如何实现8个LED流水灯来回流动?

第一部分

参考程序

#include

#include

#define uchar unsigned char

#define uint unsigned int

//--------------------------------

void DelayMS(uint ms)

{

uchar t;

while(ms--) for (t=0;t<120;t++);

}

//----------------------------------

void main()

{

P2= 0xfe;

while (1)

{

P2 =_crol_(P2,1);

DelayMS(200);

}

}

2012-06-14 17:06 芯DZ|分类:C/C++|浏览267次

现在只能从左到右循环流动,怎么才能从左到右再从右到左流动呢?#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit beep=P2^3;

uchar p1e;

void delay(uint a);

void main()

{

p1e=0xfe;

P1=p1e;

while(1)

{

p1e=_crol_(p1e,1);

delay(55);

P1=p1e;

beep=0;

delay(55);

beep=1;

delay(55);

}

}

void delay(uint a)

{

uint x,y;

for(x=a;x>0;x--)

for(y=150;y>0;y--); }

提问者采纳

2012-06-14 17:51

char i;

while(1)

{

for(i=0; i<7; i++)

{

p1e=_crol_(p1e,1);

delay(55);

P1=p1e;

beep=0;

delay(55);

beep=1;

delay(55);

}

for(i=0; i<7; i++)

{

p1e=_cror_(p1e,1);

delay(55);

P1=p1e;

beep=0;

delay(55);

beep=1;

delay(55);

}

}

CYF0316|六级

p1e=_cror_(p1e,1);

追问

这个只是向右移吧...我是说向左移动到第8个LED后再从第8个向左移,实现来回流动

回答

1,赋值

2,右移动

3,再赋值

4,左移动

你程序都写出了

只是把程序COPy 粘帖到下面把p1e=_crol_(p1e,1); 改成p1e=_cror_ (p1e,1); 就好了呀

第二部分

参考、归纳、总结得

正确程序(仅供参考)

#include

#include

#define uchar unsigned char

#define uint unsigned intvoid DelayMS(uint ms) {

uchar t;

while(ms--) for (t=0;t<120;t++);

}

void main()

{ char i;

P2= 0xfe;

while (1)

{

for(i=0; i<7; i++)

{

P2 =_crol_(P2,1);

DelayMS(200);

}

for(i=0; i<7; i++)

{

P2 =_cror_(P2,1);

DelayMS(200);

}

}

}