资源描述
(完整版)51单片机流水灯 程序
1。第一个发光管以间隔200ms闪烁。
2.
8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms。
3.
8个发光管来回流动,第个管亮100ms。
4。
用8个发光管演示出8位二进制数累加过程。
5.
8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程.
6。
间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。
7.
间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止.
1
#include<reg52.h>
#define uint unsigned int
sbit led1=P1^0;
void delay();
void main()
{
while(1)
{
led1=0;
delay();
led1=1;
delay();
}
}
void delay()
{
uint x,y;
for(x=200;x〉0;x--)
for(y=100;y>0;y-—);
}
2
#include<reg52.h〉
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit p1=P1^0;
uchar a;
void delay();
void main()
{
a=0xfe;
P1=a;
while(1)
{
a=_crol_(a,1);
delay();
P1=a;
delay();
}
}
void delay()
{
uint b;
for(b=55000;b>0;b--);
}
3
#include<reg52.h>
#include <intrins。h〉
#define uint unsigned int
#define uchar unsigned char
void delay()
{
uint x,y;
for(x=100;x>0;x--)
for(y=110;y〉0;y--);
}
void main()
{
uchar a,i;
while(1)
{
a=0xfe;
for(i=0;i<8;i++)
{
P1=a;
delay(100);
a=_crol_(a,1);
}
a=0x7f;
for(i=0;i<8;i++)
{
P1=a;
delay(100);
a=_cror_(a,1);
}
}
}
4
#include<reg52.h〉
#include <intrins.h〉
#define uint unsigned int
#define uchar unsigned char
void delay(uint a)
{
uint x,y;
for(x=a;x〉0;x-—)
for(y=110;y〉0;y-—);
}
void main()
{
uchar b;
while(1)
{
b++;
P1=~b;
delay(200);
}
}
5
#include<reg52.h〉
#include <intrins。h>
#define uint unsigned int
#define uchar unsigned char
void main()
{
uchar a,i,j;
while(1)
{
for(j=0;j〈2;j++)
{
a=0xfe;
for(i=0;i<8;i++)
{
P1=a;
delay(200);
a=_crol_(a,1);
}
a=0x7f;
for(i=0;i<8;i++)
{
P1=a;
delay(200);
a=_cror_(a,1);
}
}
P1=0xff;
for(j=0;j<10;j++)
{
delay(300);
P1=~P1;
}
}
}
void delay()
{
uint x,y;
for(x=200;x>0;x--)
for(y=110;y>0;y—-);
}
6
#include<reg52。h〉
#include 〈intrins。h>
#define uint unsigned int
#define uchar unsigned char
void delay()
{
uint x,y;
for(x=300;x>0;x—-)
for(y=110;y〉0;y--);
}
void main()
{
uchar a,i,j;
while(1)
{
a=0xfe;
for(j=0;j〈8;j++)
{
for(i=0;i<8—j;i++)
{
P1=a;
delay(200);
a=_crol_(a,1);
}
a=_crol_(a,j);
P1=0xff;
a=a<<1;
}
}
}
7
#include<reg52。h>
#include 〈intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x——)
for(y=110;y>0;y-—);
}
void main()
{
uchar a,i,j;
for(j=0;j<3;j++)
{
P1=0x55;
delay(300);
P1=0xaa;
delay(300);
}
for(j=0;j<3;j++)
{
a=0xfe;
for(i=0;i〈8;i++)
{
P1=a;
delay(300);
a=_crol_(a,1);
}
}
P1=0xff;
for(j=0;j〈3;j++)
{
P1=0x7e;
delay(300);
P1=0xbd;
delay(300);
P1=0xdb;
delay(300);
P1=0xe7;
delay(300);
}
P1=0xff;
for(j=0;j<3;j++)
{
P1=0xe7;
delay(300);
P1=0xdb;
delay(300);
P1=0xbd;
delay(300);
P1=0x7e;
delay(300);
}
P1=0xff;
for(j=0;j<6;j++)
{
P1=~P1;
delay(300);
}
P1=0xff;
while(1);
}
展开阅读全文