单片机流水灯先下后上循环

  • 格式:doc
  • 大小:28.00 KB
  • 文档页数:3

下载文档原格式

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

今天刚买一个单片机,然后看着教程发现其实单片机很有意思,看完他的第一个例子,就是流水灯实验,我就想着让他先是从上往下,然后从下往上的循环,下面就是代码了:

#include

#include

#define uint unsigned int

#define uchar unsigned char

void later(uint xms);

uchar aa;

uchar bb;

uint x,y;

void main()

{

aa=0xfe;

while(1)

{

x=1;y=1;

while(x)

{

P1=aa;

later(500);

aa=_crol_(aa,1);

bb=0xBF;

if(P1==bb)

{

x=0;

}

}

while(y)

{

P1=aa;

later(500);

aa=_cror_(aa,1);

bb=0xFD;

if(P1==bb)

{

y=0;

}

}

}

}

void later(uint xms)

{

int i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

第一个出现的while是整个的循环,第二个while是看灯是否到达最后一个,如果是到达了,那就结束循环。第三个while是检测是否到达第一个,如果到达第一个那就结束循环,代码就是这样了,然后至于一些新手可能会问,怎么知道他显示亮的那个灯,很简单,如果第一个灯亮了那他的二进制就是:11111110,你自己转换到十六进制就知道了,然后第二个就是:11111101,以此内推下去