LED照明灯智能调光系统的设计-(毕业设计)分析.doc

上传人:小飞机 文档编号:4741626 上传时间:2023-05-12 格式:DOC 页数:41 大小:2.13MB
返回 下载 相关 举报
LED照明灯智能调光系统的设计-(毕业设计)分析.doc_第1页
第1页 / 共41页
LED照明灯智能调光系统的设计-(毕业设计)分析.doc_第2页
第2页 / 共41页
LED照明灯智能调光系统的设计-(毕业设计)分析.doc_第3页
第3页 / 共41页
LED照明灯智能调光系统的设计-(毕业设计)分析.doc_第4页
第4页 / 共41页
LED照明灯智能调光系统的设计-(毕业设计)分析.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《LED照明灯智能调光系统的设计-(毕业设计)分析.doc》由会员分享,可在线阅读,更多相关《LED照明灯智能调光系统的设计-(毕业设计)分析.doc(41页珍藏版)》请在三一办公上搜索。

1、编号: 本科毕业设计LED照明灯智能调光系统的设计 院 系:信息工程学院姓 名:*学 号:1035140140专 业:通信工程年 级:2010级指导教师:*职 称:副教授完成日期:2014年5月摘 要照明控制系统在生活中扮演着重要的角色,可以为人们工作、生活提供良好的视觉条件,营造舒适的光环境。本设计采用单片机作为控制系统,克服了传统照明设备耗能、不便于调节光强等缺点,实现了对光强调整的人性化、智能化的控制。设计通过点亮LED灯的数目来调整光照强度,LED灯点亮的个数越多,光线越充沛。我所做的智能调光系统,是单片机根据AD模块采集光敏传入的数据,及时地调整对光强的控制,当外界光照较强时,光照系

2、统提供的光照强度相应较弱,外界光照较弱时,光照系统提供的光照较强,解决了LED照明灯自动开启、关闭、自适应调整等问题,达到了最佳调光效果。关键词:智能调光;光敏传感器;LED灯;光照强度AbstractThe intelligent light-control system play important role in our life. It can make people rest, work and live with a good visual condition and excellent psychological feelings, which create a comforta

3、ble environment. This design use the single chip micro-computer as the control system, overcome the traditional lighting systems heavy energy consumption, not easy to adjust light intensity and other shortcomings, realize the humanization and intelligent adjustment control. The single chip micro-com

4、puter adjusts the light intensity according to the AD module data from the photo-sensitive. If the outside light become strong, then the lighting system provided weak light; If the outside light is weak, the lighting system provide the strong light correspondingly, which solve the LED light open and

5、 close automatically and adaptive adjustment problems, achieved the best lighting effect.Key words: intelligent light-conditioning; photo-sensitivesensor; LED; illumination目 录1 绪论11.1 研究背景和意义11.2 指导思想12 硬件设计32.1 需要注意的问题32.2 所使用芯片的简介42.2.1 单片机芯片42.2.2 模数转换芯片ADC080862.2.3 地址锁存芯片74HC37372.2.4 并行口扩展芯片82

6、5582.2.5 七段数码器102.3 主要模块的实现方案112.3.1 最小系统模块122.3.2 AD转换模块132.3.3 地址锁存模块142.3.4 数码管显示模块152.3.5 8255与LED显示模块152.4 硬件连接及电路图153 软件设计及仿真173.1 软件的总体设计173.2 AD转换183.3 七段数码管的显示193.4 8255及LED显示213.5 中断定时器的使用223.6 延时函数的设定234 实物的连接与调试244.1 光敏电阻5516的相关参数244.2 PCF8591 AD/DA芯片概述244.3 PCF8591的应用254.3.1 器件总地址254.3.

7、2 控制字节254.4 实物的连接方式264.5 硬件程序的烧录275 设计总结285.1 系统应用前景285.2 设计过程中遇到的主要问题以及解决办法285.3 创新之处及扩展分析295.4 心得体会30致谢31参考资料32附录1 Proteus仿真图33附录2 实物图片34附录3 Keil程序341 绪论1.1 研究背景和意义随着社会的发展,照明系统已经成为各种场合具体应用的不可或缺的一部分,它甚至在舞台灯光、城市路灯、家居环保中起着举足轻重的作用,而其核心模块就是单片机智能控制系统。但对于一些大型的应用场合,如:露天停车场、活禽养殖厂、工厂控制车间等,都存在光照应用不合理,电力能源过度消

8、耗等严重问题,甚至城市光污染越来越成为一个新的议题。智能调光系统不仅可以解决上述问题,还可以使灯在有需要的时候自动开启或者关闭,并且能够做到自适应调整,以达到对外界的最佳照明效果。成功地避免了灯在不需要的时候开启或者需要时关闭,大大的避免了不必要的电力能源浪费,对于地球环保和能源的节约,可以起到巨大的推动作用。据可靠调查,一个城市每年在电力消耗的经济支出上对于普通人来说简直是一个天文数字,且一个人一生中的不必要的用电都可能供城市公用路灯系统支持几天。智能光照系统如果可以普及化,不仅可以为财政部门省下了一大笔的开支,使其可以将节省下的资金投资到更有意义的地方去,使得城市可以更好、更快的发展。同时

9、对于世界来说,更是可以取得巨大的节约能源效果,对于绿色地球的实现做出巨大的贡献。展望一下未来,智能调光系统的应用前景是十分光明的。伴随着物联网技术的广泛应用和传感器技术领域的突破,人们可以更加方便控制各种灯光了。时下正在兴起的无线技术,也为智能调光增添了一缕新的色彩。智能调光系统可以广泛应用于智能家居、智慧旅店、智能建筑、智能农业等系统中,实时探测环境中的光照强度,即时生成数据并发送到监控平台或系统中心。如:(1)智慧家居根据实际需要,让你的家明亮舒适。(2)智慧农业为农作物提供适宜的光照,促进作物的生长。(3)智慧厂房为工厂生产提供合适的光照环境,节约能源消耗。(4)智慧楼宇结合阳光和灯光,

10、让楼宇保持明亮舒适。(5)智慧养殖为家禽家畜提供适宜的光照,促进其生长繁殖。1.2 指导思想智能调光系统的自动化调整的控制方式有很多,本系统采用STC89C52RC和ADC0808、LED灯、七段数码显示管等相关的光电检测、控制、显示设备,来设计智能光照系统。实现能根据外界光线条件通过光敏电阻、AD转换模块等的处理实现控制LED灯,使其可以根据光线的强度自动调整点亮的LED的个数,使灯光的效果达到最佳,进而电力的消耗也降低到最小。本设计是基于光敏电阻传感器对于外界光线强弱的感应能力的智能调光系统设计,应用了ADC采集模块采集光敏电阻传感器两端的电压值。当外界光线强度弱到一定程度的时候,此时光敏

11、电阻的阻值变大,而其两端的电压也相应的增大,如果ADC采集模块所采集到的电压值达到设定的阈值(较大),LED灯打开的数目自动增加。同理,当光线强度大到一定程度的时候,此时光敏电阻的阻值变小,而其两端的电压也相应的减小,ADC采集模块所采集到的电压值达到一定的阈值(较小),LED灯关闭的数目也自动增加。当然,在上述过程中,也可以使用按钮来调整LED灯点亮的情况,方便地调整对光线的控制。2 硬件设计本设计是以光敏电阻可以根据外界光线的强度而改变自身阻值的特性(光线越强,阻值越小;光线越弱,阻值越大)为基础设计的LED照明灯智能调光系统。其原理是利用光敏电阻感受外界光线强度并体现在自身阻值的变化上。

12、光敏电阻的阻值发生变化体现在电路中,就是其两端电压的变化。这一具体变化需要用ADC模块采集并经处理后显示出来,这就需要使用ADC模块和七段显示数码管了。另外,由于要控制的LED灯数目较多(是为了使功能复杂一点),我们还需要进行并行口扩展。一般优先选择使用8255芯片。2.1 需要注意的问题首先,系统的基础模块应该是数据采集模块,也就是ADC0808了。它是否正常工作关系大局。它的工作时钟频率不能太低,几KHZ以上即可。只有提供了恰当的时钟脉冲,数据才能被快速地正确的采集,才能进一步送进单片机内部进行处理,最后才能有效控制LED显示模块进行显示。还有一个问题,就是为什么要选择使用LED灯?LED

13、的内在特征决定了它具有很多优点,诸如:(1)体积小。(2)耗电量低:LED耗电相当低,直流驱动,功耗(单管0.030.06瓦),电光功率转换接近30%。一般来说LED的工作电压是23.6V,工作电流是0.020.03A;这就是说,它消耗的电能不超过0.1W,相同照明效果比传统光源节能近80%。(3)使用寿命长:有人称LED光源为长寿灯。它为固体冷光源,环氧树脂封装,灯体内也没有松动的部分,不存在灯丝发光易烧、热沉积、光衰等缺点,在恰当的电流和电压下,使用寿命可达6万到10万小时,比传统光源寿命长10倍以上。(4)高亮度、低热量:LED使用冷发光技术,发热量比普通照明灯具低很多。(5)环保:LE

14、D是由无毒的材料做成,不像荧光灯含水银会造成污染,同时LED也可以回收再利用。光谱中没有紫外线和红外线,既没有热量,也没有辐射,眩光小,冷光源,可以安全触摸,属于典型的绿色照明光源。(6)坚固耐用:LED被完全封装在环氧树脂里面,比灯泡和荧光灯管都坚固。灯体内也没有松动的部分,使得LED不易损坏。上述一系列的优点,决定了LED灯正在成为主流应用最佳选择。2.2 所使用芯片的简介2.2.1 单片机芯片STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。STC89C52RC引脚图如图

15、2-1所示。图2-1 STC89C52RC引脚图STC89C52RC引脚功能说明如下:VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双

16、向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。表2-1 P1.0和P1.1引脚复用功能引脚号功能特性P1.0T2(定时器/计数器2外部计数输入),时钟输出P1.1T2EX(定时器/计数器2捕获/重装触发和方向控制)P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉

17、电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示:表2-2 P3口引脚复用功能引脚号复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。看门狗

18、计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/ (30引脚):地址锁存控制信号,ALE是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。(29引脚):外部程序存储器选通信号。当STC89C52RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激

19、活。/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。2.2.2 模数转换芯片ADC0808ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。ADC0808由一个8路模拟开关、一个地址锁存与译码器

20、、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0808对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 图2-2是它的引脚图,下面说明各个引脚的功能。图2-2 ADC0808管脚图15和2628(IN0IN7):8路模拟量输入端。8、14、15和1721:8位数字量输出端。22(ALE):地址锁存允许

21、信号,输入,高电平有效。6(START):当START处于上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,START应保持低电平。7(EOC):A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。12(VREF(+)和16(VREF(-):参考电压输入端。11(VCC):主电源输入端。13(GND):接地。2325(ADDA、ADDB、ADDC):3位

22、地址输入线,用于选通8路模拟输入中的一路。2.2.3 地址锁存芯片74HC37374HC373,包含八路D型透明锁存器。适用于面向总线的三态输出。所有锁存器共用一个锁存使能(LE)端和一个输出使能()端。74HC373芯片引脚图及工作原理:图2-3 74HC373的引脚图:output_enable,输出使能;LE:latch_enable,数据锁存使能,latch是锁存的意思; Dn:第n路输入数据;Qn:第n路输出数据;(1)真值表,表示芯片在输入和其它的情况下的输出情况。真值表的意思如下:第一、二行:当0、LE1时,输出端数据等于输入端数据;第三行:当OE0、LE0时,输出端保持不变;第

23、四行:当1时,无论Dn、LE为何值,输出端为高阻态。表2-3 74HC373的真值表DnLEQnHHLHLHLLXLLQnXXHZ(2)高阻态,就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁。(3)数据锁存,即当输入的数据消失时,在芯片的输出端,数据仍然保持。(4)数据缓冲,加强驱动能力。74LS244/74LS245/74LS373/74LS573都具备数据缓冲的能力。 在实际应用的时候是这样做的:OE0;先将数据从单片机的口线上输出到Dn;再将LE从0-1-0;这时,你所需要输出的数据就

24、锁存在Qn上了,输入的数据在变化也影响不到输出的数据了;实际上,单片机现在可以忙着干别的事情,如串行通信、扫描键盘2.2.4 并行口扩展芯片82558255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分

25、:与CPU连接部分、与外设连接部分、控制部分。其芯片引脚图如图2-4所示。图2-4 8255芯片的引脚图各引脚的功能:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。:芯片选择信号线,当这个输入引脚为低电平时,即=0时,表示芯片被选中,允许8255与CPU进行通讯;=1时,8255无法与CPU做数据传输.:读信号线,当这个输入引脚为低跳变沿时,即产生一个低脉冲且=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。:写入信号,当这个输入引脚为低跳变沿时,即产生一个低脉冲且=0时,允许

26、CPU将数据或控制字写入8255。D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。方式0基本输入输出方式;方式1选通输入/出方式;方式2双向选通输入/输出方式;PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。工作于三种方式中的任何一种。PB0PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。不能工作于方式二。PC0PC7:端口C输

27、入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。不能工作于方式一或二。A1A0:地址选择线,用来选择8255的PA口、PB口、PC口和控制寄存器。当A1A0=00时,PA口被选择;当A1A0=01时,PB口被选择;当A1A0=10时,PC口被选择;当A1A0=11时,控制寄存器被选择。2.2.5 七段数码器7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。当

28、发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如图2-5所示。图2-5 八位七段数码显示器七段数码管的驱动方法:发光二极管(LED是一种由磷化镓(GaP)等半导体材料制成的,能直接将电能转变成光能的发光显示器件。当其内部有电流通过时,它就会发光。7段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为510mA,正向电压随发光材料不同表现为1.82.5V不等。7段数码管的显示方法可分为静态显示与

29、动态显示,下面分别介绍。(1)静态显示所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地尽可能截止。这种显示方法为每一们都需要有一个8位输出口控制。对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高了CPU的工作效率;缺点是位数较多时,所需I/O口太多,硬件开销太大,因此常采用另外一种显示方式动态显示。(2)动态显示所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于

30、显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序,这占用了CPU的大

31、量时间,降低了CPU工作效率,同时显示亮度较静态显示器低。2.3 主要模块的实现方案该设计主要由五大模块构成:单片机最小系统模块(实现复位功能),光线接收模块(用滑动变阻器来等效),AD转换模块,地址锁存模块(74HC373),8255和LED显示模块(供16枚)。晶振电路数码管显示输出LED显示输出ADC采集单片机核心模块图2-6 系统框图其系统框图如图2-6所示。所需的硬件单片机STC89C52RC、ADC0808元件、8255芯片、74HC373元件、滑动变阻器、发光二极管、电阻、排阻、11.0592M晶振、电源、学习用的单片机最小系统开发板、按钮等。2.3.1 最小系统模块最小系统模块

32、:最小系统是51单片机的最基本的组成部分,它包括单片机及其所需的必要电源、时钟、复位等部件,它能使单片机处于正常的运行状态,还可以将最小系统作为应用系统的核心部分,对其进行存储扩展、A/D扩展等。51单片机的引脚虽然只有四十,但它有很多的扩展功能,根据各种设计要求设计相应的外围电路。编写出相应的控制程序,便可以跟外围电路很好的组合成功能复杂的系统。51单片机最小系统的功能主要有:能够运行用户程序,用户可以复位单片机,具有相对强大的外部扩展等功能。最小系统引脚功能的说明如下:(1)18,19脚为单片机的晶振引脚;外接11.0592MHz的晶振,晶振外围还有2个22pF的起振电容,可以使单片机更好

33、的起振。(2)9脚为单片机的复位引脚;当复位引脚出现连续两个机器周期的高点平时,单片机复位。(3)31引脚为引脚;当接高电平时读取内部储存数据,当内部存储器读取完成后,单片机自动读取外部存储器;当接低电平时,单片机只读取外部存储器。单片机最小系统如图2-7所示。图2-7 单片机最小系统模块2.3.2 AD转换模块首先,要做一个分压电路。将滑动变阻器两个固定端,一端接上5V的直流电源,另外一端接地。中间的可以滑动的位置接上ADC0808的IN7,IN0IN6接地,这样表示只有通道7可以传入数据,其余通道都不能采集数据。此外,还需要将ADC0808的地址选通端ADD A,ADD B,ADD C全部

34、接上高电平,表示我们选择了IN7进行输入。其次,由于ADC0808内部没有时钟电路,我们需要给它提供时钟信号,这个靠单片机使用定时中断来产生,将其CLK端接P3.1。其它的,如ALE地址锁存信号接单片机的P3.2,START接上单片机的P3.0,EOC接上单片机的P3.4,输出允许端OE接单片机的P3.5。最后,ADC0808输出的结果是0255之间的8位二进制数,OUT1是最高位,OUT8是最低位,需要将它们对应接上单片机的P1口的P1.7P1.0。ADC0808各引脚连接示意如图2-8。图2-8 ADC0808引脚连接示意图2.3.3 地址锁存模块74HC373是地址锁存器,使用它可以将地

35、址和数据分开传递,使用时用单片机的引脚ALE对它的LE来进行控制了。其数据端D0D7接上单片机的P0口的8位引脚,接地,表示它工作在直通方式。输出端低两位Q1Q0用作8255的地址选通端。最高位Q7接8255的片选端。74HC373芯片引脚连接示意如图2-9所示。图2-9 74HC373的引脚图2.3.4 数码管显示模块8位七段数码显示器有8位位选端和8位数据输入端。这就大大消耗了单片机的I/O资源,可能的话,需要用74HC373对其单片机进行串口扩展。本次设计的连法:8位位选端由P2口来进行控制,8位数据输入端有P0口来进行控制,显示的方式是动态扫描显示法。即:单片机轮流选中8位中的每一位,

36、来进行显示。只要延时程序设计的合理,七段数码显示器就可以稳定的显示。8位七段数码管的显示结果的说明:最前两位显示的是LED灯点亮的数目,中间一位显示的是任意一个按钮被按下去的次数,最后三位表示ADC的采集的光敏电阻两端的电压值。2.3.5 8255与LED显示模块8255芯片的连接:D0D7与单片机的P0口相连,用来接收数据。读写端也与单片机读写端相连,方便单片机对其进行读写操作。地址选通线A0、A1接入7HC373的Q0、Q1。RESET接地,片选端接74HC373的Q7。这样一来8255的4个端口的地址就可以算出来了,分别是PA0x00,PB0x01,PC0x02,控制端0x03。16枚L

37、ED灯的接法为:8255的PA口接上8枚,同样PB口也接上了8枚,LED使用共阳极的接法,即它们的阳极全部通过排阻接上电源。PC口悬空不用。详细情况见图2-10所示。图2-10 8255引脚连接图2.4 硬件连接及电路图本次设计是将上述的五个模块拼接一起组成一个系统体系,以实现设计所需要的功能。主要的是ADC采集模块,其次比较重要的就是对LED模块的控制。单个模块其功能相对会比较简单单一,但将一些模块合理的串接起来就可以实现相对复杂的功能。即:本次设计应有的功能。 电路总体连接方式:(1)ADC0808的连接方式:转换启动信号START接到单片机的P3.0口,时钟信号CLK接到P3.1口,AL

38、E接到单片机的P3.5口,EOC接到单片机的P3.4口,OE接到单片机的P3.4口,OUT8OUT0接单片机P1.0P1.7,使用通道7进行采集,其余通道接地,表示没有被使用。(2)单片机的P1口既作为数据输出端,又作为地址选通端。通过与74HC373的连接,来分离数据和地址,采用时分的输出方式。74H373的LE端口接单片机的ALE端口,利用单片机对LE的输入电平进行控制。当LE为高电平时,数据从Dn输入到锁存器;当LE为低电平时,锁存器存储D输入上的信息一段就绪时间直到LE的下降沿来临。OE端接地,选为直通方式。(3)8255的地址选通端由地址锁存芯片74HC373的Q0和Q1来控制,而且

39、片选端也由Q7来控制。8255的读写信号与单片机的读写信号线连接。三个输出端口中的PA、PB分别接上8枚LED,PC口悬空,暂时不用。单片机核心控制模块光敏电阻AD采集模块七段数码显示器地址锁存模块8255及LED显示模块以下是电路概图。图2-11 系统电路概图3 软件设计及仿真3.1 软件的总体设计考虑到Proteus软件的仿真模型LDR(光敏电阻)的用法较为繁琐,调整起来不怎么灵活,光敏电阻的阻值变化要么变化较为缓慢,要么变化剧烈,无法捕捉到有意义的阻值点,无法使实验的结果一目了然的体现出来。我们选择用滑动变阻器模仿它的阻值变化。另外,我们选择采集滑动变阻器的有效电阻两端的电压UR,因为如

40、果采集电流的话,采集电路就比较容易干扰单片机系统。LED显示模块总共有16枚LED参与点亮,其中智能自动调节的有8枚,人工手动调节的也有8枚。初步效果如下:0UR 1,说明外界光线最强,所有灯都灭掉;1UR 2,开2个灯;2UR 3,打开4个灯;3UR 4,打开6个灯;4UR 5,说明外界光线最弱,此时所有的8个灯都打开。按钮1的使用效果:不按时没有灯点亮,接着就是每按下一次,就依次递增点亮1盏灯。总共有8个层次的变化。按钮2的使用方法,只是每按下去一次,就依次递增点亮2盏灯,总共有4个层次的变化。软件仿真部分由两部分组成,结构原理图用Proteus来创建,单片机C程序由Keil uVisio

41、n4来编写。具体步骤:首先,在Keil中创建一个工程,编写C文件后,并添加到工程中去,编译正常后,会生成16进制文件。其次,在Proteus中完成原理图的连接后,再将由Keil生成的16进制文件导入到单片机中去,这样就可以在Proteus中进行仿真了,注意单片机的晶振频率需调成12MHZ的。最后,在Proteus中对元器件进行必要的调整,就可以观察显示结果了。本系统的软件执行流程图如下:NOYES图3-1 软件流程图模式4模式5模式1模式2模式3启动程序开始进行AD转换转换结束?执行显示处理程序数码管显示数据判断电压值大小3.2 AD转换由于ADC0808内部没有时钟产生电路,所以若想让ADC

42、0808正常工作,就必须对其提供合适的时钟脉冲。我们使用中断定时器来产生,原因有两个。一是比较精确,且时钟脉冲的产生比较稳定。二是充分地利用了单片机闲置的资源内部中断定时器。 在进行C语言编程的时候,要注意控制好延时时间,使AD转换正常进行。并且在执行其他子程序之前都要判断转换ADC是否已经完成。AD模块仿真图如下图3-2所示。说明如下:Proteus中的电压表模型所显示出的是1.09V,是在05V范围内,再者七段数码显示器上显示的数据也和这一数据相吻合,也就是说本次采集的数据是正确的,但不同的阻值,有可能多多少少存在着一些误差。频率计显示的是ADC0808的采集频率的大小。图3-2 ADC0

43、808仿真图3.3 七段数码管的显示8位七段数码显示管的数据端是单片机的P0口控制,位选是由P2口来控制。数码管的显示是采用动态显示的方式。即:采用轮流扫描的方式来选中八位中的每一位,利用人眼的视觉余晖效应,来达到稳定显示的效果。只要延时设置合理,便可稳定的显示数值。对于8位共阴极七段数码管的显示程序display(),单片机要把从P1口读进来的8位二进制数0255转换为05V之内的有效电压值后,再输出显示。仿真结果如下图3-3所示。图3-3 数码管的显示仿真图说明:8位七段显示数码管的前两位显示的是LED灯点亮的个数,中间的那位1表示按钮已经按下一次了;最后3位显示的是滑动变阻器的等效电阻两

44、端的电压值。其数值正好与Proteus中的电压表所读出的值相等。数码管的显示程序抄录如下:void display(void)/共阴段码 char code table = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, /07 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71,0x40; /8F、-P0=0;P2=0x7f;P0=tablenum2/10;delay(1);P0=0;P2=0xbf;P0=tablenum2%10;delay(1);P0=0;P2=0xdf;P0=table16;del

45、ay(1);P0=0;P2=0xef;P0=tablecnt1+cnt2;delay(1); P0=0;P2=0xf7;P0=table16; delay(1); P0=0;P2=0xfb;P0=tablenum1/100|0x80;/第三位 delay(1); P0=0;P2=0xfd;P0=tablenum1%100/10;/十位 delay(1); P0=0;P2=0xfe;P0=tablenum1%10; /个位delay(1); P2=0xff;/关闭显示器3.4 8255及LED显示至于对LED显示模块的控制,我们是采用对8255的串口写控制字来操作的。LED显示自适应调整部分一共

46、分为5个层次,也就需要5个相应的函数,分别是led0()、led2()、led4()、led6()、led8(),具体执行哪一个,要看流程控制语句switch-case的具体参数的值了。下面是LED显示模块的仿真截图。图3-4 LED显示模块的仿真部分处理程序如下:switch(v) case 0:PA8255=0xff;delay(2);break; case 1:PA8255=0xfc;delay(2);break; case 2:PA8255=0xf0;delay(2);break; case 3:PA8255=0xc0;delay(2);break; case 4:PA8255=0x00;delay(2);break; default:break; 3.5 中断定时器的使用C51单片机的定时器/计数器为可编程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号