单片机技术课程设计彩灯控制器的设计.docx
- 文档编号:9793645
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:30
- 大小:584.11KB
单片机技术课程设计彩灯控制器的设计.docx
《单片机技术课程设计彩灯控制器的设计.docx》由会员分享,可在线阅读,更多相关《单片机技术课程设计彩灯控制器的设计.docx(30页珍藏版)》请在冰豆网上搜索。
单片机技术课程设计彩灯控制器的设计
电气信息学院
单片机技术课程设计报告
课题名称彩灯控制器的设计
专业班级09电气01班
学号0903120222
学生姓名严娟
指导教师易先军
评分
2012年6月12日至6月19日
课程设计量化评分标准
指标
分值
评分要素
得分
方案设计
20
方案选择合理,分析、设计正确,原理清楚,电路、程序流程图清晰,结构合理,程序简洁、正确。
设计报告
20
报告结构严谨,逻辑严密,论述层次清晰,语言流畅,表达准确,重点突出,报告完全符合规范化要求,用计算机打印成文。
调试与结果
20
过程清晰,调试方案设计合理,测试点选择适当,程序编写正确,调试步骤清楚。
电路及程序运行结果正确,达到预期效果。
工作态度
20
工作量饱满程度,题目难度;工作态度,按时完成设计任务,是否独立完成等。
答辩成绩
20
思路清晰;语言表达准确,概念清楚,论点正确;分析归纳合理,结论严谨;回答问题有理论根据,基本概念清楚。
总评成绩
指导老师评语:
答辩记录
1、例举设计过程中遇到的问题及其解决方法(至少两例)。
答:
(1)问题说明:
解决方法:
(2)问题说明:
解决方法:
2、教师现场提的问题记录在此(不少于2个问题)。
答:
摘要
本文介绍了一种简易LED彩灯控制系统的软硬件设计过程,本方案以AT89C51单片机作为主控核心,按键控制电路、彩灯显示电路以及单片机最小系统等模块组成的核心主控制电路。
利用软件编程烧录程序到单片机来实现对LED彩灯进行控制,本系统亮灯模式多,用户根据操作提示可以随意变换想要的闪烁方式和控制彩灯的闪烁频率,还可以全自动运行。
系统利用汇编语言开发,并在软硬件设计中分别使用了Proteus、keilC51开发平台。
本系统具有电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,具有一定的实用和参考价值。
关键词:
单片机;LED彩灯;汇编语言;Proteus;keilC51;
目 录
第1章 设计任务
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响彩灯效果,因此有必要对现有的彩灯控制器进行改进。
1.基本要求
(1)用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭;
(2)可以用输入按钮在几种灯光效果间切换;
(3)可以通过按钮暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果。
2.选做
(1)增加自动在几种效果间切换的功能,并设置一个按钮可以在自动模式和手动模式间切换。
(2)使用定时中断延时
(3)实现其他除1~5中提到的功能(创新部分)
3.设计提示
(1)LED可以采用共阳极或共阴极接法直接接在并行口,也可以用8255扩展更多的小灯。
(2)多种效果可以放在不同的子程序空间中,主程序通过散转来访问不同的子程序段。
(3)暂停效果可用中断,或定时扫描实现。
第2章设计方案
2.1 设计方案
彩灯控制器大致可分为两种方案实现。
一种是利用电子电路装置控制,另一种是采用单片机控制。
方案一:
根据设计任务要求介绍的彩灯控制电路的基本组成,可以确定彩灯控制器应由振荡电路、计数/时序分配电路、移位位寄存器和彩灯显示五部分组成。
其框图如图1所示。
方案二:
本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。
其硬件构成框图如图2所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED发光二极管和5V直流电源电路组成。
图2 单片机彩灯循环控制系统硬件框图
此设计方案中单片机的P1口接7路按键控制电路,实现彩灯花型的切换、自动与手动的切换及暂停功能
;单片机的P3.7引脚接上一个按钮开关以实现对彩灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P0和P2口接16路LED发光二极管组成彩灯电路,显示彩灯循环情况。
2.2 方案选择
结合设计任务书比较以上两种方案可知:
利用电子电路装置控制,其电路不很复杂,制作相对较容易点,成本也相对较低,但可调性差,亮灯模式少而且样式单调,达不到设计任务要求或实现困难。
采用单片机控制其优点是电路集成度高,工作原理简单,清晰明了,自定义编程,控制的图案花样多,移植性好等。
综上,显然方案二各方面优越于方案一,以及为了体现专业优势,本次设计采用第二种方案。
第3章 硬件设计
3.1 直流稳压电源电路
对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。
电子设备除用电池供电外,还采用市电(交流电网)供电。
通过变压、整流、滤波和稳压后,得到稳定的直流电。
直流稳压电源是电子设备的重要组成部分!
本项目直流稳压电源为+5V。
如下图所示:
直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。
下图稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。
图3 三端固定式集成稳压电源电路图
AT89C51单片机的工作电压范围:
4.0V—5.5V,所以通常给单片机外接5V直流电源。
由于时间关系,此处用3节1.5V的干电池供电,在此不在赘述此稳压电源电路图原理。
3.2 单片机最小系统
单片机最小系统是能够让单片机工作的最小硬件电路。
除单片机外,一般单片机最小系统包括单片机的供电电路、时钟电路和复位电路等。
单片机最小系统如下图4所示。
时钟电路:
为单片机工作提供基本时钟,因为单片机内部由大量的时序电路构成,没有时钟脉冲即“脉搏”的跳动,各个部分将无法工作。
本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。
电路如下图所示。
图4 单片机最小系统
3.3 LED彩灯显示电路
LED彩灯显示电路(如图所示)实际上是由16个发光二极管和16个电阻构成的电路。
发光二极管与电阻对应串联,然后接在与之相对应的P0和P2口上。
P0口作为通用的I/O接口使用时,需外接10k欧姆的上拉电阻。
通过软件编程对P0和P2口输出高低电平来实现不同的闪烁花型。
由于发光二极管的导通电压一般为1.7V以上,另外,他的工作电流根据型号不同一般为1mA到30mA,电阻选择范围100欧姆~3千欧姆。
在此我们这里选用300欧姆的电阻。
在此次课程设计中,我设计了四种花型:
花型1:
D1-D2-D3-D4……D14-D15-D16-D1D5D9D13-D1D2D5D6D9D10D13D14-D1D2D3D5D6D7D9D10D11D13D14D15-全亮-全灭;
花型2:
D1-D3-D5……D13-D15-D16-D14-D12……D4-D2-全亮-全灭-全亮-全灭;
花型3:
D1D9-D2D10-D3D11……D7D15-D8D16-全灭-D1D2D3D4D9D10D11D12-D5D6D7D8D13D14D15D16-全灭;
花型4:
D1D16-D2D3D14D15-D4D5D6D11D12D13-全亮-全灭-D8D9-D6D7D10D11-D3D4D5D12D13D14-全亮-全灭;
图5 LED彩灯显示电路
3.4 按键控制电路
按键控制电路(如图6所示)是由7个按键开关构成的。
K1—K5接在P1.0—P1.4,K6接到P3.7,K7接到P3.2引脚。
K1—K4实现一对一的控制LED灯的闪烁方式,K5实现自动到手动的切换,K6控制LED灯的闪烁频率,K7实现暂停功能。
图6 键盘控制电路
当按下开关K1时,LED彩灯系统闪烁第1种彩灯花型;
当按下开关K2时,LED彩灯系统闪烁第2种闪烁方式;
当按下开关K3时,LED彩灯第3种方式闪烁;
当按下开关K4时,LED彩灯系统闪烁第4种花型;
当按下开关K5时,LED彩灯系统按照方式1-方式2-方式3-方式4循环闪烁,且只要K5是接通的,手动按键K1-K4均不起作用。
只有当K5弹起时,才能实现手动控制;
当按下开关K6时,LED彩灯将改变闪烁频率;
当按下开关K7时,LED彩灯系统将暂停运行,全部的灯都被点亮;K7弹起后,系统继续之前的运行状态。
第4章 软件设计
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到多控制、多闪烁方式的LED灯系统循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来控制发光二极管的亮灭。
软件编程是多控制、多闪烁方式的LED灯系统中的一个重要的组成部分,是本设计的重点和难点。
下面,我将阐述多控制、多闪烁方式的LED灯系统是如何实现16个LED灯的循环点亮,来介绍实现流水灯控制的软件编程方法。
本设计是以单片机AT89C51为核心控制16个发光二极管4种闪烁方式的变换。
硬件电路如图附录1所示,16个发光二极管D1-D16分别接在单片机的P0.0-P0.7和P2.0-P2.7接口上。
当给P0.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。
可以运用输出端口指令MOVP0,A或MOVP0,#DATA,只要给累加器值或常数值,同理,其他15个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED16依次点亮、熄灭,16只LED灯便会一亮一暗的成流水灯了。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到闪烁效果。
4.1 主程序设计
主程序设计流程如图7所示。
在系统的程序设计中,主控模块只负责根据消息调用相应模块的处理函数,具体如何处理这些消息由各功能模块中的对应程序决定。
程序启动时跳转到键盘判断模块程序中,此程序里面包含K1~K5的按键情况判断,循环检测直到有按键按下的时候,程序转去相对应按键的彩灯显示的花型模块。
对应的主程序代码如下:
MAIN:
SETBIT0
SETBEX0
SETBEA
MOVP1,#0FFH
MOVA,P1
AUTO:
JBP1.4,S1
LCALLK1
S1:
JBP1.0,S2
LCALLK1
S2:
JBP1.1,S3
LCALLK2
S3:
JBP1.2,S4
LCALLK3
S4:
JBP1.3,MAIN
LCALLK4
LJMPMAIN
4.2 自动模式程序设计
要实现通过一个按钮在自动模式和手动模式间切换的功能,首先想到的便是调用各个按键子程序。
但若不对程序进行适当的修改,按键按下后将一直调用第一个彩灯显示子程序,因而只能显示一种花型,无法实现自动循环显示四种花型。
因此,我对每个彩灯显示子程序中都作了一定的修改。
对应的源代码如下:
K1:
……
JNBP1.4,K2
LJMPMAIN
K2:
……
JNBP1.4,K3
LJMPMAIN
K3:
……
JNBP1.4,K4
LJMPMAIN
K4:
……
LJMPMAIN
如此,当自动按键按下时,系统跳到子程序K1,显示完第一种花型后,只要按键还是按下的,系统便会跳到子程序K2,显示第二种花型……以此类推,这样,便实现了自动模式与手动模式间的切换。
4.3 延时程序设计
由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,在控制二极管亮灭的时候为了看到闪烁效果,应该延时一段时间。
延时子程序代码:
DELAY:
JNBP3.7,DE1
MOVR5,#5
LJMPDE2
DE1:
MOVR5,#10
DE2MOVR6,#200
DE3:
MOVR7,#126
DE4:
DJNZR7,DE4
DJNZR6,DE3
DJNZR5,DE2
RET
本文除了实现基本的延时功能外,还有通过按键来选择不同的闪烁频率的功能。
不接通K6时,P3.7为高电平,延时时间为0.5s,当K6按下时,P3.7变为低电平,延时时间为1s,实现了在不同闪烁频率间的切换。
4.3 中断子程序设计
为了实现暂停功能,需利用单片机的外部中断实现。
当有中断请求即K7按下时,系统跳入中断服务子程序。
在中断服务子程序中,首先关中断,再将ACC和PSW的值压入堆栈,实现现场保护,然后再进行中断处理,即点亮所有的LED彩灯。
只要K7是接通的,彩灯就一直点亮,只有当取消中断请求时,系统才能跳转到原来的程序中继续运行。
中断服务子程序代码:
INT:
CLREA
PUSHACC
PUSHPSW
MOVA,R5
PUSHACC
LOOP:
MOVP0,#00H
MOVP2,#00H
JBP3.2,LOOP1
SJMPLOOP
LOOP1:
MOVP0,#0FFH
MOVP2,#0FFH
POPACC
MOVR5,A
POPPSW
POPACC
SETBEA
RETI
第5章仿真与性能分析
5.1系统仿真过程
PROTEUS软件自带编辑器,可以实现对汇编程序的编译,其操作步骤是:
1新建源文件:
点菜单Source→Add/RemovesourceFiles在出现的对话框中,选择ASEM51编辑器,新建.asm源文件。
2程序设计:
点菜单Source→.asm打开源文件编辑器,将将附录程序输入到文本中。
3源程序编译:
点菜单Source→BuildALL编译汇编源程序,生成目标代码文件.HEX,若编译失败,可对程序进行修改调试直至编译成功。
4目标代码加载:
在PROTEUS编辑环境双击AT89C51,弹出如图8所示的对话框,在PROGRAMFILE一栏中单击打开按钮,选中.HEX文件。
在CLOCKFREQUENCY栏中设置系统工作频率为12MHZ,单击OK完成目标代码加载。
5最后,点击运行按钮,启动系统仿真。
图8程序代码加载
5.2仿真结果与分析
系统上电自动复位,彩灯全灭,K1接通后,彩灯首先依次点亮,然后再四种颜色各点亮1盏、2盏……其结果如图9所示。
K2接通后,序号为奇数的彩灯首先依次点亮,再反向点亮序号为偶数的彩灯,接着全部的彩灯闪烁两次。
其仿真结果如图10所示。
K3接通后,P0口和P2口分别顺次点亮彩灯,然后蓝色和绿色的彩灯全部点亮,再把红色和黄色的灯也全部点亮。
其仿真结果如图11所示。
K4接通后,P0口从最低位开始点亮1盏、2盏、3盏彩灯,P2口从最高位开始点亮1盏、2盏、3盏彩灯,然后彩灯全部点亮,再反过来P0口从最高位开始点亮1盏、2盏、3盏彩灯,P,2口从最低位开始点亮1盏、2盏、3盏彩灯,最后全部点亮又全部熄灭。
其仿真结果如图12所示。
K5为自动与手动的切换按键,K5接通时,系统自动重复显示这四种花型。
K6为切换延时时间的按键,K6接通时,彩灯闪烁变慢。
K7为暂停按键,K7接通时,不管系统在何种状态运行,彩灯都会全部点亮,再次按下K7,系统跳转到原来的程序继续执行。
图9K1仿真图
图10K2仿真图
图11K3仿真图
图12K4仿真图
经过仿真分析,该系统能实现预先设置的所有功能,是一个成功的设计。
第6章设计小结
本次课程设计以AT89C51单片机作为主控核心,按键控制电路、彩灯显示电路以及单片机最小系统等模块组成的核心主控制电路,利用软件编程烧录程序到单片机来实现对LED节日彩灯的控制。
通过软硬件的仿真调试,对彩灯控制器的运行成果感觉比较满意,它实现了要求达到的目标——多控制、多闪烁方式的LED彩灯循环,并且用快慢两种节拍实现花型交换。
本系统亮灯模式多,可根据操作提示随意变换想要的闪烁方式和控制彩灯的闪烁频率。
同时本设计具有电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,具有一定的实用和参考价值。
然而,在本次课程设计中,我也发现了一些问题。
如K1按下后,倘若再按下K2或K3、K4,系统都没有反应,依然执行K1子程序。
原因在于主程序中已经设定了优先级,只要K1是接通的,无论怎么改变K2、K3、K4的状态,系统都不会响应。
因此要想实现特定的功能,必须保证这四个按键只有相对应的那个按键是接通的,否则有可能会出错。
参考文献
[1]秦实宏,徐春辉.MCS-51单片机原理及应用[M].武汉:
华中科技大学出版社,2010.
[2]吴飞青,丁晓,李林功等.单片机原理与应用实践指导[M].北京:
机械工业出版社,2009.
[3]江世明.基于Proteus的单片机应用技术[M].北京:
电子工业出版社,2009.
[4]李响初,阙爱仁,李喜初等.实用电子控制线路200例[M].北京:
中国电力出版社,2009.
附录1 LED彩灯控制系统仿真电路图
附录2 LED彩灯彩灯控制程序代码
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT
ORG0040H
MAIN:
SETBIT0
SETBEX0
SETBEA
MOVP1,#0FFH
MOVA,P1
AUTO:
JBP1.4,S1
LCALLK1
S1:
JBP1.0,S2
LCALLK1
S2:
JBP1.1,S3
LCALLK2
S3:
JBP1.2,S4
LCALLK3
S4:
JBP1.3,MAIN
LCALLK4
LJMPMAIN
K1:
MOVR2,#08H
MOVA,#0FEH
A1:
MOVP0,A
LCALLDELAY
RLA
DJNZR2,A1
MOVP0,#0FFH
MOVR2,#08H
MOVA,#0FEH
B1:
MOVP2,A
LCALLDELAY
RLA
DJNZR2,B1
MOVP2,#0FFH
MOVP0,#0EEH
MOVP2,#0EEH
LCALLDELAY
MOVP0,#0CCH
MOVP2,#0CCH
LCALLDELAY
MOVP0,#88H
MOVP2,#88H
LCALLDELAY
MOVP0,#00H
MOVP2,#00H
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
LCALLDELAY
JNBP1.4,K2
LJMPMAIN
K2:
MOVR2,#04H
MOVA,#0FEH
A2:
MOVP0,A
LCALLDELAY
RLA
RLA
DJNZR2,A2
MOVP0,#0FFH
MOVR2,#04H
MOVA,#0FEH
B2:
MOVP2,A
LCALLDELAY
RLA
RLA
DJNZR2,B2
MOVR2,#04H
MOVA,#7FH
C2:
MOVP2,A
LCALLDELAY
RRA
RRA
DJNZR2,C2
MOVP2,#0FFH
MOVR2,#04H
MOVA,#7FH
D2:
MOVP0,A
LCALLDELAY
RRA
RRA
DJNZR2,D2
MOVP0,#00H
MOVP2,#00H
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
LCALLDELAY
MOVP0,#00H
MOVP2,#00H
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
LCALLDELAY
JNBP1.4,K3
LJMPMAIN
K3:
MOVR2,#08H
MOVA,#0FEH
A3:
MOVP0,A
MOVP2,A
LCALLDELAY
RLA
DJNZR2,A3
MOVP0,#0FFH
MOVP2,#0FFH
LCALLDELAY
MOVP0,#0F0H
MOVP2,#0F0H
LCALLDELAY
MOVP0,#0FH
MOVP2,#0FH
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
LCALLDELAY
JNBP1.4,K4
LJMPMAIN
K4:
MOVP0,#0FEH
MOVP2,#7FH
LCALLDELAY
MOVP0,#0F9H
MOVP2,#9FH
LCALLDELAY
MOVP0,#0C7H
MOVP2,#0E3H
LCALLDELAY
MOVP0,#00H
MOVP2,#00H
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
LCALLDELAY
MOVP0,#7FH
MOVP2,#0FEH
LCALLDELAY
MOVP0,#9FH
MOVP2,#0F9H
LCALLDELAY
MOVP0,#0E3H
MOVP2,#0C7H
LCALLDELAY
MOVP0,#00H
MOVP2,#00H
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
LJMPMAIN
INT:
CLREA
PUSHACC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 技术 课程设计 彩灯 控制器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)