单片机课程设计报告--心形流水灯

合集下载

心形流水灯实验报告

心形流水灯实验报告

【数字电路课程设计】非遥控音乐桃心闪灯实验报告学院:物理电气信息学院专业:通信(1)班姓名:刘发虎学号:12011244070指导老师:王国金一.实验目的:1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。

2学习和掌握单片机的基本知识。

3.培养实践技能,提高分析和解决实际问题的能力。

二.实验器材:品名型号数量元件符号单片机 MCU8051 1 U1电容 30pf 2 C1 C210uf 1 C3100uf 1 C4电阻 1K 30 R1 R2 R3 R4...R28 R29 R30 10K 1 R313.6K 1 R32晶振 12M 1 Y0电源 5 1 VCC三级管8550 1 Q18050 1 Q2开关 2 RESET喇叭 1 SPKLED灯 6mm 30 p1 p2p p3...p28 p29p p30 三.单片机MCU8051主要功能;8位CPU·4kbytes 程序存储器(ROM) (52为8K)·256bytes的数据存储器(RAM) (52有384bytes的RAM)·32条I/O口线·111条指令,大部分为单字节指令·21个专用寄存器·2个可编程定时/计数器·5个中断源,2个优先级(52有6个)·一个全双工串行通信口·外部数据存储器寻址空间为64kB·外部程序存储器寻址空间为64kB·逻辑操作位寻址功能·双列直插40PinDIP封装·单一+5V电源供电CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。

心形花样流水灯设计报告

心形花样流水灯设计报告

心形花样流水灯设计报告
心形花样流水灯设计报告
心形花样流水灯是现有流水灯的一种经典改良版本,它采用16个灯作为原形,在跟随律动改变时,灯会形成一个心形的图案,从而形成艳丽夺目的画面。

该设计把流水灯的动感与闪烁的灯光有机地结合起来,带给观众一个难忘的视觉体验。

心形花样流水灯的实现原理主要基于按使灯在每个节点切换时都可以获取正确的额外信号,然后根据信号来控制灯的状态,从而实现每颗灯在固定节点可以达到设定的图案效果。

实现心形花样流水灯首先需要准备好必要的硬件,如灯、电源、封装等。

其中,灯是实现该图案花样的关键元素,合适的灯应该选择一直亮的灯,最好是采用柱面形状的灯放置;电源属于复杂的功能元件,而电源的输出功率是有限的,因此要选择规范型号的电源;灯装接容器也是必不可少的,以尽可能减少容器内部电阻增加此设计系统电源负载。

安装完必要的硬件之后,就可以编写控制程序实现心形花样的设计。

首先,程序需要实现的功能应该包括定时停档、定时启动、控制灯泡亮度等,这是该系统实现的最基本的功能,其次,控制程序设计的关键是要编写一段循环程序,使在每一节点可以实现按照心形花样拍摄计划设定的图案,最后,实现定时调节,达到改变速度以及心形持续不断等效果。

通过以上步骤,就可以实现心形花样流水灯的设计制作,从而实现不同场合的美观效果,更好的吸引更多的注意力,从而取得全新的效果。

十八路心形流水灯设计报告

十八路心形流水灯设计报告

十八路心形流水灯——设计报告目录一、摘要 (2)二、设计目的和作用 (2)(三、设计方案和原理 (2)电路功能 (2)电路工作原理 (2)参数计算 (3)元器件选择 (3)四、仿真调试与性能分析 (4)MUITLSIM仿真 (4)实验步骤 (5),调试分析 (5)实物图 (5)五、设计心得 (6)一、摘要随着科学技术的发展,电力电子设备与人们的工作、生活的关系日益密切。

如今人民的生活水平大幅提升,生活质量和审美情趣也大幅提升,所以本次实验,我们设计了一个十八路心形流水灯,灯交替闪烁,组成心形图案,集美观于实用于一体,也可以用于馈赠亲朋好友,是十分有意义的。

关键字:LED 十八路流水灯心形流水灯交替闪烁二、设计目的和作用随着微电子技术的迅速发展,各类功能芯片的性能不断提高,数字信号处理得到越来越广泛的应用,而十八路流水灯是一个简单的应用,在通信系统、数字仪器仪表、语音、图像处理等方面都是必不可少的部分,所以流水灯的基础设计显得尤为重要。

本次设计在软硬件常规实验的基础上,运用“模拟电子技术”的理论知识,设计、分析、测试基本电路系统,初步掌握综合运用理论知识、软件仿真以及硬件测试进行简单系统的设计与分析的基本方法。

流水灯在日常生活中非常重要,运用非常广泛,在电子工程,通信工程,自动控制,遥测控制,测量仪器,仪表和计算机等技术领域,经常需要用到各种各样的流水灯。

随着集成电路的迅速发展,用集成电路可很方便地构成各种复杂功能的流水灯。

用集成电路实现的流水灯与其他流水灯相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。

流水灯在电路实验和设备检测中具有十分广泛的用途。

三、设计方案和原理电路功能18颗LED排列成心形,由三只振荡三极管驱动,通电后LED依次旋转闪亮,夜间效果更佳。

电路工作原理本电路是由3只三极管组成的循环驱动电路。

每当电源接通时,3只三极管会争先导通,但由于元器件存在差异,只会有1只三极管最先导通。

24个心形流水灯设计报告

24个心形流水灯设计报告

24个心形流水灯设计报告1. 引言流水灯作为一种常见的LED灯效设计,在展示舞台、节日装饰、商业广告等领域有着广泛应用。

为了增加节日气氛,我们设计了一个由24个心形灯组成的流水灯。

本设计报告将详细介绍设计思路、硬件连接、软件控制以及预期效果等相关内容。

2. 设计思路由于流水灯需要按照一定的顺序依次点亮各个LED灯,我们选择使用Arduino控制器来实现该功能。

考虑到增加趣味性和节日氛围,我们决定采用心形灯组成的模式。

共有24个心形灯,每个心形灯内部由若干个LED 灯组成,可以通过控制流水灯模式,实现心形灯的动态变化。

3. 硬件连接为了实现24个心形灯的控制,我们需要准备以下硬件设备:- Arduino控制器- 24个心形灯- 简单的电路板- 面包板或者焊接器件将Arduino控制器与电路板相连接,并将24个心形灯连接到电路板上。

每个心形灯都连接到相应的引脚上,以便于控制单个灯的点亮与熄灭。

4. 软件控制使用Arduino开发环境,通过编写相应的代码来控制流水灯的效果。

首先,我们定义了24个心形灯对应的引脚号,以便于控制单个心形灯的点亮与熄灭。

然后,我们编写了循环代码,按照一定的顺序控制心形灯的点亮与熄灭。

通过调整循环次数、延时时间等参数,可以实现不同的流水灯效果。

5. 预期效果通过硬件连接和软件控制,我们预期实现以下效果:- 24个心形灯按照一定的顺序动态点亮与熄灭- 流水灯的速度可调,可以实现快速、中速、慢速等不同的流动效果- 可以组合不同的心形灯亮起,创造出更多样化的效果- 通过控制器的输入,可以实现远程控制,方便日常使用6. 总结通过本次24个心形流水灯的设计,我们掌握了硬件与软件的配合使用,提高了自己的电子设计与嵌入式编程能力。

同时,这个设计还具有一定的实用性和观赏性,可以应用于节日装饰、舞台演出等场合,为人们带来更多的乐趣和温暖。

我们希望通过这次设计报告的分享,能够启发更多人参与到电子设计与嵌入式编程的学习中。

32个心形流水灯单片机课程设计

32个心形流水灯单片机课程设计

32个心形流水灯单片机课程设计题目:心形流水灯系别:计算机信息与技术系专业: 计算机科学与技术班级: B120601学号: B120601学生姓名:指导教师: 郭2015年06月目录绪论 ..................................................................... ........................ 3 一.题目分析 ..................................................................... ......... 4 二.硬件 ..................................................................... (4)2.1 MCS-51系列单片机的内部结构框图 (4)2.2系统框图...................................................................... .. (5)2.3电路原理图...................................................................... ......................... 5 三.系统软件设计 ..................................................................... .. 73.1 Keil_c软件界面图...................................................................... . (7)3.2程序流程图 ..................................................................... .............................. 8 四仿真调试 ..................................................................... . (10)4.1仿真采用proteus仿真图 ..................................................................... (10)4.2导入代码图 ..................................................................... ............................ 10 五系统调试及结果分析 (11)5.1 软件调试...................................................................... (11)5.2遇到问题...................................................................... ............................ 12 六总结 ..................................................................... .. (13)绪论由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中MCS-52系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。

基于单片机的心形流水灯设计

基于单片机的心形流水灯设计

主程序流程图
电路原理总图
PCB板图
实物制作
经过一段时间的不断努力和学习,我在测试部分首先检查 了电路连接是否有错(少接、短路、接错、元件焊接不牢 等问题),可以用万用表来检测电路的导通情况。然后再 检查单片机的最小系统:能否使单片机正常工作等。最后 经过调试,系统整体调试:系统各个模块的测试,能够正 常工作,达到设计预期的目标。
课题要求: 结合C语言编程,使心形环绕LED流水灯实现42种不同形式的闪 烁功能,由快到慢,再由慢到快,在循环往复不断的变化中,给 人带来美的体验。
方案择
方案的选择与论证 基于单片机的新型电动栏杆设计由硬件部分和软件部
分两大部分组成。硬件系统采用STC89C52单片机作为中 央处理器,采用了多路电源供电,结合步进电机驱动电路 ,达到过往车辆数量检测,并结合数码管显示等功能。而 软件系统则采用模块化设计,包括车辆数量记录模块,距 离电机驱动模块、数码管显示模块等等。 主控制器芯片主要是负责控制LED灯的不同变化速度快慢 以及变化效果。主控制器作为整个系统的控制核心部分, 要求其功耗低、数据转换速率快。。
研究概述
研究背景与意义
随着现代科学技术的持续进步和发展和人们生活水平 的不断提高,以大规模、超大规模集成电路为首的电子工艺技术 的使用也越来越广泛,在日常生活中
也普遍常见,结合单片机技术设计的电子电路也层出不穷,像 是基于单片机技术设计的LED流水灯,也越来越满足商业 空间的需求,LED灯的优点主要体现在高节能、绿色环保 、无辐射、使用寿命长等,在商店、酒吧、歌厅、舞台等 许多场所正是由于装饰LED彩灯来照明,来展示店铺主题 形象,塑造空间光形象,从而使消费者产生共鸣和联想, 来建立情感交流,来吸引和引导消费者的目光。

单片机心形灯课程设计

单片机心形灯课程设计

单片机心形灯课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解心形灯电路的工作原理。

2. 使学生了解并掌握C语言编程基础,能运用其进行单片机编程。

3. 帮助学生理解并运用数字电路基础知识,实现心形灯的显示效果。

技能目标:1. 培养学生动手实践能力,能独立完成心形灯电路的搭建和编程。

2. 提高学生问题解决能力,能通过调试程序,解决心形灯显示过程中出现的问题。

3. 培养学生团队协作能力,分组合作完成课程设计。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学习热情。

2. 培养学生勇于尝试、不断探索的精神,提高创新意识。

3. 增强学生的环保意识,培养节能降耗的观念。

课程性质:本课程为实践性课程,以学生动手实践为主,结合理论讲解,培养学生对单片机应用的实际操作能力。

学生特点:学生已具备一定的电子基础知识,对单片机有一定了解,但编程实践能力较弱。

教学要求:注重理论与实践相结合,以学生为主体,充分调动学生的积极性,注重培养学生的动手能力和团队协作精神。

通过课程设计,使学生将所学知识应用于实际项目中,提高学生的综合能力。

二、教学内容1. 理论知识:- 单片机原理:介绍单片机的组成、工作原理及功能。

- C语言基础:回顾C语言的基本语法,重点讲解数据类型、运算符、控制结构等。

- 数字电路基础:回顾与心形灯电路相关的数字电路知识,如逻辑门、触发器等。

2. 实践操作:- 心形灯电路设计:讲解心形灯电路的原理,指导学生搭建心形灯电路。

- 单片机编程:教授学生编写控制心形灯的程序,实现心形灯的闪烁、渐变等效果。

- 调试与优化:指导学生进行程序调试,解决实际操作过程中遇到的问题。

3. 教学大纲:- 第一周:回顾单片机原理,学习C语言基础,了解数字电路基础知识。

- 第二周:学习心形灯电路设计,编写控制程序。

- 第三周:动手实践,搭建心形灯电路,调试程序。

- 第四周:优化程序,展示成果,进行课程总结。

心形流水灯设计报告

心形流水灯设计报告

山东英才学院51单片机课程设计心形流水灯学院信息工程学院专业班级本科电子信息工程学生姓名指导教师2019年04月02日设计要求:o设计一个用单片机控制的心形流水灯系统;o LED灯数量为32个;o可以实现循环点亮、依次熄灭的基本功能;o可以实现对角闪亮、间隔闪亮、顺时针闪亮、逆时针闪亮等多种功能(也可自行增加功能)。

学生需要完成的任务:完成心形流水灯电路设计,利用Keil软件编写程序,Proteus软件进行电路功能仿真,并将仿真结果采用录屏形式生成视频,视频类型建议用.mp4格式,大小不超过200M。

目录目录 (3)一、总体方案设计 ................................................................................................................. - 4 -1、单片机的选择 ........................................................................................................... - 4 -2、LED灯控制方式的比较与选择 ................................................................................ - 4 -3、硬件设计 ................................................................................................................... - 4 -二、电路原理图设计 ............................................................................................................. - 5 -1、时钟电路 ................................................................................................................... - 5 -2、复位电路 ................................................................................................................... - 5 -3、显示电路 ................................................................................................................... - 6 -4、电源电路 ................................................................................................................... - 7 -三、程序设计 ......................................................................................................................... - 9 -1、Keil 软件介绍 ........................................................................................................... - 9 -2、程序编写设计 ........................................................................................................... - 9 -3、程序调试 .................................................................................................................- 10 -4、电路功能仿真 .........................................................................................................- 11 - 附件: ...................................................................................................................................- 13 -1、程序代码: .............................................................................................................- 13 -2、小组成员任务分配表 .............................................................................................- 19 -时钟电路复位电路图1-3.1电 源一、总体方案设计1、单片机的选择单片机作为该电路的主要控制器芯片,是整个系统核心部分,主要负责控制LED 灯的亮灭变化的速度以及变化效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

井冈山大学机电工程学院单片机课程设计报告课程名称:单片机设计题目:心形流水灯*名:***专业:生物医学工程班级:11级医工本一班学号:*************:***2013年11月27日目录1引言 (2)1.1设计任务 (2)1.2设计要求……………………………………………… ..22 课题综述 (2)2.1课题的来源 (2)2.2面对的问题 (2)3 系统分析 (2)3.1 STC89C52单片机引脚图及引脚功能介绍 (2)4 系统设计 (4)4.1硬件设计 (4)4.1.1硬件框图 (4)4.1.2硬件详细设计 (5)4.2 软件设计 (5)4.3 硬件原理图 (6)4.4 元件清单 (6)4.5 硬件焊接图 (6)4.6 代码编写 (7)5心得体会 (7)6致谢 (8)参考文献 (8)1 引言单片机课程设计主要是为了让我们增进对STC89C51单片机电路的感性认识,加深对理论方面的理解。

了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。

另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。

1.1设计任务设计一个单片机控制的流水灯系统1.2设计要求(1)32个LED灯;(2)可实现多种的亮灯(如左循环,右循环,间隔闪,90度交叉闪等)。

2 课题综述2.1 课题的来源当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。

而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。

而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。

2.2 面对的问题这次课程设计是通过STC89C52位单片机实现。

但面对的问题却是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。

而更为严峻的就是设计的最后还要将软硬件相结合。

3 系统分析3.1 STC 89C52单片机引脚图及引脚功能介绍本次设计的目的在于加深STC89C52单片机的理解,首先来简单认识一下,它的引脚如图3-1所示:图3.1 STC89C52STC89C52引脚可以分为四个部分,各个引脚功能如下:主电源引脚(2根)•Vcc:电源输入,接+5V电源GND:接地线•外接晶振引脚(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.1硬件设计4.1.1.硬件框图按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。

STC89C52单片机是本次课程设计运用的主要原件。

流水灯控制设计是用一个带有32个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。

从原理图中可以看出,如果要让接在P1、P2、P3、P0口的LED亮起来,那么只要把P2、P1、P3、P0口的电平变为低电平就可以了;因此,要实现流水灯功能,我们只要将发光二极管LED1~LED32依次点亮、熄灭,32只LED灯便会一亮一暗的做流水灯了。

在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。

4.1.2.硬件详细设计(1)复位电路部分当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。

(2)晶振部分4.2 软件设计单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。

4.3 硬件原理图4.4 元件清单表4-1 元件清单元件名称型号数量(个)单片机STC89C52 1单片机芯片底座DIP40 1晶振12MHz 1瓷介电容30pF 2电解电容10uF 1按钮开关/ 2普通电阻10kΩ 1贴片电阻470 32发光二级管红色32电源+5V(VCC) 1USB连接线/ 1万能板9*15 14.5 效果实物图(1)背面实物图(2)正面实物图4.6代码编写#include <REGX52.H>#define uint unsigned int#define uchar unsigned charuchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)uchar i,j;uint tt=70;void delay(uint time) //延时函数{uint x,y;for(x=time;x>0;x--)for(y=110;y>0;y--);}void disp0() //状态0 所有LED闪烁3次{for(i=0;i<3;i++){P0=0x00; P2=0x00; P3=0x00; P1=0x00;delay(300);P0=0xff; P2=0xff; P3=0xff; P1=0xff;delay(300);}}void disp1() //状态1 LED顺时针转一圈{for(i=0;i<8;i++){P2=table1[i];delay(100);}P2=0xff;for(i=0;i<8;i++){P3=table1[i];delay(100);}P3=0xff;for(i=0;i<8;i++){P1=table1[i];delay(100);}P1=0xff;for(i=0;i<8;i++){P0=table0[i];delay(100);}P0=0xff;}void disp2() //状态2 LED逆时针转一圈{for(i=0;i<8;i++){P0=table1[i];delay(100);}P0=0xff;for(i=0;i<8;i++){P1=table0[i];delay(100);}P1=0xff;for(i=0;i<8;i++){P3=table0[i];delay(100);}P3=0xff;for(i=0;i<8;i++){P2=table0[i];delay(100);}P2=0xff;}void disp3() //状态3 4个LED同时顺时、逆时针移动1/4圈{for(i=0;i<8;i++){P0=table1[i];P1=table1[i];P2=table1[i];P3=table0[i];delay(100);}for(i=0;i<8;i++){P0=table0[i];P1=table0[i];P2=table0[i];P3=table1[i];delay(100);}P3=0xff; P0=0xff;}void disp4() //状态4 2个LED同时顺时针移动半圈{for(i=0;i<8;i++){P2=table1[i];P1=table1[i];delay(100);}P2=0xff; P1=0xff;for(i=0;i<8;i++){P3=table1[i];P0=table0[i];delay(100);}P3=0xff; P0=0xff;}void disp5() //状态5 2个LED同时逆时针移动半圈{for(i=0;i<8;i++){P0=table1[i];P3=table0[i];delay(100);}P0=0xff; P3=0xff;for(i=0;i<8;i++){P1=table0[i];P2=table0[i];delay(100);}P1=0xff; P2=0xff;}void disp6() //状态6 LED自上而下逐渐点亮(一半点亮一半不亮) {for(i=0;i<8;i++){P0=table3[i];P2=table3[i];delay(100);}P0=0xff; P2=0xff;for(i=0;i<8;i++){P1=table2[i];P3=table3[i];delay(100);}P1=0xff; P3=0xff;}void disp7() //状态7 LED自下而上逐渐点亮(直到全部点亮) {for(i=0;i<8;i++){P1=table3[i];P3=table2[i];delay(100);}for(i=0;i<8;i++){P0=table2[i];P2=table2[i];delay(100);}}void disp8() //状态8 间断8格的4个LED亮并逆时针旋转{for(j=0;j<2;j++){for(i=0;i<8;i++){P0=table1[i];P2=table0[i];P1=table0[i];P3=table0[i];delay(100);}P0=0xff; P2=0xff; P1=0xff; P3=0xff;for(i=0;i<8;i++){P0=table1[i];P2=table0[i];P1=table0[i];P3=table0[i];delay(100);}P0=0xff; P2=0xff; P1=0xff; P3=0xff;}}void disp9() //状态9 间断8格的4个LED亮,然后逆时针逐渐点亮(直到全部点亮){for(i=0;i<8;i++){P0=table3[i];P2=table2[i];P1=table2[i];P3=table2[i];delay(100);}delay(500);}void disp10() //状态10 从LED全部亮到全不亮(间断8格的4个LED 开始逆时针熄灭){for(i=0;i<9;i++){P0=table5[i];P2=table4[i];P1=table4[i];P3=table4[i];delay(100);}delay(300);}void disp11() //状态11 间断8格的4个LED亮并顺时针旋转{for(j=0;j<2;j++){for(i=0;i<8;i++){P0=table0[i];P2=table1[i];P1=table1[i];P3=table1[i];delay(100);}P0=0xff; P2=0xff; P1=0xff; P3=0xff;for(i=0;i<8;i++){P0=table0[i];P2=table1[i];P1=table1[i];P3=table1[i];delay(100);}P0=0xff; P2=0xff; P1=0xff; P3=0xff;}}void disp12() //间断8格的4个LED亮,然后顺时针逐渐点亮(直到全部点亮){for(i=0;i<8;i++){P0=table2[i];P2=table3[i];P1=table3[i];P3=table3[i];delay(100);}delay(1000);}void disp13() //状态13 从LED全部亮到全不亮(间断8格的4个LED 开始顺时针熄灭){for(i=0;i<9;i++){P0=table4[i];P2=table5[i];P1=table5[i];P3=table5[i];delay(100);}delay(300);}void disp14() //状态14 从LED不亮到全亮(从P0.0、P1.0、P2.0、P3.7开始逐步点亮){for(i=0;i<8;i++){P0=table2[i];P1=table2[i];P2=table2[i];P3=table3[i];delay(100);}}void disp15() //状态15 从LED全亮到全不亮(P0.7、P1.7、P2.7、P3.0逐步熄灭) {for(i=0;i<9;i++){P0=table5[i];P1=table5[i];P2=table5[i];P3=table4[i];delay(100);}delay(300);}void disp16() //状态16 LED灯交替闪烁(频率有慢变快){for(i=0;i<5;i++){P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(100);P0=~P0; P1=~P1; P2=~P2; P3=~P3;delay(100);}for(i=0;i<5;i++){P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(200);P0=~P0; P1=~P1; P2=~P2; P3=~P3;delay(200);}for(i=0;i<5;i++){P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(300);P0=~P0; P1=~P1; P2=~P2; P3=~P3;delay(300);}P0=0xff; P2=0xff; P1=0xff; P3=0xff;delay(300);}void disp17() //状态17从P0.7开始逆时针逐步点亮,(循环2次)并且速度会逐步提高{for(i=0;i<8;i++){P0=table3[i];delay(100);}for(i=0;i<8;i++){P1=table2[i];delay(100);}for(i=0;i<8;i++){P3=table2[i];delay(100);}for(i=0;i<8;i++){P2=table2[i];delay(100);}P0=0xff; P1=0xff; P3=0xff; P2=0xff;for(i=0;i<8;i++){P0=table3[i];delay(50);}for(i=0;i<8;i++){P1=table2[i];delay(50);}for(i=0;i<8;i++){P3=table2[i];delay(50);}for(i=0;i<8;i++){P2=table2[i];delay(50);}P0=0xff; P1=0xff; P3=0xff; P2=0xff;}void disp18() //状态18 LED从P0.7开始逆时针逐步点亮(每亮8位后就熄灭) {for(i=0;i<8;i++){P0=table3[i];delay(100);}P0=0xff;for(i=0;i<8;i++){P1=table2[i];delay(100);}P1=0xff;for(i=0;i<8;i++){P3=table2[i];delay(100);}P3=0xff;for(i=0;i<8;i++){P2=table2[i];delay(100);}P2=0xff;}void disp19() //状态19 LED从P2.7开始顺时针逐步点亮,(循环2次)并且速度会逐步提高{for(i=0;i<8;i++){P2=table3[i];delay(100);}for(i=0;i<8;i++){P3=table3[i];delay(100);}for(i=0;i<8;i++){P1=table3[i];delay(100);}for(i=0;i<8;i++){P0=table2[i];delay(100);}P0=0xff; P1=0xff; P3=0xff; P2=0xff;for(i=0;i<8;i++){P2=table3[i];delay(50);}for(i=0;i<8;i++){P3=table3[i];delay(50);}for(i=0;i<8;i++){P1=table3[i];delay(50);}for(i=0;i<8;i++){P0=table2[i];delay(50);}P0=0xff; P1=0xff; P3=0xff; P2=0xff;}void disp20() //状态20 LED从P2.7开始顺时针逐步点亮(每亮8位后就熄灭){for(i=0;i<8;i++){P2=table3[i];delay(100);}P2=0xff;for(i=0;i<8;i++){P3=table3[i];delay(100);}P3=0xff;for(i=0;i<8;i++){P1=table3[i];delay(100);}P1=0xff;for(i=0;i<8;i++){P0=table2[i];delay(100);}P0=0xff;}void disp21() //状态21 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=table1[i];P3=table0[i];delay(100);}P1=0xff; P3=0xff;for(i=0;i<8;i++){P0=table0[i];P2=table0[i];delay(100);}}void disp22() //装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低){for(j=0;j<5;j++){for(i=0;i<8;i++){P0=table1[i];P2=table1[i];delay(tt);}P0=0xff; P2=0xff;for(i=0;i<8;i++){P1=table0[i];P3=table1[i];delay(tt);}P1=0xff; P3=0xff;tt=tt-10;}for(j=0;j<16;j++) {for(i=0;i<8;i++){P0=table1[i];P2=table1[i];delay(20);}P0=0xff; P2=0xff;for(i=0;i<8;i++){P1=table0[i];P3=table1[i];delay(20);}P1=0xff; P3=0xff; }tt=20;for(j=0;j<5;j++){for(i=0;i<8;i++){P0=table1[i];P2=table1[i];delay(tt);}P0=0xff; P2=0xff;for(i=0;i<8;i++){P1=table0[i];P3=table1[i];delay(tt);}P1=0xff; P3=0xff;tt=tt+10;}tt=70;}void disp23() //状态23 LED上下交替闪烁{for(i=0;i<2;i++){P0=0x00; P2=0x00;delay(1000);P0=0xff; P2=0xff;P1=0x00; P3=0x00;delay(1000);P1=0xff; P3=0xff;}}void disp24() //状态24 LED左右交替闪烁{P1=0xff; P3=0xff; P0=0xff; P2=0xff;for(i=0;i<2;i++){P0=0x00; P1=0x00;delay(1000);P0=0xff; P1=0xff;P2=0x00; P3=0x00;delay(1000);P2=0xff; P3=0xff;}}void disp25() //状态25 LED交替闪烁{for(i=0;i<5;i++){P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(1000);P0=~P0; P1=~P1; P2=~P2; P3=~P3;delay(1000);}}void disp26() //状态26 2个LED开始上下移动半圈(LED不亮流水) {P0=0x00;P1=0x00;P2=0x00;P3=0x00;for(i=0;i<8;i++){P0=~table1[i];P2=~table1[i];delay(200);}P0=0x00; P2=0x00;for(i=0;i<8;i++){P1=~table0[i];P3=~table1[i];delay(200);}for(i=0;i<8;i++){P1=~table1[i];P3=~table0[i];delay(200);}P1=0x00; P3=0x00;for(i=0;i<8;i++){P0=~table0[i];P2=~table0[i];delay(200);}}void disp27() //状态27 逐步顺时针点亮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;{P0=table2[i];P3=table3[i];delay(100);}P0=0xff; P3=0xff;}}void disp28() //状态28 P1、P2和P0、P3交替闪烁{for(i=0;i<2;i++){P1=0x00; P2=0x00; P0=0xff; P3=0xff;delay(1000);P1=0xff; P2=0xff; P0=0x00; P3=0x00;delay(1000);}P1=0xff; P2=0xff; P0=0xff; P3=0xff;}void disp29() //状态29 逐步顺时针点亮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);}for(i=0;i<9;i++){P2=table5[i];P1=table5[i];delay(100);}for(i=0;i<8;i++){P0=table2[i];P3=table3[i];delay(100);}{P0=table4[i];P3=table5[i];delay(100);}}delay(200);}void disp30() //状态30 逐步逆时针点亮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=table2[i];P1=table2[i];delay(100);}P2=0xff; P1=0xff;for(i=0;i<8;i++){P0=table3[i];P3=table2[i];delay(100);}P0=0xff; P3=0xff;}}void disp31() //状态31 逐步逆时针点亮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=table2[i];P1=table2[i];delay(100);}for(i=0;i<9;i++){P2=table4[i];P1=table4[i];delay(100);}for(i=0;i<8;i++){P0=table3[i];P3=table2[i];delay(100);}for(i=0;i<9;i++){P0=table5[i];P3=table4[i];delay(100);}}delay(200);}void disp32() //状态32 LED自上而下逐步点亮,然后从下往上逐步熄灭{for(i=0;i<8;i++){P0=table3[i];P2=table3[i];delay(100);}for(i=0;i<8;i++){P1=table2[i];P3=table3[i];delay(100);}for(i=0;i<9;i++){P1=table5[i];P3=table4[i];delay(100);}for(i=0;i<9;i++){P0=table4[i];P2=table4[i];delay(100);}}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);}void main(){while(1){disp22(); //装态22 2个LED自上而下移动(循环5次,且频率渐快,到最快时持续循环16次,然后循环5次频率再逐渐降低)disp0(); //状态0 所有LED闪烁3次disp1(); //状态1 LED顺时针转一圈disp2(); //状态2 LED逆时针转一圈disp3(); //状态3 4个LED同时顺时、逆时针移动1/4圈disp4(); //状态4 2个LED同时顺时针移动disp5(); //状态5 2个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亮,然后逆时针逐渐点亮(直到全部点亮)disp10(); //状态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.心得体会由于本次课程设计含括了软件和硬件知识,所以在完成课程设计的同时也让我们了解到了我们在软硬件设计和制作方面的不足。

相关文档
最新文档