51单片机 流水灯 ~ 花样灯 程序

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

单片机为89c52 晶振为11.0592,

/***此程序为流水灯*** /

#include

#include

#define uchar unsigned char //宏定义

#define uint unsigned int

uchar led;

void delay(uint z) //延时子函数体

{

uint x,y;

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

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

}

void main()

{

led=0xfe; //赋初值

while(1)

{

P1=led; //点亮第一个小灯

delay(100); //延时100毫秒

led=_crol_(led,1); 将led的变量左移给下一位}

}

/*8个发光管间隔200ms由上至下,返回再由上至下,一个个往下亮,后全亮由下至上,返回再由下至上,一个个往下亮,后全亮

再重复2次,

然后全部熄灭再以500ms间隔

全部闪烁3次。重复此过程*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar led;

uint i,j;

void delay(uint z)

{

uint x,y;

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

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

}

void main()

{

while(1)

{

for(j=0;j<2;j++)

{

led=0xfe; //赋初值

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

{

P1=led; //点亮第一个小灯

delay(200); //延时200毫秒

led=_crol_(led,1); //将led变量循环左移给下一位

}

led=0xfe; //赋初值

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

{

P1=led; //点亮第一个小灯

delay(200); //延时200毫秒

led<<=1; //左移给下一位

}

led=0x7f; //赋初值

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

{

P1=led; //点亮第一个小灯

delay(200); //延时200毫秒

led=_cror_(led,1); //将led变量循环右移给下一位}

led=0x7f; //赋初值

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

{

P1=led; //点亮第一个小灯

delay(200); //延时200毫秒

led>>=1; //右移给下一位

}

}

for(j=0;j<6;j++)

{

P1=~P1; //全部取反6次,即闪烁5次

delay(500); //延时500毫秒

}

}

}

相关文档
最新文档