1、 1、设计思路3 2、流程图.4四、硬件设计思路和电路图 71、设计思路 72、电路图分析 8六、心得与体会 13 附录:.14摘要 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯不断变化闪烁。LED灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED灯控制器大多数用全硬件电路实现。电路结构复杂、功能单一这样一旦制作成品只能按照固定的模式闪亮不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能
2、效果上看,亮灯模式少而且样式单调缺乏用户可操作性影响亮灯效果。因此有必要对现有的灯控制器进行改进。流水灯是一串按一定的规律像流水一样连续闪亮。流水灯控制是可编程控制器的一个应用(其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现(但对现代可编程控制器而言(利用移位寄存器实现最为便利。通常用左移寄存器实现灯的单方向移动,用双向移位寄存器实现灯的双向移动。本案例利用价格低廉的STC89C52RC系列单片机控制基色LED灯泡从而实现丰富的变化。关键词: STC89C52RC LED灯 单片机 花样流水灯一、课程设计的要求使用单片机设计一个流水灯控制系统,该控制系统可以实现以下要求LE
3、D灯按不同的花样和速度流动点亮,速度分九个等级,通过按键控制速度的加减,花样分五个种类,用按键控制加减,速度等级和花样种类通过数码管显示。二、总体方案分析 依照课程设计要求,分析设计方案。1、硬件方案分析1,系统电源电路设计方案A,使用LM317可调电压三段稳压芯片制作电源,但是我们系统供电电压为5V且LM317外围期间较多,生产成本变大。故不选择此方案B,使用7805三端稳压芯片制作电源,7805价格低廉外围器件少,稳压效果好输出电流最大可达1.5A,符合我们的需求,故使用此方案2,单片机最小系统设计方案A,使用STC89C52RC单片机,使用12Mhz晶振,设计按键复位电路,STC89C5
4、2RC单片机虽然也是51内核,但是片上资源有限B,使用STC89C52RC单片机,使用12Mhz晶振,设计按键复位电路,STC89C52RC单片机为增强型单片机,相同价格下更具优势,使用12Mhz晶振是为了精确计算延时。3,显示电路设计方案A,使用单片机引脚直接控制,这个方案比较占用单片机引脚,且驱动电流直接通过单片机,容易损坏或缩减单片机寿命。B,使用74LS164芯片以静态方式驱动数码管,此方案直接外部芯片驱动,单片机只需要两个引脚节约引脚,而且需要添加数码管不需要消耗新的引脚。4,流水灯显示方案设计A,使用专业LED灯驱动芯片,驱动LED,此方案成本高,不适合2、软件方案分析1,显示子程
5、序设计思路A,使用普通引脚模拟串口驱动164显示数码管,缺点是代码量较大,不方便B,使用单片机自带串行口驱动164显示数码管,使用引脚单独控制数码管公共端这样可以起消隐作用,防止数据传输时显示乱跳2,流水灯显示子程序设计思路A,使用算法移位等操作实现流水灯花样,缺点是移植性不好代码量较大,每一个花样都需要新的代码B,使用查表法实现流水灯,此方法只需一个查表程序,流水灯数组存在程序代码空间,可移植性好,方便编程,故选择这套方案。3,延时方式设计思路A,使用使用循环语句延时,此方法缺点是延时的时候无法检测到按键按下B,使用中断计数的方式延时,此方法灵活多变,不影响单片机主程序运行4,按键检测设计思
6、路A,在主循环里检测按键,当检测到按键按下延时10MS消抖,此方案堵塞单片机B,在中断检测按键,利用10ms定时中断检测按键,此方法灵活多变故选择此方案三、软件设计思路和流程图1:软件设计思路整个系统工作由软件程序控制运行,根据需要可以上电后系统经过初始化,进入用户设定模式状态。基于STC89C52RC单片机的灯控制方案实现对LED灯的控制。本方案以STC89C52RC单片机作为主控核心,与驱动等模块组成核心主控制模块。在主控模块上设有晶振电路和16个LED显示二极管,4个按键控制电路,及稳压控制电路。P0口和P2口控制流水灯,P1口控制按键,通过改变表头地址查表来根据需要编写若干种花样亮灯模
7、式,并采用中断方式,运用简单的数学逻辑法来改变各种亮灯时间的长短,达到在不同时刻输出灯亮或灯灭的控制信号。通过单片机的串行口来控制74HC164芯片控制数码管静态显示。软件资源分配:Key_Speed_Up BIT P1.0 ;速度按键加Key_Speed_Down BIT P1.1 ;速度按键减 Key_Pattern_UP BIT P1.2 ;花样按键加 Key_Pattern_Down BIT P1.3 ;花样按键减Display_Sel BIT P1.7 ;数码管公共端控制引脚 Flag_Display BIT 20H.0 ;数码管显示更新标志位Flag_Speed_Set BIT 2
8、0H.1 ;流水灯中断计数标志位Speed EQU 30H ;速度等级变量 Pattern EQU 31H ;花样类型变量 Ms100 EQU 32H ;100毫秒中断计数变量 MsX EQU 33H ;用于计算有多少个100毫秒2:流程图主循环流程图按键检测流程图更新显示程序流程图速度花样溢出处理程序流程图传送数码管段码到74LS164芯片子程序流程图中断计数程序流程图中断程序框架四、硬件设计思路和电路图1、硬件设计思路 实验使用STC89C52RC单片机,电源供电使用以7805为核心的线性稳压电源供电,为了计算方便,使用12Mh晶振搭建起振电路,其次四个控制按键从P1.0、P1.1、P1.
9、2、P1.3口输入,分别用来控制速度加减,花样加减。然后使用P0、P2口作为16个流水灯的输出口。 TXD、RXD作为显示串行输出。P1.7作为数码管公共端控制脚,作用是为了防止数码管数据更新时串行移位导致数码管短时间显示乱码,在送显之前先关掉公共脚,送显完毕再打开。 驱动数码管的芯片选择74ls16芯片,根据相应的连好线路图,其中单片机输出信号接74ls164的接收信号端,输出信号端接下一个驱动芯片的输入端,最后将所有的电源和地连接完毕,硬件设计部分就完成了。2、原理图流水灯模块电路电源电路震荡电路五、实验过程步骤1、编程在打开KEIL建立一个工程,建立一个以.ASM为后缀的文本并追加到新建
10、工程,编完程序进行编译组建成HEX文件。2、仿真调试 (1) 新建设计文档。在进入原理图设计之前首先要构思好原理图(即必须知道所设计的项目需要哪些电路来完成(用何种模板,然后在Proteus ISIS编辑环境中画出。 (2) 设置工作环境。根据实际电路的复杂程度来设置图纸的大小等。在电路图设计的整个过程中图纸的大小可以不断地调整。设置合适的图纸大小是完成原理图设计的第一步。 (3) 放置元器件。首先从添加元器件对话框中选取需要添加的元器件将其布置到 图纸的合适位置并对元器件的名称、标注进行设定,再根据元器件之间的走线等联系对元器件在工作平面上的位置进行调整和修改使得原理图美观、易懂。 (4)对
11、原理图进行布线。根据实际电路的需要利用Proteus ISIS编辑环境所提供的各种工具、命令进行布线(将工作平面上的元器件用导线连接起来(构成一幅完整的电路原理图仿真过程 Proteus仿真时单片机需要加载程序(加载程序为.HEX文件。本设计利用Keil 在新建Keil项目时选择AT89C51单片机作为CPU程序导入在“Options For Target”对话窗口中选中“Output”选项中的“Create HEX File”编译链接后就可以生成.HEX文件。在Proteus ISIS中选中AT89C52并单击鼠标左键对AT89C52进行设置设置单片机时钟频率为12MHz按照正确的文件路径加
12、载.HEX文件。对单片机设置完毕后就可以开始仿真了。六、心得与体会 此次单片机课程设计我学到了许多,第一次学会了软硬结合做一个项目出来,自我感觉非常自豪,但是由于自我能力的不足,我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源?懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。比如在设计显示程序时,一开始数码管的显示不全,然后就不断地调试延时程序,结果数字缺定在0不动,经过反复的调试终于将程序调试
13、成功。而且要学会拓展自己思路,一开始只做了一个速度显示,后来感觉挺好玩的,就做了花样显示。同时要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你思路,这样也为资料的保存和交流提供了方便。整个设计的过程中(还是碰到了一些问题 。比如对于键盘的延时防抖问题不能较好的解决,对于编程的顺序及各模块程序调用掌握得还不够好,对于一些相关的应用软件没能熟练掌握。通过这几天的反复思考,以及参考网上的程序最终还是完成了设计。设计中我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,在动手的过程中,不仅能增强实践能力而且在理论上可以有更深的认识 。近年来随着科技的
14、发展,单片机的应用正在不断走向深入,同时带动传统控制检测日新月异更新,在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象点的软件结合加以完善。流水灯可以更简单、方便的使用。通过本课程设计使学生进一步巩固单片机原理及应用的基本概念、基本理论分析问题的基本方法,增强系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力。培养一定的自学能力和独立分析问题、解决问题的能力(能通过独立思考、查阅工具书、参考文献等寻找解决方案。附录1程序清单 Key_Speed_Up BIT P1.0 Key_Speed_Down BIT P1.1 Key_Pattern_UP BIT P1.2 Key_Pattern_Down BIT P1.3 Display_Sel BIT P1.7 ;数码管的公共端控制脚,因为使用74LS164驱动,所以要控制公共端消隐