标题:
这个单片机心形流水灯还想加入几种样式,求思路
[打印本页]
作者:
slp1794306542
时间:
2021-6-17 15:06
标题:
这个单片机心形流水灯还想加入几种样式,求思路
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家
#include<reg52.h>
#include<intrins.h> //库函数
#define uint unsigned int
#define uchar unsigned char//宏定义
void delay(uint xms)//延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void zys(uint t)//左右闪烁
{
while(t--)
{
P3=P2=0x00;
delay(500);
P3=P2=0xff;
P1=P0=0x00;
delay(500);
P1=P0=0xff;
}
}
void qs(uint t)//全部闪亮
{
while(t--)
{
P0=P1=P2=P3=0xff;
delay(300);
P0=P1=P2=P3=0x00;
delay(300);
}
P1=P2=P3=P0=0xff;
}
void ycdl(uint t)//依次点亮
{
uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
uint i;
while(t--)
{
for(i=0;i<8;i++)
{
P0=table[i];
delay(200);
}
for(i=0;i<8;i++)
{
P1=table[i];
delay(200);
}
for(i=0;i<8;i++)
{
P2=table[i];
delay(200);
}
for(i=0;i<8;i++)
{
P3=table[i];
delay(200);
}
}
}
void ycxm (uint t)//依次熄灭
{
uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
uint i;
while(t--)
{
P0=P1=P2=P3=0x00;
for(i=0;i<8;i++)
{
P0=~table[i];
delay(200);
}
for(i=0;i<8;i++)
{
P1=~table[i];
delay(200);
}
for(i=0;i<8;i++)
{
P2=~table[i];
delay(200);
}
for(i=0;i<8;i++)
{
P3=~table[i];
delay(200);
}
}
}
void jgs(uint t)//间隔闪烁
{
while(t--)
{
P0=P1=P2=P3=0xaa;
delay(500);
P0=P1=P2=P3=~0xaa;
delay(500);
}
P0=P1=P2=P3=0xff;
delay(200);
}
void sszs(uint t)//顺时针闪烁
{
uchar a,i;
while(t--)
{
a=0xfe;
for(i=0;i<8;i++)
{
P0=a;
delay(200);
a=_crol_(a,1);
}
P0=0xff;
a=0xfe;
for(i=0;i<8;i++)
{
P1=a;
delay(200);
a=_crol_(a,1);
}
P1=0xff;
a=0xfe;
for(i=0;i<8;i++)
{
P2=a;
delay(200);
a=_crol_(a,1);
}
P2=0xff;
a=0xfe;
for(i=0;i<8;i++)
{
P3=a;
delay(200);
a=_crol_(a,1);
}
P3=0xff;
}
}
void nszs(uint t)//逆时针闪烁
{
uchar a,i;
while(t--)
{
a=0x7f;
for(i=0;i<8;i++)
{
P3=a;
delay(200);
a=_cror_(a,1);
}
P3=0xff;
a=0x7f;
for(i=0;i<8;i++)
{
P2=a;
delay(200);
a=_cror_(a,1);
}
P2=0xff;
a=0x7f;
for(i=0;i<8;i++)
{
P1=a;
delay(200);
a=_cror_(a,1);
}
P1=0xff;
a=0x7f;
for(i=0;i<8;i++)
{
P0=a;
delay(200);
a=_cror_(a,1);
}
P0=0xff;
}
}
void djs1(uint t)//对角闪烁2个顺时针
{
uchar i;
uchar code table[]={0xf0,0xe1,0xc3,0x87,0x0f,0x1f,0x3f,0x7f,
0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,
0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,
0xf0,0xe1,0xc3,0x87,0x0f,0x1f,0x3f,0x7f,0xff};
while(t--)
{
for(i=0;i<17;i++)
{
P0=P2=table[i];
P1=P3=table[i+17];
delay(200);
}
for(i=0;i<17;i++)
{
P1=P3=table[i+17];
P0=P2=table[i];
delay(200);
}
}
delay(300);
P0=P1=P2=P3=0xff;
}
void djs2(uint t)//对角闪4个逆时针
{
uchar i;
uchar code table[]={0x0f,0x87,0xc3,0xe1,0xf0,0x78,0x3c,0x1e,0x0f};
while(t--)
{
for(i=0;i<9;i++)
{
P1=P2=P3=P0=table[i];
delay(200);
}
}
}
void sxhx(uint t)//从上往下画心
{
uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,
0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
uint i;
while(t--)
{
for(i=0;i<8;i++)
{
P0=table[i];
P3=table[i+8];
delay(200);
}
for(i=0;i<8;i++)
{
P1=table[i];
P2=table[i+8];
delay(200);
}
P1=P2=P3=P0=0xff;
delay(300);
}
}
void main()
{
while(1)
{
ycdl(1);
ycxm(1);
jgs(3);
sszs(1);
nszs(1);
djs1(1);
djs2(3);
zys(3);
sxhx(1);
qs(3);
}
}
复制代码
作者:
slp1794306542
时间:
2021-6-17 16:34
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家
作者:
MOVEORDIE
时间:
2021-6-17 16:37
呼吸模式,爆闪..
作者:
51hei团团
时间:
2021-6-17 16:45
你可以参考一下这里
http://www.51hei.com/bbs/dpj-102033-1.html
作者:
xuyaqi
时间:
2021-6-17 16:46
程序架构都有了,就是再写几个样式放到已有样式后面。
作者:
琵琶行
时间:
2021-6-17 17:23
void nztl(uint t,uchar a);//逆时逐个同步亮
void sztm(uint t,uchar a)://顺时逐个同步灭
void nztm(uint t,uchar a);//逆时逐个同步灭
void hwzji(uint t,uchar a);//横往中间亮
void hwzjm(uint t,uchar a);//横往中间灭
//void swzjl(uint t,uchar a);//竖往中间亮
/void swzjm(uint t,uchar a);//竖往中间灭
void nzdl(uint t,uchar a);//逆时逐段亮
void nzdgl(uint t,uchar a);//逆时逐段一个点亮
void jgs(uint t,uchar a);//间隔闪
void delay(uintt);//延时
void zg(uint t,uchar a);://两边逐个亮
void qs(uint t,uchar a);://全部闪烁
void zgxh(uint t,uchar a);//逆时针逐个点亮
//void zgxh1(uint t,uchar a);// 顺时针逐个点亮
void djs(uint t,uchar a);//对角闪
void sztl(uint t,uchar a);//顺时逐个同步亮
void nztl(uint t,uchar a);//逆时逐个同步亮
作者:
Y_G_G
时间:
2021-6-17 19:50
哥们,就一流水灯,还要有什么样式呢?自己想想不会得了,要么两边散开亮,要么是贪吃蛇........
还不如花点心思搞个好看点的外壳,还加个锂电池和声控.....
作者:
啤酒瓶子老大
时间:
2021-6-18 00:05
一个一个亮,两个两个亮,三个三个亮。
隔一个一个亮,隔两个两个亮,隔三个三个亮。
慢闪,快闪,一个一个闪,一半一半闪。
一个亮,一个闪,两个亮,三个闪。
向一头跑,边跑边闪,向两头跑,边跑边闪。
哎呀,打字好累。
作者:
名字不是重点
时间:
2021-6-18 16:54
追逐、叠加、拉扯、镜像、互补。。。多了去了。没意思!
作者:
TonyRick
时间:
2021-9-10 22:38
框架有了,多谢多谢
作者:
RK-800
时间:
2021-10-21 16:18
你这不也是复制的
作者:
weijoyer
时间:
2021-10-26 22:48
创建子函数,采用调用的方式切换运行
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1