文档库 最新最全的文档下载
当前位置:文档库 › 单片机 流水灯&花样灯程序

单片机 流水灯&花样灯程序

51单片机学习 —— 流水灯&花样灯学习心路



P1口控制8个发光二极管,输出低电平对应的二极管点亮

1、/* 8个发光管来回流动,每个管亮100ms,
流动时让蜂鸣器发出“滴滴”声。*/
#include
#include // 调用头文件“intrins.h” 这个头文件中包含循环左移、循环右移的函数_crol_(temp,n) , _cror_(temp,n)
#define uint unsigned int
#define uchar unsigned char
sbit speaker=P3^0;
uchar aa;
uint a,b;
void delay(uint ms) //延时函数
{
uint i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{

while(1)
{
a=8,b=8;
aa=0xfe;
while(a--)
{

P1=aa;
speaker=0;
delay(100);
aa=_crol_(aa,1);
speaker=1;
}
aa=0xef;
while(b--)
{
P1=aa;
speaker=0;
delay(100);
aa=_cror_(aa,1); //aa每次向右循环一位
speaker=1;
}

}

}



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2、/*用8个发光管演示出8位二进制数累加过程。*/
#include
unsigned char aa;
void delay()
{
unsigned int i,j;
for(i=300;i>0;i--)
for(j=100;j>0;j--);
}
void main()
{
aa=0xff;
while(1)
{
P1=aa;
delay();
aa=aa-1;
delay();

}
}



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

3、/*8个发光管间再由下至上,隔200ms由上至下,再重复一次,
然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。*/
#include
#include
#define uc unsigned char
#define uin unsigned int
uint ms,a,b,c,d;
uchar aa;
void delay(ms)
{
uin i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
while(1)
{ d=3,c=5;
while(d--)
{ a=8,b=8;
aa=0xfe;
while(a--)
{
P1=aa;
delay(200);
aa=_crol_(aa,1);
}
aa=0xef;
while(b--)
{
P1=aa;
delay(200);
aa=_cror_(aa,1);
}
}
while(c--)
{
aa=0xff;
P1=aa;
delay(300);
aa=0x00;
P1=aa;
delay(300);
}
}
}



/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

4、/*间隔300ms先奇数亮再偶数亮,循环三次;
一个灯上下循环三次;两个分别从两边往中间流动三次;
再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。*/
#include
#include
#define uin unsigned int
#define uc unsigned char
uchar aa;
uint a,b,c,d,e;
void delay(uint ms)
{
uin i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
while(1)
{
for(a=3;a>0;a--)
{
P1=0xaa;
delay(300);
P1=0x55;
delay(300);
}

for(b=0;b<3;b++)
{
aa=0xfe;
for(c=0;c<8;c++)
{
P1=aa;
delay(300);
aa=_crol_(aa,1);
}

}
for(d=3;d>0;d--)
{
P1=0x7e;
delay(300);
P1=0xbd;
f(300);
P1=0xdb;
delay(300);
P1=0xe7;
delay(300);
P1=0xdb;
delay(300);
P1=0xbd;
delay(300);
}
for(e=3;e>0;e--)
{
P1=0x00;
delay(300);
P1=0xff;
delay(300);

}
}
}


相关文档
相关文档 最新文档