湖北文理学院理工学院课程单片机课程设计题目节日彩灯控制器设计专业通信工程姓名学号姓名学号姓名学号2015.6一、任务以单片机为核心,设计一个节日彩灯控制器。二、设计要求以单片机为核心,设计一个节日彩灯控制器,要求有四个控制按键:K1—开始,按此键则灯开始流动(两翼展开)。K2—停止,按此键则停止流动,所有灯为暗。K3—上,按此键则灯由上向下流动。K4—下,按此键则灯由下向上流动。11第1章绪论彩灯是我国普遍流行的传统的民间的综合性的工艺品。彩灯艺术也就是灯的综合性的装饰艺术。新中国成立后,彩灯艺术得到了更大的发展,特别是随着我国科学技术的发展,彩灯艺术更是花样翻新,奇招频出。而随着人们生活环境的不断改善和美化,在许多节日的气氛里可以看到彩色霓虹灯,这种LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。其将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一。在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。1LED彩灯控制器概述新型LED彩灯系统包括两大部分,即LED彩灯控制器(89C51主控模块)和LED彩灯管(管内LED板模块)。彩灯控制器是主控模块,具有按键、显示等功能,并利用89C51的P口输出控制信号;彩灯管是受控模块,上面焊有三色LED彩灯和信号驱动芯片,模块置于LED的透明管内。该LED彩灯控制器是一种基于STC89C51单片机的彩灯控制器,实现对LED彩灯的控制。其以STC89C51单片机作为主控核心,与键盘、显示、驱动等模块组成核心主控制模块。如果稍微改动控制电路,就可以改变电路的不同工作状态,控制彩灯变幻出不同的闪烁效果。2LED彩灯控制技术状况彩灯控制电路是由单元模块电路组合而成的,主要以STC89C51单片机为控制中心,并与按键控制电路、时钟电路、复位电路在直流稳压电路的相互作用下进而控制彩灯亮灭的顺序,从而实现多控制、多闪烁方式的LED彩灯循环。3本设计任务运用STC89C51单片机、发光二极管、电阻、电容、按键等元件组成LED节日彩灯控制电路中的按键控制电路、彩灯显示电路以及单片机最小系统等模块。并用Proteus等软件仿真,做出其电路仿真图。12第2章总体方案设计与论证通过查阅大量相关技术资料,并结合自己的实际知识,我主要提出了两种技术方案来实现系统功能。下面我将首先对这两种方案的组成框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述我最终选择方案的原因。1方案比较彩灯控制器大致可分为两种方案实现。一种是利用数字逻辑电路装置控制,另一种是采用单片机控制。1.1方案一根据设计任务要求介绍的彩灯控制电路的基本组成,可以确定彩灯控制器应由振荡电路、计数/时序分配电路、移位位寄存器和彩灯显示五部分组成。其框图如图2-1所示。图2-1方案一的原理框图1.2方案二本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。其硬件构成框图如图2-2所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED发光二极管和5V直流电源组成。13图2-2方案二的原理框图方案二:此设计方案中单片机的P1口接4路按键控制电路,实现彩灯花型的切换功能;单片机上的P2口接8路LED发光二极管组成彩灯电路,显示彩灯循环情况。2方案论证如果采用方案一,利用数字逻辑电路装置控制,其电路不是很复杂,制作相对较容易点,成本也相对较低,但可调性差,亮灯模式少而且样式单调,达不到设计任务要求或实现困难。而采用方案二,以单片机控制其优点是电路集成度高,工作原理简单,清晰明了,自定义编程,控制的图案花样多,移植性好等。3方案选择综上,显然方案二各方面优越于方案一,以及为了体现专业优势,本次设计采用第二种方案。14第3章系统硬件设计为使该LED节日彩灯控制系统具有更加好的方便性和灵活性,我们对系统的硬件做了精心设计。硬件电路包括直流电源电路、单片机最小系统、LED彩灯显示电路、按键控制电路等四大模块。STC89C51单片机的工作电压范围:4.0V—5.5V,所以通常给单片机外接5V直流电源。由于时间关系,此处用3节1.5V的干电池供电。1单片机最小系统设计要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。单片机最小系统如图3-2所示。时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。电路如图3-2所示。15图3-2单片机最小系统2LED彩灯显示电路设计LED彩灯显示电路实际上是由8个发光二极管和8个电阻构成的电路。发光二极管与电阻对应串联,然后接在与之相对应的P2口上。通过软件编程对P2口输出高低电平来实现不同的闪烁花型。由于发光二极管的导通电压一般为1.7V以上,另外,他的工作电流根据型号不同一般为1mA到30mA,电阻选择范围100欧姆~3千欧姆在此我们这里选用330欧姆的电阻。如图3-3所示。16图3-3LED彩灯显示电路3按键控制电路设计按键控制电路是由4个按键开关构成的。他们分别接在单片机AT89C51的P1接口Key1—Key4接在P1.6—P1.4,为了一对一的控制LED灯的闪烁方式。当按下开关Key1时,LED彩灯系统闪烁第一种彩灯花型。当按下开关Key2时,LED灯系统闪烁第二种闪烁方式,以此类推。如图3-4所示。17图3-4键盘控制电路第4章系统的软件设计单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到多控制、多闪烁方式的LED彩灯系统循环点亮的现象,我们还需要告诉单片机怎么样进行控制,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的明灭。软件编程是多控制、多闪烁方式的LED彩灯系统中的一个重要的组成部分,是本设计的重点和难点。下面,我将阐述多控制、多闪烁方式的LED彩灯系统是如何实现8个LED彩灯的循环点亮,来介绍实现流水彩灯控制的软件编程方法。1主程序设计程序启动时跳转到键盘判断模块程序中,此程序里面包含Key1-Key4的按键情况判断,循环检测直到有按键按下的时候,程序转去相对应按键的彩灯显示的花型模块,18图4主程序流程图第5章系统调试与测试结果分析5.1使用的调试工具及调试环境1调试工具本设计调试工具采用电脑、单片机仿真以及5V直流稳压电源。2调试环境地点:寝室室温:30℃2系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和19软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试,最后将各模块组合后进行整体测试。1硬件调试对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。通过kill软件烧录下载到硬件中验证功能。2软件调试软件调试采用单片机仿真器及微机,将编好的程序进行调试,主要是检查语法错误。3硬件软件联调将调试好的硬件和软件进行联调,主要调试系统的实现功能。3测试结果及状态分析此次系统设计结果较好,经Proteus软件仿真系统的调试,可检测出仿真电路正常;对应按键按下,彩灯出现不同花型,实现了多控制、多闪烁的LED彩灯循环;经以上仿真测试证实,本设计能实现设计系统要求的预期功能。结论本次课程设计以STC89C51单片机作为主控核心,按键控制电路、彩灯显示电路以及单片机最小系统等模块组成的核心主控制电路,利用软件编程烧录程序到单片机来实现对LED节日彩灯的控制。通过软硬件的仿真调试,对彩灯控制器的运行成果感觉比较满意,它实现了我们要求达到的目标,实现了多控制、多闪烁方式的LED节日彩灯循环,并且用快慢两种节拍实现花型交换。本系统亮灯模式多,可根据操作提示随意变换想要的闪烁方式。同时本设计具有电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,具有一定的实用和参考价值。但是在设计中也出现了一些问题:Proteus仿真软件不是很稳定,造成仿真页面奔溃,另外硬件调试程序时出现了延时问题等。这种都是以后的工作当中需要注意并解决的问题。110参考文献[1]刘宏.电子工艺实习,华南理工大学出版社,2011.[2]邓奕.电子线路CAD实用教程,华中科技大学出版社,2013[3]康华光.电子技术基础.高等教育出版社,2006.[4]手把手教你学51单片机C语言版,宋雪松,清华大学出版社。2010[5]C语言程序设计,谭浩强,清华大学出版社,2010附录1程序#includereg52.h#defineuncharunsignedchar#defineunitunsignedint#defineledP2sbitbutton1=P1^4;sbitbutton2=P1^5;sbitbutton3=P1^6;sbitbutton4=P1^7;voiddelaytime(){unsignedinti=7000,j=7000;while(i--);while(j--);}111voidmain(){unchari,j;uncharled1,led2;led=0x00;while(1){if(button1==0){while(button1==0);j=1;}if(button2==0){while(button2==0);j=2;}if(button3==0){while(button3==0);j=3;}if(button4==0){while(button4==0);j=4;}switch(j){case0x01:led=0x01;for(i=0;i8;i++){delaytime();led=led1;}break;case0x02:led=0x80;for(i=0;i8;i++){delaytime();led=led1;}break;case0x03:delaytime();led=0xff;break;112case0x04:led=0x19;led1=led&0x11;led2=led&0x12;for(i=0;i4;i++){delaytime();led1=led11;led2=led21;led=led1|led2;}break;}}}附录2硬件电路板113附录3功能实现图114附录4系统仿真电路图