标题:
20LED眼形流水 51单片机花样流水 proteus仿真加源码
[打印本页]
作者:
wangyue
时间:
2017-4-6 08:58
标题:
20LED眼形流水 51单片机花样流水 proteus仿真加源码
试做的花样流水小玩意
proteus仿真原理图:
0.png
(30.53 KB, 下载次数: 73)
下载附件
2017-4-7 00:13 上传
20LED眼形流水单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
void down_off();
#define uchar unsigned char
int i,j,a,c,d,m,num=0,e,f,j,k,l,q;
void p1_p3_on();
uchar mm,nn,kk;
void both_top_fill();
void time(int m);
void both_down_fill();
void fill();
void love();
void odd_even();
void on();
void off();
void both_down();
void sc();
void replace();
void turn_top();
void deplay();
void loved();
void main()
{
while(1)
{
fill();
on();
time(100);
off();
time(500);
down_off();
time(500);
both_top_fill();
time(500);
turn_top();
time(500);
both_down_fill();
time(500);
for(f=0;f<5;f++)
replace();
time(80);
for(f=0;f<20;f++)
{
odd_even();
time(100);
}
for(d=0;d<2;d++)
{
love();
time(200);
}
for(q=0;q<1000;q++)
{
loved();
}
}
}
void time(int m)
{
for(i=m;i>0;i--)
for(j=200;j>0;j--);
}
//全亮
void on()
{
P0=0x00;
P1=0x00;
P3=0x00;
}
//全灭
void off()
{
P0=0xff;
P1=0xff;
P3=0xff;
}
//双向点亮(从下到上)
void both_down()
{
P0=0xfb;
time(50);
P0=0xf5;
time(50);
P0=0xee;
time(50);
P1=0x7f;
P0=0xdf;
time(50);
P1=0xbf;
P0=0xbf;
time(50);
P1=0xdf;
P0=0x7f;
time(50);P0=0xff;
P1=0xef;
P3=0xfe;
time(50);
P1=0xf7;
P3=0xfd;
time(50);
P1=0xfb;
P3=0xfb;
time(50);
P1=0xfd;
P3=0xf7;
time(50);
P1=0xfe;
time(50);
off();
}
//双向点亮(从上到下)
void turn_top()
{
P1=0xfe;
time(50);
P1=0xfd;
P3=0xf7;
time(50);
P1=0xfb;
P3=0xfb;
time(50);
P1=0xf7;
P3=0xfd;
time(50);
P1=0xef;
P3=0xfe;
time(50);P3=0xff;
P0=0x7f;
P1=0xdf;
time(50);P3=0xff;
P1=0xbf;
P0=0xbf;
time(50);
P1=0x7f;
P0=0xdf;
time(50);P1=0xff;
P0=0xee;
time(50);
P0=0xf5;
time(50);
P0=0xfb;
off();
}
//交替闪烁
void replace()
{
on();
time(180);
off();
time(180);
}
//奇数和偶数交替闪烁
void odd_even()
{
P3=0x55;
P1=0x55;
P0=0x55;
time(80);
P3=0xaa;
P1=0xaa;
P0=0xaa;
}
//显示LOVE
void love()
{
uchar array1[]={0x1f,0x2f,0x4f,0x8f};
uchar array2[]={0xc7,0xc0,0xc1,0x86};
P1=0xff;
P0=0xff;
time(200);
for(c=0;c<4;c++)
{
P3=array1[c];//共阴
P2=array2[c];//共阳
time(200);
}
P2=0xff;
P3=0xff;
}
void deplay()
{
int e=0;
for(e=0;e<100;e++);
}
//一直显示LOVE
void loved()
{
uchar array1[]={0x1f,0x2f,0x4f,0x8f};
uchar array2[]={0xc7,0xc0,0xc1,0x86};
int k=0;
for(k=0;k<4;k++)
{
P3=array1[k];//共阴
P2=array2[k];//共阳
deplay();
}
}
void fill()//从上到下依次填充
{
uchar array3[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
for(d=0;d<8;d++)
{
P1=array3[d];
time(150);
}
for(num=0;num<8;num++)
{
P1=0x00;
P0=array3[num];
time(150);
}
for(e=0;e<4;e++)
{
P1=0x00;
P0=0x00;
P3=array3[e];
time(150);
}
off();
}
void both_down_fill()
{
time(200);
P0=0xfb;
time(200);
P0=0xf1;
time(200);
P0=0xe0;
time(200);
P1=0x7f;
P0=0xc0;
time(200);
P0=0x80;
P1=0x3f;
time(200);
P0=0x00;
P1=0x1f;
time(200);
P1=0x0f;
P0=0x00;
P3=0xfe;
time(200);
P0=0x00;
P1=0x07;
P3=0xfc;
time(200);
P0=0x00;
P1=0x03;
P3=0xf8;
time(200);
P0=0x00;
P1=0x01;
P3=0xf0;
time(200);
on();
time(200);
off();
time(200);
}
void both_top_fill()//两边从上到下依次填充
{
time(200);
P1=0xfe;
time(200);
P1=0xfc;
P3=0xf7;
time(200);
P1=0xf8;
P3=0xf3;
time(200);
P1=0xf0;
P3=0xf1;
time(200);
P1=0xe0;
P3=0xf0;
time(200);
P1=0xc0;
P3=0xf0;
P0=0x7f;
time(200);
P1=0x80;
P3=0xf0;
P0=0x3f;
time(200);
P1=0x00;
P3=0xf0;
P0=0x1f;
time(200);
P1=0x00;
P3=0xf0;
P0=0x0e;
time(200);
P1=0x00;
P3=0xf0;
P0=0x04;
time(200);
on();
time(200);
off();
time(200);
}
void down_off()//从下到上两边熄灭
{
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
0.png
(56.9 KB, 下载次数: 87)
下载附件
2017-4-7 00:13 上传
下载:
20LED眼形流水.zip
(61.02 KB, 下载次数: 13)
2017-4-6 08:57 上传
点击文件名下载附件
51
下载积分: 黑币 -5
作者:
john0317
时间:
2017-5-2 17:19
谢谢楼主提供……
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1