光控照明系统_第1页
光控照明系统_第2页
光控照明系统_第3页
光控照明系统_第4页
光控照明系统_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子技术综合设计基于STC12C5A60S2光控照明系统设计组员姓名(学号):专业:班级:日期:目 录1.引言11.1编写目的11.2背景11.3定义12.方案设计22.1总体方案22.2各模块设计方案22.2.1光敏电阻采集模块22.2.2核心模块32.2.3数码管显示模块42.2.4 LED模块42.2.5 串口模块43.详细设计43.1硬件详细设计43.1.1总体详细设计43.1.2 核心模块详细设计43.1.3 光敏电阻采集模块详细设计53.1.4 数码管显示模块详细设计53.1.5 LED模块详细设计63.1.6 USB模块63.1.7 元器件清单73.2软件详细设计83.2.1软件

2、总体设计83.2.2 主函数83.2.3 A/D采集函数93.2.4 电压值换算光强值函数93.2.5 数码管显示函数103.2.6定时器中断103.2.7 查询函数113.2.8 判断亮度等级函数114.调试与结果124.1调试环境124.2 调试与结果分析124.2.1 分模块调试124.2.2 系统联调135.结论13参考文献14附录151.系统PCB图152.系统原理图163.实物图174.程序18III1.引言1.1编写目的编写此文档的目的是能使本软件开发工作更具体。是为使用户、光控照明系统开发者及分析人员对该光控照明系统电路的初始规定有一个共同的理解,它说明了本产品的各项功能需求、

3、性能需求和数据要求,明确标识各功能的实现过程,阐述实用背景及范围,提供客户解决问题或达到目标所需的条件或权能,提供一个度量和遵循的基准。1.2背景此随着电子技术的发展,尤其是数字技术的发展,用数字电路技术实现灯的自动发亮、节能节电、延长灯的寿命变得越来越重要,而且贴近实际生活。声光控电路已成为人们日常生活中必不可少的必需品。结合专业知识,对我们电子专业进行综合的运用。1.3定义系统名称:光控照明系统。系统开发平台AD10,KEIL,Window7旗舰版。本系统的提出是基于电子技术综合设计课程的要求,经过小组成员的讨论,结合自身能力而最终决定的,该方案拥有很强的实用性,成本低廉,结构简单。因此有

4、很好的市场前景。该系统基于单片机STC12C5A60S2。2.方案设计2.1总体方案本方案是以GM5516光敏电阻采集光强通过自带AD传输给单片机STC12C5A60S2,将采集的电压值换算为相应的光照强度值显示在4位7段共阴数码管上。并且通过三个按键,分别控制选择光控照明系统的当前照度或手动设置照度、系统根据设置自动调节led的亮度的功能。图2-1 系统设计框图2.2各模块设计方案2.2.1光敏电阻采集模块本系统采用GM5516光敏电阻如图2-1,其亮电阻范围为5到10千欧(10Lux),暗电阻为0.5兆欧,最大功耗为90mv,最大电压为150VCD,响应时间都为30ms。元件参数为图2-2

5、。本方案采用GM5516首先其容易购买,老师给了这一种光敏电阻,同时该系统对光照强度的检测也能满足,而其它型号的光敏电阻,如GM5549则价格较贵,同时暗阻很大为10兆欧,亮电阻随意范围很广,但都过大,不利于数据的采集。图2-2 GM5516图2-3 GM5516参数2.2.2核心模块本系统采用STC12C5A60S2,STC12C5A60S2是一款宏晶科技生产的单时钟/机器周期的单片机,是高速/低功耗/抗干扰强的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-10倍。内部集成MAX810专业复位电路,2路PWM,8路高速A/D转换。在本设计方案中,相比于处理能力较强,运算速度

6、较快,超低功耗16位的单片MSP430F2617,我们采用的STC12C5A60S2在成本和使用上更具优势,方案中需要实现的功能用60S2已经足够。并60S2编译环境更加熟悉,编写语言为C语言,综上所述,我们觉得使用直插式STC12C5A60S2。图2-4 STC12C5A60S2管脚图2.2.3数码管显示模块本系统采用4位8段共阴数码管5461AH。由于本设计中采集的数据只到百位,因此选择4位数码管,同时能找到共阴数码管的码表,所以选择4为8段共阴数码管。2.2.4 LED模块本系统采用高亮LED。由于为了最求更好的照明效果,普通LED亮度较低无法明显的对亮度分级,而高亮LED则可以实现,并

7、且就成本而言,高亮LED也同样易于购买,和普通LED相比并没有太贵,因此选择高亮LED。2.2.5 串口模块本系统采用USB串口。本方案与采用MAX232芯片的RS232串口通信相比更加的可靠方便,能节省核心模块的端口资源,简洁了系统的排版,因此选择USB串口通信。3.详细设计3.1硬件详细设计3.1.1总体详细设计本方案是以GM5516光敏电阻在不同的光照条件下的不同电压变化经过单片机自带AD采集并处理后发送到单片机STC12C5A60S2,在单片机中通过软件程序将采集的电压值换算为相应的光照强度值,同时将这个值显示在4位8段共阳数码管上1。并且通过三个按键,分别控制选择光控照明系统的当前照

8、度或手动设置照度、系统根据设置自动调节led的亮度的功能。3.1.2 核心模块详细设计本模块详细设计采用STC12C5A60S2,采用直插式芯片安放在插座上,芯片通过USB提供+5V电压。采用12M晶振。如图核心模块各端口使用情况:P0口连接段选即显示的数字的码表值;P2.4P2.7连接数码管位选端口,P3.2、P3.3、P3.4、P3.5连接按键;XTAL1、XTAL2:连接晶振电路;P1.3口通过三极管连接高亮LED;RST:连接复位电路;P1.2连接采样电路;图中的5110没用上。EA口:连接5V电源接高。如图3-1所示。图3-1 核心模块原理图3.1.3 光敏电阻采集模块详细设计本模块

9、使用光敏电阻GM5519,通过单片机自带A/D将采集的电压传输到单片机中,其采集通过采集光敏电阻的电压值来间接的采集光强值。通过将R14的5.1k,电阻于光敏电阻串联,采集光敏电阻两端的电压,给予5V电压方便计算光强。(这后面实物图直接用P1.3采样)如图3-2所示。2图3-2 光敏电阻采集模块原理图3.1.4 数码管显示模块详细设计本模块使用4位8段共阳数码管5461AH。同时连接8个1K欧姆的分压电阻,能保证数码管的亮度,同时也能对数码管起到保护的作用;电阻一端连接单片机P0端口,一端连接5V电压。8个段选端接在单片机P0口,4个位选端接在单片机P2.4-P2.7口。如图3-3所示。图3-

10、3 数码管显示模块原理图3.1.5 LED模块详细设计本模块使用高亮LED,连接在三极管上,由单片机端口给予LED电压,LED正端接5v1。通过软件调节端口给予电压的时间间隔实现LED的亮度不同。如图3-4所示。图3-4 LED模块原理图3.1.6 USB模块本模块直接提供接口供USB使用。将单片机的RXD和TXD口接到两个插口处,通过连线与USB链接在电脑上进行程序的下载与供电。由于是USB串口通信,因此不需要设计RS232电平转换电路。如图3-5所示1。图3-5 USB模块原理图3.1.7 元器件清单表3-1 元器件清单器件名数量规格高亮LED4无晶振112MHZ电容230pF电解电容12

11、0nF按键5无STC12C5A60S2单片机1无光敏电阻15M电阻8470电阻2100电阻11K七段四位共阴数码管1小排阻181003.2软件详细设计3.2.1软件总体设计本方案通过软件实现对电压的采集和数值的转换,同时显示在数码管上。通过检查按键实现相应的功能,最好输出不同的PWM波点亮LED。开始3.2.2 主函数模块初始化A/D循环采集电压换算光强值数码管显示光强值自动判断系统状态数码管显示光强值检测按键PWM波输出LED显示图3-6 主函数流程图在主函数中对外部中断,定时器1,A/D采集进行初始化。再进行A/D采集,将采集的电压值换算为光强值,显示在数码管上;如果为自动状态则直接判断光

12、照输出相应的PWM波,若为手动状态则要先检测按键再输出PWM波。开始3.2.3 A/D采集函数初始化开始采集处理数据返回图3-7 A/D采集流程图如图先对AD采集初始化,设置P1.2口作为A/D输入通道。将寄存器里的值转到电压对应的变量中。开始3.2.4 电压值换算光强值函数计算5次平均值换算光强值(这里我们直接显示阻值)循环图3-8 换算流程图如图本函数先将采集的电压值计算一个平均值,用来防止数据变化波动太大;再通过器件参数对电压进行计算得出相应的光强值。开始3.2.5 数码管显示函数拆分数据(千,百,十,个)开启位选端输出段选端消影返回图3-9 数码管显示流程图如图先将数据拆分为个十百千位

13、,分别显示在数码管的4个位上,通过不断的刷新使人眼看上去如同一直显示的样子。开始3.2.6定时器中断判断变量改变PSEN端口电平重载寄存器返回图3-10 定时器中断流程图如图定时器中断中设置一个标志变量,判断定时器的跳入次数,根据判断这个标志变量的大小来修改LED输出端口的电平,从而实现LED灯的亮暗。在处理完之后重载定时器0的寄存器,因为选择的是方式1,需要手动装载2。开始3.2.7 查询函数判断端口电平判断标志变量(消颤)增加/减少变量返回图3-11 按键查询流程图如图本函数先判断按键端口电平看是否按下,再通过设置一个标志变量,当检测到按键端口电平变化就使变量增加,不通过延时函数而是通过机

14、器周期来延时;判断标志变量值确定按键按下后,增加或减少光照等级变量1。开始3.2.8 判断亮度等级函数判断光强范围设置定时器0标志变量增加速度改变LED灯端口电平返回图3-12 光照等级判断流程图如图本函数先通过判断光强值的范围,在不同的范围中设置标志变量不同的增加速度,从而使LED灯端口输出高电平的密度不同,最终实现LED灯不同的亮度。本次是以80为区分的,80以内用定时,使数码管看上去有跳动1。4.调试与结果4.1调试环境本系统软件部分通过proteus仿真,通过KEIL调试;硬件部分则通过万用表等设备。4.2 调试与结果分析4.2.1 分模块调试1.硬件调试系统硬件主要由核心模块、数码管

15、显示模块和光敏电阻采集模块组成。使用万用表对每个模块进行短路测试,并检测光敏电阻的阻值。多次检查原理图和PCB图,检查PCB电路板是否短路,虚焊。在调试之后,发现数码管段选电路中,一处分压电阻短路使通电后数码管显示不全。对光敏电阻的阻值检测发现阻值变化正常,虽然和参数有误差但在不同光照条件下变化明显。得出硬件部分没有问题。2.软件调试在所有程序完成后,进行了软件仿真调试,软件各功能模块运行正常;相应变量值正确,程序整体运行流畅;时序正确,各模块没有运行冲突,没有发生失灵等现象,程序没有发生跑死现象。3调试结果在VCC=+5V时,测量光敏电阻电压U1。表4-1 光敏电阻电压光照强度光敏电阻电压(

16、V)暗4.032微亮3.151亮2.498强光1.0124.2.2 系统联调最后检查无误后进行了软硬件联调。系统工作稳定,软件运行流畅。并且根据调试情况对软件进行优化,使数码管显示跟稳定,按键按下后能立刻做出反应。5.结论经过设计调试之后得出结论该系统运行稳定,能实现全部设计要求,各部分功能使用正常。能够完全成功的实现了光控照明系统,并学到了电子设计流程,软硬件方面知识,注意事项,以及报告格式等。其间遇到了许多问题,但最后都能顺利得到解决,此次课程设计我感受很深。首先,在光控设计过程中,老师先让我们写方案设计,进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法在写详细设计。其次

17、,熟练的掌握了AD10,PROTEL,KEIL软件的使用,能够掌握元件的调用,如何在AD10中画封装,设置单面板,PCB布线等等。在设计电路的连接图中出错的主要原因大都是接线,封装的错误所引起的。还有在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,仿真图和电路连接图还是有一定区别的,这就要求我们要深刻理解原理。在进行实际的实物连接时,要特别注意焊点,看是否有虚焊,漏焊等现象。因为这直接导致了电路不能正常的工作。设计初期要考虑周到,否则后期改进很困难。尽可能是电路连线有序,使用排座方式,模块之间关系清楚,既利于自己修改,也利于与别人交流。如果电路乱的连自己都看不懂

18、,那还如何修改和添加附加功能。其实在进行实际的实物连接时不仅训练了思考如何布线的能力更是培养了自己的动手能力。使我们在实践中巩固了理论知识。然后要注重同学,老师间的交流,很多难点的突破都来自于与他们的交流,交流使自己获得更多信息,开拓了思路,因此要重视与别人的交流。最后本次设计是把理论知识应用到了实践中,熟悉了课程设计的流程,同时通过仿真,设计,也加深了自己对理论知识的理解和掌握。参考文献1王渊峰,戴旭辉.AltiumDesigner 10电路设计标准教程.北京:科学出版社,2012,52-75.2汤莉莉.基于AT89S5289S52单片机声光控制开关电路的设计硕士学位论文.湖北:湖北大学,2

19、003附录1.系统PCB图2.系统原理图3.实物图4.程序int main() uint tmp; uint he=0; uint i; bit start=0; T0_Init(); /定时器初始化 PWM0_Init(); /pwm初始化 Iint_ADC(); /ADC采集初始化 while (1) if (!openflag) for (i=0;i5;i+) num = Get_ADC(2); he += Clu_Light(num); /计算光敏阻值 dat = he/5; he = 0; /数码管显示 DisassembleNumber(dat);/将数码管的码表赋给对应的每一位的

20、数字 Display_Nuxie();/数码管显示 /与设定值判断比较并调节PWM的占空比 if (dat 255) pwm = 255; CCAP0H = pwm; else if (dat setvalue & openflag = 0 & start = 1) pwm-; if (pwm = 0) pwm = 0; CCAP0H = pwm; if (dat - setvalue = 80 | setvalue - dat 80 | setvalue - dat 80) & start = 1) ET0 = 0; openflag = 0; /按键控制 if (!kadd) /按键按下,

21、恢复初始显示环境照度状态 delay_ms(2); while (!kadd); start = 0; ET0 = 1; openflag = 1; pwm = 255; CCAP0H = pwm; delay_ms(500); num = Get_ADC(2); dat = Clu_Light(num); else if (!key1) /开始调节至设定值,打开开关 delay_ms(2); while (!key1); start = 1; ET0 = 0; openflag = 0; else if (!key2) /改变设定值 delay_ms(2); while (!key2); E

22、T0 = 0; start = 0; openflag = 1; dat -= 200; setvalue = dat; 以上报告程序完整可运行:#include stc12c5a60s2.h#include pwm.h#define uchar unsigned char#define uint unsigned int#define PCA_IDLE_DISABLE 0 #define PCA_SOURCE_SELECT 4 uint pwm0;void PWM0_Init(void) pwm0 = 255; CCAP0H = pwm0; CCAPM0 = 0x42; 模块0模式寄存器CM

23、OD = (PCA_IDLE_DISABLE 7) | (PCA_SOURCE_SELECT 8; TR0 = 1; ET0 = 1; EA = 1;void delay_ms(unsigned int ms) unsigned int j=532; ms = ms / 2; for(; ms 0; ms-) for(j=532;j0;j-);void DisassembleNumber(uint Number) BitNumber0=CodeTableNumber/1000; BitNumber1=CodeTableNumber/100%10; BitNumber2=CodeTableNum

24、ber/10%10; BitNumber3=CodeTableNumber%10;void Display_Nuxie(void) unsigned int m; for (m = 0; m 4; m+) P2 = 0x00; P0 = BitNumberm; P2 = 0X10 8;int main() uint tmp; uint he=0; uint i; bit start=0; T0_Init(); PWM0_Init(); Iint_ADC(); while (1) if (!openflag) for (i=0;i5;i+) num = Get_ADC(2); he += Clu

25、_Light(num); dat = he/5; he = 0; DisassembleNumber(dat); Display_Nuxie(); if (dat 255) pwm = 255; CCAP0H = pwm; else if (dat setvalue & openflag = 0 & start = 1) pwm-; if (pwm = 0) pwm = 0; CCAP0H = pwm; if (dat - setvalue = 80 | setvalue - dat 80 | setvalue - dat 80) & start = 1) ET0 = 0; openflag

26、= 0; /按键控制 if (!kadd) /按键按下,恢复初始显示环境照度状态 delay_ms(2); while (!kadd); start = 0; ET0 = 1; openflag = 1; pwm = 255; CCAP0H = pwm; delay_ms(500); num = Get_ADC(2); dat = Clu_Light(num); else if (!key1) /开始调节至设定值,打开开关 delay_ms(2); while (!key1); start = 1; ET0 = 0; openflag = 0; else if (!key2) /改变设定值 delay_ms(2); while (!key2);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论