资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频
仿真版本:Proteus8.6及以上版本
程序编译:Keil5 C51
编程语言:C语言
设计编号:【Y03】
1.? 简介
本文提出了一种基于51单片机的心型流水灯设计。本系统由AT89C51单片机为控制核心,实现不同花样的基本功能。
2.? 主要功能
a.支持单片机输出32个引脚,实现不同的心型流水灯花样效果。
3.? 源程序(Keil5)
本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。
void disp33() //状态33 LED从左往右开始点亮(直到全亮),然后从左右两边开始熄灭(直到全部熄灭)
{
for(i=0;i<8;i++)
{
P0=table2[i];
P1=table2[i];
delay(100);
}
for(i=0;i<8;i++)
{
P2=table3[i];
P3=table2[i];
delay(100);
}
delay(500);
for(i=0;i<9;i++)
{
P2=table4[i];
P3=table5[i];
P1=table4[i];
P0=table4[i];
delay(100);
}
delay(300);
}
void disp34() //状态34 LED从左往右开始点亮(直到全亮),然后从中间往左右边熄灭
{
for(i=0;i<8;i++)
{
P2=table2[i];
P3=table3[i];
delay(100);
}
for(i=0;i<8;i++)
{
P0=table3[i];
P1=table3[i];
delay(100);
}
delay(500);
for(i=0;i<9;i++)
{
P2=table5[i];
P3=table4[i];
P1=table5[i];
P0=table5[i];
delay(100);
}
delay(300);
}
void disp35() //状态35 从P2.7、P1.7开始同时顺时针旋转,直到LED全亮
{
for(i=0;i<8;i++)
{
P2=table3[i];
P1=table3[i];
delay(100);
}
for(i=0;i<8;i++)
{
P3=table3[i];
P0=table2[i];
delay(100);
}
}
void disp36() //状态36 从P0.7、P3.1开始同时逆时针旋转,直到LED全亮
{
for(i=0;i<8;i++)
{
P0=table3[i];
P3=table2[i];
delay(100);
}
for(i=0;i<8;i++)
{
P1=table2[i];
P2=table2[i];
delay(100);
}
}
void disp37() //状态37 2个LED自上而下移动,并点亮最下2个LED,然后2个LED再自下而上回去,同时4个LED(上下各2个LED)再来回移动一次
{
for(i=0;i<8;i++)
{
P0=table1[i];
P2=table1[i];
delay(100);
}
P0=0xff; P2=0xff;
for(i=0;i<8;i++)
{
P1=table0[i];
P3=table1[i];
delay(100);
}
for(i=0;i<8;i++)
{
P1=table7[i];
P3=table6[i];
delay(100);
}
P1=0x7f; P3=0xfe;
for(i=0;i<8;i++)
{
P0=table0[i];
P2=table0[i];
delay(100);
}
for(i=0;i<8;i++)
{
P0=table1[i];
P2=table1[i];
P1=table1[i];
P3=table0[i];
delay(200);
}
for(i=0;i<8;i++)
{
P0=table0[i];
P1=table0[i];
P2=table0[i];
P3=table1[i];
delay(200);
}
P0=0xff;P1=0xff; P2=0xff;P3=0xff;
}
void disp38() //状态38 逐步顺时针点亮P2、P1的LED,熄灭后,再顺时针点亮P0、P3的LED
{
P0=0xff; P1=0xff; P2=0xff; P3=0xff;
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)
{
P2=table3[i];
P1=table3[i];
delay(100);
}
P2=0xff; P1=0xff;
for(i=0;i<8;i++)
{
P0=table2[i];
P3=table3[i];
delay(100);
}
P0=0xff; P3=0xff;
}
}
void disp39() //状态39 P1、P3LED(下半部分)一直亮,上半部分LED向外扩张亮,然后闪烁3次
{
P1=0x00; P3=0x00;
for(i=0;i<8;i++)
{
P0=table3[i];
P2=table3[i];
delay(150);
}
for(i=0;i<8;i++)
{
P0=table3[i];
P2=table3[i];
delay(300);
}
for(i=0;i<4;i++)
{
P0=~P0; P2=~P2;
delay(300);
}
delay(1000);
}
void disp40() //状态40 LED从P3.0、P0.7开始逆时针同时熄灭,直到LED全部熄灭
{
for(i=0;i<9;i++)
{
P3=table4[i];
P0=table5[i];
delay(100);
}
for(i=1;i<9;i++)
{
P2=table4[i];
P1=table4[i];
delay(100);
}
delay(300);
}
void disp41() //状态41 LED从P2.7、P1.7开始顺时针同时熄灭,直到全部熄灭
{
for(i=0;i<9;i++)
{
P2=table5[i];
P1=table5[i];
delay(100);
}
for(i=1;i<9;i++)
{
P0=table4[i];
P3=table5[i];
delay(100);
}
delay(300);
}
4.? 仿真proteus8.6
? 本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。
仿真界面:
5.? 设计报告
设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。
6.? 资料清单
设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。
7.? 资料获取链接
百度网盘下载链接:【Y03】百度网盘下载链接
更多单片机仿真设计合集:单片机仿真设计合集
阅读全文
1361