




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汪婷婷:基于单片机的太阳能路灯控制器设计安徽工程大学机电学院毕业设计(论文)-57-第1章概述1.1研究背景、目的与意义随着科学技术的迅速发展,世界能源危机日益严重,利用常规能源已不能适应世界经济快速增长的需要,开发和利用新能源越来越引起各国的重视。太阳能源本身的安全可靠、无噪声、无污染和可再生性的特点,加之现今光伏技术的逐渐成熟,利用光伏发电成为解决能源问题的一大途经。随着可持续发展的不断深入,人们在积极开发各类可再生新能源的同时也在倡导节能减排的绿色环保技术而在照明领域,寿命长节能安全绿色环保色彩丰富微型化的LED固态照明也已被公认为世界一种节能环保的重要途径,太阳能LED路灯同时整合了这两者的优势。在国家可持续发展战略的推动下,太阳能产业从无到有、从小到大发展起来。国内各大研究单位都对太阳能路灯作了详尽的研究,特别是近几年来,已经初步形成在“产业上规模、技术上水平、产品上档次和市场要规范”的产业发展思路引导下,太阳能产业得到了快速发展。在欧洲大部分地区,环保的思路推动着替代能源技术的开发,太阳能被公认为是一种极好的替代能源。它的利用有助于降低CO2的排放,因而达到保护环境,很多国家,如丹麦、芬兰、德国和瑞士,都认为气候变暖是推动太阳能研究开发、发展和销售活动的主要因素。尽管受到常规能源的低价影响,在欧洲很多国家中,太阳能装置市场仍然持续增长。法国的太阳能设计师们,正在用“绿色设计”原则代替“太阳能”设计原则,就是要统筹考虑能源性能、安全材料的应用、日光照明、居住的舒适度和健康等因素。这种新设计方法,将应用于Angers的法国环境保护和能源管理署的办公大楼。现今,LED路灯相对于高压钠灯路灯的优越性已被绝大部分专业人士认可,然而遗憾的是目前大多数的LED路灯仍然采用交流电供电,一方面是交流电路灯的技术已经十分成熟,而太阳能路灯还有很多不确定因素,另一方面主要的考虑仍然是太阳能的初始投资过大,从而忽略了太阳能供电的很多根本优越性。然而真正要用太阳能来取代一切能源还是一个长期而艰巨的任务,任何新生事物最好先从小打小闹开始,而且采用“自产自销”的方式,路灯就是一个最好的采用太阳能的试点工程。而且,节能和减排一样,必须先由政府倡导,甚至像德国那样采用政府补贴的方法来推广。我们欣喜地发现,路灯工程原本即政府工程,是由政府来进行招投标的。因此,由LED路灯取代高压钠灯、由太阳能LED路灯取代交流电LED路灯正是大势所趋。1.2设计要求智能太阳能路灯系统由太阳能电池板、蓄电池、LED路灯控制器及过充过放保护电路,光控、时控电路等组成。白天太阳能电池板接受太阳辐射能并转化为电能输出,经过充电控制电路储存在蓄电池中;晚间当光线照度降低时,控制器使LED灯点亮,进行指示性照明。控制器检测到蓄电池充电或放电超出一定范围时,控制器切断充放电回路,保证电池不被损坏。遇到连续阴雨天季节可切换成市电照明,避免蓄电池长期亏电。1.2.1太阳能路灯系统组成、工作原理与发展现状目前的太阳能路灯控制系统都是独立光伏控制系统,主要由7个部分组成:太阳能电池板、蓄电池、负载(LED路灯)、控制器、测量电路、充电电路、放电/负载驱动电路。基本结构如图1-1所示:太阳能电池板太阳能电池板蓄电池LED路灯充电电路测量电路放电/驱动电路控制器图1-1太阳能控制系统太阳能LED路灯运行过程中,LED路灯都是在夜间运行的。因此太阳能LED路灯的工作方式为:在白天太阳能电池在控制器控制下通过充电路为蓄电池充电,而在夜间或连续阴雨天气里蓄电池放在控制器控制下通过放电/驱动电路点亮并调节LED路灯的亮度。另外因为太阳能电池受环境温度、光照条件、湿度等影响很大,所以供应的电力不稳定,蓄电池可以稳定整个路灯系统电路的势能,为控制器提供稳定的工作电压和电流。在太阳能LED路灯系统中,太阳能电池的使用寿命一般是在20~30年,而LED正常寿命也在10万小时以上,而寿命比较长的免维护铅酸蓄电池的寿命在使用得当的情况下,一般是5~6年,所以铅酸蓄电池的使用寿命基本上就代表着太阳能路灯的阶段性寿命。目前,市场上有各种各样的太阳能路灯,这些路灯系统主要问题是可靠性不高,其原因是:控制器对于蓄电池的保护不充分而导致蓄电池的损坏。这些控制器对蓄电池的充电采取了很多有效的措施,确保蓄电池不会过充电;比如当蓄电池的电压达到充满点(密封铅酸电池为单体2.35V,固定式铅酸电池为单体2.5V)时,控制器将充电回路断开,或者采用脉宽调制的办法或多路充电的办法,随蓄电池的电压接近充满点时,充电电流逐渐减小,从而达到保护蓄电池不被过充的目的。但是对于防止蓄电池过放电,目前市场上的太阳能路灯控制器只是一点式控制。即在蓄电池达到过放点之前不做任何控制。尽管目前的路灯控制器一般还具有光控开关和定时器,可以人为设定路灯的工作时间,也有将路灯的功率分档,前半夜满功率,后半夜半功率工作,但都没有通过在线检测蓄电池的剩余容量而自动调整负荷,这样仍然避免不了蓄电池的过放电,而蓄电池一旦过放电,或者强迫将负载断开,或者由于蓄电池电压过低使负载自动断电。这样做的后果是:切断负载影响整个系统的正常工作并且蓄电池已经处于深度放电状态,大大缩短了蓄电池的使用寿命[9]。1.2.2设计思路在本课题的设计过程中充分考虑了蓄电池过充与过放问题,根据蓄电池剩余荷电容量(SOC)充放电数学模型和剩余荷电容量(SOC)与蓄电池循环寿命的关系,在设计太阳能LED路灯控制器的时候,我们采用以下控制方案,完全避免蓄电池过充和过放,并保证LED路灯以尽可能延长点亮的时间。在充电阶段为三段控制:第一段(10%<SOC<40%:过放状态)为快充阶段、第二段(40%<SOC<95%)慢充阶段、第三段(SOC>95%)浮充阶段。充电过程中逐渐减小脉宽调制信号(PWM)的宽度。在放电/驱动阶段分六段进行监控:(90%<SOC<100%)(80%<SOC<90%)(80%<SOC<70%)(60%<SOC<70%)(50%<SOC<60%)(40%<SOC<50%),对应各段计算出对应的脉宽调制信号(PWM)宽度来驱动LED路灯。在放电/驱动过程中逐段缩小PWM信号的宽度,保证足够亮度同时,以最长的点亮时间为控制目标。10%<SOC<40%时做特殊处理,以最低亮度标准(节能模式)的方式驱动LED路灯,并在到达过放点之前切断负载,可完全避免过放。采用该方案后,实现了基于单机机的太阳能LED路灯系统对蓄电池智能化的充/放电控制,避免了蓄电池过充和过放,保障了太阳能LED路灯系统的长周期稳定运行。但是相互独立的太阳能路灯如果大量投入使用,因为太阳能路灯的蓄电池内部物化反应的不一致,而且太阳能路灯小则分布于一个小区,大则遍布整个城市,各自周围环境不同,因此受到地物遮挡、环境温湿度等影响不同,会导致运行一段后,太阳能路灯工作情况参差不齐。因此不方便进行统一步调的统一控制,比如互相补电、不同地段采用不同的控制方案,如果不进行网络化控制则完全无法实现,因此在完成独立运行的太阳能路灯系统之后,进一步设计了网络化监控系统模型,控制器端主要设计完成了基于CAN总线的通信模块硬件接口电路,并设计了相关的通信软件。上位机端,实现了监控模型的初步设计。另外LED响应时间一般只有几纳秒至几十纳秒,因此适合用高频的脉宽调制信号(PWM)来驱动和调节亮度。用脉宽调制信号(PWM)来驱动和调节白光LED,可使白光LED工作于发射最纯净白光的正向工作电流之下,不会象调节工作电流方式调节亮度那样随着工作电流偏离这个值发生偏色现象。白光LED一般工作电流较大,工作时会产生大量的热。随着工作温度的升高,LED器件会产生光衰现象,而使用PWM控制方式时其脉冲平均电流和直流电流大小相等的情况时,LED器件会有更低的温度,外量子率比较高,所以有更高的发光亮度,也更加节电。另外PWM方式驱动的充/放电电路电路实现起来也比较容易[10]。1.3课题意义基于对现有太阳能控制器的缺点的改进方案设计了可独立运行的太阳能LED路灯系统控制器的软硬件设计。设计独立运行的太阳能LED路灯控制器的技术可用于其他独立光伏系统的设计与控制。比如太阳能屋顶、光伏建筑一体化,风光水泵,户外独立工作的信号转播设施等等。当然光伏电源LED照明系统目前在实际应用过程中也都有着一些不足和技术瓶颈,例如太阳能光伏发电技术的效率一直不高,大功率LED的散热问题也一直有待更好的解决,蓄电池的使用寿命影响了整个系统的整体使用寿命等等,且光伏发电和LED照明两项技术都面临着成本较高,初期投入大的应用困难。但作为有潜力和市场需求的新兴技术,随着技术的发展,工业化商业化的进行,成本问题能得到有效的减少。太阳能利用技术和LED照明产业已经由技术开拓时期开始步入应用研究阶段,我们完全能相信集合了新一代能源和新一代光源优点的光伏电源LED照明系统定会进一步快速发展,引领我们进入一个绿色节能新时代。
第2章系统设计简介本文介绍基于单片机的太阳能路灯控制器的设计,对12V和24V蓄电池可自动识别,可实现对蓄电池的科学管理,指示蓄电池过压、欠压等运行状态,同时具有负载过流、短路保护功能;具有较高的自动化和智能化水平。2.1单片机简介及选择单片机是集成电路技术与微型计算机技术高速发展的产物。体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。
由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点,一般微机根本做不到。
由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可以灵活地构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制系统、智能仪器仪表等。20世纪80年代以来,发展迅速,世界一些著名厂商投放市场的产品就有几十个系列,数百个品种,Intel公司的MCS-48、MCS-51,Motorola公司的6801、6802,Zilog公司的Z8系列,Rockwell公司的6501、6502等。此外,荷兰的Philips公司、日本的NEC公司、日立公司等也相继推出了各自的产品。
尽管机型很多,但是在20世纪80年代以及90年代,在我国使用最多的8位单片机还是Intel公司的MCS-51系列单片机以及与其兼容的单片机(称为51系列单片机)MCS-51系列单片机主要包括基本型:8031/8051/8751(低功耗型80C31/80C51/87C51);增强型:8032/8052/8752。已为我国广大技术人员所熟悉和掌握。在上世纪80年代和90年代,MCS-51系列是在我国应用最为广泛的单片机机型之一。表2-1列出了基本型和增强型的MCS-51系列单片机片内的基本硬件资源。表2-1:基本型和增强型的MCS-51系列单片机片内的基本硬件资源型号片内程序
存储器
片内数据存储器
(B)
I/0口线
(位)定时器计数器
(个)中断源个数
(个)基本型8031无128322580514KBROM128322587514KBEPROM1283225增强型8032无256322680528KBROM256322687528KBEPROM2563226AT89C52
ATMEL公司生产的低电压,高性能CMOS8位单片机.片内含8KbyTES的可反复擦写的只读程序存储器(PEROM)和256byTES的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH由存储单元,功能强大AT89C52单片机适用于许多较为复杂控制应用场合。本设计中我们采用AT89C52单片机作为控制电路的核心器件。2.1.1AT89S52单片机AT89C52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。·XTAL2:振荡器反相放大器的输出端。·特殊功能寄存器:在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE),SFR的地址空间映象。并非所有的地址都被定义,从80H—FFH共128个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。AT89C52除了与AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。定时/计数器2的控制和状态位位于T2CON(参见表3)T2MOD(参见表4),寄存器对(RCAO2H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获/自动重装载寄存器。·数据存储器:AT89C52有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节RAM还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器[19]。2.2路灯系统简介太阳能LED路灯系统总框图如图2-1:主要由太阳能电池,充电POWERMOSFET控制管,放电POWERMOSFET扼流管LED发光板,POWEMOSFET控制管等组成。图2-1太阳能LED路灯系统总框图太阳能LED路灯系统主要包括三大部分:1、充电电路,其控制方式为脉宽调制信号(PWM)调制恒流电流进行斩波输出向蓄电池充电,根据蓄电池剩余荷电容量(SOC)来确定充电方式。当蓄电池剩余荷电容量在10%(本文在SOC达到40%以下时候,为了避免过放和系统停止,而采用特殊的放电/驱动方式来驱动LED路灯)以下时就可被确定为蓄电池深度放电,此时POWERMOSFET管被给定的脉宽信号(PWM)为全开,此刻相当于恒流充电,这被称为快充阶段。当门限电压超过阈值(SOC>40%)后,就转换为过充阶段,充电电压略高于蓄电池电压,电流大小由脉宽信号(PWM)占空比决定,脉宽信号的大小要随着电池电压的升高而逐渐变窄。当剩余荷电容量(SOC)超过95%以后(根据不同种类的电池具体数值不相同)就可进入浮充阶段,此时PWM信号宽度固定在一个很小的范围。2、放电控制电路,这部分主要由一个POWERMOSFET管来控制蓄电池是否放电,当蓄电池10%<SOC<40%时,使用比较窄的PWM脉冲控制驱动电路驱动LED路灯,使路灯保持在亮度最低限度上节能运行,SOC接近10%时切断电源,不再放电,有效避免过放。3、LED路灯驱动与亮度调节电路,这部分的主要控制思路是,在多点驱动过程中,在到达电池过放点之前,将蓄电池的容量分成几个阶段,根据蓄电池每个阶段的SOC大小来决定PWM输出信号的脉宽,尽量保持比较长的路灯点亮的时间,而又有效的避免了过放。但是由于LED器件过热后会发生发光衰减,所以在输出PWM控制信号时候要把温度补偿加进来。热度超过阈值(LED节温度接近90℃~120℃)则适当减低一点亮度。图2-2路灯控制器的结构框图2.3太阳能LED路灯控制器功能模块概述太阳能LED路灯控制器主要分成两大部分:1.CPU、电源、复位电路。其中电源、晶振和复位电路是必备,一般都是标准配置,但有时候根据不同的复位方式(外触发复位、上电复位)的不同,电路的设计上有所不同。单片机不仅仅是这一部分的主要部件,也是整个系统的核心部件。2.I/O接口部分(传感器采样与驱动部分)主要是完成相关传感器的采样,为控制逻辑提供控制参数和依据,另外的一部分就是驱动部分,分为上述的充/放电控制以及LED路灯的驱动与亮度调节。以上硬件和相关的固件程序的实现在以下部分进行详细的讨论和设计实现[19]。2.4电源、晶振、复位硬件电路2.4.1电源模块设计根据控制器的功能要求,本系统需要把12V蓄电池的电压转换成系统所需的电压信号。系统需两种电压类型10V,5V,我们可采用以下方案来实现。LM317电源芯片输出能提供1.5A的电流,输出电压可调,范围1.2~37V,内部具有过载和短路保护。C5选择50V/47μF的电解电容,C2选择25V/47μF的电解电容。D2二极管的作用当输入端短路C2电容上的电荷可以通过D2管放出,这样如果输入端短路,短路电流不会经过LM317,导致芯片的损坏,因此D2管是一个保护二极管。D1管的作用和D2管的作用一样起保护芯片的作用,到输出端短路,C3上的积累电荷可通过D1管放掉。其中V=(1+R2/R1)×1.25out(V),可选R14=240Ω,R15=1.68KΩ,则输出为10V。调整电阻R14、R5的相对大小,即可确定输出电压的大小,在一定的输入范围之内,输出电压与输入电压无关,但是输入输出电压的差值要超过1.8V。LM7805把+10V的输入电压,输出稳定在+5V。图2-3电源模块总电路如图2-3所示,蓄电池通过LM317和LM7805,能为系统提供两种电压+10V和+5V,+10V的电压主要用来驱动功率MOSFET管,而+5V的电压供系统中的控制器(AT89C52、MAX810、DS1307、DS18B20等)。2.4.2晶振电路单片机工作的时间基准是由时钟电路提供的。在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。时钟电路如图2-4所示。电路中,电容器C1和C2对振荡频率有微调作用,通常取(30±10)pF,本设计选用22pF。电路中的晶振采用石英晶体震荡器,晶振频率选择12MHz。石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力。通过基准频率来控制电路中的频率的准确性。图2-4时钟电路2.4.3复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。89系列单片机的复位信号是从RST引脚输入到芯片的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚有一个高电平并维持2个机器周期(24个振荡周期),则CPU就可响应并且将系统复位。复位分为手动复位和上电复位。1、手动按钮复位手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。2、上电复位上电复位电路只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1pF。在上电复位的电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。本系统采用的是上电自动复位方式。其引脚连接如图2-5图2-5复位电路
第3章I/O控制部分硬件设计3.1电压采样模块设计3.1.1太阳能路灯系统设计的关键技术太阳能电池是太阳能路灯系统的动力源泉,由于受环境影响比较大,所发电力微弱而不稳定,而且安装方式对其影响也很大,所以必须对太阳能电池板进行最佳安装倾角和太阳能电池倾斜面上辐射强度的计算。对这两方面的计算主要采用由各向异性Hay数学模型的推导的太阳能电池板安装最佳倾角的数学表达式来计算:(3-1)式中:Hb——水平面上直接辐射量Hd——散射辐射量Rb——倾斜面与水平面上直接辐射量之比H0——大气层外水平面上太阳辐射量β——太阳能电池板倾角H——水平面上总辐射量ρ为地物表面反射率φ——当地纬度ω——日出时角以及各向异性Hay模型的推导所得的倾斜面上太阳辐射量的公式:(3-2)式中:Hb——水平面上直接Hd——散射辐射量Rb——倾斜面与水平面上直接辐射量之比H0——大气层外水平面上太阳辐射量β——太阳能电池板倾角H——水平面上总辐射量ρ为地物表面反射率铅酸蓄电池虽然结构简单,但实际上是一个比较复杂的储电装备。铅酸蓄电池的容量检测由于受到诸多因素(温度、电压、充放电电流及次数、放电深度、内阻、溶液的密度、使用时间、自放电等)的影响,难以准确进行在线测量,因此对蓄电池剩余荷电容量的准确测试提出了很高的要求。对蓄电池剩余容量的检测,通常有电液比重法,开路电压法,内阻法等。电液比重法对于阀控式密封铅酸蓄电池不适用。开路电压法,是基于Nernst热力学方程电液比重与开路电压有确定关系的原理,对于新电池尚可采用。蓄电池使用后期,当其容量下降后,开路电压的变化已经无法反映真实剩余容量。此外,开路电压法还无法进行在线测试。内阻法,是根据蓄电池内阻与蓄电池的容量有着更为确定的关系,但通常必须先测出某一规格和型号蓄电池的内阻一容量曲线,然后采用比较法通过测量内阻得知同型号、同规格蓄电池的剩余容量,通用性比较差,测量过程也相当复杂。综合以上蓄电池荷电容量(SOC)测试法的缺陷,本文采用了综合考虑铅酸蓄电池充放电率、充放电过程中的端电压、电液比重、内阻等各个物理化学参数的蓄电池剩余荷电容量(SOC)的数学模型,该数学模型就能够较为准确地反映出各个物理化学参数的变化对蓄电池剩余容量的影响。有了这样的通用性强的,能够反映各个物理化学参数连续变化对蓄电池荷电状态影响的数学模型,就可以很方便地在线测量蓄电池的剩余容量。蓄电池剩余容量充电和放电过程的数学模型如下。蓄电池充电过程数学模型:(3-3)式中:U——静止电压SOC——蓄电池剩余荷电容量DOD——放电深度(DOD=1-SOC)I——充电电流Ah——电池标称容量T——环境温度a——由于反应物和生成物比例的改变引起的电压变化的常数,0.1~0.2;b——电化学极化项常数,0.2~0.25;c——内阻极化项常数,0.15~0.25。蓄电池放电过程数学模型:(3-4)式中:d——由于反应物和生成物比例的改变引起的电压变化的常数,0.1~0.2;e——电化学极化项常数,0.1~0.15;f——内阻极化项常数,0.08~0.15。蓄电池的循环寿命与蓄电池的放电深度有着密切的关系,阀控式密封式铅酸蓄电池在放电深度(DOD)为20%时,循环寿命大于1500次;当放电深度为50%时,则循环寿命将降到500次左右,而当放电深度为80%时,循环寿命将只有大约200次(见图0-2)。由此可以看出放电深度在20%以下时的循环寿命分别是放电深度在50%时的循环寿命3倍以上,是放电深度在80%时的循环寿命5倍以上。控制蓄电池尽量工作在浅放电状态(SOC>50%),将有利于延长蓄电池的使用寿命。另外蓄电池如果经常处于过放(SOC<10%~20%)或者过充(SOC=100%,但仍充电),其寿命一般会比长期处于相对饱和状态的蓄电池寿命要缩短到正常寿命的1/3或者更短的1/5的时间。因此,在这些仅仅依赖太阳电池对蓄电池充电的光伏系统,控制器对蓄电池的控制对系统的稳定性能及成本的作用是显而易见的[9]。根据太阳LED路灯控制器的功能框图所示,需要对铅酸蓄电池的电压进行采样,为了保证准确性,电压基准零点选在太阳电池的负极。对于铅酸蓄电池,我们测量其端点电压,并根据我们在蓄电池性能分析所得的数学模型,可以判断蓄电池的剩余荷电容量SOC。并依据这个数据来控制电池的放电,避免电池的深度放电,尽量延长蓄电池的正常使用寿命。在控制器设计中,我们选择LM331芯片对太阳能电池和蓄电池进行电压采样。LM331把电压信号转变成与电压信号大小相对应的一定频率的方波信号,检测频率信号即可知道太阳能电池和铅酸电池的电压的大小,另外当太阳能电池的电压<0.5V,即可断定为环境光线暗弱(天黑、阴天或是大雾等等),需打开路灯照明[8]。表3-1给出了12V蓄电池放电过程中其容量与电压的对应值,图3-1给出了太阳能电池与铅酸蓄电池电压采样模块电路设计原理图。表3-112V蓄电池放电过程容量-电压对应值电压/V1211.8511.351110.8510.75SOC/%>959080706050电压/V10.610.3510.210.0510.05SOC/%40302010<5图3-1太阳能电池与铅酸蓄电池电压采样模块电路设计3.2温度采样模块温度影响蓄电池的容量,温度升高,其过充电电压降低。例如太阳能电池对蓄电池充电时,我们对过充点进行温度补偿,补偿方式对于2V(铅酸蓄电池每格的电压)蓄电池,基准温度为25℃,温度每变化1℃,电压补偿3mV,为实现温度的采样,可选温度传感器[5]。温度传感器的种类众多,智能温度传感器DS18B20将温度传感器、A/D转换器、寄存器、接口电路集成在一个芯片中,具有直接数字化输出、测试及控制功能强、传输距离远、抗干扰能力强、微型化、微功耗的特点。在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。DS18B20温度转换的实现与接口编程单片机控制DS18B20完成温度采样与转换两个步骤,先启动DS18B20开始转换,再读出温度值。DS18B20引脚功能:GND
电压地
、DQ
单数据总线
、VDD
电源电压
、NC
空引脚
DS18B20。工作原理及应用:
DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。图3-3是温度传感器与主控制芯片AT89C52的引脚3-4是其工作流程图。图3-3多路DS18B20与TA89C52引脚连接图图3-4DS18B20工作流程图3.3DS1307芯片作用及其与系统连接图时钟电路为系统提供时钟,太阳能路灯控制器一方面通过太阳能电池的光控功能自动提供天黑、天亮的时间点。但是采用时钟电路能够为系统提供更多的时间点,例如,我们可以根据时钟电路确定现在的准确时间,可以确定四季、前后半夜。使控制器能根据季节的变化来确定灯每晚点亮的时间,来调整负载的工作时间,使路灯系统设计的更为合理。另外时钟信号也成为了一个白昼与黑夜交替时间的另一个准确参考,必免开灯时间的误判断而影响路灯正常使用。本控制器选用DALLAS的DS1307作为时钟电路[6]。DS1307是低功耗、I2C接口、日历和时钟数据,按BCD码存取的时钟/日历芯片。它提供秒、分、小时、星期、日期、月和年等时钟日历数据。它可独立于CPU工作,芯片还具有主电源掉电情况下的时钟保护电路,DS1307的时钟靠后备电池维持工作,同时还具有备用电源自动切换控制电路,因而可在主电源掉电和其他一些恶劣环境场合中保证系统时钟的定时准确性。由于DS1307的方波输出脚为集电极开路,故要在外部加上上拉电阻!图3-5给出了DS1307与系统的连接原理图。同时,也对I2C的具体做了说明。图3-5DS1307与单片机的连接I2C总线的特点:它可用两根线(SCL、SDA)连接多个具有I2C总线的接口的器件,每类I2C器件都有唯一确定的地址号,以便在器件之间进行数据传送。I2C总线是同步串行数据传输总线,其内部为双向传输电路,端口输出为开漏结构,故总线上必须有上拉电阻,总线上可以连接若干单片机和外围器件,每一个器件有一个唯一的地址。I2C总线虚拟技术普通的微处理器通常无I2C总线接口,这样要驱动DS1307,就必须采用单主方式下的I2C总线虚拟技术,在单主方式下的I2C总线虚拟系统中,总线上只有一个单片机,其余都是带I2C总线的外围器件,因此不会出现总线竞争,主节点不会有自己的节点地址,在这种情况下,单片机可以没有I2C总线接口,但是可以用两根I/O口线来虚拟I2C总线接口,DS1307在I2C总线上应作为从器件[10]。3.4充电控制模块3.4.1蓄电池的充电控制电路本论文设计的充电控制器采用了斩波式PWM原理,分三个阶段,第一阶段为快充阶段,第二阶段为慢充阶段,第三阶段为浮充阶段。快充阶段(10%<SOC>40%):充电电路的输出方式相当于电流源。输出电流蓄电池最大可接受电流Imax。充电过程中,电路检测蓄电池端电压。当蓄电池端电压上升到转换门限(SOC>40%)值后,充电电路转到慢充阶段。慢充阶段(40%<SOC<95%):充电电路对蓄电池提供一个较高电压Voc,同时检测充电电流。当充电电流降到低于转换门限值Ioct(SOC>95%)时,认为蓄电池电量已充满,充电电路转到浮充阶段。浮充阶段(SOC>95%):蓄电池组充满电后,保持电量的最好方法就是给蓄电池提供一个精确的、具有温度补偿功能的浮充电压[8]。浮充电压值既要足够大,能补偿蓄电池的自放电电流;又不能太大,以免导致蓄电池电池过充而损坏。在适当的浮充状态下,全封闭免维护铅酸蓄电池能够稳定工作6~10年,但是如果浮充电压即使只有5%的偏差,也会使蓄电池的寿命至少减半,所有必须保证电压测量的准确及严格计算。三段式充电方案完全可以避免过充。3.4.2温度补偿温度影响蓄电池容量,温度升高,其过充点电压降低。例如太阳电池对蓄电池充电时,我们对过充点进行温度补偿,补偿方式对于2V(铅酸蓄电池每格的电压)蓄电池,基准温度为25℃,温度每变化1℃,电压补偿3mV:例如:对于12V系统蓄电池的过充点电压为13.3V(25℃),如果温度为28℃,经过补偿后的过充点电压大小为:(3-5)3.4.3充电电路的设计与实现充电控制的开关管(斩波管),选用POWERMOSFETIRF4905。此管是P沟道的MOSFET管,具有小的导通电阻RON=20mΩ,最大通态电流ID=74A(条件温度25℃,VGS=-10V),开关速度快,具有很好的开关性能,又因为此管为P沟道,我们在设计太阳电池电压采样电路和蓄电池电压采样电路时,很容易的把基准电压选在太阳能电池地端,使系统的可靠性大大提高。在图3-6电路原理图中MBR2060是肖特基二极管,此二极管的作用是防反充,也就是当蓄电池电压高于太阳电池电压时,该二极管截止,防止蓄电池向太阳电池反充电。D52是一个防止蓄电池正负极性反接的保护二极管,即当蓄电池反接时,D52正向导通,电流很大,熔断丝即可烧断,电路断开,保护了控制器和蓄电池,提高了系统的可靠性。R55是一个保护电阻,主要是防止太阳能电池被遮挡时,发生热斑效应烧毁太阳能电池。大小要合适,太大起不到保护作用,太小影响输出功率。充电过程如下所述:由8254组成的脉宽调制控制信号(PWM)发生器给出充电的控制信号(PWM),S9013的三极管导通,由于此三极管工作于射极输出状态,其发射极为高电平,Q54(2SD667)NPN三极管导通,由于稳压管D503-6充电控制电路的作用,使得IRF4905管的栅源电压钳位在10V,IRF4905管导通,太阳电池向蓄电池充电。反之,前两极三极管均截止VGS=0V,IRF4905管断开,太阳电池不能向蓄电池充电[9]。3.5放电控制模块的设计环境光线变暗到一定程度后(天黑、阴天或是大雾等等),蓄电池给负载(LED发光板)提供电力。此时,接通蓄电池和负载之间的开关管。此开关管的开、关由蓄电池剩余荷电容量(SOC)的大小决定,这样就可以保证蓄电池不会被过放,SOC的大小由数学模型或者模糊神经网络法代入蓄电池两端电压的测量值及电流值来计算得出。放电模块的设计与实现如下:放电控制的开关管,选用InternationalRectifier(IR)生产的POWERMOSFETIRF3205,RF3205是N沟道的MOSFET管,具有小的导通电阻RON=8mΩ,最大通态电流ID=110A(条件温度25度,VGS=10V)VDD=55V,开关速度快,具有很好的开关性能。2、TLP250作为驱动MOSFET的电路此光耦驱动芯片能向MOSFET栅极提供需要的栅荷来保证器件的开关性能,实现了主电路与控制电路间的电隔离,具有较强的抗干扰能力。但是,光耦器的开关速度对驱动电路性能有较大的影响,必须合理选择。3、具体的电路实现放电控制电路如图3-7所示放电控制端给出高电平时,三极管S9013导通,TLP250输出高电平,IRF3205的栅源电压被箝位于10V,此时,MOSTET导通,蓄电池向负载供电,反之放电控制端给出低电平时,三极管截止相当于开关处于断开状态,蓄电池不能向负载供电[9]。图3-7放电控制电路3.6照明电路LED外施电压后在其内部会产生受激电子跃迁光辐射。按照不同半导体基本材料的物理特性,所产生的光波长是不同的。发光二极管的实质性结构是P—N结,在半导体P—N结通以正向电流时注入少数载流子,少数载流子的发光复合就是发光二极管的工作机理。半导体P—N结发光实质为固体发光,而各种固体发光都是固体内不同能量状态的电子跃迁的结果。半导体材料的发光机理决定了单一LED芯片不可能发出连续光谱的白光,必须以其它的方式合成白光。白光LED通常是在发射蓝光的InGaN基材上涂荧光材料,荧光材料在受到蓝光激励时会发出黄光,蓝光和黄光的混合物形成白光。
发光元件选用的是高亮度的LED(发光二极管)。但是,它的光线照射角很小,正对着LED光线刺眼,而在照射角之外就成了光的“空洞”。为此我们在设计时注意设计反光锥和内管。不仅在灯下有一片光亮区,在一定的距离内都能看见耀眼的光芒。
由于LED是直流供电器件,很容易制成直流灯具,广泛应用于直流系统,如太阳能灯具产品。超高亮白光LED应用于太阳能灯具,单个束光型超高亮度LED发光管其产生的光线方向性太强,综合视觉效果较差,因此应首选平光型超高亮LED或平光型与束光型超高亮LED组合使用,将多个LED集中于一起,排列组合成一定规则的LED发光源[11]。超高亮白光LED发光源既要保证有一定的照射强度,又要使其具有较高的光效,然而电流的增大,光通量虽然增大,但是,另一方面电流的增加会引起光源热损耗的增加,通常导致管温的增加,其综合效果是光效降低,所以把光通量和光效的交合点为最佳工作点,一般为17.5mA。超高亮白光LED发光源具有如下优点:
(1)寿命长。LED的寿命长达100000h,而白炽灯的寿命一般不超过2000
h,荧光灯的寿命也不过5000
h左右。
(2)效率高。相对于传统的第一代照明光源白炽灯,LED的功耗只有前者的10%~20%。
(3)绿色环保。与广泛使用的第二代照明荧光灯相比,LED不含汞、无频闪,是一种环保光源。
(4)耐低温。环境使用温度在一40℃~80℃
,环境适应性非常强。
这种电路的关键是针对蓄电池的充放电特性设计一个比较好的电压比较点,再加上发光二极管构成的充放电状态指示电路,便成了一个具有实用功能的智能控制器,具有防蓄电池过放电、过充电功能。在太阳光照不足的几个月,由于蓄电池的充电状态通常较低,使蓄电池放电时端电压也较低,这样负载工作电流较小、功率小,系统也能够工作更长的时间。反之在太阳光照比较充足时,负载工作电流较大、功率大、也更亮。
该驱动电路与充电电路基本相同,只是电源是蓄电池,负载为大功率白光LED发光板,并去掉了防反冲二极管部分。输入端调节LED路灯亮度的PWM信号宽度是根据蓄电池的剩余荷电容量(SOC)的大小来计算,并在计算时要用LED路灯的温度进行补偿,以防止LED器件节温超过120℃而产生光衰现象[13]。电路实现如图3-8所示。图3-8LED路灯驱动与亮度调节电路示意图3.7单片机实现脉宽调制信号(PWM)输出的软硬件设计一般情况下,调节脉宽调制信号的脉宽有两种方法,一种是采用模拟电路中的调节方法,另一种方法是使用脉冲计数法。在模拟电路中,我们可以使用比较器将正玄波与三角波调变为PWM波,如图3-9所示为PWM调变电路采用第一种方法在控制电压变化时滤波的实现存在困难,这主要是因为滤波频率比较低、滤波精度要求高和滤波电路的参数不易调整。因此这里主要采用有单片机控制实现的脉冲计数法。用单片机产生PWM信号的方法有两种,一种是应用延时函数来产生PWM波,另外一种就是采用专用的带有PWM信号输出的专用计数芯片来产生PWM的输出。PWM的输出端可接于上面所示的PWM充电控制电路。图3-9PWM调变电路图3-10PWM调变示意图本文采用可编程定时/计数芯片8253实现PWM信号输出,好处是比单片机利用延时函数产生的控制更精确的脉宽,而且在控制器处理中断程序时,仍可自主控制,而不会干扰到控制精度。(一)8253芯片功能概述Intel系列的计数器/定时器电路为可编程序间隔定时器PIT(ProgrammableIntervalTimer),型号为8253,改进型为8253。Intel8253具有3个独立的16位计数器通道,使用单一5V电源,它是24个引脚的双列直插式器件。Intel8253-PIT具有以下主要功能:(1)一个芯片上有三个独立的16位计数器通道;(2)每个计数器都可以按照二进制或二—十进制计数;(3)每个计数器的计数速率可高达2MHz。(82C54-2计数频率可达到10MHz);(4)每个通道有6种工作方式,可由程序设置和改变;(5)所有的输入输出都与TTL兼容。图3-118253的内部接口和引脚1.数据总线缓冲器这是8253与CPU数据总线连接的8位双向三态缓冲器。CPU用输入输出指令对8253进行读写的所有信息,都是通过这8条总线传送的。包括:(1)CPU在初始化编程时,写入8253的控制字;(2)CPU向某一通道写入的计数值;(3)CPU从某一个通道读取的计数值。2.读/写逻辑这是8253内部操作的控制部分。首先有选片信号CS的控制部分,当CS为高电平(无效)时,数据总线缓冲器处在三态,与系统的数据总线脱开,故不能进行编程,也不能进行读写操作。其次,由这部分选择读写操作的端口(三个计数器及控制字寄存器),也由这部分控制数据传送的方向,读——数据由8253传向CPU,写——数据由CPU传向8253。3.控制字寄存器在8253的初始化编程时,由CPU写入控制字以决定通道的工作方式。此寄存器只能写入而不能读出。4.计数器0,计数器1,计数器2这是三个计数器/定时器通道,每一个都是由一个16位的可预置值的减法计数器构成。这三个通道的操作是完全独立的。每个通道都是对输入脉冲CLK按二进制或二—十进制,从预置值开始减1计数。当预置值减到零时,从OUT输出端输出一信号。计数器/定时器电路的本质是一个计数器。若计数器对频率精确的时钟脉冲计数,则计数器就可作为定时器。计数频率取决于输入脉冲的频率。在计数过程中,计数器受到门控信号GATE的控制。计数器的输入与输出以及与门控信号之间的关系,取决于工作方式。计数器的初值必须在开始计数之前,由CPU用输出指令预置。在计数过程中,CPU随时可用输入指令读取任一计数器的当前计数值,这一操作对计数没有影响。8253-PIT与CPU接口的引线,除了没有复位信号RESET引脚外,其他与8255并行输入输出接口芯片相同(请参阅本书第10章)。每一个通道有三条引线:CLK:输入脉冲线。计数器就是对这个脉冲计数。8253规定,加在CLK引脚的输入时钟周期不能小于380ns。GATE:门控信号输入引脚。这是控制计数器工作的一个外部信号。当GATE引脚为低电平(无效)时,通常都是禁止计数器工作;只有当GATE为高电平时,才允许计数器工作。OUT:输出引脚。当计数到“0”时,OUT引线上必然有输出,输出信号的波形取决于工作方式。8253内部端口的选择是由引线A1和A0决定的,它们通常接至地址总线的A1和A0。电路设计8253具有三个独立的计数器,只需一片即可同时输出3路PWM信号。硬件电路的单片机电路部分、8253部分电路及8253与单片机的接口电路构成。图3-12所示为单片机器部分的电路的原理图,示例电路的连接方法为:P0口与计数芯片8254的数据端口D0~D7相连,P2.0向8254提供片选,P2.1和P2.2与图3-12PWM信号产生电路计数芯片8253部分原理图8253地址线A0、A1连接。P3.7(读)、P3.6(写)分别和8253的读、写引脚直接连接。三个信号输出分别为PWM1(充电控制信号输出)、PWM2(放电控制信号输出)、PWM3(LED驱动输出)。计数芯片8253首先程序通过定时器0中断实现20ms的周期信号,然后通过对计数芯片的计数值寄存器的赋值实现不同占空比,使用中断方式控制8253输出脉宽信号。
第4章系统软件设计4.1太阳能LED路灯控制电路程序的设计独立运行太阳能LED路灯控制器固件程序功能详解:1.控制器从上电后开始运行初始化程序,主要是设置各硬件端口的初始状态。2.放电/充电部分要测量太阳能电池电压小于阈值(<0.5V),以此来判断是否环境光线已经暗弱(天黑、阴天大雾等等)到需要打开路灯照明的程度,反之进入充电状态。3.在充电时,对于是否可充电的判断是通过对太阳能电池电压采样数据和铅酸蓄电池电压采样数据的比较来判断。太阳能电池电压大于蓄电池电压的时候才真正进入充电状态。(1)在充电状态,首先对太阳能电池和蓄电池电压测量取值,并计算二者的差值。并根据剩余荷电容量(SOC)数学模型进行铅酸蓄电池剩余荷电容量(SOC)的计算以判断铅酸蓄电池的荷电状态。以差值和蓄电池剩余荷电容量(SOC)为参数计算出对应于快充、过充(慢充)或者浮充时控制充电电路的脉宽信号(PWM)对应的键值。(2)将键值输入到控制充电电路的脉宽信号发生器的锁存器上,随后主程序可进行相关的延时处理,而脉宽信号(PWM)发生器在此期间不断发送控制信号到充电电路控制端对铅酸蓄电池进行充电(过充、快充或者浮充)。(3)主程序要根据不同的充电状态,需要设定延时程度不同长短的延迟时间。以使因不同充方式要有大致相同的延迟时间,因为要求速度要求不高,可以设置30s~40s延时。(4)延时30s~40s后返回程序段,继续判断应该充电(白天)还是放电(夜间)继续执行。(5)当太阳能电池电压相对要低于蓄电池电压时候,这部分的延时间程序除了对控制器中必要的接口锁存器操作外,基本处于空闲状态,延时的时间可以设定为充电(快充、过充、浮充)总延时的3~5倍,这样控制器在运行时能量消耗可以相应降低。4.在放电时,测量蓄电池电压,根据数学模型计算出蓄电池剩余荷电容量(SOC),计算各区间([90%,100%]、[80%,90%]、[70%,80%]、[60%,70%][50%,60%]、[40%,50%])中驱动并调节LED照明亮度的脉宽信号(PWM)的对应键值,为了减少系统运算量,保证系统控制的实时性,可在各区段取对应的固定值,然后加上LED温度作为补偿值,防止LED温度过高出现光衰,甚至因过热损坏。当SOC处于40%以下时候,应该做特殊处理,以最低亮度标准运行,并且一定要在过放之前切断负载供电,在设计中,我们一般在剩余荷电容量(SOC)为25%时候就切断电源,以阻止蓄电池进入深度放电状态。虽然与一点式控制的控制器都是切断了电源的处理方法,但是在过放之前分段控制能大大延长路灯的点亮时长,实践中本文设计的太阳能LED路灯点亮的时长,在很少牺牲亮度的前提下,是用同样型号的太阳能电池、蓄电池、负载(LED照明器件)过放点监控的太阳能LED路灯2~3倍。5.以上在计算蓄电池剩余荷电容量(SOC)时及判断电池所处状态定点值的时候,为了提高数值准确性,都要进行温度补偿。例如太阳电池对蓄电池充电时,我们对过充点进行温度补偿,补偿方式对于2V(铅酸蓄电池每格的电压)蓄电池,基准温度为25℃,温度每变化1℃,电压补偿3mV[14]。4.2子程序流程图一、8253完成外部计数功能单片机本身对信号的处理工程并不复杂,完成测控模块的关键在于使用合适的方法和合理的外围芯片处理和输出信号。本例中采用单片机的外围计数芯片,8253作为专用的计数芯片,单片机通过对外围计数芯片的控制,完成PWM信号的输出,在输出控制指令时,由于使用了外部计数器的计数脉冲,单片机只需要向8253等芯片的寄存器中发送控制脉宽的计数值,计数器能自动的根据计数值调节电平的高低变化,从而模拟PWM输出。4-1外部计数子流程图采用外部计数器实现计数的具体过程如下:采用外部的晶振电路产生一定频率的计数脉冲将该频率的计数脉冲作为外部计数器的计数脉冲,而将需要测量的脉宽信号作为外部芯片的门控信号,外部芯片在该门控周期内对计数脉冲进行计数。8353计数器子程序:CODESEGMENTASSUMECS:CODESTART:MOVAL,10H;设置8253计数器0为工作方式0,二进制计数MOVDX,283HOUTDX,AL;送方式控制字到控制口MOVDX,280HMOVAL,0FH;计数初值为0FHOUTDX,AL;送计数初值到计数器0的端口KKK:INAL,DX;读计数器当前计数值CALLPRINT;调用显示子程序MOVAH,1;判断是否有键按下INT16HJZKKK;若没有,则转到KKKMOVAH,4CH;返回DOSINT21HPRINTPROCNEAR;显示子程序PUSHDXANDAL,0FH;取低四位MOVDL,CMPDL,9;判断是否小于或等于9JLENUM;是(‘-‘),ASCII码加30HADDDL,7;不是(‘A’-‘F’),ASCII码加37HNUM:ADDDL,30HMOVAH,2;显示字符INT21HMOVDL,0DH;回车INT21HMOVDL,0AH;换行INT21HPOPDXRET;子程序返回PRINTENDPCODEENDSENDSTART二、温度传感器DS18B20使用单片机和温度传感器DS18B20完成对温度的检测和补偿,通过AT89C52完成对DS18B20芯片的控制和数据传输。主要完成对DS18B20的调用中断管理、测量温度值得计算及温度值得显示等功能,DS18B20自动的分辨率可以通过编程进行选择,显示程序的实现是对各温度值的显示,并且允许中断的产生以修正温度值,实现及时的温度测量。其工作的流程图如图4-2DS18B20的测温程序流程图DS18B20的测温程序:TEMPER_L EQU 36H ;存放读出温度低位数据 TEMPER_H EQU 35H ;存放读出温度高位数据 TEMPER_NUM EQU 60H ;存放转换后的温度值 FLAG1 BIT 00H DQ BIT P3.3 ;一线总线控制端口 ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV SP,#70H LCALL GET_TEMPER ;从DS18B20读出温度数据 LCALL TEMPER_COV ;转换读出的温度数据并保存 SJMP $ ;完成一次数字温度采集;读出转换后的温度值GET_TEMPER: SETB DQ ;定时入口BCD: LCALL INIT_1820 JB FLAG1,S22 LJMP BCD ;若DS18B20不存在则返回S22: LCALL DELAY1 MOV A,#0CCH ;跳过ROM匹配0CC LCALL WRITE_1820 MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820 NOP LCALL DELAY LCALL DELAYCBA: LCALL INIT_1820 JB FLAG1,ABC LJMP CBAABC: LCALL DELAY1 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ;READ_1820 RET;读DS18B20的程序,从DS18B20中读出一个字节的数据READ_1820: MOV R2,#8RE1: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE1 RET;写DS18B20的程序WRITE_1820: MOV R2,#8 CLR CWR1: CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET;读DS18B20的程序,从DS18B20中读出两个字节的温度数据READ_18200: MOV R4,#2 ;将温度高位和低位从DS18B20中读出 MOV R1,#36H;低位存入36H(TEMPER_L),高位存入35H(TEMPER_H)RE00: MOV R2,#8RE01: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET;将从DS18B20中读出的温度数据进行转换TEMPER_COV: MOV A,#0F0H ANL A,TEMPER_L;舍去温度低位中小数点后的四位温度数值 SWAP A MOV TEMPER_NUM,A MOV A,TEMPER_L JNB ACC.3,TEMPER_COV1;四舍五入去温度值 INC TEMPER_NUMTEMPER_COV1: MOV A,TEMPER_H ANL A,#07H SWAP A ADD A,TEMPER_NUM MOV TEMPER_NUM,A;保存变换后的温度数据 LCALL BIN_BCD RET;将16进制的温度数据转换成压缩BCD码BIN_BCD: MOV DPTR,#TEMP_TAB MOV A,TEMPER_NUM MOVC A,@A+DPTR MOV TEMPER_NUM,A RETTEMP_TAB: DB00H,01H,02H,03H,04H,05H,06H,07H DB08H,09H,10H,11H,12H,13H,14H,15H DB16H,17H,18H,19H,20H,21H,22H,23H DB24H,25H,26H,27H,28H,29H,30H,31H DB32H,33H,34H,35H,36H,37H,38H,39H DB40H,41H,42H,43H,44H,45H,46H,47H DB48H,49H,50H,51H,52H,53H,54H,55H DB56H,57H,58H,59H,60H,61H,62H,63H DB64H,65H,66H,67H,68H,69H,70H,71H DB72H,73H,74H,75H,76H,77H,78H,79H DB80H,81H,82H,83H,84H,85H,86H,87H DB88H,89H,90H,91H,92H,93H,94H,95H DB96H,97H,98H,99H;DS18B20初始化程序INIT_1820: SETB DQ NOP CLR DQ MOV R0,#80HTSR1: DJNZ R0,TSR1;延时 SETB DQ MOV R0,#25H;96US-25HTSR2: DJNZ R0,TSR2 JNB DQ,TSR3 LJMP TSR4 ;延时TSR3: SETB FLAG1 ;置标志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG1 ;清标志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#06BH;200USTSR6: DJNZ R0,TSR6;延时TSR7: SETB DQ RET;重新写DS18B20暂存存储器设定值RE_CONFIG: JB FLAG1,RE_CONFIG1;若DS18B20存在,转RE_CONFIG1 RETRE_CONFIG1: MOV A,#0CCH;发SKIPROM命令 LCALL WRITE_1820 MOV A,#4EH;发写暂存存储器命令 LCALL WRITE_1820 MOV A,#00H;TH(报警上限)中写入00H LCALL WRITE_1820 MOV A,#00H;TL(报警下限)中写入00H LCALL WRITE_1820 MOV A,#7FH;选择12位温度分辨率 LCALL WRITE_1820 RET;延时子程序DELAY: MOV R7,#00HMIN: DJNZ R7,YS500 RETYS500: LCALL YS500US LJMP MINYS500US:MOV R6,#00H DJNZ R6,$ RETDELAY1: MOV R7,#20H DJNZ R7,$ RET END
图4-3运行太阳能LED路灯控制器总程序流程图
结论与展望本文根据太阳能电池的电学特点,为了充分发挥太阳能电池板的发电能力,首先讨论了太阳能电池板安装最佳倾角的问题。对蓄电池的循环寿命与剩余荷电容量(SOC)的关系做了总结。基于以上两方面的结论,根据对市场上现有太阳能控制器对蓄电池充放电过程控制的缺点,设计了充电与放电段对蓄电池做多点监测并控制的太阳能LED路灯控制器,该控制器可有效的避免过充和过放,增强了太阳能路灯的系统稳定性保证了太阳能路灯独立运行时的长期稳定运行。光伏照明是一项十分诱人的产业,特别是控制照明的研究本身就是照明领域的热点问题。而LED照明与太阳能有效结合,将是未来照明的发展方向。在如下几方面有待于我们进行深入研究:1.最大功率点跟踪由于太阳能电池的输出随着工作电压的不同,功率随之变化。要使其输出功率最大,就要研究与控制器与蓄电池在电阻方面的匹配。这方面也是该领域的热点研究问题。2.路灯支架结构的改进只有使太阳能电池板的方位始终跟踪太阳,才能获取最大的太阳辐射量。这就需要在灯架结构上进行研制。当然要考虑成本的投入,是否低于由此带来的效益,否则不会有实际意义。3.温度对太阳能电池、蓄电池的影响由于太阳能电池和蓄电池的使用效率都与温度有关,有必要深入研究温度的影响。目的在于提高使用效率的同时,增加它们的使用寿命。4.更强功能充放电控制器的研制本系统使用的是市场上现有的控制器,本文缺少对其功能上的深入研究。应使控制器更好地发挥在功率自适应方面的作用,如在夜间前后半时和不同季节负载功率的自动调节,使其更智能化、节能化。5.白光LED灯具结构及亮度方面有待改进、提高本着使用的LED个数少,亮度高,结构合理的原则,在用于路灯照明的LED灯具上需要进一步研制。在单只LED的封装工艺和技术上进一步改进,使之亮度更高。致谢我这次的设计能顺利完成,得益于老师和同学的指导和帮助,在这里,我对他们的热心表示诚挚的谢意。导师渊博的专业知识严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。衷心感谢指导教师邱月友老师在这几个月来的悉心指导与督促,从最初的定题,到资料的收集,再到写作、修改,最后论文定稿,老师给了我耐心的指导和无私的帮助。通过这次的毕业设计,经过一学期的学习,我对单片机的使用有了不同于以往的认识。从书本上的理论到现实中的硬件电路制作、软件编制以及软硬件调试,难度大大地增加。我对早已遗忘的很多知识又重新找回来,并更加熟练的学会了如何应用。让我从原来对单片机只有一个模糊概念到对单片机有所了解再到现在的会用C语言在keil软件上编写程序,让我对硬件电路的设计从原来惧怕到现在从容查资料,设计电路,调试电路。老师总是很会引导我们去自主完成课程任务。巧妙的解答我们的各种疑惑。谢谢您,老师。同时也非常的感谢寝室同学及给予我帮助的其他同学,因为你们提出的宝贵意见和建议让我在疑惑的时候柳暗花明,使得设计顺利完成。另外,我还要感谢在这四年来教过我的所有老师,他们孜孜不倦的教诲不但让我学到了很多知识,而且让我掌握了学习的方法,更教会了我做人处事的道理,在此真诚地表示感谢。在论文即将完成之际,回顾紧张而又充实的学习和研究过程,本人在此向所有关心我及帮助我的老师和同学们致以最真诚的感谢!最后,我还要感谢我的父母,如果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋委托还款协议
- 建筑工程转让居间
- 亲子活动中心居间协议
- 智能家居控制系统工厂
- 安防监控监测系统
- 农业生产性经营主体培育作业指导书
- 生物质颗粒燃料批发
- 医药研发外包服务cro
- 可行性研究报告是确定建设项目
- 德化县生活垃圾焚烧发电项目
- 2024年江西旅游商贸职业学院单招职业适应性测试题库及参考答案
- 江苏南京邮电大学教务处校内招考聘用工作人员公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- JJG 393-2018便携式X、γ辐射周围剂量当量(率)仪和监测仪
- 建筑物电子信息系统防雷技术规范(局部修订条文)
- 《护士条例》全文
- 华住会酒店员工手册
- 铁岭卫生职业学院单招参考试题库(含答案)
- 塔斯汀营销分析
- 市纪委跟班学习工作总结
- 脑梗死一病一品
- 【部编版】三年级语文下册第9课《古诗三首》精美课件
评论
0/150
提交评论