专题讲座资料(2021-2022年)单片机课程设计报告心形流水灯.doc
井冈山大学井冈山大学机电工程学院机电工程学院单片机单片机课程设计报告课程设计报告课程名称:单片机课程名称:单片机设计题目:心形设计题目:心形流水灯流水灯姓姓名:名:彭玉红彭玉红专专业:生物医学工程业:生物医学工程班班级:级:1111 级医工本一班级医工本一班学学号:号:110615011061501717指导教师指导教师:王佑湖王佑湖20201313 年年 1111 月月 2727 日日1目录目录1 引言.21.1 设计任务.21.2 设计要求.22 课题综述.22.1 课题的来源.22.2 面对的问题23 系统分析.23.1 STC89C52 单片机引脚图及引脚功能介绍24 系统设计.44.1 硬件设计.44.1.1 硬件框图.44.1.2 硬件详细设计.54.2 软件设计.54.3 硬件原理图.64.4 元件清单.64.5 硬件焊接图.64.6 代码编写.75 心得体会.76 致谢.8参考文献.821 1 引言引言单片机课程设计主要是为了让我们增进对 STC89C51 单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。1.11.1 设计任务设计任务设计一个单片机控制的流水灯系统1.2 设计要求设计要求(1)32 个 LED 灯;(2)可实现多种的亮灯(如左循环,右循环,间隔闪,90 度交叉闪等)。2 课题综述课题综述2.1 课题的来源课题的来源当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。2.2 面对的问题面对的问题这次课程设计是通过 STC89C52 位单片机实现。但面对的问题却3是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。而更为严峻的就是设计的最后还要将软硬件相结合。3系统分析系统分析3.1 STC 89C52 单片机引脚图及引脚功能介绍单片机引脚图及引脚功能介绍本次设计的目的在于加深 STC89C52 单片机的理解,首先来简单认识一下,它的引脚如图 3-1 所示:图 3.1 STC89C52STC89C52 引脚可以分为四个部分,各个引脚功能如下:主电源引脚(2 根)Vcc:电源输入,接+5V 电源4GND:接地线外接晶振引脚(2 根)XTAL1:片内振荡电路的输入端XTAL2:片内振荡电路的输出端控制引脚(4 根)RST/PROG:复位引脚,引脚上出现 2 个机器周期的高电平将使单片机复位。ALE/VPP:地址锁存允许信号PESN:外部存储器选通信号EA/VPP:程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32 根)STC89C52 单片机有 4 组 8 位的可编程 I/O 口,分别为 P0、P1、P2、P3 口,每个口有 8 位(8 根引脚),共 32 根。P0 口:8 位双向 I/O 口线P1 口:8 位准双向 I/O 口线P1 口:8 位双向 I/O 口线P2 口:8 位准双向 I/O 口线P3 口:8 位准双向 I/O 口线4 系统设计系统设计4.14.1 硬件设计硬件设计4.14.1.1.硬件框图硬件框图5按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。STC89C52 单片机是本次课程设计运用的主要原件。流水灯控制设计是用一个带有 32 个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。从原理图中可以看出,如果要让接在 P1、P2、P3、P0 口的 LED 亮起来,那么只要把 P2、P1、P3、P0 口的电平变为低电平就可以了;因此,要实现流水灯功能,我们只要将发光二极管 LED1LED32 依次点亮、熄灭,32 只 LED 灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。4.14.1.2.硬件详细设计硬件详细设计(1)复位电路部分当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及6其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。(2)晶振部分4.2 软件设计软件设计单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。4.3 硬件原理图硬件原理图74.4 元件清单元件清单表 4-1 元件清单元件名称型号数量(个)单片机STC89C521单片机芯片底座DIP401晶振12MHz1瓷介电容30pF2电解电容10uF1按钮开关/2普通电阻10k1贴片电阻47032发光二级管红色32电源+5V(VCC)1USB 连接线/1万能板9*1514.5 效果实物图效果实物图(1)背面实物图(2)正面实物图4.6 代码编写代码编写#include#define uintunsigned int#define ucharunsigned charuchar code table0=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/LED 从低位往高位移uchar code table1=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe;/LED 从高位往低位移uchar code table2=0 xfe,0 xfc,0 xf8,0 xf0,0 xe0,0 xc0,0 x80,0 x00;/LED从1个亮到8个都点亮(从低位往高位)uchar code table3=0 x7f,0 x3f,0 x1f,0 x0f,0 x07,0 x03,0 x01,0 x00;/LED从1个亮到8个都点亮(从高位往低位)uchar code table4=0 x00,0 x01,0 x03,0 x07,0 x0f,0 x1f,0 x3f,0 x7f,0 xff;/LED 从 8 个全亮到一个都不亮(从低位往高位)uchar code table5=0 x00,0 x80,0 xc0,0 xe0,0 xf0,0 xf8,0 xfc,0 xfe,0 xff;/LED 从 8 个全亮到一个都不亮(从高位往低位)uchar code table6=0 xfe,0 xfc,0 xfa,0 xf6,0 xee,0 xde,0 xbe,0 x7e;/LED 从低位往高位移(最低位始终为 0)uchar code table7=0 x7f,0 x3f,0 x5f,0 x6f,0 x77,0 x7b,0 x7d,0 x7e;/LED 从高位往低位移(最高位始终为 0)uchar i,j;uint tt=70;void delay(uint time)/延时函数uint x,y;for(x=time;x0;x-)1for(y=110;y0;y-);void disp0()/状态 0 所有 LED 闪烁 3 次for(i=0;i3;i+)P0=0 x00;P2=0 x00;P3=0 x00;P1=0 x00;delay(300);P0=0 xff;P2=0 xff;P3=0 xff;P1=0 xff;delay(300);void disp1()/状态 1 LED 顺时针转一圈for(i=0;i8;i+)P2=table1i;delay(100);P2=0 xff;for(i=0;i8;i+)P3=table1i;delay(100);P3=0 xff;for(i=0;i8;i+)P1=table1i;delay(100);P1=0 xff;for(i=0;i8;i+)P0=table0i;delay(100);P0=0 xff;void disp2()/状态 2 LED 逆时针转一圈for(i=0;i8;i+)P0=table1i;2delay(100);P0=0 xff;for(i=0;i8;i+)P1=table0i;delay(100);P1=0 xff;for(i=0;i8;i+)P3=table0i;delay(100);P3=0 xff;for(i=0;i8;i+)P2=table0i;delay(100);P2=0 xff;void disp3()/状态 3 4 个 LED 同时顺时、逆时针移动 1/4 圈for(i=0;i8;i+)P0=table1i;P1=table1i;P2=table1i;P3=table0i;delay(100);for(i=0;i8;i+)P0=table0i;P1=table0i;P2=table0i;P3=table1i;delay(100);P3=0 xff;P0=0 xff;void disp4()/状态 42 个 LED 同时顺时针移动半圈3for(i=0;i8;i+)P2=table1i;P1=table1i;delay(100);P2=0 xff;P1=0 xff;for(i=0;i8;i+)P3=table1i;P0=table0i;delay(100);P3=0 xff;P0=0 xff;void disp5()/状态 52 个 LED 同时逆时针移动半圈for(i=0;i8;i+)P0=table1i;P3=table0i;delay(100);P0=0 xff;P3=0 xff;for(i=0;i8;i+)P1=table0i;P2=table0i;delay(100);P1=0 xff;P2=0 xff;void disp6()/状态 6 LED 自上而下逐渐点亮(一半点亮一半不亮)for(i=0;i8;i+)P0=table3i;P2=table3i;delay(100);P0=0 xff;P2=0 xff;for(i=0;i8;i+)P1=table2i;4P3=table3i;delay(100);P1=0 xff;P3=0 xff;void disp7()/状态 7 LED 自下而上逐渐点亮(直到全部点亮)for(i=0;i8;i+)P1=table3i;P3=table2i;delay(100);for(i=0;i8;i+)P0=table2i;P2=table2i;delay(100);void disp8()/状态 8 间断 8 格的 4 个 LED 亮并逆时针旋转for(j=0;j2;j+)for(i=0;i8;i+)P0=table1i;P2=table0i;P1=table0i;P3=table0i;delay(100);P0=0 xff;P2=0 xff;P1=0 xff;P3=0 xff;for(i=0;i8;i+)P0=table1i;P2=table0i;P1=table0i;P3=table0i;delay(100);P0=0 xff;P2=0 xff;P1=0 xff;P3=0 xff;5void disp9()/状态 9 间断 8 格的 4 个 LED 亮,然后逆时针逐渐点亮(直到全部点亮)for(i=0;i8;i+)P0=table3i;P2=table2i;P1=table2i;P3=table2i;delay(100);delay(500);void disp10()/状态 10 从 LED 全部亮到全不亮(间断 8 格的 4 个 LED开始逆时针熄灭)for(i=0;i9;i+)P0=table5i;P2=table4i;P1=table4i;P3=table4i;delay(100);delay(300);void disp11()/状态 11 间断 8 格的 4 个 LED 亮并顺时针旋转for(j=0;j2;j+)for(i=0;i8;i+)P0=table0i;P2=table1i;P1=table1i;P3=table1i;delay(100);P0=0 xff;P2=0 xff;P1=0 xff;P3=0 xff;for(i=0;i8;i+)P0=table0i;P2=table1i;P1=table1i;6P3=table1i;delay(100);P0=0 xff;P2=0 xff;P1=0 xff;P3=0 xff;void disp12()/间断 8 格的 4 个 LED 亮,然后顺时针逐渐点亮(直到全部点亮)for(i=0;i8;i+)P0=table2i;P2=table3i;P1=table3i;P3=table3i;delay(100);delay(1000);void disp13()/状态 13 从 LED 全部亮到全不亮(间断 8 格的 4 个 LED开始顺时针熄灭)for(i=0;i9;i+)P0=table4i;P2=table5i;P1=table5i;P3=table5i;delay(100);delay(300);void disp14()/状态 14 从 LED 不亮到全亮(从 P0.0、P1.0、P2.0、P3.7开始逐步点亮)for(i=0;i8;i+)P0=table2i;P1=table2i;P2=table2i;P3=table3i;delay(100);7void disp15()/状态 15 从 LED 全亮到全不亮(P0.7、P1.7、P2.7、P3.0 逐步熄灭)for(i=0;i9;i+)P0=table5i;P1=table5i;P2=table5i;P3=table4i;delay(100);delay(300);void disp16()/状态 16 LED 灯交替闪烁(频率有慢变快)for(i=0;i5;i+)P0=0 xaa;P1=0 xaa;P2=0 xaa;P3=0 xaa;delay(100);P0=P0;P1=P1;P2=P2;P3=P3;delay(100);for(i=0;i5;i+)P0=0 xaa;P1=0 xaa;P2=0 xaa;P3=0 xaa;delay(200);P0=P0;P1=P1;P2=P2;P3=P3;delay(200);for(i=0;i5;i+)P0=0 xaa;P1=0 xaa;P2=0 xaa;P3=0 xaa;delay(300);P0=P0;P1=P1;P2=P2;P3=P3;delay(300);P0=0 xff;P2=0 xff;P1=0 xff;P3=0 xff;delay(300);void disp17()/状态 17 从 P0.7 开始逆时针逐步点亮,(循环 2 次)并且速度会逐步提高for(i=0;i8;i+)P0=table3i;8delay(100);for(i=0;i8;i+)P1=table2i;delay(100);for(i=0;i8;i+)P3=table2i;delay(100);for(i=0;i8;i+)P2=table2i;delay(100);P0=0 xff;P1=0 xff;P3=0 xff;P2=0 xff;for(i=0;i8;i+)P0=table3i;delay(50);for(i=0;i8;i+)P1=table2i;delay(50);for(i=0;i8;i+)P3=table2i;delay(50);for(i=0;i8;i+)P2=table2i;delay(50);P0=0 xff;P1=0 xff;P3=0 xff;P2=0 xff;void disp18()/状态 18 LED 从 P0.7 开始逆时针逐步点亮(每亮 8 位后就熄灭)for(i=0;i8;i+)9P0=table3i;delay(100);P0=0 xff;for(i=0;i8;i+)P1=table2i;delay(100);P1=0 xff;for(i=0;i8;i+)P3=table2i;delay(100);P3=0 xff;for(i=0;i8;i+)P2=table2i;delay(100);P2=0 xff;void disp19()/状态 19 LED 从 P2.7 开始顺时针逐步点亮,(循环 2 次)并且速度会逐步提高for(i=0;i8;i+)P2=table3i;delay(100);for(i=0;i8;i+)P3=table3i;delay(100);for(i=0;i8;i+)P1=table3i;delay(100);for(i=0;i8;i+)P0=table2i;10delay(100);P0=0 xff;P1=0 xff;P3=0 xff;P2=0 xff;for(i=0;i8;i+)P2=table3i;delay(50);for(i=0;i8;i+)P3=table3i;delay(50);for(i=0;i8;i+)P1=table3i;delay(50);for(i=0;i8;i+)P0=table2i;delay(50);P0=0 xff;P1=0 xff;P3=0 xff;P2=0 xff;void disp20()/状态 20 LED 从 P2.7 开始顺时针逐步点亮(每亮 8 位后就熄灭)for(i=0;i8;i+)P2=table3i;delay(100);P2=0 xff;for(i=0;i8;i+)P3=table3i;delay(100);P3=0 xff;for(i=0;i8;i+)P1=table3i;delay(100);11P1=0 xff;for(i=0;i8;i+)P0=table2i;delay(100);P0=0 xff;void disp21()/状态 21 2 个 LED 开始上下移动半圈for(i=0;i8;i+)P0=table1i;P2=table1i;delay(100);P0=0 xff;P2=0 xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(100);for(i=0;i8;i+)P1=table1i;P3=table0i;delay(100);P1=0 xff;P3=0 xff;for(i=0;i8;i+)P0=table0i;P2=table0i;delay(100);void disp22()/装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环 16 次,然后循环 5 次频率再逐渐降低)for(j=0;j5;j+)for(i=0;i8;i+)12P0=table1i;P2=table1i;delay(tt);P0=0 xff;P2=0 xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(tt);P1=0 xff;P3=0 xff;tt=tt-10;for(j=0;j16;j+)for(i=0;i8;i+)P0=table1i;P2=table1i;delay(20);P0=0 xff;P2=0 xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(20);P1=0 xff;P3=0 xff;tt=20;for(j=0;j5;j+)for(i=0;i8;i+)P0=table1i;P2=table1i;delay(tt);P0=0 xff;P2=0 xff;for(i=0;i8;i+)13P1=table0i;P3=table1i;delay(tt);P1=0 xff;P3=0 xff;tt=tt+10;tt=70;void disp23()/状态 23 LED 上下交替闪烁for(i=0;i2;i+)P0=0 x00;P2=0 x00;delay(1000);P0=0 xff;P2=0 xff;P1=0 x00;P3=0 x00;delay(1000);P1=0 xff;P3=0 xff;void disp24()/状态 24 LED 左右交替闪烁P1=0 xff;P3=0 xff;P0=0 xff;P2=0 xff;for(i=0;i2;i+)P0=0 x00;P1=0 x00;delay(1000);P0=0 xff;P1=0 xff;P2=0 x00;P3=0 x00;delay(1000);P2=0 xff;P3=0 xff;void disp25()/状态 25 LED 交替闪烁for(i=0;i5;i+)P0=0 xaa;P1=0 xaa;P2=0 xaa;P3=0 xaa;delay(1000);P0=P0;P1=P1;P2=P2;P3=P3;delay(1000);14void disp26()/状态 26 2 个 LED 开始上下移动半圈(LED 不亮流水)P0=0 x00;P1=0 x00;P2=0 x00;P3=0 x00;for(i=0;i8;i+)P0=table1i;P2=table1i;delay(200);P0=0 x00;P2=0 x00;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(200);for(i=0;i8;i+)P1=table1i;P3=table0i;delay(200);P1=0 x00;P3=0 x00;for(i=0;i8;i+)P0=table0i;P2=table0i;delay(200);void disp27()/状态 27 逐步顺时针点亮 P2、P1 的 LED,熄灭后,再顺时针点亮 P0、P3 的 LEDP0=0 xff;P1=0 xff;P2=0 xff;P3=0 xff;for(j=0;j2;j+)for(i=0;i8;i+)P2=table3i;P1=table3i;delay(100);P2=0 xff;P1=0 xff;15for(i=0;i8;i+)P0=table2i;P3=table3i;delay(100);P0=0 xff;P3=0 xff;void disp28()/状态 28 P1、P2 和 P0、P3 交替闪烁for(i=0;i2;i+)P1=0 x00;P2=0 x00;P0=0 xff;P3=0 xff;delay(1000);P1=0 xff;P2=0 xff;P0=0 x00;P3=0 x00;delay(1000);P1=0 xff;P2=0 xff;P0=0 xff;P3=0 xff;void disp29()/状态29 逐步顺时针点亮P2、P1的LED,再顺时熄灭后,再顺时针点亮 P0、P3 的 LED,再顺时熄灭P0=0 xff;P1=0 xff;P2=0 xff;P3=0 xff;for(j=0;j2;j+)for(i=0;i8;i+)P2=table3i;P1=table3i;delay(100);for(i=0;i9;i+)P2=table5i;P1=table5i;delay(100);for(i=0;i8;i+)P0=table2i;P3=table3i;delay(100);16for(i=0;i9;i+)P0=table4i;P3=table5i;delay(100);delay(200);void disp30()/状态 30 逐步逆时针点亮 P2、P1 的 LED,熄灭后,再逆时针点亮 P0、P3 的 LEDP0=0 xff;P1=0 xff;P2=0 xff;P3=0 xff;for(j=0;j2;j+)for(i=0;i8;i+)P2=table2i;P1=table2i;delay(100);P2=0 xff;P1=0 xff;for(i=0;i8;i+)P0=table3i;P3=table2i;delay(100);P0=0 xff;P3=0 xff;void disp31()/状态31 逐步逆时针点亮P2、P1的LED,再逆时熄灭后,再逆时针点亮 P0、P3 的 LED,再逆时熄灭P0=0 xff;P1=0 xff;P2=0 xff;P3=0 xff;for(j=0;j2;j+)for(i=0;i8;i+)P2=table2i;P1=table2i;delay(100);for(i=0;i9;i+)17P2=table4i;P1=table4i;delay(100);for(i=0;i8;i+)P0=table3i;P3=table2i;delay(100);for(i=0;i9;i+)P0=table5i;P3=table4i;delay(100);delay(200);void disp32()/状态 32 LED 自上而下逐步点亮,然后从下往上逐步熄灭for(i=0;i8;i+)P0=table3i;P2=table3i;delay(100);for(i=0;i8;i+)P1=table2i;P3=table3i;delay(100);for(i=0;i9;i+)P1=table5i;P3=table4i;delay(100);for(i=0;i9;i+)P0=table4i;18P2=table4i;delay(100);void disp33()/状态 33 LED 从左往右开始点亮(直到全亮),然后从左右两边开始熄灭(直到全部熄灭)for(i=0;i8;i+)P0=table2i;P1=table2i;delay(100);for(i=0;i8;i+)P2=table3i;P3=table2i;delay(100);delay(500);for(i=0;i9;i+)P2=table4i;P3=table5i;P1=table4i;P0=table4i;delay(100);delay(300);void disp34()/状态 34 LED 从左往右开始点亮(直到全亮),然后从中间往左右边熄灭for(i=0;i8;i+)P2=table2i;P3=table3i;delay(100);for(i=0;i8;i+)P0=table3i;P1=table3i;delay(100);19delay(500);for(i=0;i9;i+)P2=table5i;P3=table4i;P1=table5i;P0=table5i;delay(100);delay(300);void disp35()/状态 35从 P2.7、P1.7 开始同时顺时针旋转,直到 LED全亮for(i=0;i8;i+)P2=table3i;P1=table3i;delay(100);for(i=0;i8;i+)P3=table3i;P0=table2i;delay(100);void disp36()/状态 36从 P0.7、P3.1 开始同时逆时针旋转,直到 LED全亮for(i=0;i8;i+)P0=table3i;P3=table2i;delay(100);for(i=0;i8;i+)P1=table2i;P2=table2i;delay(100);20void disp37()/状态37 2 个LED自上而下移动,并点亮最下2个 LED,然后 2 个 LED 再自下而上回去,同时 4 个 LED(上下各 2 个 LED)再来回移动一次for(i=0;i8;i+)P0=table1i;P2=table1i;delay(100);P0=0 xff;P2=0 xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(100);for(i=0;i8;i+)P1=table7i;P3=table6i;delay(100);P1=0 x7f;P3=0 xfe;for(i=0;i8;i+)P0=table0i;P2=table0i;delay(100);for(i=0;i8;i+)P0=table1i;P2=table1i;P1=table1i;P3=table0i;delay(200);for(i=0;i8;i+)P0=table0i;P1=table0i;P2=table0i;P3=table1i;21delay(200);P0=0 xff;P1=0 xff;P2=0 xff;P3=0 xff;void disp38()/状态 38 逐步顺时针点亮 P2、P1 的 LED,熄灭后,再顺时针点亮 P0、P3 的 LEDP0=0 xff;P1=0 xff;P2=0 xff;P3=0 xff;for(j=0;j2;j+)for(i=0;i8;i+)P2=table3i;P1=table3i;delay(100);P2=0 xff;P1=0 xff;for(i=0;i8;i+)P0=table2i;P3=table3i;delay(100);P0=0 xff;P3=0 xff;void disp39()/状态 39 P1、P3LED(下半部分)一直亮,上半部分 LED 向外扩张亮,然后闪烁 3 次P1=0 x00;P3=0 x00;for(i=0;i8;i+)P0=table3i;P2=table3i;delay(150);for(i=0;i8;i+)P0=table3i;P2=table3i;delay(300);for(i=0;i4;i+)22P0=P0;P2=P2;delay(300);delay(1000);void disp40()/状态 40 LED 从 P3.0、P0.7 开始逆时针同时熄灭,直到LED 全部熄灭for(i=0;i9;i+)P3=table4i;P0=table5i;delay(100);for(i=1;i9;i+)P2=table4i;P1=table4i;delay(100);delay(300);void disp41()/状态 41 LED 从 P2.7、P1.7 开始顺时针同时熄灭,直到全部熄灭for(i=0;i9;i+)P2=table5i;P1=table5i;delay(100);for(i=1;i9;i+)P0=table4i;P3=table5i;delay(100);delay(300);void main()while(1)disp22();/装态 22 2 个 LED 自上而下移动(循环 5 次,且频率渐快,23到最快时持续循环 16 次,然后循环 5 次频率再逐渐降低)disp0();/状态 0 所有 LED 闪烁 3 次disp1();/状态 1 LED 顺时针转一圈disp2();/状态 2 LED 逆时针转一圈disp3();/状态 3 4 个 LED 同时顺时、逆时针移动 1/4 圈disp4();/状态 42 个 LED 同时顺时针移动disp5();/状态 52 个 LED 同时逆时针移动半圈disp6();/状态 6 LED 自上而下逐渐点亮(一半点亮一半不亮)disp7();/状态 7 LED 自下而上逐渐点亮(直到全部点亮)disp0();/状态 0 所有 LED 闪烁 3 次disp8();/状态 8 间断 8 格的 4 个 LED 亮并逆时针旋转disp9();/状态 9 间断 8 格的 4 个 LED 亮,然后逆时针逐渐点亮(直到全部点亮)disp10();/状态 10 从 LED 全部亮到全不亮(间断 8 格的 4 个 LED开始逆时针熄灭)disp11();/状态 11 间断 8 格的 4 个 LED 亮并顺时针旋转disp12();/间断 8 格的 4 个 LED 亮,然后顺时针逐渐点亮(直到全部点亮)disp13();/状态 13 从 LED 全部亮到全不亮(间断 8 格的 4 个 LED开始顺时针熄灭)disp14();/状态 14 从 LED 不亮到全亮(从 P0.0、P1.0、P2.0、P3.7开始逐布点亮)disp15();/状态 15 从 LED 全亮到全不亮(从 P0.7、P1.7、P2.7、P3.0 开始逐步熄灭)disp16();/状态 16 LED 灯交替闪烁(频率有慢变快)disp17();/状态 17 LED 从 P0.7 开始逆时针逐步点亮,并且速度会逐步提高disp18();/状态 18 LED 从 P0.7 开始逆时针逐步点亮(每亮 8 位后就熄灭)disp19();/状态 19 LED 从 P2.7 开始顺时针逐步点亮,(循环 2 次)并且速度会逐步提高disp20();/状态 20 LED 从 P2.7 开始顺时针逐步点亮(每亮 8 位后就熄灭)disp21();/状态 21 2 个 LED 开始上下移动半圈disp22();/装态 22 2 个 LED 自上而下移动(循环 5 次,且频率渐快,到最快时持续循环 16 次,然后循环 5 次频率再逐渐降低disp23();/状态 23 LED 上下交替闪烁disp39();/状态 39 P1、P3LED(下半部分)一直亮,上半部分 LED 向外扩张亮,然后闪烁 3 次disp24();/状态 24 LED 左右交替闪烁disp25();/状态 25 LED 交替闪烁disp8();/状态 8 间断 8 格的 4 个 LED 亮并逆时针旋转disp9();/状态 9 间断 8 格的 4 个 LED 亮,然后逆时针逐渐点亮(直到全部点亮)24disp10();/状态 10 从 LED 全部亮到全不亮(间断 8 格的 4 个 LED开始逆时针熄灭)disp26();/状态 26 2 个 LED 开始上下移动半圈(LED 不亮流水)disp27();/状态 27 逐步顺时针点亮 P2、P1 的 LED,熄灭后,再顺时针点亮 P0、P3 的 LEDdisp28();/状态 28 P1、P2 和 P0、P3 交替闪烁disp38();/状态 38 逐步顺时针点亮 P2、P1 的 LED,熄灭后,再顺时针点亮 P0、P3 的 LEDdisp29();/状态29 逐步顺时针点亮P2、P1的LED,再顺时熄灭后,再顺时针点亮 P0、P3 的 LED,再顺时熄灭disp30();/状态 30 逐步逆时针点亮 P2、P1 的 LED,熄灭后,再逆时针点亮 P0、P3 的 LEDdisp31();/状态31 逐步逆时针点亮P2、P1的LED,再逆时熄灭后,再逆时针点亮 P0、P3 的 LED,再逆时熄灭disp32();/状态 32 LED 自上而下逐步点亮,然后从下往上逐步熄灭disp33();/状态 33 LED 从左往右开始点亮(直到全亮),然后从左右两边开始熄灭(直到全部熄灭)disp37();/状态37 2 个LED自上而下移动,并点亮最下2个 LED,然后 2 个 LED 再自下而上回去,同时 4 个 LED(上下各 2 个 LED)再来回移动一次disp36();/状态 36从 P0.7、P3.0 开始同时逆时针旋转,直到 LED全亮disp40();/状态 40 LED 从 P3.0、P0.7 开始逆时针同时熄灭,直到LED 全部熄灭disp35();/状态 35从 P2.7、P1.7 开始同时顺时针旋转,直到 LED全亮disp41();/状态 41 LED 从 P2.7、P1.7 开始顺时针同时熄灭,直到全部熄灭disp34();/状态 34 LED 从左往右开始点亮(直到全亮),然后从中间往左右边熄灭disp28();/状态 28 P1、P2 和 P0、P3 交替闪烁5.心得体会心得体会由于本次课程设计含括了软件和硬件知识,所以在完成课程设计的同时也让我们了解到了我们在软硬件设计和制作方面的不足。在这次的设计过程中我所担任的工作是对电路板各元器件的连接和焊接工作,虽然看似简单,但做起来却是一个细致的工作,尤其是对于一25些引脚的焊接工作