/******************************************************************************************/
/*****************************心 型 流 水 灯******************************************/
/****************************************************************************************/
// 林芸
// 修改版
//如 有 不 足 之 处 请 多 多 指 教
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={ 0xFE,/*0*/0xFD,/*1*/0xFB,/*2*/0xF7,/*3*/0xEF,/*4*/0xDF,/*5*/0xBF,/*6*/0x7F,/*7*/ }; //单个亮
uchar code tab0[]={ 0x7F,/*8*/0x3F,/*7*/0x1F,/*6*/0x0F,/*5*/0x07,/*4*/0x03,/*3*/0x01,/*2*/0x00,/*1*/ };//从第8个亮,逐个+1
uchar code tab1[]={ 0x7E,0x7D,0x7B,0x77,0x6F,0x5F,0x3F, //第8灯亮并循环
0x3E,0x3D,0x3B,0x37,0x2F,0x1F, //第78个灯亮并循环
0x1E,0x1D,0x1B,0x17,0x0F, //第678个灯亮并循环
0x0E,0x0D,0x0B,0x07, //第5678个灯亮并循环
0x06,0x05,0x03, //第345678个灯亮并循环
0x02,0x01,
};
***it HX=P0^0;
void delay(uint z);
void main()
{
uchar aa,ss,dd,ff,qq,ww,ee,rr,q,w,e,t,u,i,o,p,c,v,b,k,n,m,js0,js1,js2,js3,a,s,d,f,g,h,j;
while(1)
{
/* s=3;
while(s) //呼吸灯
{
s--;
delay(50);
k=0;
for(i=0;i<=252;i++)
{
if(0==(i%5))
k++;
for(t=0;t<=16;t++)
{
P1=P0=P2=P3=0x00;
for(j=0;j<=64;j++)
{
if(j==k)
P1=P0=P2=P3=0xff;
}
}
}
k=51;
for(i=0;i<=252;i++)
{
if(0==(i%5))
k--;
for(t=0;t<=16;t++)
{
P1=P0=P2=P3=0x00;
for(j=0;j<=64;j++)
if(j==k)
P1=P0=P2=P3=0xff;
}
if(k==0)
{
P1=P0=P2=P3=0xff;
i=253;
}
}
}
s=3;
while(s) //一个灯呼吸
{
s--;
k=0;
for(i=0;i<=252;i++)
{
if(0==(i%5))
k++;
for(t=0;t<=16;t++)
{
HX=0x00;
for(j=0;j<=64;j++)
{
if(j==k)
HX=0xff;
}
}
}
}
delay(650);
for(v=0;v<4;v++) //心形中点闪烁
{
HX=0;
delay(500);
HX=1;
}*/
aa=ss=dd=ff=0xfe;
for(q=0;q<8;q++) //一个灯循环
{
P0=aa;
P1=ss;
P2=dd;
P3=ff;
delay(50);
aa=_crol_(aa,1);
ss=_crol_(aa,1);
dd=_crol_(aa,1);
ff=_crol_(aa,1);
}
aa=ss=dd=ff=0xfc; //两个灯循环
for(w=0;w<6;w++)
{
P0=aa;
P1=ss;
P2=dd;
P3=ff;
delay(50);
aa=_crol_(aa,1);
ss=_crol_(aa,1);
dd=_crol_(aa,1);
ff=_crol_(aa,1);
}
aa=ss=dd=ff=0xf8; //三个灯循环
for(e=0;e<5;e++)
{
P0=aa;
P1=ss;
P2=dd;
P3=ff;
delay(50);
aa=_crol_(aa,1);
ss=_crol_(aa,1);
dd=_crol_(aa,1);
ff=_crol_(aa,1);
}
aa=ss=dd=ff=0xf8; //四个灯循环
for(t=0;t<4;t++)
{
P0=aa;
P1=ss;
P2=dd;
P3=ff;
delay(50);
aa=_crol_(aa,1);
ss=_crol_(aa,1);
dd=_crol_(aa,1);
ff=_crol_(aa,1);
}
aa=ss=dd=ff=0xf0; //四个灯循环
for(u=0;u<8;u++)
{
P0=aa;
P1=ss;
P2=dd;
P3=ff;
delay(50);
aa=_crol_(aa,1);
ss=_crol_(aa,1);
dd=_crol_(aa,1);
ff=_crol_(aa,1);
}
P1=P2=P0=P3=0xe0; //五个灯循环
for(i=0;i<8;i++)
{
P0=aa;
P1=ss;
P2=dd;
P3=ff;
delay(50);
aa=_crol_(aa,1);
ss=_crol_(aa,1);
dd=_crol_(aa,1);
ff=_crol_(aa,1);
}
P1=P2=P0=P3=0xc0; //六个灯循环
for(o=0;o<8;o++)
{
P0=aa;
P1=ss;
P2=dd;
P3=ff;
delay(50);
aa=_crol_(aa,1);
ss=_crol_(aa,1);
dd=_crol_(aa,1);
ff=_crol_(aa,1);
}
P1=P2=P0=P3=0x80; //七个灯循环
for(p=0;p<8;p++)
{
P0=aa;
P1=ss;
P2=dd;
P3=ff;
delay(50);
aa=_crol_(aa,1);
ss=_crol_(aa,1);
dd=_crol_(aa,1);
ff=_crol_(aa,1);
}
P1=P2=P0=P3=0xff; //全部灯闪烁
delay(300);
P1=P2=P3=P0=0;
delay(300);
P1=P2=P0=P3=0xff;
delay(300);
P1=P2=P3=P0=0;
delay(300);
P1=P2=P3=P0=0xff;
g=b=h=n=js0=js1=js2=js3=0;
m=40;
while(m)
{
if(js0<24)
{
for(c=0;c<8;c++)
{
P0=tab[c];
delay(30);
}
js0++;
P0=0xff;
}
if(js0>23&&js0<52)
{
P0=tab1[b];
delay(30);
b++;
if(b==15)
{
js0=52;
d=16;
}
}
if(js1<16)
{
for(v=0;v<8;v++)
{
P1=tab[v];
delay(30);
}
js1++;
P1=0xff;
}
if(js1>15)
{
if(m==24)
{
for(v=0;v<8;v++)
{
P1=tab1[n];
n++;
}
P1=tab0[m-24];
}
if(m==23)
{
for(v=0;v<7;v++)
{
P1=tab1[n];
n++;
}
P1=tab0[m-22];
}
if(m==22)
{
for(v=0;v<6;v++)
{
P1=tab1[n];
n++;
}
P1=tab0[m-20];
}
if(m==21)
{
for(v=0;v<5;v++)
{
P1=tab1[n];
n++;
}
P1=tab0[m-18];
}
if(m==20)
{
for(v=0;v<4;v++)
{
P1=tab1[n];
n++;
}
P1=tab0[m-16];
}
if(m==18)
{
for(v=0;v<3;v++)
{
P1=tab1[n];
n++;
}
P1=tab0[m-13];
}
if(m==17)
{
for(v=0;v<2;v++)
{
P1=tab1[n];
n++;
}
P1=tab0[m-11];
}
if(m==16)
{
P1=0;
}
}
if(js2<8)
{
for(v=0;v<8;v++)
{
P2=tab[v];
delay(30);
}
js2++;
P2=0xff;
}
if(js2>7)
{
if(m==32)
{
for(v=0;v<8;v++)
{
P2=tab1[j];
j++;
}
P2=tab0[m-32];
}
if(m==31)
{
for(v=0;v<7;v++)
{
P2=tab1[j];
j++;
}
P2=tab0[m-30];
}
if(m==30)
{
for(v=0;v<6;v++)
{
P2=tab1[j];
j++;
}
P2=tab0[m-28];
}
if(m==29)
{
for(v=0;v<5;v++)
{
P2=tab1[j];
j++;
}
P2=tab0[m-26];
}
if(m==28)
{
for(v=0;v<4;v++)
{
P2=tab1[j];
j++;
}
P2=tab0[m-24];
}
if(m==27)
{
for(v=0;v<3;v++)
{
P2=tab1[j];
j++;
}
P2=tab0[m-22];
}
if(m==26)
{
for(v=0;v<2;v++)
{
P2=tab1[j];
j++;
}
P2=tab0[m-20];
}
if(m==25)
{
P2=0;
}
}
if(m==40) //P3循环
{
for(v=0;v<8;v++)
{
P3=tab1[h];
h++;
}
P3=tab0[m-40];
}
if(m==39)
{
for(v=0;v<7;v++)
{
P3=tab1[h];
h++;
}
P3=tab0[m-38];
}
if(m==38)
{
for(v=0;v<6;v++)
{
P3=tab1[h];
h++;
}
P3=tab0[m-36];
}
if(m==37)
{
for(v=0;v<5;v++)
{
P3=tab1[h];
h++;
}
P3=tab0[m-34];
}
if(m==36)
{
for(v=0;v<4;v++)
{
P3=tab1[h];
h++;
}
P3=tab0[m-32];
}
if(m==35)
{
for(v=0;v<3;v++)
{
P3=tab1[h];
h++;
}
P3=tab0[m-30];
}
if(m==34)
{
for(v=0;v<2;v++)
{
P3=tab1[h];
h++;
}
}
if(m==33)
{
P3=0x00;
}
m--;
delay(30);
}
if(m==0&&d<28)
for(v=0;v<11;v++)
{
delay(30);
P0=tab1[d];
d++;
}
delay(30);
P0=0x01;
delay(30);
P0=0x00;
delay(600);
P1=P2=P3=P0=0xff;
delay(300);
a=0x7f;
for(v=0;v<8;v++)
{
P3=a;
delay(50);
a=a>>1;
}
P3=0xff;
a=0x7f;
for(v=0;v<8;v++)
{
P2=a;
delay(50);
a=a>>1;
}
P2=0xff;
a=0x7f;
for(v=0;v<8;v++)
{
P1=a;
delay(50);
a=a>>1;
}
P1=0xff;
a=0x7f;
for(v=0;v<8;v++)
{
P0=a;
delay(50);
a=a>>1;
}
P0=0xff;
a=3;
while(a)
{
P1=~P1;
P3=~P3;
delay(300);
P1=~P1;
P3=~P3;
delay(300);
P0=~P0;
P2=~P2;
delay(300);
P0=~P0;
P2=~P2;
delay(300);
a--;
f=1;
}
while(f)
{
delay(80);
f--;
qq=0xfe;
ee=0x7f;
for(v=0;v<8;v++)
{
P0=qq;
P3=ee;
delay(80);
ee=ee>>1;
qq=qq<<1;
}
ww=0xfe;
rr=0x7f;
delay(80);
for(v=0;v<8;v++)
{
P1=ww;
P2=rr;
delay(80);
ww=ww<<1;
rr=rr>>1;
}
P0=P1=P2=P3=0xff;
delay(80);
qq=0xfe;
ee=0x7f;
for(v=0;v<8;v++)
{
P1=ee;
P2=qq;
delay(80);
ee=ee>>1;
qq=qq<<1;
}
ww=0xfe;
rr=0x7f;
for(v=0;v<8;v++)
{
P0=rr;
P3=ww;
delay(80);
rr=rr>>1;
ww=ww<<1;
}
P0=P1=P2=P3=0xff;
delay(80);
}
P1=P2=P0=P3=0xaa;
delay(1000);
P1=P2=P0=P3=0x55;
delay(800);
P1=P2=P0=P3=0xaa;
delay(600);
P1=P2=P0=P3=0x55;
delay(400);
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
-
心形流水灯.PDF
(2016-6-6 08:09 上传)
184.67 KB, 下载次数: 152