#include<reg52.h>////定义头文件
void delay(unsigned int i)
{
while(i--);
}
unsigned char PWM_Low,Clock=200;
//延时//
unsigned char i,q;//定义变量//
unsigned char led1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//依次从最高位到最低位亮
unsigned char led2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//依次从最低位到最高位亮
unsigned char led3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
unsigned char led4[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
unsigned char led5[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//从最高位到最地位一个一个亮
unsigned char led6[]={0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55};
unsigned char led7[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa};
unsigned char led8[]={0x3f,0x9f,0xcf,0xef,0xf3,0xf9,0xfc,0xfe};
unsigned char led9[]={0x1f,0x8f,0x37,0xe3,0xf1,0xf8,0xf3,0xfe};
//********挨个亮****************
void disp1() //模式1 顺时针绕
{
//**********
for (q=0;q<8;q++)
{
P0=led5[q];delay(8000);
P0=0xff;
}
for (q=0;q<8;q++)
{
P2=led5[q];delay(8000);
P2=0xff;
}
for (q=0;q<8;q++)
{
P3=led5[q];delay(8000);
P3=0xff;
}
for (q=0;q<8;q++)
{
P1=led5[q];delay(8000);
P1=0xff;
}
//***************
//速度1
//**************
for (q=0;q<8;q++)
{
P0=led5[q];delay(6000);
P0=0xff;
}
for (q=0;q<8;q++)
{
P2=led5[q];delay(6000);
P2=0xff;
}
for (q=0;q<8;q++)
{
P3=led5[q];delay(6000);
P3=0xff;
}
for (q=0;q<8;q++)
{
P1=led5[q];delay(6000);
P1=0xff;
}
//********************
//速度2
//*********************
for (q=0;q<8;q++)
{
P0=led5[q];delay(4000);
P0=0xff;
}
for (q=0;q<8;q++)
{
P2=led5[q];delay(4000);
P2=0xff;
}
for (q=0;q<8;q++)
{
P3=led5[q];delay(4000);
P3=0xff;
}
for (q=0;q<8;q++)
{
P1=led5[q];delay(4000);
P1=0xff;
}
//*******************
//速度3
//**************
//*************
//速度4 重复3次
//***********
for(i=0;i<3;i++)
{
for (q=0;q<8;q++)
{
P0=led5[q];delay(2000);
P0=0xff;
}
for (q=0;q<8;q++)
{
P2=led5[q];delay(2000);
P2=0xff;
}
for (q=0;q<8;q++)
{
P3=led5[q];delay(2000);
P3=0xff;
}
for (q=0;q<8;q++)
{
P1=led5[q];delay(2000);
P1=0xff;
}
}
}
//************over*****************
//*********** 全部依此点亮*****************
void disp2()
{{{{
for (i=0;i<2;i++)
{
for (q=0;q<8;q++)
{
P0=led1[q];delay(2000);
}
for (q=0;q<8;q++)
{
P2=led1[q];delay(2000);
}
for (q=0;q<8;q++)
{
P3=led1[q];delay(2000);
}
for (q=0;q<8;q++)
{
P1=led1[q];delay(2000);
}
P3=P1=P0=P2=0xff; }}
for (q=0;q<8;q++)
{
P0=led1[q];delay(4000);
}
for (q=0;q<8;q++)
{
P2=led1[q];delay(4000);
}
for (q=0;q<8;q++)
{
P3=led1[q];delay(4000);
}
for (q=0;q<8;q++)
{
P1=led1[q];delay(4000);
}
P3=P1=P0=P2=0xff; }
for (q=0;q<8;q++)
{
P0=led1[q];delay(6000);
}
for (q=0;q<8;q++)
{
P2=led1[q];delay(6000);
}
for (q=0;q<8;q++)
{
P3=led1[q];delay(6000);
}
for (q=0;q<8;q++)
{
P1=led1[q];delay(6000);}
P3=P1=P0=P2=0xff; }
for (q=0;q<8;q++)
{
P0=led1[q];delay(8000);
}
for (q=0;q<8;q++)
{
P2=led1[q];delay(8000);
}
for (q=0;q<8;q++)
{
P3=led1[q];delay(8000);
}
for (q=0;q<8;q++)
{
P1=led1[q];delay(8000);
}
delay(120000);
for (q=0;q<8;q++)
{
P3=led3[q];
P2=led4[q];
delay(12000);}
for (q=0;q<8;q++)
{
P1=led3[q];
P0=led4 [q];
delay(12000);}
P3=P1=P0=P2=0xff; }
//********over***************
//************************
void disp3()//全闪4次
{
for(i=0;i<5;i++)
{
P3=P1=P0=P2=0x00;delay(12000);
P3=P1=P0=P2=0xff;delay(12000);
}}
//************over************
void disp4() //从最下面到最上面点亮心
{
for (q=0;q<8;q++)
{
P2=led2[q];
delay(6000);}
for (q=0;q<8;q++)
{
P0=led2[q];
delay(6000);}
delay(120000);
for (q=0;q<8;q++)
{
P3=led1[q];delay(6000);}
for (q=0;q<8;q++)
{
P1=led1[q];delay(6000);}
P0=P1=P2=P3=0xff;
}
void disp4a() //从最上面到最下面点亮心
{
for (q=0;q<8;q++)
{
P0=led1[q];
delay(6000);}
for (q=0;q<8;q++)
{
P2=led1[q];
delay(6000);}
delay(120000);
for (q=0;q<8;q++)
{
P1=led2[q];delay(6000);}
for (q=0;q<8;q++)
{
P3=led2[q];delay(6000);}
P0=P1=P2=P3=0xff;
}
/////
void disp5()
{
for(i=0;i<10;i++)
{
P3=P1=P0=P2=led6[q];
delay(12000);
P3=P1=P0=P2=~led6[q];
delay(12000);
}
P3=P1=P0=P2=0xff;
}
//*******************************
void disp6()
{
for(i=0;i<4;i++)
{
for(q=0;q<8;q++)
{
P3=P1=P0=P2=led1[q];delay(6000);
}
for(q=0;q<8;q++)
{
P3=P1=P0=P2=led3[q];delay(6000);}
P3=P1=P0=P2=0xff;
}}
//////***********************
void disp7()//从上向下
{
for(q=0;q<8;q++)
{
P0=led1[q];
P1=led2[q];
delay(12000);
}
for(q=0;q<8;q++)
{
P2=led1[q];
P3=led2[q];
delay(12000);
}
P0=P2=P3=P1=0xff;
}
//************************
void disp8()
{
for (i=0;i<5;i++ )
{
P3=P1=P0=P2=0x00;
{
P1=P2=0xff;
P3=P0=0xff;delay(12000);
P3=P0=0x00;delay(12000);
P1=P2=0xff;delay(12000);
P1=P2=0x00;delay(12000);
P3=P1=P0=P2=0xff;
}}}
//***************************
////////////
void disp9()
{
for (q=0;q<8;q++)
{
P2=led2[q];delay(6000);
}
for (q=0;q<8;q++)
{
P0=led2[q];delay(6000);
}
for (q=0;q<8;q++)
{
P1=led2[q];delay(6000);
}
for (q=0;q<8;q++)
{
P3=led2[q];delay(6000 );
}
P3=P2=P1=P0=0x00;
for(q=0;q<8;q++)
{
P3=led3[q];
P2=led4[q];
delay(12000);
}
for(q=0;q<8;q++)
{
P1=led3[q];
P0=led4[q];
delay(12000);}
}
//*******over****************
//************************
void disp10 ()
{
for(q=0;q<8;q++)
{
P1=led2[q];
P0=led1[q];
delay(7000);
}
for(q=0;q<8;q++)
{
P3=led2[q];
P2=led1[q];
delay(7000);
}
for(q=0;q<8;q++)
{
P1=led4[q];
P0=led3[q];
delay(7000);
}
for(q=0;q<8;q++)
{
P3=led4[q];
P2=led3[q];
delay(7000);
}
}
void disp11()
{
for(i=0;i<3;i++)
{
P3=P2=0x00;delay(10000);
P3=P2=0xff;delay(10000);
P0=P1=0x00;delay(10000);
P0=P1=0xff;delay(10000);
}}
void disp12() //呼吸灯效果
{
for(i=0;i<5;i++)
{
for(PWM_Low=Clock;PWM_Low>0;PWM_Low--) //????
{
P0=P2=P3=P1=0xff;
delay(PWM_Low);
P0=P2=P3=P1=0x00;
delay(Clock-PWM_Low);
}
for(PWM_Low=0;PWM_Low<Clock;PWM_Low++) //????
{
P0=P2=P3=P1=0xff;
delay(PWM_Low);
P0=P2=P3=P1=0x00;
delay(Clock-PWM_Low);
}
}
P0=P2=P3=P1=0xff;
}
void disp13 ()
{
for(q=0;q<8;q++)
{
P1=led2[q];
P0=led1[q];
delay(7000);
}
for(q=0;q<8;q++)
{
P3=led2[q];
P2=led1[q];
delay(7000);
}
P0=P2=P3=P1=0xff;
}
void disp14()
{
P0=P2=P3=P1=0x00;
for(q=0;q<8;q++)
{
P1=led4[q];
P0=led3[q];
delay(7000);
}
for(q=0;q<8;q++)
{
P3=led4[q];
P2=led3[q];
delay(7000);
}
P0=P2=P3=P1=0xff;
}
void disp15() //模式1 顺时针绕 快速
{
for (i=0;i<5;i++)
{
for (q=0;q<8;q++)
{
P0=led5[q];delay(1000);
P0=0xff;
}
for (q=0;q<8;q++)
{
P2=led5[q];delay(1000);
P2=0xff;
}
for (q=0;q<8;q++)
{
P3=led5[q];delay(1000);
P3=0xff;
}
for (q=0;q<8;q++)
{
P1=led5[q];delay(1000);
P1=0xff;
}
P1=P0=P2=P3=0xff;
}
}
void disp16()
{
for(i=0;i<2;i++)
{
P0=0x00;delay(120000);
P2=0x00;delay(120000);
P3=0x00;delay(120000);
P1=0x00;delay(120000);
P1=P0=P2=P3=0xff;
}
P1=P0=P2=P3=0xff;
}
void disp17()
{
for
没有合适的资源?快使用搜索试试~ 我知道了~
基于STC89C52单片机设计心形流水灯ALTIUM硬件原理图+PCB+BOM+软件程序源码.zip
共23个文件
obj:2个
htm:2个
bak:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 14 下载量 22 浏览量
2022-03-19
21:13:37
上传
评论 6
收藏 848KB ZIP 举报
温馨提示
基于STC89C52单片机设计心形流水灯ALTIUM硬件原理图+PCB+软件程序源码,可做为学习设计参考。 void main() { while(1) { disp5();//间隔闪烁 disp5();//间隔闪 disp13();//画心 disp13();//画心 disp13();//画心 disp12();//呼吸 disp22(); disp24(); disp23(); disp14();//画心消失 disp9();//合成加消失 disp10();//合成加消 disp5();//间隔闪烁 disp15();//快速流 disp2();//全部流加速 disp3();//全?? disp15();//快速流 disp8();//分四段闪烁 disp8();//分四段闪烁 disp15();//快速流 disp18(); disp19(
资源推荐
资源详情
资源评论
收起资源包目录
基于STC89C52单片机设计心形流水灯ALTIUM硬件原理图+PCB+软件程序源码.zip (23个子文件)
PCN_2021-01-25.pcbdoc.htm 9KB
BOM_心形流水灯.xlsx 7KB
PCN_2021-01-25.pcbdocPreview 55KB
PCN_2021-01-25.schdocPreview 45KB
PCN_2021-01-25.pcbdoc 1.29MB
PCN_2021-01-25.schdoc 342KB
程序
Objects
PCB.hex 10KB
PCB 28KB
PCB.build_log.htm 1KB
P.obj 34KB
STARTUP.obj 819B
PCB.lnp 110B
PCB_uvproj.bak 14KB
PCB.uvgui.17409 69KB
PCB.uvopt 6KB
STARTUP.A51 6KB
PCB.uvgui.junzh 69KB
PCB_uvopt.bak 6KB
P.C 10KB
Listings
STARTUP.lst 14KB
P.lst 23KB
PCB.m51 34KB
PCB.uvproj 14KB
共 23 条
- 1
SKCQTGZX
- 粉丝: 87
- 资源: 5820
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页