为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > LED亮度自动调节系统设计

LED亮度自动调节系统设计

2017-10-25 36页 doc 336KB 125阅读

用户头像

is_477730

暂无简介

举报
LED亮度自动调节系统设计LED亮度自动调节系统设计 摘要 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 关键词 ????????????????????????????????????????????????????????????????????????????????????????????????????????????...
LED亮度自动调节系统设计
LED亮度自动调节系统 摘要 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 关键词 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 英文摘要 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 英文关键词 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 1 引言 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 1.1 选题背景????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2 1.2 实现功能????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2 1.3 技术路线????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2 2 选择 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 系统总体方案的选择????????????????????????????????????????????????????????????????????????????????????????????? 3 2.1 2.3 系统框图????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 3 硬件电路设计 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????? 4 3.1 主控模块????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 4 3.1.1 单片机芯片?????????????????????????????????????????????????????????????????????????????????????????????????????????? 4 3.1.2 复位电路?????????????????????????????????????????????????????????????????????????????????????????????????????????????? 5 3.1.3 时钟电路?????????????????????????????????????????????????????????????????????????????????????????????????????????????? 6 3.1.4 系统按键电路?????????????????????????????????????????????????????????????????????????????????????????????????????? 7 3.2 光信息采集及A/D转换模块 ???????????????????????????????????????????????????????????????????????????????? 8 3.2.1 光电转换电路 ??????????????????????????????????????????????????????????????????????????????????????????????????????? 8 3.2.2 A/D转换电路 ?????????????????????????????????????????????????????????????????????????????????????????????????????? 9 3.3 LED亮度调节模块 ???????????????????????????????????????????????????????????????????????????????????????????????11 3.4 电源模块??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 13 4 软件设计 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 14 4.1 系统程序开发软件简介??????????????????????????????????????????????????????????????????????????????????????? 14 4.2 系统总流程图??????????????????????????????????????????????????????????????????????????????????????????????????????? 15 4.3 光强判断流程图??????????????????????????????????????????????????????????????????????????????????????????????????? 16 5 系统调试 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 16 5.1 调试??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 16 5.1.1 硬件调试???????????????????????????????????????????????????????????????????????????????????????????????????????????? 16 5.1.2 软件调试???????????????????????????????????????????????????????????????????????????????????????????????????????????? 17 5.1.3 整体调试???????????????????????????????????????????????????????????????????????????????????????????????????????????? 17 5.1.4 操作指南???????????????????????????????????????????????????????????????????????????????????????????????????????????? 17 6 结束语 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 17 6.1 总结??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 17 6.2 体会??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 17 参考文献 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 18 附录 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 19 LED亮度自动调节系统设计 LED亮度自动调节系统设计 摘要:当今世界,环境的污染、能源的紧缺唤醒了世界各国人民的节能减排意识,肩负着 环保、节能减排的希望及使命的节能灯应运而生并逐渐被社会认可和接收。LED被称为第四代 照明光源或绿色光源,LED的发光器件是冷光源,具有节能、环保、寿命长、体积小等特点, 是未来照明节能发展的方向。本文设计了一种以 STC89C52单片机为核心的亮度自动调光系统, 通过光敏传感器感知外界光强,单片机系统根据采集的数据控制LED的通断,达到调节光源发 光亮度的目的,本系统还增加了手动控制功能增强了系统控制的灵活性。本系统具有自动,节能, 结构简单,成本低,工作稳定可靠等特点,在日常生活中具有一定的实际应用价值。 关键词:单片机;A/D 转换;光敏电阻;LED The system design of automatic regulating LED brightness Abstract: In today's world, pollution, shortage of energy environment awakened people all over the world awareness of energy conservation and emission reduction, energy-saving lamps and shouldering the mission to environmental protection, energy saving and emission reduction of emerge as the times require and gradually recognized and received.LED is called the fourth generation lighting source or a green light, the light emitting device LED is a cold light source, has the characteristics of energy saving, environmental protection, long life, small volume and so on, is the future direction of development of energy-saving lighting.This paper designed an automatic dimming system of a STC89C52 microcontroller as the core to the brightness, the photosensitive sensor sensing external light intensity, SCM system based on data acquisition control LED open, to adjust the brightness of the light source,and the system also increases the manual control function to enhance the flexibility of system control.The system has automatic, energy saving, simple structure, low cost, stable and reliable work, has certain practical value in daily life Key Words:singlechip;A/D conversion; photosensitive resistance;LED 1 引言 随着现代社会的发展,能源消耗的加剧,高效的照明技术得到人们的广泛关注。 LED以其高效率、低消耗、低电压驱动、使用寿命长等优点,越来越多的应用往各 1 LED亮度自动调节系统设计 种照明场合,在可预见的将来可能完全取代传统的白炽灯、荧光灯照明,给照明产 [1]业带来革命性的变化。在这一设计里我们将涉及到有关LED自动调节亮度的设计,这从原理上使我们对这一设计有了解。将其与我们切实地相联系起来。 1.1 选题背景 伴随着全球经济的迅速发展,能源消耗的不断加剧,带来的的则是大量的环境污染和生态破坏,绿色节能已经成为全球普遍关注的话题,人们正通过各种途径寻 [1]找新的节能方式。在电能消耗中,照明用电占发电总量的比例:发达国家是19%,我国现今达到12%。可以预知的是,随着经济不断发展,在将来我国的照明用电将有大比例的提高,绿色节能照明的研究应用越来越受到重视。开发和推广应用节能 [2]灯具,成为迫在眉睫的任务。LED照明就是在这样的形势下发展起来的。 近几年来,LED的发光效率已增长了100倍,而成本下降了10倍。在目前LED光源及市场开发中,极具发展与应用前景的是照明用LED,其用作固体照明器件的经济性显著,且有利于环保,正逐步取代传统的白炽灯。LED已被全球公认为新一 [3]代的环保型高科技光源。 1.2 实现功能 这次设计的LED亮度自动调节系统根据采集到的外部光照强度,由单片机控制LED的通断,达到调节光源发光亮度的目的,具有非常好的实用价值。在它的工作过程中,系统可以直接与220V的交流电源相连接,内部设有自动稳压电路,可将220V交流电转变为单片机所需的5V直流稳压输出,同时具备随时复位电路。 设计要求:本系统采用单片机STC89C52作为本设计的核心元件,光敏器件将外部光信号转换为电信号,通过单片机调节16盏LED的通断进行亮度调节。 1)系统LED个数: 16个 2)系统反馈控制时间: t>1s 3)系统LED灯个数随着外界光照强度变化而变化,光增强,LED点亮个数变少,反之,亦然,且能实现手动和自动调节亮度的切换。 1.3 技术路线 此次主体电路的设计是单片机做为整个电路的核心,同时考虑到整个电路的成本及美观,选择适合本设计的单片机就成了一个重要内容。现今,随着半导体和单片机技术的发展,依次出现了不少增强型的CPU,而高档的单片机也层出不穷,尤其是伴随着超大规模的集成电路技术和微电子技术的发展,单片机因其体积小、功能强、性价比高、可靠性好等独特的特点,使它在各领域都得到了广泛的应用,其相关的技术也越来越成熟。因此,我选择了最为适合的STC89C52单片机来完成硬件电路的设计要求,然后再编制和硬件电路所对应的软件程序。 2 LED亮度自动调节系统设计 2 方案选择 本次LED亮度自动调节系统由硬件电路和软件电路两部分组成,下面就来具体说明一下。 2.1 系统总体方案的选择 本设计主要解决的的关键问题包括单片机接口电路设计、LED 恒流模块设计及智能控制程序的编写等。接口电路是硬件设计的重要部分本次方案中主要涉及到的是单片机与传感器之间的通信及单片机与恒流驱动模块的接口技术。本设计要实现的功能为基于智能控制器的智能自动调光,主要方案如下: 方案一:采用线性调节 LED 电流。通过改变与负载 LED 灯串联的电阻的阻值来调节电流大小,以改变 LED 的光线强弱。本方案的优点是原理简单,易于实现亮度的调节,但是调电流可能会产生使恒流源无法工作的严重问题。另外调节电流无法得到精确调光,因为电流和光输出并不是完全正比关系,而且不同的 LED 会有不同的正向电流和光输出关系曲线。所以用调节电流的很难实现精确的光输出控制。 方案二:采用脉宽调制(PWM)来调光。通过 STC89C52产生的 PWM 波来 [4]。PWM 调光具有精度高,节能,易于实调节恒流驱动芯片,来实现调光的目的 现智能控制的等特点。 方案三:采用控制LED通断来调光。通过 STC89C52单片机IO口对多个LED通断进行控制来实现调光。此方案比较方案二,更加的简单和易于控制。 由以上方案最终选择方案三。 本系统拟采用 STC89C52单片机作为主控模块,由光电转换电路采集外界光强信号,经A/D 转换送单片机处理,单片机根据处理结果智能调节LED的通断,以此来实现调节LED的亮度大小,并加上按键电路实现手动调节亮度大小。 2.3 系统框图 根据上述系统设计思想的描述,所示总框图如图2-1所示。 光信息采集 A/D转换 STC89C52 LED亮度显示 单片机 3 LED亮度自动调节系统设计 手动/自动切换 图2-1 系统框图 3 硬件电路设计 3.1 主控模块 硬件设计是整个系统的基础,要考虑的方面有很多,除了实现其基本功能之外,主要还要考虑以下几个因素:系统稳的定度,器件的通用性或易选购性,软件编程的易实现性和系统其它功能及性能指标。因此硬件设计至关重要。现从各功能模块的实现逐个进行分析探讨。本电路的核心部件就是主控芯片——单片机,因此对单片机的选择非常关键。单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、语音处理技术、通信系统、高级计算器、家用电器等领域的应用日益广泛且取得了令人瞩目的成果,展现出良好的应用前景。在我国,用得最多的单片机系列就是MCS—51系列的单片机。 在单片机应用系统开发过程中,单片机是整个设计的核心,因此选择合适的单片机型号很重要。根据实现系统功能需要的单片机硬件资源,在性能指标满足的情况下,该系统的单片机型号选择8051系列的STC89C52芯片。 STC89C52系列单片机是宏晶科技推出的新一代超强抗干扰、高速、低功耗的单片机,指令码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择。STC89C52具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择,可以满足系统在各个子模块程序之间的切换;STC89C52的运算速度可满足一般的设计要求;而且STC系列单片机支持ISP在线编程功能,可以不用昂贵的编程器。 本次采用的芯片是STC89C52。STC89C52可以支持串口直接下载程序,而AT公司的89C系列单片机需要价格昂贵的专门编程器才可烧写程序,除此这外两种单片机在功能上完全一样。STC89C52单片机除了完全兼容AT89C51外,还有许多扩展功能可以自己发挥使用。 3.1.1 单片机芯片 (一)STC89C52主要性能参数 1).与MCS-51产品指令和引脚完全兼容 2).8K字节可重擦写Flash闪速存储器 4 LED亮度自动调节系统设计 3).全静态操作:0Hz,33MHz 4).三级加密程序存储器 5).1000次擦写周期 6).32个可编程I/O口线 7).3个16位定时/计数器 8).8个中断源 9).全双工UART串行通道 10).低功耗空闲和掉电模式 (二)功能性概述 8k字节Flash, 32 位I/O 口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,STC89C52可降至0Hz的静态逻辑操作,支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM、定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。STC89C52引脚图如图3-1所示。 图3-1 STC89C52引脚图 3.1.2 复位电路 复位使单片机处于起始状态,并从该起始状态开始运行。复一般需要在系统上电,或者程序死机的时候需要进行单片机的复位。单片机的复位状态是单片机在上电时,首先进入的一个特定的状态。在复位状态下,CPU和整个硬件资源,特别是特殊功能寄存器都处于初始化的状态。单片机的复位电路是促使单片机进入复位状 5 LED亮度自动调节系统设计 态的硬件结构。单片机的复位电路是很重要的,复位操作可以完成单片机的初始化, [5]也可使处于死机状态下的单片机重新开始运行。 STC89C52 的RST 引脚为复位端,该引脚连续保持2个机器周期(24 个时钟振动周期)以上高电平,则可使单片机复位。内部复位电路在每一个机器周期的S5P2 期间采样斯密特触发器的输出端,该触发器可抑制RST 引脚的噪声干扰,并在复位期间不产生ALE 信号,内部RAM 处于不断电状态。其中的数据信息不会丢失,也即复位后,只影响SFR 中的内容,内部RAM 中的数据不受影响。外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试,复位电路采用按键复位方式。按键复位电路如图3-2 所示: 图3-2 复位电路 3.1.3 时钟电路 [6]单片机的时钟电路是用于产生单片机正常工作时所需要的时钟信号。STC89C52单片机内部包含有一个振荡器,可以用于CPU的时钟源。另外也可以采用外部振荡器,由外部振荡器产生的时钟信号来供内部CPU运行使用。 1). 内部时钟模式 内部时钟模式是采用单片机内部振荡器来工作的模式。51系列单片机内部包含有一个高增益的单级反相放大器,引脚XTAL1和XTAL2分别为片内放大器的输入端口和输出端口,其工作频率为0~33MHz。 当单片机工作于内部时钟模式的时候,只需在XTAL1引脚和XTAL2引脚连接一个晶体振荡器或陶瓷振荡器,并联两个电容后接地即可,如图3.5所示。使用时对于电容的选择有一定得要求,具体如下: A 当外接晶体振荡器的时候,电容值一般选择C1=C2=3010pF; B 当外接陶瓷振荡器的时候,电容值一般选择C1=C2=4010pF。 6 LED亮度自动调节系统设计 在实际电路设计时,尽量保证外接的振荡器和电容尽可能接近单片机的XTAL1和XTAL2引脚,这样可以减少寄生电容的影响,使振荡器能够稳定可靠地为单片机CPU提供时钟信号。 2). 外部时钟模式 外部时钟模式是采用外部振荡器产生时钟信号,直接提供给单片机使用。对于不同的结构的单片机,外部时钟信号接入的方式有所不同。 对于普通的8051单片机,外部时钟信号由XTAL2引脚接入后直接送到单片机内部的时钟信号发生器,而引脚XTAL1则应直接接地。这里需要注意,由于XTAL2引脚的逻辑电平不是TTL信号,因此外接一个上拉电阻。 对于CMOS型的80C51, 80C52, AT89S52等单片机,和普通的8051不同的是其内部的时钟信号取自于反相放大器的输入端。因此外部的时钟信号应该接到单片机的XTAL1引脚,而XTAL2引脚悬空即可。 根据实际应用,我们选择内部时钟电路,外接频率12.000MHz的晶体振荡器,选择两个电容值为30pF的陶瓷电容。外部时钟电路如图3-3 所示: 图3-3 时钟电路 3.1.4 系统按键电路 单片机的按键电路分为独立式按键接口电路和矩阵式键盘电路,考虑本设计只需三个按键,结构简单,故选择独立式按键接口电路。本设计根据现实需要设置为自动/手动切换按键、手动增加按键及手动减少按键三个按键,系统默认为自动状态,考虑到自动可能会失灵,设置手动按键来调节LED 灯的亮度等级,当自动/手动档处于自动状态时,系统会跳转自动部分执行,当处于手动状态时,可人为的通过手动增和手动减调节亮度等级。按键电路如图3-4 所示: 7 LED亮度自动调节系统设计 图3-4 按键电路 3.2 光信息采集及A/D转换模块 [7]本次设计的光信息采集模块是整个系统的输入模块,由光电转换电路和模/数转换电路构成。 3.2.1 光电转换电路 1)光敏传感器简介 光敏传感器是利用光敏元件将光信号转换为电信号的传感器.它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电 反应快,非接触等优点,而且量转换为光信号的变化即可。光电检测方法具有精度高, 可测参数多,传感器的结构简单,形式灵活多样,因此,光敏传感器在检测和控制中应用非常广泛。 光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达1,10M 欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。 根据系统参数和器件性价比,我们选择常用的光敏电阻GL5549它具有体积小,反应速度快,灵敏度高,可靠性好等优点。 2)光电转换电路 光电转换电路如图3-5所示: 8 LED亮度自动调节系统设计 图3-5 光电转换电路 光敏电阻与1K电阻串联,经限流电阻与模/数转换电路连接,光照越强,光敏电阻阻值越小,则光电转换电路输出电压越大,反之越小。 3.2.2 A/D转换电路 1)A/D转换芯片ADC0804介绍 [8]ADC0804是一个早期的用来实现A/D转换的转换器,因其价格低廉而在要求不高的场合得到广泛应用。ADC0804是一个8位、单通道、低价格A/D转换器,主要特点是:摸数转换时间大约100us;方便的TTL或CMOS接口;可以满足差分电压输入;具有参考电压输入端;内含时钟发生器;单电源工作时(0V,5V)输入信号电压范围是0V,5V;不需要调零等等。 由于单片机只能识别数字量,需要我们把光电转换后的模拟电压信号转化为相应的数字信号送给单片机。在实际中常用的模数转换芯片有ADC0804、ADC0809、AD574 等,考虑外围电路的简单,且ADC0804的功能能基本达到本次设计的要求,我们选择它作为本次设计的A/D转换芯片。 ADC0804 芯片的引脚图如图3-6: 9 LED亮度自动调节系统设计 图3-6 ADC0804 所有引脚定义如下: (引脚1):片选信号。低电平有效,高电平时芯片不工作。 (引脚2):外部读数据控制信号。此信号低电平时ADC0804把转换完成的数据加载到DB口。 (引脚3):外部写数据控制信号。此信号的上升沿可以启动ADC0804的A/D转换过程。 CLK IN(引脚4):时钟输入引脚。ADC0804使用RC振荡器作为A/D时钟,CLK IN是振动器的输入端。 (引脚5):转换结束输出信号。ADC0804完成一次A/D转换后,此引脚输出一个低脉冲。对单片机可以称为中断触发信号。 Vin(+)(引脚6):输入信号电压的正极。 Vin(,)(引脚7):输入信号电压的负极。可以连接到电源地。 AGND(引脚8):模拟电源的地线。 Vref/2(引脚9):参考电源输入端。参考电源取输入信号电压(最大值)的二分之一。例如输入信号电压是0V,5V时,参考电源取2.;输入信号电压是0V,4V时,参考电源取2. 0V。 DGND(引脚10):数字电源的地线。 DB8,DB0(引脚11,引脚18):数字信号输出口,连接单片机的数据总线。 CLK R(引脚19):时钟输入端。 VCC(引脚20):5V电源引脚。 补充说明:CLKI(引脚4)和CLKR(引脚19):ADC0801~0805 片内有时钟电路,只要在外部“CLKI”和“CLKR”两端外接一对电阻电容即可产生A/D 转换所要求的时钟,其振荡频率为fCLK?1/1.1RC。其典型应用参数为:R=10KΩ,C=150PF,fCLK?640KHz,转换速度为100μ,。若采用外部时钟,则外部fCLK 可从CLKI 端 10 LED亮度自动调节系统设计 送入,此时不接R、C。允许的时钟频率范围为100KHz,1460KHz。 主要电气特性有,工作电压为,5V,模拟输入电压范围为0,,5V,分辨率为8位,即分辨率为1/28=1/256,转换时间为100us(fck,640KHz 时),转换误差约?1LSB。ADC0804 是属于逐次逼近型(Successive Approximation Method)的A/D 转换器,这类型的A/D 转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于单片机的接口设计上。 ADC0804时序图如图3-7所示: 图3-7 ADC0804时序图 2) ADC0804接口电路 ADC0804 与STC89C52 的连接方法如图3-8所示。ADC0804 的片选信号线由51单片机的P2.7口控制,ADC0804 的读写信号控制线WR、RD由单片机的P3.6、P3.7控制,ADC0804 的8位数据DB0,DB7连接单片机的P1口,ADC0804 的内部转换频率由R4、C4 确定。 图3-8 ADC0804接口电路 3.3 LED亮度调节模块 1)三极管NPN9013介绍 11 LED亮度自动调节系统设计 三极管,是半导体基本元器件之一,具有电流放大作用,是电子电路的核心元件。三极管是在一块半导体基片上制作两个相距很近的PN结,两个PN结把正块半导体分成三部分,中间部分是基区,两侧部分是发射区和集电区,排列方式有PNP和NPN两种。s9013 NPN三极管主要用途:作为音频放大和收音机1W推挽输出。 三极管9013主要参数: 结构:NPN 集电极-发射极电压 25V 集电极-基电压 45V 射极-基极电压 5V 集电极电流0.5A 耗散功率 0.625W 结温150? 特怔频率 最小 150MHZ 放大倍数:D64-91 E78-112 F96-135 G122-166 H144-220 I190-300 主要用途:放大电路 图3-9 9013引脚图 2) LED亮度调节电路 该电路作为本次设计的输出显示模块,用于调节LED的亮度,由三极管和16个LED构成。电路图如图3-10所示: 12 LED亮度自动调节系统设计 图3-10 LED亮度调节电路 3.4 电源模块 目前我国居民最常用为220V,50HZ的交流电,而系统需+5v 直流电和+12V 交流电,故电源模块采用220V 转12V 变压器,可以输出12V 交流电,然后经桥式 [9]~[10]整流及7805 稳压芯片处理,最后经滤波后输出+5v直流电压。 1)稳压芯片L7805简介 L7805是日本三洋公司生产的三端固定稳压集成电路。该电路内置短路保护及热保护电路,具有输出电压固定的特点,广泛应用于各种电视机、收录机、电子仪器等设备中作电源稳压用。 L7805集成电路的引脚功能及数据如表3.9所示 表3.1 L7805集成电路的引脚功能及数据 引脚 符号 功能 电压(V) 1 IN 12 电压输入 2 GND 0 接地线端 3 OUT 5 电压输出 2)典型稳压电路如图3-11所示: 13 LED亮度自动调节系统设计 U3 135VVin5VJ6SW1A1SW-2X2WAY+CP1CP2CP32G-N220uF10547uFCP4D103POWER-INPUT2 L7805 GND 图3-11 典型稳压电路 CP1、CP2、CP3、CP4分别为输入端和输出端滤波电容。当输出电较大时,7805应配上散热板。 4 软件设计 4.1 系统程序开发软件简介 随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil。该软件是美国Keil Software公司出品的软件开发系统,其允许用户使用汇编或者C语言来开发MCS-51单片机(或与MSC-51指令兼容的其它单片机)的应用软件。功能上,Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。外观上采用全Windows界面,容易上手。性能上,即便是使用高级语言开发应用程序,其生成的目标代码效率也非常高,多数语句生成的汇编代码很紧凑。 本系统的软件设计采用了Keil C51这种单片机C语言,Keil C51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编,和C语言的程序设计,界面友好,易学易用。单片机开发软件KeilC编程界面如图4.1所示。 采用Keil C51开发8051单片机应用程序一般需要以下步骤。 1). 在u Vision4集成开发环境中创建一个新项目(Project),并位该项目选定合适的单片机CPU器件,本系统选择STC89C52芯片。 2). 利用u Vision4的文件编辑器编写C语言源程序文件,并将文件添加到项目中去。一个项目可以包含多个文件,除源程序文件外还可以由库文件或文本说明文 14 LED亮度自动调节系统设计 件。 3). 通过u Vision4的各种选项,配置Cx51编辑器,Ax51宏编辑器,BL51/Lx51连接定位器以及Debug调试期的功能。 4). 利用u Vision4的构造(Build)功能对项目中的源程序文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源程序中的错误后重新构造整个项目。 5). 将没有错误的绝对目标代码装入u Vision4调试器进行仿真调试,调试成功后,将HEX文件写入到单片机应用系统的EPROM中。 4.2 系统总流程图 硬件的结构一经确定,大的功能框架也就形成了。软件在硬件构筑的平台上,完成各部分硬件的控制及协调。系统功能是由软件硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能会很大。所以,软件是本系统的灵魂。软件的设计采用模块化的设计方法,这样不仅易于编程和调试,也可以减小软件的故障率,还有提高软件的可靠性。因此,对软件进行全面的测试是检验错误、排除故障很重要的手段。 硬件电路设计完成后的工作是通过软件编程来实现系统的主要功能,也就是进行软件开发。对于电子系统,软件设计建立在具体硬件电路基础之上,系统功能的实现以及工作的可靠性不仅需要合理的硬件设计,很大程度上取决于功能完善、算法先进的软件设计。一个合理的软件设计能够充分发挥微控制器的运算和逻辑控制功能,可靠地实现系统的各种功能。 15 LED亮度自动调节系统设计 图4-1 系统主程序流程图 本设计采用C语言编程,先设定当下的环境亮度为设定亮度,当环境的亮度变亮的时候,即大于那设定亮度时,减少LED灯点亮的个数,并且以此当下的环境作为设定的亮度;当环境亮度再次改变,变暗的时候,增加LED灯点亮的个数,并且以此为设定的环境亮度;通过设定环境亮度的标准来自动调节LED亮度。 4.3 光强判断流程图 ADC0804精度为8位,用0-255表示0-5V,即1V=51。 光强判断子程序流程图如图4-2所示: 图4-2 光强判断子程序流程图 5 系统调试 5.1 调试 5.1.1 硬件调试 [5]采用Protel99Se画出原理图和PCB图,再进去制版。电路板做完以后,首先 16 LED亮度自动调节系统设计 要检查电路是不是存在断路、短路,还有焊点是不是存在虚焊,用到的仪器是万用表;接着就要检测光电转换电路是否能随光照强度的变化而变化,LED是否能点亮。 5.1.2 软件调试 利用软件调试的常用的keil仿真器,对C语言进行调试。 5.1.3 整体调试 将调试好的软件和硬件一起结合起来,进行调试,能实现手动和自动控制LED亮灯个数,那就已基本完成。需把程序用烧写器烧到单片机中,然后再对电路进行操作。若没达到预期效果,则需善加修改。 5.1.4 操作指南 1).接上+5V的电源,开机即为工作状态,系统led亮度根据外界光照强度变化而变化(光照强,led灯点亮个数减少,反之增加)。 2).按下“手动/自动切换”键,切换到手动调整系统led亮度,按下“+”键增加亮度等级,按下“-”键减小亮度等级(亮度等级为led点亮个数的不同) 3).按下“复位”键,回到开机准备状态。 6 结束语 6.1 总结 在当今社会大力提倡节能减排的大背景下, 发展LED照明具有不可估量的经济价值及社会价值。目前世界上许多国家都在研究LED的应用,本课题选取了LED应用的一个部分,基于单片机的自动调光。 本次毕业设计由于时间、经验、水平等局限,做出的东西并不完美。虽然能够做出了实物,简单的功能也能够运用;但是有很多地方都没做到位。最主要的是以下2点: 1).当初设计的时候是想产生白光的,但由于时间紧张,技术要求比较高,没有达到这个要求。 2).有个LED会一闪一闪的,主要是采用的AD是8位精度的,当初在选择芯片的时候考虑的不够周到,下次有时间一定把它完善。 6.2 体会 的撰写也是一个坚辛与快乐地过程。在这个过程中我查找了许多相关的资料和文献,真的觉得自己学到了不少东西,比如学会了资料的查找和使用及学会了合作与交流。当然,这也不单单只是学会如何查阅资料和利用工具书,主要的还是对自身的知识水平及动手能力的提高。此外,我也真正体会到了要做好一件事情并不是只有热情和激情就可以的,还需要一定的专业知识和能力。但不管如何,态度决定一切,只要有心,任何困难都是可以克服的。本论文是在郑金菊老师的悉 17 LED亮度自动调节系统设计 心指导下完成的,在整个课题的总体设计思想和很多具体的细节方面都得到了郑老师的精心指导、帮助。郑老师不仅在学习和科研上给予了我教诲,也在对待人生态度与工作态度上给了我很大的指导。导师严谨的治学态度、渊博的学识、丰富的科研经验使我终生受益。导师在毕业设计的整个过程中始终给予了我最大的鼓励和支持,并时时给予必要的关心和启迪。在此,向导师汪晓东老师表示我最衷心的感谢。同时我还要感谢毕业设计过程中所有给我真诚帮助的老师和同学。 18 LED亮度自动调节系统设计 参考文献 [1]李兵. 国外照明技术的发展. 光源与照明, 2004(4):36-37 [2]易安.半导体照明21世纪的节能新光源[J].中国创业投资与高科技,2004,32(1):32-33 [3]张巨芳.第四代新光源——LED.安徽电子信息职业技术学院学报,2006 [5]尉广军,郝永生,姚义.单片机系统中复位电路的可靠性分析与设计[J].仪器仪表学报2002 年S2期 [6]刘凤格.MCS-51单片机的时钟电路[J].菏泽师范专科学校学报,2003年02期 [7]何立民.单片机应用技术选编. 北京航空航天大学出版社.2000:241-245 [8]刘虹. 绿色照明概论. 中国电力出版社,2009-01:212-218 [9]王占庆,毛兴武.交流电源供电的大电流LED驱动电路.中国照明电器.2006 [10]金永镐. 基于总线模式的交通灯控制系统的设计[J]. 信息化纵横, 2009,08 [11]周志敏等.应用电路.电磁兼容.PCB布线.北京:电子工业出版社,2004 [12]Neuron Chip Data Book,Echelon Corporation,1995-02:19-21 [13]Colm Slattery, Mariah Nie. A Reference Design for High-Performance,Low-Cost WeighScales[J]. Analog device,2005,39(12):134-143 19 LED亮度自动调节系统设计 附录 1 LED亮度自动调节系统原理图 原理图如下所示: 20 LED亮度自动调节系统设计 2 PCB图 Pcb图如下所示: 3 实物图 实物图如下所示: 21 LED亮度自动调节系统设计 4 源程序 源程序如下所示: #include #include #define uchar unsigned char #define uint unsigned int #define ad0_7 P1 //AD数据口 sbit cs=P2^7; //芯片选择信号,控制芯片的启动和结果读取,低电平有效 sbit rd=P3^7; //读数据控制,低电平有效 sbit wr=P3^6; //AD转换起动控制,上升沿有效 sbit keyAdd=P2^4; //亮度增加 sbit keyReduce=P2^5; //亮度减少 sbit change=P2^6; //手动、自动切换 uchar ad_data; int keyCount; //亮度等 uint change_flag; //5ms延时子程序///////////////// void delay(uint i) { uint j; for(;i>0;i--) for(j=0;j<410;j++); } void led(){ cs=0; wr=1; _nop_(); wr=0; _nop_(); wr=1; delay(1); P1=0xff; rd=1; _nop_(); rd=0; _nop_(); ad_data=255-P1; 22 LED亮度自动调节系统设计 if(ad_data>=0 && ad_data<51){ P0=0xff; keyCount=0; } if(ad_data >=51 && ad_data<102){ P0=0xef; keyCount=1; } if(ad_data >=102 && ad_data<153){ P0=0xcf; keyCount=2; } if(ad_data >=153 && ad_data<255){ P0=0x8f; keyCount=3; } if(ad_data >=204 && ad_data<255){ P0=0x0f; keyCount=4; } } void key_light(){ if(keyCount<=0){ keyCount=0; P0=0xf0; } if(keyCount==1){ P0=0xef; } if(keyCount==2){ P0=0xcf; } if(keyCount==3){ P0=0x8f; } 23 LED亮度自动调节系统设计 if(keyCount>=4){ keyCount=4; P0=0x0f; } } void keyScan(){ if(change==0){ delay(2); if(change==0){ while(!change); change_flag=!change_flag; } } if(change_flag==1){ led(); } if(change_flag==0){ cs=1; if(keyAdd==0){ delay(2); if(keyAdd==0){ while(!keyAdd); keyCount++; } } if(keyReduce==0){ delay(2); if(keyReduce==0){ while(!keyReduce); keyCount--; } } key_light(); } 24 LED亮度自动调节系统设计 } //**************************************************** //写指令 //**************************************************** void LCD1602_write_com(unsigned char com) { LCD1602_RS = 0; LCD1602_delay_ms(1); LCD1602_EN = 1; LCD1602_PORT = com; LCD1602_delay_ms(1); LCD1602_EN = 0; } //**************************************************** //写数据 //**************************************************** void LCD1602_write_data(unsigned char dat) { LCD1602_RS = 1; LCD1602_delay_ms(1); LCD1602_PORT = dat; LCD1602_EN = 1; LCD1602_delay_ms(1); LCD1602_EN = 0; } //**************************************************** //连续写字符 //**************************************************** void LCD1602_write_word(unsigned char *s) { while(*s>0) { LCD1602_write_data(*s); s++; } 25 LED亮度自动调节系统设计 } void Init_LCD1602() { LCD1602_EN = 0; LCD1602_RW = 0; //设置为写状态 LCD1602_write_com(0x38); //显示模式设定 LCD1602_write_com(0x0c); //开关显示、光标有无设置、光标闪烁设置 LCD1602_write_com(0x06); //写一个字符后指针加一 LCD1602_write_com(0x01); //清屏指令 } void main() { change_flag=1; keyCount=0; while(1){ keyScan(); } } 26
/
本文档为【LED亮度自动调节系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索