Tutor:
ChenZhengtao
【Abstract】Inrecentyears,thelightsforlandscaping,lightingcityhasunderstimatestheimportantrole.According,asthecitylightsofanIncreasingdemandfordecoratedwithcoloredlights,thetechnologyandsynchronizedmoreisalsohigh.ThevariousstylesonthemarketatpresentLEDlightsmostlyadoptsfullhardwarecircuitimplementation,existingcircuitiscomplex,singlefunctionetclimitations,soitisnecessarytoimprovetheexistinglightscontroller.ThispaperintroduesakindofsimpleLEDlightscontrolsystemwiththehardwareandsoftwaredesignprocessm89-S52microcontrollerasthemasterAT-coreandauxiliaryhardwarecircuitrandthesoftwarerealizecombiningofLEDlightsforcontrol.Thissystemhasacircuititsimpleinstructure,easyforoperation,hardwareandlowcostsless.
【Keywords】LEDlights。
AT-89S52。
Lightscontroller
1前言
本次电彩灯控制器使用220v的交流电源电源,采用变压器将220v的高压电转化为9v的低压直流电对单片机供电,通过单片机电路的控制实现彩灯彩灯的花样变化及对彩灯花样切换的控制。
其主要以AT-89S52单片机为控制中心,再加上MAC97A6、S8550、按键、数码管、电阻、电容这些器件组成一个彩灯控制电路,操作简单,接通电源即可工作。
具有电路结构简单、操作容易、硬件少、等特点。
下面主要我们针对我们设计的彩灯控制器的功能、原理、设计思路、调试等方面做了个系统的介绍。
2彩灯控制器系统方案的选择
彩灯控制器大致可分为两种方案实现。
一种是利用电子电路装置控制,另一种是采用单片机控制。
方案一:
根据设计任务要求介绍的彩灯控制电路的基本组成,可以确定彩灯控制器应由振荡电路、计数/时序分配电路、移位位寄存器和彩灯显示五部分组成。
其框图如图1-1所示。
图1-1 彩灯循环控制器硬件框图
方案二:
本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。
其硬件构成框图如图1-2所示,以单片机为核心控制,由单片机最小系统<时钟电路、复位电路、电源)、按键控制电路、LED发光二极管和9V直流电源电路和供市电彩灯工作的220V交流电源组成组成。
图1-2 单片机彩灯循环控制系统硬件框图
此设计方案中单片机的P1.2到P1.7口接8路按键控制电路,实现彩灯花型的切换功能;单片机上的P0和P2口接十六路市电彩灯电路,显示彩灯循环情况。
结合设计任务书比较以上两种方案可知:
利用电子电路装置控制,其电路不很复杂,制作相对较容易点,成本也相对较低,但可调性差,亮灯模式少而且样式单调,达不到设计任务要求或实现困难。
采用单片机控制其优点是电路集成度高,工作原理简单,清晰明了,自定义编程,控制的图案花样多,移植性好等。
综上,显然方案二各方面优越于方案一,以及为了体现专业优势,本次设计采用第二种方案。
3硬件电路设计
3.1总体方案
下图为彩灯控制器的基本原理图,如图3-1所示,以单片机为控制中心,在将单片机芯片装上之前就把程序写入到芯片中。
,当电源接通知后,按下S9,单片机的电路复位,此时若按下S1,则为自动交替花样循环;若按下S1则手动控制,再在S2~S8六种不同的花样中选择一种中花样。
同时数码显示管会显示出我们是采用的手动选择还是自动循环及所选用的是花样几。
这都是由单片机根据我们选择的情况而调用相应的程序。
最后再通过8550的开关作用及MAC97A6双向可控硅的的控制,实现彩灯模块花样的变化。
图3-1硬件原理图
3.2单元电路设计
3.2.1直流稳压电源
对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。
电子设备除用电池供电外,还采用市电<交流电网)供电。
通过变压、整流、滤波和稳压后,得到稳定的直流电。
直流稳压电源是电子设备的重要组成部分!
本工程直流稳压电源为+5V。
如图4-1所示。
图4-1直流电源电路
3.2.2单片机最小系统
要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。
单片机最小系统如图4-2所示。
时钟电路:
本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用方式为上电自动复位功能。
电路如下图所示。
图4-2单片机最小系统
3.2.3按键控制电路
按键控制电路<如图4-3所示)是由8个按键开关构成的。
他们分别接在单片机AT89S52的P1.2到P1.7口,D1,D2用于显示所选为手动花样切换还是自动花样切换,按键S2~S8为手动花样选择键,数码管显示花样方式,由于P3口得电流过小,不足以驱动数码管,所以加上拉电阻。
当下一键时,单片机会根据所按下的键调用相应的程序来实现高低电平的转换,从而使数码管显示按键信息及实现对彩灯的控制。
图4-3 按键控制电路
3.2.4LED显示电路
市电彩灯显示电路(如图4-4所示>,是由16个25W市电彩灯、32个电阻、及8550和MAC97A6构成的电路。
8550起开关作用,为使市电彩灯能正常工作,在J1口接入220V的交流电源。
8550的基极对应的接到单片机的P0及P2端口。
通过软件编程对P0及P2口输出高低电平来实现不同的闪烁花型。
图4-4LED显示电路
4软件设计
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到多控制、多闪烁方式的LED灯系统循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现市电彩灯的明灭。
软件编程是多控制、多闪烁方式市电彩灯灯系统中的一个重要的组成部分,是本设计的重点和难点。
下面,我将阐述多控制、多闪烁方式的LED灯系统是如何实现6种不同的花样变化的。
图5-1按键扫描流程
Y
N
Y
Y
Y
N
图5-2主程序流程图
本设计是以单片机AT89S52为核心控制16个LED的6种不同的花样的变换。
硬件电路如图附录1所示,16个LED相当于分别接在单片机的P0.0-P0.7及P2.0~P2.7接口上,当端口输出“1”时,8550相当于开关处于导通状态,使LED通电。
当输出“0”时,LED灯熄灭。
由于使用汇编语言写程十分的杂,所以我们采用了C语言来设计程序。
程序启动时跳转到键盘判断模块程序中,,循环检测直到有按键按下的时候,程序转去相对应按键的彩灯显示的花型模块。
具体程序流程如图5-1<按键扫描流程)和图5-2<主程序流程)所示。
5系统调试
<1)调试工具
万用表
9V直流电源
<2)调试环境
地点:
实验室
室温:
20℃
<3)测试过程
当我们把硬件焊接等工序完成之后便开始进行测试,首先是测试了位于单片机之前的部分,在电源一接近的地方就出现了短路的情况,但我们仔细检查,不关是元件在焊接还是电路线都没出现问题,最后在老师的帮助下才知道是元件的正负极接反,待重接之后我们又继续进行检测,通电之后又发现数码显示管有一线始终没亮过,在我的观察下发现有短线的情况,在补接之后,单片机的前部分测试完毕。
然后我们把我们编写的程序写入单片机,将单片机接入电路进行测试,通电之后有关单片机的所有部分都没有工作,然后在老师的帮助下将整个程序进行修改,调试。
当最终程序确定下来之后,我们便进行最后的测试,我们把电路板与我们最先设计的市电彩灯连接好,通电,此时就有几个市电彩灯不亮,然后我们检查彩灯,发现彩灯也没问题,询问老师才知道有可能是我们的三极管的驱动不够。
在第二次通电是,由于有一彩灯短路,在此彩灯接入电路的过程中由于短路使与其相接的三极管被烧毁。
于是我们又从新换元件,测电路,在最后,我们考虑到安全与成本问题,觉得采用LED代替市电彩灯。
刚开始我们在电源部分使用的是桥式整流,因只有一个变压器,为了使桥堆不能短路,只能用直流电源进行调试。
最后我们将其改为半波整流,可直接使用变压器将220V的市电转化为9V交流电使用,是我们的调试更为方便。
最后通电测试,测试结果与预计结果完全相符合,调试结束。
6设计总结
经过努力,我们组终于完成这次数字彩灯的课程设计任务。
我们首先查阅了大量的书本资料,接着又上网搜集了许多有用信息。
但最终还是在薛院长和江老师的指导下将方案的大致方向确定了下来。
方案确定下来之后我们便开始计算一些器件的参数。
当最终的方案设计出来以后,我们便又请教了学院的几位老师,他们的一个小小指点就给我们很大启示和灵感,不管是对我们的原理图的设计还是程序方面都提出了许多有价值的建议,在此薛院长和江老师表示热烈感谢。
由于每一步都是我们自己亲自做过的,所以通过这次课程设计,我们增强了对单片机的理解,;进一步提高分析解决实际问题的能力,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。
由于我们的能力和水平有限,实验过程过于简陋,实验经验尚浅,错误之处在所难免,恳请老师加以纠正,以后不断学习改进!
参考文献
[1] 周国运.单片机原理及应用[M].北京:
中国水利水电出版社,2009
[2] 陈梓城.模拟电子技术基础[M].北京:
高等教育出版社,2007
[3] 陈正义.单片机控制实习[M].北京:
人民邮电出版社,2006
[4]姚富安等.实用电子实际基础[M].北京:
理工大出版社,2008
附录
附录一原理图
附件二PCB
附录三程序
#include
#defineucharunsignedchar
Ucharcodeleddisplay[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。
//数码管显示
ucharcodeledp1[6][8]={0XFF,0X00,0XFF,0X00,0XFF,0X00,0XFF,0X00,
0X0F,0X88,0XF0,0X44,0X00,0X22,0X00,0X11,
0X01,0X12,0X24,0X48,0X80,0X00,0X00,0XFF,
0X7F,0XC8,0X7F,0XC8,0X7F,0XC8,0X7F,0XC8,
0X48,0XA4,0X12,0X01,0X12,0XA4,0X48,0XFF,
0X9F,0X60,0X9F,0X60,0X9F,0X60,0X9F,0X60}。
ucharcodeledp3[6][8]={0XFF,0X00,0XFF,0X00,0XFF,0X00,0XFF,0X00,
0X00,0X88,0X00,0X44,0X0F,0X22,0XF0,0X11,
0X00,0X00,0X01,0X12,0X24,0X48,0X80,0XFF,
0X13,0XFE,0X13,0XFE,0X13,0XFE,0X13,0XFE,
0X12,0X25,0X48,0X80,0X48,0X25,0X12,0XFF,
0XF9,0X06,0XF9,0X06,0XF9,0X06,0XF9,0X06}。
voiddelay(void>//10ms延时
{
unsignedchari,j。
for(j=200。
j>0。
j-->
for(i=25。
i>0。
i-->。
}
voiddelay_ms(unsignedintk>//10ms延时
{
unsignedchari,j。
while(k-->
{
for(j=200。
j>0。
j-->
for(i=25。
i>0。
i-->。
}
}
unsignedcharkeyscan(void>
{
unsignedcharkey=0xff。
P1=0X3f。
if((P1&0X3c>!
=0X3c>
{
delay(>。
P1=0X3f。
if((P1&0X3c>!
=0X3c>
{
P1=0X7f。
switch(P1&0X3C>
{
case0x38:
key=8。
break。
case0x34:
key=7。
break。
case0x2c:
key=6。
break。
case0x1c:
key=5。
break。
}
P1=0Xbf。
switch(P1&0X3C>
{
case0x38:
key=4。
break。
case0x34:
key=3。
break。
case0x2c:
key=2。
break。
case0x1c:
key=1。
break。
}
}
}
returnkey。
}
voidauto_lam_display(void>
{
inti,j。
for(i=0。
i<6。
i++>
{
for(j=0。
j<8。
j++>
{
P0=ledp1[i][j]。
P2=ledp3[i][j]。
delay_ms(5>。
}
}
}
voidlamp_display(unsignedcharcnt>
{
unsignedchari=0。
for(i=0。
i<8。
i++>
{
P0=ledp1[cnt-1][i]。
P2=ledp3[cnt-1][i]。
delay_ms(5>。
}
}
main(>
{
unsignedcharkey,key_temp=0xff,flag=0。
P3=0xc0。
//上电初始化显示0。
while(1>
{
key=keyscan(>。
if(key==0xff>
{
//flag=1。
//P3=0x90。
//手动显示9。
auto_lam_display(>。
}
else
{
P3=leddisplay[key]。
lamp_display(key>
}
}
}
附录四元件清单
元件
型号
数量
封装
电容
0.1u
1
RAD0.2
电阻
1k
17
AXIAL0.3
电阻
2.4k
16
AXIAL0.3
电阻
2k
1
AXIAL0.3
电阻
10k
1
AXIAL0.3
电阻
560
9
AXIAL0.3
电阻
2k
15
AXIAL0.3
排阻
10k*8
1
SIP9
电容
10u
1
RB.2/.4
电容
10u
1
RB.1/.2
电容
30pF
2
RAD0.2
晶振
12MHz
1
XTAL1
三极管
8550
16
TO-92A
单片机
AT98S51
1
DIP40
两脚连接器
CON2
2
SIP2
数码管
DS
1
DIP10
发光二级管
LED
3
RB.1/.2
排线
PAIXIAN1
2
DENG
开关
SW-PB
9
SW-PB
双向可控硅
TRIAC
16
TO-92A
附录五实验成果图