节日彩灯控制器设计 1DOC.docx
《节日彩灯控制器设计 1DOC.docx》由会员分享,可在线阅读,更多相关《节日彩灯控制器设计 1DOC.docx(16页珍藏版)》请在冰豆网上搜索。
节日彩灯控制器设计1DOC
宿州学院
微机应用课程设计报告
课题名称:
节日彩灯控制器设计
专业:
电气工程及其自动化
班级:
10电气
(1)班
姓名:
舒杰
学号:
2010080451
地点:
工C310
时间:
2013.5.27-2013.5.31
指导老师:
李文艺李娜汪材印
目 录
摘 要1
第1章 方案设计2
1.1 设计方案2
1.2 方案选择3
第2章 硬件设计4
2.1 直流稳压电源电路4
2.2 单片机最小系统4
2.3 LED节日彩灯显示电路5
2.4 按键控制电路6
2.5 串口电路7
第3章 软件设计9
第4章 系统仿真调试11
4.1 系统仿真11
4.2 仿真调试11
总 结13
参考文献14
附录1 节日彩灯控制器仿真电路图15
附录2 节日彩灯控制器控制程序代码16
摘 要
近年来LED技术的发展引起了国内外光源界的普遍关注,现已成为极具有发展前景和较高影响力的高新技术产品。
与此同时,各种与LED相关的电子产品不断涌现在市场上。
本文介绍了一种简易LED节日彩灯控制器的软硬件设计过程,本方案以AT89C51单片机作为主控核心,按键控制电路、彩灯显示电路以及单片机最小系统等模块组成的核心主控制电路。
利用软件编程收录程序到单片机来实现对LED节日彩灯进行控制,本系统亮灯模式多,用户根据操作提示可以随意变换想要的闪烁方式和控制彩灯的闪烁频率。
本系统具有电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,具有一定的实用和参考价值。
关键词 LED节日彩灯;彩灯控制系统;闪烁方式
第1章 方案设计
随着人们生活水平的提高和生活质量的改善,在充满浓郁都市气息的大城市中可以看到各种各样的彩色霓虹灯。
LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等优势而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响彩灯效果,因此有必要对现有的彩灯控制器进行改进。
1.1 设计方案
彩灯控制器大致可分为两种方案实现。
一种是利用电子电路装置控制,另一种是采用单片机控制。
方案一:
根据设计任务要求介绍的彩灯控制电路的基本组成,可以确定彩灯控制器应由振荡电路、计数/时序分配电路、移位位寄存器和彩灯显示五部分组成。
其框图如图1-1所示。
方案二:
本方案主要是通过对基于单片机的多控制、多闪烁方式的LED节日彩灯循环系统的设计,来达到本设计的要求。
其硬件构成框图如图1-2所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED发光二极管和5V直流电源电路组成。
图1-2 单片机彩灯循环控制系统硬件框图
此设计方案中单片机的P1口接5路按键控制电路,实现彩灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对彩灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成彩灯电路,显示彩灯循环情况。
1.2 方案选择
结合设计任务书比较以上两种方案可知:
利用电子电路装置控制,其电路不很复杂,制作相对较容易点,成本也相对较低,但可调性差,亮灯模式少而且样式单调,达不到设计任务要求或实现困难。
采用单片机控制其优点是电路集成度高,工作原理简单,清晰明了,自定义编程,控制的图案花样多,移植性好等。
综上,显然方案二各方面优越于方案一,以及为了体现专业优势,本次设计采用第二种方案。
第2章 硬件设计
2.1 直流稳压电源电路
对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。
电子设备除用电池供电外,还采用市电(交流电网)供电。
通过变压、整流、滤波和稳压后,得到稳定的直流电。
直流稳压电源是电子设备的重要组成部分!
本项目直流稳压电源为+5V。
如下图所示:
直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。
下图稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。
图2-1 三端固定式集成稳压电源电路图
AT89C51单片机的工作电压范围:
4.0V—5.5V,所以通常给单片机外接5V直流电源。
由于时间关系,此处用3节1.5V的干电池供电,在此不在赘述此稳压电源电路图原理。
2.2 单片机最小系统
要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。
单片机最小系统如下图2-2所示。
时钟电路:
本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。
电路如下图所示。
图2-2 单片机最小系统
2.3 LED节日彩灯显示电路
LED节日彩灯显示电路(如图所示)实际上是由8个发光二极管和8个电阻构成的电路。
发光二极管与电阻对应串联,然后接在与之相对应的P2口上。
通过软件编程对P2口输出高低电平来实现不同的闪烁花型。
由于发光二极管的导通电压一般为1.7V以上,另外,他的工作电流根据型号不同一般为1mA到30mA,电阻选择范围100欧姆~3千欧姆在此我们这里选用560欧姆的电阻。
图2-3 LED节日彩灯显示电路
2.4 按键控制电路
按键控制电路(如图2-4所示)是由6个按键开关构成的。
他们分别接在单片机AT89C51的P1接口和P3.0口,Key1﹍Key5接在P1.0﹍P1.4,Key6接在P3.7上。
为了一对一的控制LED灯的闪烁方式。
当按下开关Key1时,LED节日彩灯系统闪烁第一种彩灯花型。
当按下开关Key2时,LED节日彩灯系统闪烁第二种闪烁方式……
当闭合Key6时,彩灯闪烁节拍变慢。
图2-4 键盘控制电路
2.5 串口电路
串口电路为单片提供与PC机连接端口,为单片机提供下载程序到单片机程序存储器中。
串口原理图如图2-5所示。
串口也称串行通信接口,RS-232是目前最常用的一种串行通讯接口,由于其形状和针脚数量的原因,其接头又被称为DB9接头。
RS-232针脚定义:
2RXD←ReceiveData接收数据、3TXD→TransmitData发送数据、5GND—SystemGround系统接地,一般就用到这几个引脚。
图2-5 串口原理图
MAX232芯片是专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
MAX23内部结构基本可分三个部分:
第一部分是电荷泵电路:
由1、2、3、4、5、6脚和4只电容构成,功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道:
由7、8、9、10、11、12、13、14脚构成两个数据通道,其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道,8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出
第三部分是供电:
15脚DNG、16脚VCC(+5v)。
在此,本系统的硬件电路已经全部设计完毕。
第3章 软件设计
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到多控制、多闪烁方式的LED灯系统循环点亮的现象,我们还需要告诉单片机怎么样进行控制,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的明灭。
软件编程是多控制、多闪烁方式的LED灯系统中的一个重要的组成部分,是本设计的重点和难点。
下面,我将阐述多控制、多闪烁方式的节日彩灯系统是如何实现8个LED灯的循环点亮,来介绍实现流水灯控制的软件编程方法。
本设计是以单片机AT89C51为核心控制8个发光二极管5种闪烁方式的变换。
硬件电路如图附录1所示,八个发光二极管D1-D8分别接在单片机的P2.0-P2.7接口上,当给P2.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。
可以运用输出端口指令MOVP0,A或MOVP0,#DATA,只要给累加器值或常数值,同理,接在P2.1~P2.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的成流水灯了。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到闪烁效果。
程序设计流程如图3-1。
程序启动时跳转到键盘判断模块程序中,此程序里面包含Key1~Key5的按键情况判断,循环检测直到有按键按下的时候,程序转去相对应按键的彩灯显示的花型模块,与此同时,当按键Key6有闭合时,程序中调用延时程序程序时,给延时参数赋值上另一个值,是延时程序延时时间发生改变,以达到不同快慢节奏闪烁的彩灯。
具体程序流程如下图所示。
第4章 系统仿真调试
4.1 系统仿真
本设计使用的KeilC51软件来进行编程。
KeilC51提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
图4-1 仿真电路图
4.2 仿真调试
本系统的调试是把在Keil里面写好的程序通过编译不出现任何错误后将生成的后缀名为.HEX的文件加载到AT89C51单片机中。
接下来我们将在PROTEUS软件进行软硬件结合的调试。
图4-2程序编译
下面是在PROTEUS软件仿真系统中的调试结果,如表4-1:
表4-1 测试结果及状态分析
序号
测试项目
测试方法
测试结果
状态分析
1
是否能正常工作
打开仿真电路图,加载程序,点击开始运行。
无任何错误提示
仿真电路正常
2
彩灯花型控制
运行仿真,随机按下任意按键,观察彩灯显示效果。
对应按键按下,彩灯出现不同花型。
本设计实现了多控制、多闪烁的节日彩灯循环。
3
节奏快慢控制
按闭合Key6,观察彩灯循环跳动节奏
当闭合Key6时,彩灯循环闪烁变慢。
本设计实现了用快慢两种节拍实现花型交换。
经以上仿真上测试证实,能实现本设计系统要求的预期的功能。
总 结
通过这几天的单片机的实训,我们把以前学过的很多知识都运用到了,对所学知识起到了一个串联的作用,使我们更加清晰的了解我们专业的应用范围,同时也深刻的体会到我们欠缺的很多,还需要继续学习。
设计过程中出现的问题层出不穷,经过老师的指导都能一一得到解决,使我们学到了很多的实际应用型知识。
主要的问题处在对知识掌握的不牢固上,对很多元件了解的太浅,所以在选择器件时经常出现失误。
另一个就是电路图的设计,因为实际操作的机会很少,所以在设计电路图的过程中很多实际的问题没有考虑进去,从而使电路图看起来没有实际应用性。
不论是书本上的,还是实际操作中的知识,都在这次设计中得到了一个实践的过程。
不仅能从中学到很多新知识,更重要的是在以前理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用。
实训锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,让我受益匪浅,同时也暴露出一些平时学习上的问题,让我深刻反思。
这些问题的发现将为我以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。
通过实训,让我懂得了如何编写一些简单的程序,学会了如何制作单片机应用程序,并且可以在今后的日常生活中灵活运用。
由于时间仓促及自身专业知识的不足,整篇论文肯定存在尚未发现的缺点和错误,恳请老师批评指正。
参考文献
[1] 张毅刚.单片机原理及应用.北京:
高等教育出版社,2011
[2] 杨素成.模拟电子技术基础简明教程.北京:
高等教育出版社,2010
[3] 彭虎.微机原理与接口技术.北京:
电子工业出版社,2011
[4]赵春华、张学军.Multisim9电子技术基础仿真实验.北京:
机械工业出版社,2007
附录1 节日彩灯控制器仿真电路图
附录2 节日彩灯控制器控制程序代码
ORG0000H
LJMPMAIN
ORG0040H
MAIN:
MOVP1,#0FFH
MOVA,P1
CJNEA,#11111110b,S1
LCALLK1
S1:
CJNEA,#11111101b,S2
LCALLK2
S2:
CJNEA,#11111011b,S3
LCALLK3
S3:
CJNEA,#11110111b,S4
LCALLK4
S4:
CJNEA,#11101111b,MAIN
LCALLK5
LJMPMAIN
K1:
MOVA,#01111111b
C1:
RLA
MOVP2,A
LCALLDelay
JNBP1.1,K2
JNBP1.2,K3
JNBP1.3,K4
JNBP1.4,Z
LJMPC1
K2:
MOVP2,#0FEH
LCALLDelay
MOVP2,#0FCH
LCALLDelay
MOVP2,#0F8H
LCALLDelay
MOVP2,#0F0H
LCALLDelay
MOVP2,#0E0H
LCALLDelay
MOVP2,#0C0H
LCALLDelay
MOVP2,#80H
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#80H
LCALLDelay
MOVP2,#0C0H
LCALLDelay
MOVP2,#0E0H
LCALLDelay
MOVP2,#0F0H
LCALLDelay
MOVP2,#0F8H
LCALLDelay
MOVP2,#0FCH
LCALLDelay
MOVP2,#0FEH
LCALLDelay
MOVP2,#0FFH
LCALLDelay
LJMPMAIN
Z:
LJMPK5
K3:
MOVP2,#55H
LCALLDelay
MOVP2,#0AAH
LCALLDelay
MOVP2,#0FFH
LJMPMAIN
K4:
MOVP2,#01111110B
LCALLDelay
MOVP2,#00111100B
LCALLDelay
MOVP2,#00011000B
LCALLDelay
MOVP2,#00000000B
LCALLDelay
MOVP2,#10000001B
LCALLDelay
MOVP2,#11000011B
LCALLDelay
MOVP2,#11100111B
LCALLDelay
MOVP2,#11111111B
LCALLDelay
LJMPMAIN
K5:
MOVP2,#01111110B
LCALLDelay
MOVP2,#10111111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10011111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10001111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000011B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000001B
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#0FFH
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#0FFH
LCALLDelay
LJMPMAIN
Delay:
JNBP3.0,D1
movr5,#01h
LJMPD5
D1:
MOVr5,#04h
D5:
movr6,#0ffh
D6:
movr7,#0ffh
D7:
nop
djnzr7,D7
djnzr6,D6
djnzr5,D5
ret
END