心形环绕流水灯系统的设计与实现毕业论文.doc_第1页
心形环绕流水灯系统的设计与实现毕业论文.doc_第2页
心形环绕流水灯系统的设计与实现毕业论文.doc_第3页
心形环绕流水灯系统的设计与实现毕业论文.doc_第4页
心形环绕流水灯系统的设计与实现毕业论文.doc_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

心形环绕流水灯系统的设计与实现毕业论文 目录1绪论11.1 设计目的及意义11.2 国内外市场研究概括12系统总体方案设计22.1总体设计目标22.2总体设计组成框图22.3方案选择与比较23相关软硬件功能介绍43.1单片机介绍及应用43.2 STC89C52芯片功能简介43.4 keil软件功能简介64软件程序设计部分84.1系统程序流程图85硬件设计部分95.1 Protel DXP电路板的设计95.2所用元器件清单115.3 单片机最小系统115.4心形流水灯的效果图126系统调试部分136.1 Keil的调试部分136.2 程序下载部分147电路板的制作及调试157.1 设计步骤及方法157.2 电路板焊接过程中的注意事项157.3 电路板调试及遇到问题的解决方案168总结17参考文献18致谢19 心形环绕流水灯系统的设计与实现1 心形环绕流水灯系统的设计与实现1绪论 1.1 设计目的及意义 随着现代科学技术的持续进步和发展和人们生活水平的不断提高,以大规模、超大规模集成电路为首的电子工艺技术的使用也越来越广泛,在日常生活中也普遍常见,结合单片机技术设计的电子电路也层出不穷,像是基于单片机技术设计的LED流水灯,也越来越满足商业空间的需求,LED灯的优点主要体现在高节能、绿色环保、无辐射、使用寿命长等,在商店、酒吧、歌厅、舞台等许多场所正是由于装饰LED彩灯来照明,来展示店铺主题形象,塑造空间光形象,从而使消费者产生共鸣和联想,来建立情感交流,来吸引和引导消费者的目光。 本文在结合单片机的基础上设计了心形环绕流水灯,心形环绕流水灯是结合单片机芯片的功能和一些原理,运用C语言来实现心形环绕流水灯的不同闪烁方式,在由慢到快,再由快到慢的循环往复变化中,给人带来美感。这篇文章主要讲述从方案设计到焊电路板的几个阶段,同时讲述了我怎样去分析解决问题的,也着重介绍了我所用到的相关软件、STC89C52芯片功能以及硬件软件的设计,并附有设计电路图、PCB仿真图、和实物效果图等。1.2 国内外市场研究概括 LED流水灯在国外,尤其是欧洲市场,由于人们的环保节能意识比较强,LED灯的销售和供应业比较强,因此技术发展得比较早,种类也十分齐全,其功能也比较完善。在国内,由于近几年来,社会发展的不断加快,生活水平的不断提高,人们对LED灯的消费需求也变得越来越供不应求,因此国内设计和销售LED流水灯的厂商比比皆是,像是深圳鼎立、深圳邦贝尔、上海来源等,但是所选的芯片都比较杂乱,由于近两年厂家数量的增多,整个行业价格竞争日益加剧。 21世纪社会发展日新月异,LED灯作为一种新型环保的绿色能源,必然成为新型光源必将成为未来社会发展的趋势,其技术工艺也随着竞争的加剧而日益成熟,但是质量有所下降,由于普及速度的加快,可见其具有广阔的市场与发展前景,研究并设计LED流水灯的电子工艺设计也日益增多。11 心形环绕流水灯系统的设计与实现 2系统总体方案设计2.1总体设计目标 结合C语言编程,使心形环绕LED流水灯实现42种不同形式的闪烁功能,由快到慢,再由慢到快,在循环往复不断的变化中,给人带来美的体验。2.2总体设计组成框图 STC89C52 心形流水灯 5V直流电压源 图2-1总体设计框图 2.3方案选择与比较2.3.1单片机芯片模块的比较与选择 主控制器芯片主要是负责控制LED灯的不同变化速度快慢以及变化效果。主控制器作为整个系统的控制核心部分,要求其功耗低、数据转换速率快。方案一:采用STC89C52单片机系统。STC89C52单片机是一种低耗、可编程、高性能8位微控制处理器,其内部包括微处理器、具有8K在系统可编程Flash存储器、 看门狗定时器、输入/输出口、中断系统等,其具有价格低廉、技术成熟、操作简单等特点,满足本系统的要求。方案二:选择TI公司生产的MSP430F149系列单片机系统。此款单片机具有低电压、超低功耗的特点,工作电压在3.6-1.8V之间,具有强大的功能和高效的运算处理能力。方案选择:由于STC89C52价格便宜,支持在线下载程序而且编程简单而MSP430F149系列单片机的功能已经远远高于我们本系统,操作不便,综合考虑,我们选择方案一。 1.3.2 LED灯控制方式比较与选择方案一:选用单片机I/O口一对一直接控制LED灯,正好控制32个LED灯。方案二:采用74HC573锁存器控制LED灯,当运用两片74HC573锁存器就可以控制32个LED灯只占用的单片机的10个I/O口,这样就减少的I/O口的数量。 为了操作方便,减少复杂的步骤,我们采取方案一。 3相关软硬件功能介绍3.1单片机介绍及应用 单片机是一种集成电路芯片的微控制器,它采用了大规模集成电路技术,在一块芯片上有数据处理能力的中央处理器(CPU)、随机存储器(RAM,内存)、只读存储器(ROM,硬盘)、/O 接口、中断系统、定时/计数器和串行接口等部件。 单片机在智能仪表、军事装置 、家用电器 、计算机的数据传输与网络通讯、以及医用设备和一些实时工业领域等领域中使用的越来越广泛,由于常被藏在设备的内部,所以这是一种被称为嵌入式的设计理念,多起到控制和测量的作用,这些机械装置一旦用上了单片机,都会被冠以“智能型、微电脑控制等标志,这些产品都会产生升级换代的效果。 基于单片机技术的系统开发过程主要包括程序编写(编译)、仿真调试、烧写(烧录、固化、下载)、硬件电路设计、等过程。 程序的编译多采用Keil软件运行和调试,以生成所需要的Hex文件,原理图的绘制过程多采用Protel DXP和Protel 99SE等软件,将所生成Hex格式的二进制烧写文件程序下载到单片机芯片中。 3.2 STC89C52芯片功能简介 STC89C52是STC公司生产的一种低功耗、高性能的微控制器,具有8K在系统可编程Flash存储器,其具有传统51单片机不具备的功能,使用经典的MCS-51内核,做了很多的改进,在单芯片上具有系统可编程的Flash,拥有灵巧的8位CPU,使得STC89C52为众多嵌入式控制应用系统处理的更为高效、灵活,STC89C 52具有以下标准功能:4个外部中断、全双工串行口、一个7向量4级中断结构、3个16位定时器/计数器、8K字节Flash、512字节RAM(随机存储器)、看门狗定时器,其12周期和6周期可以任意选择,其工作电压在3V-5.5V之间,工作频率在0-40MHZ,实际工作频率可达48MHZ。其封装的管脚图如图3-1所示。 图3-1 STC89C52 芯片管脚图下面介绍以下芯片管脚的一些功能:(1) 输入/输出引脚(P0口、P1口、P2口、P3口) P0口(P0.0-P0.7,共8条引脚,即39-32脚)一般I/O口引脚或数据/低位地址总线复用引脚。 P1口(P1.0-P1.7,共8条引脚,即18脚):一般I/O口引脚 。 P2口(P2.0-P2.7,共8条引脚,即21-28脚):作为一般输入输出引脚。 P3口(P3.0-P3.7,共8条引脚,即10-17脚):一般I/O引脚,P3口除了作为普通I/O口,还有第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(T0定时器的外部计数输入) P3.5 T1(T1定时器的外部计数输入) P3.6 /WR(外部数据存储器的写选通) P3.7 /RD(外部数据存储器的读选通) (2) 控制引脚 RESET/VPD(9脚)复位信号输入引脚/备用电源输入引脚。 PSEN(29脚)该脚是片外程序存储器的选通信号输出引脚。 EA/VPP(31脚)外部程序存储器访问允许控制引脚/片内编程电压输入引脚。 EALE/PROG(30脚)地址锁存运行信号输入引脚/编程脉冲输入引脚。 (3) 电源引脚(GND和VCC)GND(20脚)接地,VCC(40脚)正常操作接5V电源。(4) 外接晶体引脚 单片机XTAL1(19脚)和XTAL2(18脚)主要用来构成单片机的时钟电路部分。时钟电路用来产生单片机工作所需的时钟信号。 3.3 protelDXP软件功能简介 Protel DXP 是一款电子线路设计的自动化软件,是Altium公司于2002年下半年推出的,除了能给用户带来了焕然一新新的感觉,使用起来也是非常方便和简单。Protel DXP融合了设计输入仿真、拓扑自动布线、PCB绘制编辑、信号完整性分析和输出等技术,其设计风格十分完美,功能也是十分齐全,采用优化的设计浏览器,为用户提供全新的设计解决方案,集成了多种工具软件,主要可以分为四大部分:可编程逻辑门阵列(FPGA)设计系统:对于原理图和电路板设计系统来说,是一个相对比较独立的系统,用来设计数字电路。原理图设计系统。可以用来做电路仿真,也可以设计电路原理图。印刷电路板设计系统。用来设计印刷电路板的,将生成相关设计文件送至工厂去加工所设计完成的电路板。 这个印刷的电路板与原理图密切相关,它可以有设计好的电路原理图直接生成。硬件描述语言(VHDL)设计系统。在该设计系统中,可以用目前流行的VHDL语言开发可编程逻辑器件,并进行仿真分析。Protel DXP融入了新的功能:全新的设计方法、集成元件库、增强的自动布线器、增强的同步器功能、增强的编译功能。3.4 keil软件功能简介 C语言的编写和开发可以采用传统的VC6.0,也可以采用Keil软件,这是美国Keil Software公司开发的。它适合WindowsXP、win7等系统,具有可视化操作界面,使用方便简单,并且支持C51语言、汇编语言以及两者混合编程等多种方式的单片机设计,keilC 51在兼容标准C语言的基础上,又增加了很多与51系列单片机硬件相关的编译特性,其生成的程序代码运行的速度快,所需的存储器空间小。KeilC51已被完全集成到一个功能强大的全新集成环境,该开发环境集成了文件编译处理、编译链接、项目管理、工具引用、和仿真软件模拟器等多种那功能。 Keil C51软件具有丰富的库函数,同时也带有功能强大的集成开发调试工具,可以自动识别用汇编语言或者C语言编写的程序的语法错误;编译效率也极高,能将上述两类源文件编译为二进制机器语言代码,其软件调试仿真功能也很强大,能通过单步、设置断点等功能让编程者了解CPU正在进行的那条程序,并能监控各变量以及各寄存器是否符合编程者的要求。 4软件程序设计部分4.1系统程序流程图 本设计采用C语言编程,C语言功能丰富、表达能力强、通俗易懂,不仅具有高级语言的特点,也兼有低级语言的特点,与汇编语言相比更容易被广大读者所理解。本程序的设计先定义子函数,然后执行主函数,判断是否可以执行程序,因为判断是正确的,所以只要接上电源,程序就循环执行,再调用子函数执行程序,其设计流程图4-1所示。 开始 系统程序初始化 定义子函数 主函数是否可以执行? 是调用子函数执行程序 是 否 结束 图 4-1 程序设计流程图 60 心形环绕流水灯系统的设计与实现 5硬件设计部分5.1 Protel DXP电路板的设计电路板图的设计主要分为两大部分:原理图设计部分和电路板图设计部分(1) 原理图设计 1)原理图设计环境设置 绘制原理图之前要先对设计环境进行设置,以使设计环境适合自己的设计习惯及设计要求。主要包括图纸设计大小、捕捉的栅格、电气自动捕捉栅格等。 2)放置元件 载入元件库后,从元件库中选择所需元件,放置在图纸上,并修改元件属性。 3)原理图布线利用工具栏中的工具连接各元件的引脚,主要的连接方法包括导线和总线。对绘制好的原理图进行电气规则检查,对原理图进行编译、查找并修正错误。 根据需要生成各种不同的报表,其中有网络表、元件报表等。其原理图5-1所示。 图5-1电路设计原理框图(2) 电路板图设计 1)定义电路板定义电路板主要包括电路板设计环境的设置和电路板边框的定义。只有 先定义了电路板才能放置元件封装和铜膜线等主要设计对象,否则无法进行后续工作。 2)调入网络表由绘制好的原理图载入网络表文件,即将在原理图中的各元件及元件之间的关系载入到电路板图中,为后续工作做准备。 3)元件布局、布线将载入的元件封装根据所需在电路板范围内排列好位置。对电路板进行布局和布线设计规则的设置,然后进行布线。最后再利用DRC(设计规则检查)检查整个电路板。其生成的PCB电路板图如下: 图 5-2 PCB电路板图5.2所用元器件清单 表5-1 所用元器件清单元器件名数量(个)元器件名数量(个) 发光二极管32 导线2 电阻33 排针2 电容3 DIP40插座1 晶振1 电池3 5.3 单片机最小系统下面介绍的单片机的最小系统如图5-3所示。 图5-3 单片机最小系统图 单片机最小系统是指单片机正常工作的最基本外围配置,主要包括:时钟(晶体震荡)电路、复位电路、还有电源。 单片机最小系统是整个系统的关键,主要包括复位电路,时钟电路,时钟采用的是11.0592M的晶振,其运算速度可满足要求。单片机在可靠的复位之后,才会从0000H地址开始有序的执行程序。本系统保证了系统可靠的进行复位,同时具有一定的抗干扰的能力。 晶体振荡电路中利用XTAL1和XTAL2两个引脚外接晶体振荡器的内部时钟方式。图中C7和C8的作用是稳定频率和快速起振,典型值为30pf,当系统与PC通信时常采用11.0592MHz.5.4心形流水灯的效果图其心形流水灯设计的效果图如图5-4所示。 图5-4 电路的效果图 6系统调试部分6.1 Keil的调试部分 如果程序编写的正确,能够正确这行,就不用调试了,往往是发生错误,才用到调试程序的,程序的调试可以分为两种:模拟单片机执行指令的软件模拟调试,还有一种是硬件调试,需要配合计算机软件,需要将编好的程序配合计算机软件传输到仿真器中。 Keil的使用包括建立工程、写C源文件、连接工程、获得目标代码,调试的过程通过反复的调试才能解决源程序中存在的其他错误,调试过程还包括全速执行和单步执行。根据原理图的设计部分,运用Keil软件编写C语言程序进行调试,其程序调试的结果如下图所示: 图 6-1 Keil调试结果图上图表明程序正确,并顺利生成*hex文件。6.2 程序下载部分 安装完STC-ISP后,其下载步骤简略如下:先给单片机芯片供电,通过串口线将电脑与单片机系统连接,然后打开此软件设置好相应的COM口,选择STC89C52然后打开Keil软件中生成的*hex文件,直接点击Download下载,程序向单片机中下载,可以能清楚的看到。 注意如果程序有错误的话,会出现相应的提示信息,电源提供5V电压,开关关闭后系统断电。其程序下载框图如下图6-2所示。 图6-2程序下载界面一切准备无误后,点击Download下载,上图表明程序已成功下载到单片机中。 7电路板的制作及调试 7.1 设计步骤及方法首先,确定好原理图后,在protel99DXP软件上画好,并仿真;然后在keil软件上面,用C语言进行编程,把程序烧录录入芯片STC89C52上面,再焊接电路板。7.2 电路板焊接过程中的注意事项在焊接电路板时并非焊锡焊越多焊接的就越好,焊锡量要合适,焊接之前要选择电烙铁在合适的瓦数,在对电路原理图有充分的了解之后,才能焊接元器件, 焊接时一定要细心,最好开窗进行,因为焊接的气味对身体不好,还有注意元器件的方向例如二极管、电解电容都是有方向的,管脚剪切的要合适,为了确保焊接的质量,焊接元器件时一定要先固定一个引脚,然后调整元器件的位置及高低合适后,在焊接另外的引脚,以免焊歪。元器件在电路板上的插装应分布均匀,排列整齐美观,对于焊点要饱满光滑,成内弧状,焊锡要将整个上锡位置以及零部件位置包围,其焊接正反面如图7-1和7-2所示。 图 7-1 焊接反面图 图 7-2 焊接正面图7.3 电路板调试及遇到问题的解决方案 要想实现电路所要实现的功能,就要正确的焊接电路板,在确保正确无误的同时,实现焊接的美观。在焊接前,首先要对焊接的元器件做一下清点,以及检查一下购买的元器件有没有损坏,包括发光二极管、晶振、电阻等。 首先要对电路中的主要线路进行了测量,包括电源线,排线,芯片之间的连线,再就接上5V电源对电路中的功能进行检测。接通电源后,首先观察LED灯是否都亮,如果不亮,要分别每个LED灯是否虚焊了,如果灯亮,但是不按照所编的程序亮,这是要检查程序是否已经成功录入芯片,或者是否是程序出现错误,再或者是有些元器件管脚多了焊接时出现短路。 7.4 万用表的使用 检查电路是否虚焊,可以通过万用表来检查,因为一旦有出现电路断路或者短路现象,就会导致整个电路的设计错误,使用万用表,其中包括红黑表笔的解法,以及万用表的正确读数,都要做到准确无误,这样才可以确保整个焊接过程的更加顺利。 8 总结 经过这前前后后几个月的准备、思考、实施、总结,我终于成功的完成了这次毕业设计。纵观整个的设计过程,经常出现这样那样的困难,比如电路图画错、编程出现错误、软件不会使用、元器件虚焊断焊焊错,论文不知道怎样去写等,在这期间着实费了我不少时间,我还是努力认真的去学习检查和修改,虽然这个过程非常艰难,但还是值得我回味的。在整个毕业设计过程,我查阅了大量地相关书籍和文献资料,从中学习了一些单片机的工作原理以及怎样去设计一个电子电路,还参照了一些以前做过的课程设计。通过这次毕业设计,我不仅加深了对以前学过课本知识得以理解和应用,并且对于其在电路中的使用有了更多的认识。通过这次毕业设计原先有些课本上理论问题总是弄不懂,这次通过自己亲自动手去实践,以前很多问题就感觉通俗易懂了,此间还掌握了不少理论知识 。 认识来源于实践,只有通过实践才能得以检验自己所学的理论知识。 通过此次毕业设计,真正提高了自己的各项能力,比如独立思考解决问题的能力,与人协作的能力,亲自动手实践的能力,真正的提高了自己的实践技能,培养了自己的创新能力,为今后完成更高质量的项目打下基础。 参考文献1阎石.数字电子技术基础M,高等教育出版社,20052童诗白、华成英.模拟电子技术基础M,高等教育出版社,20063赵丽清、惠鸿忠.单片机原理与C51基础M,机械工业出版社,20124邱关源.电路第五版M,高等教育出版社,2006 5谭浩强.C语言程序设计M ,清华大学出版社 20056张娟等.Protel 电路设计教程,清华大学出版社 20107刘建军等.电子电工基础,人民邮电出版社 20118马双宝等.protel99se原理图与PCB设计 ,人民邮电出版社20119金炯泰译.如何使用keil8051 C编译器M北京航空航天大学出版社200210邓文华主编.数据结构(C语言)第3版,清华大学出版社 2011 致谢 这次毕业设计非常感谢刘老师在百忙之中抽出时间为我进行精心的指导,给我提出许多中肯切实可行的建议,还有同学们的协作,在他们的指导和帮助之下才使得我的论文在专业知识方面更加完善,可行性更强,最终才能圆满的完成任务,其次 ,也感谢学校和老师给我们提供这样一次锻炼成长的机会。大学四年的生活和学习即将结束,在这一过程中有过快乐,有过心酸,也有过汗水,一切都变成最美好的回忆,成为我人生奋斗路上走过的痕迹,最后也要感恩我的父母,他们这四年来默默的付出,如果没有他们,我也不可能顺利读完大学。在今后的奋斗路上,我会更加努力地朝着自己的梦想奋斗。 附录.程序代码#include #defineuintunsigned int#defineucharunsigned 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;x0;x-)for(y=110;y0;y-);void disp0()/状态0 所有LED闪烁3次for(i=0;i3;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;i8;i+)P2=table1i;delay(100);P2=0xff;for(i=0;i8;i+)P3=table1i;delay(100);P3=0xff;for(i=0;i8;i+)P1=table1i; delay(100);P1=0xff;for(i=0;i8;i+)P0=table0i;delay(100);P0=0xff;void disp2()/状态2 LED逆时针转一圈for(i=0;i8;i+)P0=table1i;delay(100);P0=0xff;for(i=0;i8;i+)P1=table0i;delay(100);P1=0xff;for(i=0;i8;i+)P3=table0i;delay(100);P3=0xff;for(i=0;i8;i+)P2=table0i;delay(100);P2=0xff;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=0xff; P0=0xff; void disp4()/状态4 2个LED同时顺时针移动半圈for(i=0;i8;i+)P2=table1i;P1=table1i;delay(100);P2=0xff; P1=0xff;for(i=0;i8;i+)P3=table1i;P0=table0i;delay(100);P3=0xff; P0=0xff;void disp5()/状态5 2个LED同时逆时针移动半圈for(i=0;i8;i+)P0=table1i;P3=table0i;delay(100);P0=0xff; P3=0xff;for(i=0;i8;i+)P1=table0i;P2=table0i;delay(100);P1=0xff; P2=0xff;void disp6()/状态6 LED自上而下逐渐点亮(一半点亮一半不亮)for(i=0;i8;i+)P0=table3i;P2=table3i;delay(100);P0=0xff; P2=0xff;for(i=0;i8;i+)P1=table2i;P3=table3i;delay(100);P1=0xff; P3=0xff;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=0xff; P2=0xff; P1=0xff; P3=0xff;for(i=0;i8;i+)P0=table1i;P2=table0i;P1=table0i;P3=table0i;delay(100);P0=0xff; P2=0xff; P1=0xff; P3=0xff;void 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=0xff; P2=0xff; P1=0xff; P3=0xff;for(i=0;i8;i+)P0=table0i;P2=table1i;P1=table1i;P3=table1i;delay(100);P0=0xff; P2=0xff; P1=0xff; P3=0xff;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);void 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=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(100);P0=P0; P1=P1; P2=P2; P3=P3;delay(100);for(i=0;i5;i+)P0=0xaa; P1=0xaa; P2=0xaa; P3=0xaa;delay(200);P0=P0; P1=P1; P2=P2; P3=P3;delay(200);for(i=0;i5;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 LED从P0.7开始逆时针逐步点亮,(循环2次)并且速度会逐步提高for(i=0;i8;i+)P0=table3i;delay(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=0xff; P1=0xff; P3=0xff; P2=0xff;/*/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=0xff; P1=0xff; P3=0xff; P2=0xff;void disp18()/状态18 LED从P0.7开始逆时针逐步点亮(每亮8位后就熄灭)for(i=0;i8;i+)P0=table3i;delay(100);P0=0xff;for(i=0;i8;i+)P1=table2i;delay(100);P1=0xff;for(i=0;i8;i+)P3=table2i;delay(100);P3=0xff;for(i=0;i8;i+)P2=table2i;delay(100);P2=0xff;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;delay(100);P0=0xff; P1=0xff; P3=0xff; P2=0xff;/*/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=0xff; P1=0xff; P3=0xff; P2=0xff;void disp20()/状态20 LED从P2.7开始顺时针逐步点亮(每亮8位后就熄灭)for(i=0;i8;i+)P2=table3i;delay(100);P2=0xff;for(i=0;i8;i+)P3=table3i;delay(100);P3=0xff;for(i=0;i8;i+)P1=table3i;delay(100);P1=0xff;for(i=0;i8;i+)P0=table2i;delay(100);P0=0xff;void disp21()/状态21 2个LED开始上下移动半圈for(i=0;i8;i+)P0=table1i;P2=table1i;delay(100);P0=0xff; P2=0xff;for(i=0;i8;i+)P1=table0i;P3=table1i;delay(100);for(i=0;i8;i+)P1=table1i;P3=table0i;delay(100);P1=0xff; P3=0xff;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+)P0=table1i;P2=ta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论