彩灯控制器.docx
《彩灯控制器.docx》由会员分享,可在线阅读,更多相关《彩灯控制器.docx(14页珍藏版)》请在冰豆网上搜索。
![彩灯控制器.docx](https://file1.bdocx.com/fileroot1/2022-11/28/68e8d6f3-6b79-4714-9450-f49017ab6f1c/68e8d6f3-6b79-4714-9450-f49017ab6f1c1.gif)
彩灯控制器
单片机课程设计(论文)
题目:
彩灯控制器
院(系)工业中心
专业机械设计制造及其自动化
班级116001
姓名郭帆魏鹏飞
导师王党利
2014年7月
1设计任务
1.1设计目的
通过课程设计使我们进一步掌握单片机基础课程的有关知识,通过查阅资料,阅读程序,提高设计程序的能力及动手能力,使编程水平有一定的提高,同时也提高了我们通过动手进行硬件设计及程序设计的能力,从而提高解决实际问题的能力。
1.2基本要求
1.用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭;(30)
2.可以用输入按键在几种灯光效果间切换;(20)
3.可以通过输入按键暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果。
(15)
4*增加自动在几种效果间切换的功能,并设置一个按键可以在自动模式和手动模式间切换。
(10)
5*使用定时中断延时(5)
6@实现其他除1~5中提到的功能(创新部分)(20)
设计提示:
LED可以采用共阳极或共阴极接法直接接在并行口,也可以用8255扩展更多的小灯。
多种效果可以放在不同的子程序空间中,主程序通过散转来访问不同的子程序段。
暂停效果可用中断,或定时扫描实现。
2设计方案
彩灯控制器大致可分为两种方案实现。
一种是利用电子电路装置控制,另一种是采用单片机控制。
方案一:
根据设计任务要求介绍的彩灯控制电路的基本组成,可以确定彩灯控制器应由振荡电路、计数/时序分配电路、移位位寄存器和彩灯显示五部分组成。
其框图如图1-1所示。
图1-1 彩灯循环控制器硬件框图
方案二:
本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。
其硬件构成框图如图1-2所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED发光二极管和9V直流电源电路和供市电彩灯工作的220V交流电源组成组成。
图1-2 单片机彩灯循环控制系统硬件框图
此设计方案中单片机的P1.0到P1.5口接5路按键控制电路,实现彩灯花型的切换功能;单片机上的P0和P2口接十六路市电彩灯电路,显示彩灯循环情况。
结合设计任务书比较以上两种方案可知:
利用电子电路装置控制,其电路不很复杂,制作相对较容易点,成本也相对较低,但可调性差,亮灯模式少而且样式单调,达不到设计任务要求或实现困难。
采用单片机控制其优点是电路集成度高,工作原理简单,清晰明了,自定义编程,控制的图案花样多,移植性好等。
综上,显然方案二各方面优越于方案一,以及为了体现专业优势,本次设计采用第二种方案。
3硬件设计
3.1总体方案
下图为彩灯控制器的基本原理图,如图3-1所示,以单片机为控制中心,在将单片机芯片装上之前就把程序写入到芯片中。
,当电源接通知后,按下S9,单片机的电路复位,此时若按下S1,则为自动交替花样循环;若按下S1则手动控制,再在S2~S8六种不同的花样中选择一种中花样。
同时数码显示管会显示出我们是采用的手动选择还是自动循环及所选用的是花样几。
这都是由单片机根据我们选择的情况而调用相应的程序。
最后再通过8550的开关作用及MAC97A6双向可控硅的的控制,实现彩灯模块花样的变化。
图3-1硬件原理图
3.2单元电路设计
3.2.1直流稳压电源
对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。
电子设备除用电池供电外,还采用市电(交流电网)供电。
通过变压、整流、滤波和稳压后,得到稳定的直流电。
直流稳压电
源是电子设备的重要组成部分!
本项目直流稳压电源为+5V。
如图3-2所示。
图3-2直流电源电路
3.2.2单片机最小系统
要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。
单片机最小系统如图3-3所示。
时钟电路:
本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用方式为上电自动复位功能。
电路如下图所示。
图3-3单片机最小系统
3.2.3按键控制电路
按键控制电路(如图3-4所示)是由8个按键开关构成的。
他们分别接在单片机AT89S52的P1.0到P1.5口,D1,D2用于显示所选为手动花样切换还是自动花样切换,按键S2~S8为手动花样选择键,数码管显示花样方式,由于P3口得电流过小,不足以驱动数码管,所以加上拉电阻。
当按下键时,单片机会根据所按下的键调用相应的程序来实现高低电平的转换,从而使数码管显示按键信息及实现对彩灯的控制。
图3-4 按键控制电路
3.2.4LED显示电路
市电彩灯显示电路(如图3-5所示),是由16个25W市电彩灯、32个电阻、及8550和MAC97A6构成的电路。
8550起开关作用,为使市电彩灯能正常工作,在J1口接入220V的交流电源。
8550的基极对应的接到单片机的P0及P2端口。
通过软件编程对P0及P2口输出高低电平来实现不同的闪烁花型。
图3-5LED显示电路
4软件设计
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到多控制、多闪烁方式的LED灯系统循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现市电彩灯的明灭。
软件编程是多控制、多闪烁方式市电彩灯灯系统中的一个重要的组成部分,是本设计的重点和难点。
下面,我将阐述多控制、多闪烁方式的LED灯系统是如何实现6种不同的花样变化的。
Y
Y
N
N
图4-1键盘子程序流程图
2
1
图4-2按键功能子程序流程
Y
N
图4-3监控程序流程图
本设计是以单片机80c51为核心控制16个LED的6种不同的花样的变换。
硬件电路如图附录1所示,16个LED相当于分别接在单片机的P0.0-P0.7及P2.0~P2.7接口上,当端口输出“1”时,8550相当于开关处于导通状态,使LED通电。
当输出“0”时,LED灯熄灭。
程序启动时跳转具体程序流程图4-1(键盘子程序流程图)、如图4-2(按键功能子程序流程)和图4-3(监控程序流程)所示。
5设计小结
经过努力,我们组终于完成这次数字彩灯的课程设计任务。
我们首先查阅了大量的书本资料,接着又上网搜集了许多有用信息。
但最终还是在易老师的指导下将方案的大致方向确定了下来。
方案确定下来之后我们便开始计算一些器件的参数。
当最终的方案设计出来以后,我们便又请教了学院的几位老师,他们的一个小小指点就给我们很大启示和灵感,不管是对我们的原理图的设计还是程序方面都提出了许多有价值的建议,在此易老师表示热烈感谢。
由于每一步都是我们自己亲自做过的,所以通过这次课程设计,我们增强了对单片机的理解,;进一步提高分析解决实际问题的能力,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。
由于我们的能力和水平有限,实验过程过于简陋,实验经验尚浅,错误之处在所难免,恳请老师加以纠正,以后不断学习改进!
附录一原理图
附录二程序
键盘子程序清单:
ORG
KEYSCAN:
MOVP1,#3CH
MOVA,P1
ANJA,#3CH
CJNE#3CH,KEY1
LJMPKEYEND
KEY1:
LCALLDEL12
MOVA,#3EH
KEY2:
MOVR2,A
MOVP1,A
MOVA,P1
ANJA,#3CH
CJNEA,#3CH,KEY3
MOVA,#3DH
MOVR2,A
MOVP1,A
ANJA,#3CH
CJNEA,#3CH,KEY3
LJMPKEYEND
KEY3:
MOVB,#OFBH
RLA
RLA
KEY4:
RLCA
INCB
JCKEY4
MOVA,R2
KEY5:
RRCA
ANCB
ANCB
ANCB
ANCB
JCKEY5
KEY6:
MOVA,#3CH
CJNEA,#3CH,KEY6
LCALLDEL12
LCALLOPREAT
KEYEND:
RET
按键功能子程序清单:
ORG0200H
OPRET:
MOVA,B
RLA
MOVDPRT,#7ABLE1
JMP@A+DPTR
TABLE1:
AJMPK0
AJMPK0
AJMPK1
AJMPK2
AJMPK3
AJMPK4
AJMPK5
AJMPK6
AJMPK7
K0:
MOVR3,#00H
LJMPOPR
K1:
MOVR3LJMPOPK2:
MOVR3,#02H
LJMPOPR
K3:
MOVR3,#03H
LJMPOPR
K4:
MOVR3,#04H
LJMPOPR
K5:
MOVR3,#05H
LJMPOPR
K6:
MOVR3,#06H
LJMPOPR
K7:
MOVR3,#07H
LJMPOPR
OPR:
MOVA,R3
ADDA,R4
R(L)A
MOVDPTR,#TABLE2
JMP@A+APTR
TABLE2:
AJMPKK0
AJMPKK1
AJMPKK2
AJMPKK3
AJMPKK4
AJMPKK5
AJMPKK6
AJMPKK7
KKO:
MOVDPTR,#TAB41
SJMPOPREND
KK1:
MOVDPTR,#TAB42
SJMPOPREND
KK2:
MOVDPTR,#TAB43
SJMPOPREND
KK3:
MOVDPTR,#TAB44
SJMPOPREND
KK4:
MOVDPTR,#TAB81
SJMPOPREND
KK5:
MOVDPTR,#TAB82
SJMPOPREND
KK6:
MOVDPTR,#TAB83
SJMPOPREND
KK7:
MOVDPTR,#TAB84
SJMPOPREND
OPPEND:
MOVR,#OOH;将灯光数据表索引值寄存器清零
RET
监控程序清单:
ORG0000H
MOVP0,#0FFH
MOVP1,#00H
MOVP2,#00H
MOVP3,#04H
MOVP4,#50H
MOVSP,#04H
MOVDPTR,#TAB81H
ATSRT:
MOVA,R
MOVCA,@A+DPTR
CJNEA,#0D3H,DJSP
MOVR1,#00H
SJMPSTART
DISP:
MOVP0,A
INCR1
LCALLKEYSCAN
LCALLDISPDEL
SJMPSTART:
显示延时子程序
ORG0300H
DISPDEL:
MOVR5,30H
DISPDEL1:
MOVR6,#0FAH
DISPDEL2:
MOVR7,#OFAH
DISPDEL3:
DJNER7,DISPDEL3
DJNER6,DISPDEL2
DJNER5,DISPDEL1
RET
按键去抖动延时子程序
ORG0350H
DEL12:
MOVR6,#1EH
DEL2:
MOVR7,#64H
DELT:
DJNER7,DEL1
DJNER7,DEL1
DJNER7,DEL1
RET
各路数据表:
4路模式1灯光数据表:
TAB41:
DB0DFH,0EFH,0FTH,0FBH,0FTH,0EFH,0DFH,0FFH,DB0BFH,0CFH,0C7H,0C3H,0FBH,
0F3H,0C3H,0FFH
DB0D7H,0EBH,0D7H,0EBH,0FFH,0C3H,0FFH,0D3H
4路模式2灯光数据表:
TAB42:
DB0DFH,0EFH,0F7H,0FBH,0F7H,0EFH,0D3H,
4路模式3灯光数据表:
TAB43:
DB0DFH,0CFH,0C7H,0C3H,0FFH,
DB0FBH,0F3H,0E3H,0C3H0FFH,OD3H
4路模式4灯光数据表:
TAB44:
DBOD7H,OEBH,0D3H
8路模式1灯光数据表:
TAB81:
DB0E7H,0DBH,0BDH,7EH,0BDH,ODBH,0E7H,0FFHG,DB0E7H,OC3H,81H,00H,00H,81H,
0C3H,OE7H,0FFH,0D3H,
8路模式2灯光数据表:
TAB82:
DB7FH,0BFH,ODFH,OEFH,OF7H,0FBH,0FBH,0FDH,0FEH
DB7EH,OBEH,0DEH,0EEH,0F6H,0FAH,0FCH
DB7CH,OBCH,0DCH,0ECH,0F4H,0F8H
DB78H,0B8H,0DBH,0E0H,60H,OAOH,OCOH,40H,80H,00H,0D3H
8路模式3灯光数据表:
TAB83:
DB7FH,3FH,1FH,0FH,07H,03H,01H,001H
DB01H,03H,07H,0FH,1FH,3FH,7FH,OFFH,0D3H,
8路模式4灯光数据表:
TAB84:
DB0AAH,55H,0D3H