太阳能路灯推广面临的问题

1、昆明:

太阳能路灯不仅功率偏小,造价昂贵,处于顶部的电池板还易受风力影响,绿化遮挡、高楼林立和天气多变均是太阳能路灯推广的障碍。相关数据显示,以一套150瓦的太阳能路灯来说,初投资额为15000元左右,而每套常规路灯造价仅8000元左右。尽管太阳能路灯使用寿命较长,然而后期维护和更换费用较高,太阳能路灯通常使用的铅酸蓄电池,其使用寿命仅为3-5年。另外,太阳能路灯电池板的光电转换效率较低,目前仅有15%左右,严重影响到太阳能路灯的发电效率。

不仅如此,太阳能路灯的保护管理也成为其推广的瓶颈,路灯蓄电池易被撬。

2、南京格瑞能源科技有限公司:

近年来,太阳能庭院灯、景观灯被越来越广泛地使用,太阳能路灯也正渐渐进入人们的视野。它以无需敷设电缆、不消耗常规能源、使用寿命长等优点得到了社会的广泛认可,很多城市和乡村也开始以试验或示范的形式,在部分地区、部分道路推广使用太阳能路灯,并收到了一定的效果。然而,很多业内专家指出,在现阶段推广太阳能路灯,需要注意三大问题。相关技术有待完善:

尽管太阳能灯具的使用已经日渐广泛,但目前太阳能路灯在功率、光效和使用寿命上还仍然存在一些技术问题。据

专家介绍,对于路面较窄、对照明要求不高的乡镇道路而言,小功率的太阳能路灯能够满足照明要求;而在对路灯的照明要求较高的城市道路,太阳能路灯却存在缺点:光线覆盖范围窄,亮度也不够均匀。日前,珠海市试点推广使用了部分太阳能路灯,该市路灯管理处有关负责人就表示,经过一段时间对太阳能路灯的亮度、照度和蓄电能力等指标进行连续观测后,如符合路灯的相关标准,可以向小区道路、公园、海岛、工业园和乡镇等地推广,但是以目前太阳能路灯的技术指标来看,其照度还不能满足市区主干道的要求,所以目前不会采用太阳能路灯替代原有的主干道路灯。

此外,太阳能电池板的使用寿命问题也制约着太阳能路灯的推广使用。专家表示,太阳能电池板转换率低,造价高。想让灯亮的时间长一些,就应该提高配置,合理匹配各组成部分,而不是单纯地加大蓄电池容量。而且,目前还存在一些人为缺点,如系统配置的随意性太大,使灯具的使用寿命和照明效果大打折扣。

另外,有关专家还指出,太阳能路灯如果要更加广泛地应用,除考虑太阳能板光电转换效率,还要考虑当地的太阳能辐射时间、大气灰尘等,因此,照明灯具生产企业在开发太阳能的各类灯具产品时要具体问题具体分析。企业要根据太阳能的技术发展水平研发相应的灯具产品,而不能盲目地开发与技术水平不相适应的灯具产品。原材料污染问题尚需

解决 。

太阳能路灯最大的好处就在于它使用的是清洁的太阳能,每一个路灯就像是一台小型发电机,通过太阳能电池板吸收光线,转换成电能,再储蓄到自带的蓄电池中,不需要再消耗额外的电能。但是目前太阳能路灯所采用的蓄电池主要是以铅酸电池为主,它主要由铅、硫酸以及部分其他金属及塑料组成,废电池酸液中含有大量的铅,随意排放不但会严重污染土壤和水源,对空气、生态平衡造成破坏,还会引发人体代谢及神经方面的疾病。而专家透露,目前国内废旧电池的处理回收还处于比较无序的状态,因此很多报废后的铅酸电池正在污染着我们的生存空间。

对此,中国照明电器协会副秘书长窦林平感慨地说,本来太阳能是一种清洁无污染的能源,推广太阳能路灯也正是看准了这一行业的绿色和环保。而现在如果铅酸电池得不到很好处理,反而会造成严重的污染,这就是顾此失彼了。因此,他建议照明生产企业在研发节能照明产品时要进行多方位的综合考虑和分析,这其中包括灯具生产过程中的耗能和污染、产品中所用材料在报废后的可回收利用及对环境的污染等。相关行业也应该加快技术创新,及早实现铅酸电池的回收利用,形成产业链条,否则的话,会给行业和整个社会造成影响。后期维护应予以重视

目前,很多地区都在试点推广太阳能路灯,尤其是在一

些地区的新农村建设中,太阳能路灯更是被大面积使用。20xx年,在北京某区的新农村建设试点村,政府在进行了前期调研后,认为其地理条件适合安装太阳能,于是就将其列入新农村建设的子项目,投入资金为该村装上了太阳能路灯。原本漆黑的道路被太阳能路灯点亮,村民们都拍手称快。然而时隔两年,事情却发生了变化。村中道路上的太阳能路灯还在,可是到了夜晚却不见灯亮。原来,由于现在太阳能路灯中普遍使用的铅酸蓄电池平均寿命在500次充放,可用于路灯大概每天需要充放一次,也就是可以使用大约一年半的时间,之后就需要更换新蓄电池。而这项工作一直以来却无人负责,正是由于缺乏后期维护,先前所做的工作都失去了意义。

据介绍,这种情况在我国很多地方都并不少见。专家解释说,太阳能路灯相对于普通路灯而言,初期投资较大,同时维护费用也比较高,大概每一年半到两年时间就需要更换一次蓄电池,这笔花费大概为初期投资费用的1/3。因此,一些地方政府即便能一次性投资几个亿的资金,采用太阳能路灯进行道路亮化工程,但当蓄电池寿命到期时,却再拿不出新的资金进行更换,而路灯管理部门也没有足够的人力从事这项工作,致使很多太阳能路灯成了摆设。所以说,推广太阳能路灯不是“面子工程”,地方政府应给予持续的、有规划的财力和人力支持,否则就无法实现太阳能路灯的长

明。

 

第二篇:太阳能路灯控制器

摘 要

为了提高太阳能光伏控制器的性价比,设计了运用单片机的太阳能光伏控制器。本控制器具有效率高、可靠性高、运行稳定、性价比高、适宜批量生产的特点。控制器实现了基于单片机PIC16F711的工作状态控制和蓄电池能量管理,满足了太阳能光伏控制器在不同工作状态下的稳定运行与准确切换的要求。蓄电池充放电精确控制也在此控制器中得到实现。实验结果表明,应用此控制器的太阳能光伏系统效率高、运行稳定,蓄电池寿命也可延长。

关键词:太阳能;单片机;充放电电路;锂蓄电池

-I-

Abstract

In order to improve the costeffective a solar photovohaic controller,is designed with the MCU.The controller has high efficiency,great reliability and stable operation,cost effective,and suitable for the characteristicsof mass production.The controller realizes status control and storage battery energy managementbased on PIC16F711.The photovohaic solar power controllers meet the stability of the operation and theaccurate switching requirements at different states.Precise control of battery charging and discharging are also achieved in the controller.The experimental results show that the controller has high efficiency and stability.and the battery life is also extended.

Keywords:Solar energy;Controller;charge and discharge;lithium ion battery (Li+),

-II-

目录

摘 要 ............................................................... I Abstract ............................................................. II

第1章 绪论 .......................................................... 1

1.1 课题背景 ...................................................................................................................1

1.2 光伏发电技术现状 ...................................................................................................2

1.2.1国内外技术现状 ..............................................................................................2

1.2.2光伏路灯控制器技术的现状 ..........................................................................2

1.3 设计指标 ...................................................................................................................3

1.4 设计思路 ...................................................................................................................3

本章小结 ..........................................................................................................................4

第2章 方案选择及单元电路的设计 ...................................... 4

2.1 方案选择及方框图 ...................................................................................................5

2.1.1 方案选择 .........................................................................................................5

2.1.2 方框图 .............................................................................................................5

2.2 部分单元电路的原理 ...............................................................................................6

2.2.1太阳能电池 .....................................................................................................6

2.2.2锂蓄电池的充电特性 ......................................................................................7

2.2.3 锂蓄电池温宿补偿 .........................................................................................8

2.2.4 控制器充放电电路 .........................................................................................9

2.2.4 MOS管驱动电路 ..........................................................................................10

2.2.5 显示电路 ....................................................................................................... 11

2.3 本章小结 .................................................................................................................12

第三章 锂蓄电池电压电流的检测 ...................................... 12

3.1锂蓄电池电压的检测 ..............................................................................................12

3.2 锂蓄电池电流的检测 .............................................................................................13

3.3本章小结 ...........................................................................................................16

第四章 整机电路及其工作原理 ......................................... 16

4.1整机电路原理图 .....................................................................................................16

4.1.1 充电部分的控制 ...........................................................................................17

4.1.2 放电照明部分的控制 ...................................................................................18

4.2 整机工作原理 ........................................................................................................18

4.3本章小结 ..................................................................................................................19

第五章 系统软件设计 ................................................. 20

5.1 设计思路 .................................................................................................................20

5.2系统主程序流程 .....................................................................................................20

5.3 初始化子程序 .........................................................................................................22 -III-

5.4 A/D转换子程序 ......................................................................................................22

5.5 显示子程序 .............................................................................................................22

5.6本章小结 ..................................................................................................................22

结 论 .............................................................. 23

致 谢 .............................................................. 24

附件 系统的主程序代码 .............................................. 26

-IV-

第1章 绪论

1.1 课题背景

能源是经济、社会发展和提高人民生活水平的重要物质基础,能源问题是一个国家至关重要的问题。随着科学技术和全球经济地飞速发展,对能源的需求也在日趋增长。自20世纪70年代的世界石油危机以来,人们才真正意识到,化石燃料的储量是有限的,能源危机迫在眉睫。从全球来看,已探明的可支配的传统能源储量在不久的将来即将耗尽,能源问题的突出,不仪表现在常规能源的匮乏不足,更重要的是化石能源的开发利用对牛态环境的污染破坏:大气中的颗粒物和二氧化硫浓度增高,局部地区形成酸雨。而每年排放的大量二氧化碳带来的温室效应,使全球气候变暖,自然灾害频繁。常规能源在给人类社会带来飞速发展的同时,也在很大程度上使人类社会面临着前所未有的困难和挑战。这些问题最终将迫使人们改变能源结构,依靠科技进步,大规模地开发利用可再生洁净能源,实现可持续发展。

虽然在可预见的将来,矿物燃料仍将在世界能源结构中占有相当的比重,但人们对核能以及太阳能、风能、地热能、水力能、生物能等可再生能源资源的利用日益重视,在整个能源消耗中所占的比例正在显著地提高。其中,太阳能作为一种新型的绿色可再生能源,与其他新能源相比,是最理想的可再生能源。太阳能利用辛要有光热利用和光伏发电利用这两种主要形式。我国低温光热利用已经具有可观的规模,相关技术研究也比较成熟。光伏利用近期在世界范围内高速发展,所谓“光伏发电”是直接将太阳光转换为电能的一种发电形式。

光伏发电具有取之不尽且无污染等优点,日前在我国,光伏发电主要应用在如下领域:西部偏远地区电力供应、通讯及交通设施、气象台站、航标灯和照明路灯。光伏发电的照明路灯应月J具有节能性、经济性和实川性等优点,在众多应用领域中具有最广泛的发展前景。本课题为研制一套独立光伏电源控制器,廊州于LED路灯照明系统。通常独立照明系统由太阳能电池、蓄电池、充放电控制器和负载LED组成。由于系统的稳定性严格受到蓄电池和LED寿命的影响,本课题研制的充放电控制器通过实时监测系统允放电回路的相关信息,确定相应的允放电策略,实现了稳定太阳能电池输出、优化蓄电池充电方法和保护蓄电池及负载的目的,最终提高了太阳能电池的利用率和整个照明系统的可靠性。

-1-

1.2 光伏发电技术现状

1.2.1国内外技术现状

太阳能是用之不尽的清洁能源,当今世界各国特别是发达国家对光伏发电特别重视。20xx年世界太阳能光伏发电装机总容量达到5.6Gw。目前,太阳能光伏发电主要集中在日本、欧盟和美国,其太阳能光伏发电量约占世界光伏发电量的80%。今后太阳能光伏发电系统主要围绕高效率、低成本、长寿命、美观实用等方向发展。专家们预测到20xx年,太阳能光伏发电在发电总量中将占13%.15%,到2100年将约占64%。我国光伏组件生产能力逐年增强,装机容量逐年增加,20xx年累计容量达100MW。2005.20xx年,我国的太阳能电池主要用于独立光伏发电系统,发电成本到20xx年将约为1.20元/(kw·h);2010—20xx年,太阳能光伏发电将会由独立光伏发电系统转向并网发电系统,发电成本到20xx年将约为0.60元/(kw·h)。到20xx年,我国太阳能光伏产业的技术水平有望达到世界先进行列。

1.2.2光伏路灯控制器技术的现状

光伏电源路灯控制器是光伏发电系统进行控制和管理的设备。在欧美、日本和美国,并网发电技术已经相对完善,对于光伏电源控制的研究主要集巾在改进逆变器的拓扑结构,优化控制策略,孤岛效应的检测和解决、降低系统能耗,提高系统_T作效率等问题上。国内具有代表性的光伏发电系统专用逆变器制造商有合肥阳光、北京日佳、北京自动化研究院、北京恒电、南京冠Ⅱ、北京计科等企业。中科院电工所、北京自动化研究院、北京索英、北京日佳、北京计科等氽业开发出的并网逆变器都在实际工程中得到了应用,性能和效果良好。

在独立光伏发电系统中,电源控制器是整个系统的核心组成部分,负责对储

能设设备的充电和对负载的放电任务。目前日本、德国、美国等发达国家外对于独立光伏系统电源控制器的研究辛要侧重在以下三个方面:提高太阳能电池的输出功率、完善蓄电池允电策略和提高系统稳定性。通过研究不同的电路拓扑结构和先进的控制算法,在太阳光强度、太阳能电池温度以及负载改变的情况下,尽可能使太阳能电池时刻保持最大输出功率状态,即实现最大功率点跟踪(MPPT)。蓄电池允电策略直接影响到蓄电池的寿命,研究智能化的充电方法,提高蓄电池的充电接受率,减少充电时问,对于整个光伏系统的工作状况具有重要意义。独立光伏系统的虑川环境一般比较恶劣,如何提高系统稳定性也是当前所有光伏电源控制器研究者最急需解决的问题之一。

然而,现已研制出来的光伏电源控制器还存在许多急需解决的问题。实际上,在 -2-

MPPT技术的使用和蓄电池充电策略的优化之问存在矛盾冲突,能源利用效率较低,蓄电池充放电方式的不合理,对蓄电池的保护不够充分,这些都是目前市场上电源控制器普遍存在的问题。为了对太阳能光伏资源进行全面的开发和利用,控制器的稳定性和可靠性也有待进一步提高。

1.3 设计指标

本设计的设计要求指标如下:

1、锂蓄电池电压的检测

2、锂蓄电池电流的检测

3、充放电控制电路的检测

4、路灯的电量控制

1.4 设计思路

本文设计了一种基于单片机的太阳能路灯控制器。采用PWM 脉冲调制控制保护技术。充放电控制器是太阳能路灯的核心部件,针对锂蓄电池充电的特殊要求,本文巧妙地采用简单电路检测充放电电压电流、软件补偿用于检测的小电阻的温度效应,省却硬件补偿的费用,降低了成本。由单片机根据采集到的充放电电压电流参数,发出各种摔制信号,实现充放电控制,使充放电系统能稳定何效地运行。

同时设计MPPT控制器,MPPT控制器的全称“最大功率点跟踪”(Maximum Power Point Tracking)太阳能控制器,是传统太阳能充放电控制器的升级换代产品。所谓最大功率点跟踪,即是指控制器能够实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最高的效率对蓄电池充电。下面我们用一种机械模拟对比的方式来向大家解释MPPT太阳能控制器的基本原理。要想给蓄电池充电,太阳板的输出电压必须高于电池的当前电压,如果太阳能板的电压低 -3-

于电池的电压,那么输出电流就会接近0。所以,为了安全起见,太阳能板在制造出厂时,太阳能板的峰值电压(Vpp)大约在17V左右,这是以环境温度为25°C时的标准设定的。这样设定的原因,(有意思的是,不同于我们普通人的主观想象,下面的结论可能会让我们吃惊)在于当天气非常热的时候,太阳能板的峰值电压Vpp会降到15V左右,但是在寒冷的天气里,太阳能的峰值电压Vpp可以达到18V! 现在,我们再回头来对比MPPT太阳能控制器和传统太阳能控制器的区别。传统的太阳能充放电控制器就有点象手动档的变速箱,当发动机的转速增高的时候,如果变速箱的档位不相应提高的话,势必会影响车速。但是对于传统控制器来说,充电参数都是在出厂之前就设定好的,这就像车的档位被固定设置在了1档。那么不管你怎样用力的踩油门,车的速度也是有限的。MPPT控制器就不同了,它是自动挡的。它会根据发动机的转速自动调节档位,始终让汽车在最合理的效率水平运行。就是说,MPPT控制器会实时跟踪太阳能板中的最大的功率点,来发挥出太阳能板的最大功效。电压越高,通过最大功率跟踪,就可以输出更多的电量,从而提高充电效率。 理论上讲,使用MPPT控制器的太阳能发电系统会比传统的效率提高50%,但是跟据我们的实际测试,由于周围环境影响与各种能量损失,最终的效率也可以提高 20%-30%。从这个意义上讲,MPPT太阳能充放电控制器,势必会最终取代传统太阳能控制器。

本章小结

通过查阅资料了解太阳能路灯充放电控制器的国内外发展前景。以及介绍课题的各项检测指标和设计思路等。

第2章 方案选择及单元电路的设计

-4-

2.1 方案选择及方框图

2.1.1 方案选择

由单片机根据采集到的控制器的充放电电压电流参数,发出各种控制信号。实现充放电控制,是使充放电系统能稳定有效地运行。更好的保护了锂电池。延长整个太阳能路灯系统的使用年限。

2.1.2 方框图

太阳能路灯充放电控制器的电路框图2-1所示。太阳能电池板接收光照并把太阳能转化为电能,通过充放电控制器为锂蓄电池充电。锂蓄电池放电同样通过通过控制器来控制LED照明电路。

太阳能路灯控制器

图2-1

单片机作为太阳能路灯控制系统的核心。太阳能控制器设计的好坏关系到整个系统能否正常运行。控制器的核心是PICl6F711。它是目前世界上片内集成外围模块最多、功能最的单片机品种之一,是高性能的8位单片机。它采用哈佛总线结构和RISC技术,指令执行效率高.功耗极低.带有FLASH程序存储器,配置有5个端口33个双向输入输出引脚,这些引脚大部分有第二、第三功能.内嵌8个10位数字量精度的AD转换器,配有2个可实现脉宽涮制波形输出的CCP模块。控制器主要的工作是白天实现太阳能电池板对蓄电池充电的控制。晚上实现蓄电池对负载放电的控制。

-5-

2.2 部分单元电路的原理

2.2.1太阳能电池

(1)太阳能电池的种类

太阳能光伏发电系统是利用光生伏打效应原理制成的太阳能电池将太阳能直接转换成电能的。太阳能电池单体是用于光电转换的最小单元。它的尺寸约4平方厘米到100平方厘米。太阳能电池单体工作电压为0.45一0.50伏,一般不能单独作为电源使用。将姗能电池单体进行串联,并联和封装后,就成为太阳能电池组件。它的功率从几瓦到几百瓦,可以单独作为电源使用。太阳能电池再经过串联,并联并装在支架上,就构成了大阳能电池方阵。它可以输出几百瓦,凡千瓦或更大的功率,是光伏电站的电能产生器。常用的太阳能电池主要是硅太阳能电池。目前世界上有三种己经商品化的硅太阳能电池:单晶硅太阳能电池,多晶硅太阳能电池和非晶硅太阳能电池。

单晶硅太阳电池是当前开发最快的一种太阳电池,它的结构和生产工艺已定型,产品已广泛用于空间和地面。这种太阳电池以高纯的单晶硅棒为原料,纯度要求99.999%。为了降低生产成本,现在地面应用的太阳电池等采用太阳能级的单晶硅棒,材料性能指标有所放宽。单晶硅太阳能电池的制造成本最高,但光电转化效率也最高,最高的达到24%。目前多晶硅太阳电池使用的多晶硅材料,多半是含有大量单晶颗粒的集合体,或用废次单晶硅材料和冶金级硅材料熔化浇铸而成,然后注入石墨铸模中,待慢慢凝固冷却后,即得多晶硅锭。这种硅锭可铸成立方体,以便切片加工成方形太阳电池片,可提高材料利用率和方便组装。多晶硅太阳电池的制作工艺与单晶硅太阳电池差不多,其光电转换效率约12%左右,稍低于单晶硅太阳电池,但其材料制造简便,节约电耗,总的生产成本较低,因此得到大量发展。

(2)太阳能电池的保护

光伏系统在运行中要注意对太阳能电池组件(俗称太阳能板)的保护。这种保护分 -6-

为两类机械化学方面的保护和电方面的保护。机械化学方面的保护是指在封装及安装太阳能板的时候要考虑其防腐,防风,防雹,防雨的能力电方面的太阳能光伏发电系统的基本组成与基本原理保护是指连接旁路二极管,连接防反充二极管等。在一定的条件下,一个串联支路中被遮蔽的太阳能电池组件,将被当作负载消耗其它有光照的太阳能电池组件所产生的能量。被屏蔽的太阳能电池组件将发热,这叫热斑效应。为了防止太阳能电池组件由于热斑效应而受到破坏,需要在太阳能电池组件的正负极间并联一个旁路二极管。在太阳能板的保护中还用到一种防反充二极管,又称阻塞二极管,其作用是避免由于太阳能板在阴雨天和夜间不发电时,或太阳能板出现短路故障时,蓄电池组通过太阳能板放电。防反充二极管串联在太阳能板中起单向导电作用。大型系统中还要防雷。

2.2.2锂蓄电池的充电特性

路灯蓄电池选用锂离子电池。锂电池具有重量轻容量大无记忆效应等优点,因而得到普遍应用。锂电池的能量密度很高,它的容量是同重量的镍氢电池的

1.5-2倍,而且具有很低的自放电率。此外,锂电池似乎没有记忆效应以及不含有毒物质等优点。但是对于锂电池的充电过程,要求是比较严格的。影响蓄电池寿命的因素有:放电深度,过充电程度等。在光伏系统中蓄电池的放电深度不是恒定的,它随天气状况和季节而变。在天气晴朗的夏日,蓄电池放电深度小;在天气阴沉的冬日,蓄电池放电深度大。过充电程度也随季节天气变化,在冬季,蓄电池可能从没充满过,在夏天,蓄电池可能经常是满的。为了延长蓄电池的寿命,必须合理的控制蓄电池的放电与充电。当蓄电池放电到一定程度时,应停止放电,防止过放电减少蓄电池寿命;当蓄电池充电到一定程度时要停止充电和减小充电电流,防止不合理的过充电对蓄电池造成损害。

锂蓄电池的充电曲线如图2-2

-7-

浮充电压

1.75A

1.5A

1.25A最大充电电流16V

15V

1A

0.75A

0.5A

0.25A

预充电流预充到快充过渡电压

电压电流13V14V

图2-2 锂蓄电池充电曲线

锂蓄电池的充电过程:

(1)如果开始充电时,电池电量很低,那么必须用小电流(大概0.24A)开始充电,即涓流充电。如果电压高于13V就不必进行这个步骤。

(2)当电池电压大于13V可以开始大电流充电,恒流充电。随着充电的进行,电池电压逐渐升高。

(3)当电池电压达到或接近充满电压(如16.8V左右)时,则要开始转入恒压充电:当电流减少到大概0.25A左右,则停止充电。

2.2.3 锂蓄电池温宿补偿

锂蓄电池的容量是随温度的变化而变化的;温度升高,蓄电池的容量将增大;温度低,蓄电池的容量将减小。如果充电电流维持不变,相应的充电倍率将不变,不同的充电倍率对应不同的过充点,因此,要采用温度补偿队蓄电池进行保护。单片机PIC16C711通过采样温度参数,实时检测当前温度,进行温度补偿。温度补偿使用NTC热敏电阻。根据国家标准,温度补偿的范围为-3—7Mv/K,方案设计取中间值-5Mv/k。

-8-

2.2.4 控制器充放电电路

充放电电路图如图2-3。

太阳能路灯控制器

图2-3 控制器充放电电路图

单片机控制充,放电驱动Q1和Q2。

(1)当蓄电池电压处于正常情况下,单片机控制的充电驱动MOS管Q1(IRFZ44)为高电平截止,三极管Q3导通,PWM占空比为零,此时太阳能电板想蓄电池恒流充电;当蓄电池电压达到13.6V时,单片机控制充电驱动Q1为高电平时,Q3导通,Q1截止,通过控制占空比,使Q1实现通断控制,此时处于恒压浮充状态;当电流下降到某值时,进行恒流充电;但蓄电池电压达到设定的过充点14.4V时,再进行恒压涓流充电;涓流小到某一值,单片机控制的充电驱动Q1进行短路保护;当蓄电池电压下降到某设定值时,Q3重新导通,Q1截止,恢复为正常充电状态。

(2)当蓄电池电压处于正常情况下,单片机控制的放电驱动MOS管Q2(IRFZ44)为低电平,三极管Q4截止,Q2导通,此时负载输出正常;当蓄电池电压低于设定的过放点时,单片机控制的放电驱动Q2为高电平,Q4导通,Q2截止,此时负载无输出;当蓄电池电压达到12.6V时,单片机控制的放电驱动T2为低电平,Q4截止,MOS管Q2导通,此时恢复对负载供电。

-9-

2.2.4 MOS管驱动电路

开关管的选择考虑到太阳能电池的功率和负载的功率不一致,可用不同的MOS管做充放电的开关管,用小功率的MOS管要考虑温度因素,必要的话必须加散热器。为了提高可靠性,降低成本,经大量的试验和分析比较,表明在3A电流工作范围内,可选用IRFZ44,IRF540,IRF530,50N60等,基本不需加散热器;5A电流工作范围内,须加小散热器;8A 电流工作范围内,2807,3205,150,064等要加小散热器,带载能力较强,价格高;其他MOS管要加大散热器,10A以上都应该加大散热器。在元件选用上,应根据具体情况加以选择。

本设计采用IRFZ44

驱动信号由单片机发出,为TTL电平,不能直接驱动MOS管,用三极管进行电平转换。电路图如图2-4:

MOS管栅极C

图2-4 M0S管的驱动电路图

图中Vd为蓄电池正极电压,R1为三极管基极限流电阻。R2为集电极电阻。DW为18V稳压二极管,它与R3一起限制控制信号的电压G<18V。输出信号与G端信号反相。当单片机输出“1”时,G端为0V时,G端电压为Vd。

-10-

2.2.5 显示电路

目前,多数太阳能灯选用LED作为光源,LED寿命长,可以达到100000小时以上,而且工作电压低,非常适合应用在太阳能路灯系统上。特别是LED技术已经实现了其关键性的突破,其特性在过去的几年中有了很大地提高,性能价格比也有较大地突破。其优点如下:

1、节能:LED发光颜色更接近于自然光,与高压钠灯相比,人眼感到同样亮度时所需的光强就低许多,例如,在道路照明中采用98瓦的LED路灯,其照明效

果就相当于250瓦的高压钠灯。

2、长寿:由于大功率LED路灯是由很多LED光源组成,即使个别损坏了也不会对正常照明产生太大影响,不像高压钠灯损坏时全灯熄灭,因此大功率LED路灯的可靠性比高压钠灯的可靠性提高了许多倍,大功率LED路灯寿命长达5万小时是高压钠灯的十几倍,户外使用寿命长达10年以上。

3、显色性好:大功率LED路灯显色性大大高于高压钠灯,高压钠灯以金属钠蒸汽为发光源,光线呈单一偏黄,与阳光相差甚远,而LED路灯发出的是白色光,

色彩更真实,也不存在危害性的紫外光线和红外光线,不吸引昆虫。

5、无频闪:大功率LED路灯采用直流供电,加上光电独有的恒流装置,使大功率LED路灯发光恒定,彻底无闪烁。

6、快速响应:高压钠灯等高强度气体放电灯有延迟效应,要在点燃15分钟后才能达到其90%'--'100%光通量,而大功率LED路灯通电即达到正常亮度,无开灯延时现象。便于实行智能控制,更加节能。

7、安全:LED照明是一种固态照明,可以有效防震、防爆,对于类似震动比较大的高速公路和对安全性要求更高的隧道和矿井等尤其适用。

8、优良的散热性能:低热阻的结构设计与良好的散热设计,保证了LED的PN结结温不会超过75。C,从而保证了LED的发光效率及工作寿命。

此控制器采用两个双色LED发光二极管,LED1显示充电状态,LED2显示放电状态。

(1)充电时蓄电池电压高于13.0V时,LED1显示红色;当蓄电池电压在13.0-13.6V之间时,LED2显示橙色;当蓄电池电压高于14.4V时,LED1显示绿色。

(2)放电时当蓄电池电压高于11.1V时,LED2显示红色;当蓄电池电压在12.2-12.6V之间时,LED2显示橙色;当蓄电池电压高于12.6V时,LED2显示绿色。两个双色LED发光二极管显示非常直观,取代了以往多个指示灯。

-11-

2.3 本章小结

本章主要是介绍课题的方案选择,确定课题方案后。仔细分析方案。整理出方案的方框图,并重点分析介绍系统中的每个重点模块。

第三章 锂蓄电池电压电流的检测

3.1锂蓄电池电压的检测

PIC16C711单片机带有4路8位A/D转换器,转换器的输入电压范围为:0~5V,转换后相应的数字量范围:0~255。将蓄电池电压Vd的最高值定于25.5V,利用电阻分压的方式将其转换为0~5V。电路如图4-1

-12-

Vd

图4-1

Vi=R2/(R1+R2) ×Vd,取R2=20 KΩ,R1=82 KΩ,代入数值则由Vi=10/51Vd

故蓄电池电压:Vd=0-25.5V;相应模拟电压:V i=0-5.OV;相应的数字量:D=0-255。 当计算机采样值为X时,计算蓄电池电压公式为:Vx=X/10 V

A/D转换数字波动范围为±1LSB。故电压测量波动范围±0.1V。

3.2 锂蓄电池电流的检测

检测比较大的直流的方法不多,本设计采用一个小电阻R(0.05欧姆)来检测电流,小电阻两端的电压通过运放放大,经A/D转换后输入单片机中,测得电压后除以放大倍数得到实际电压,再根据欧姆定律U=I/R计算出电流I的大小。

用一个小电阻来检测电流存在的问题是:小电阻的阻值会发生变化。实际上绝对线性的电阻是不存在的。例如,绝大多数金属导体的电阻都随温度的升高而升高,当电流通过导体时,将电能转化为热能,使金属的导体的温度升高,阻值就不是常数,而是随着电流或电压变化。本系统中检测出来的充电电流跟实际的充电电流不一样,但存在一个规律是:电流越大检测出来的充电电流跟实际电流的偏差就越大,它们成线性的关系。这是由于小电阻阻值随温度变化造成的。表4-2是实验采集的单片机测得电流和实际电流的一些数据。

太阳能路灯控制器

-13-

这两组数据存在线性的关系,首先利用Matlab对第一列的数据进行处理,首先求出它的关系式,假设关系式为:y1=a(1)·x+a(2);

使用Matlab求出系数a(1)=0.0100和a(2)=0.2100所以这组数据可以用关系式:y1=0.01x+0.21来表示。采集的数据和线性拟合后的曲线如图4-3。

-14-

太阳能路灯控制器

0.65

0.6

0.55

0.5

0.45

0.4

0.35

0.3

0.25

0.20510152025303540

图4-3实际电流数据采集和线性拟合

对第二列的数据进行处理,首先求出它的关系式,也假设关系式为:y2=a(1)·x+a(2);

使用Matlab求出系数a(1)=0.0147和a(2)=0.2109所以这组数据可以用关系式y2=0.0147·x+0.2109来表示。采集的数据和线性拟合后的曲线如图4-4。

太阳能路灯控制器

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0510152025303540

-15-

图4-4单片机检测出的电流数据采集和线性拟合

结合关系式y1和y2便可得到两列数据的关系式y1=0.680272·(y2-0.2109)+0.21,其中y1表示实际的电流,y2表示单片机检测出来的电流,单片机检测出来的电流y2通过上式的转换后变成y1,便是实际的电流。

3.3本章小结

主要介绍的课题检测的指标的各种方法,在检测蓄电池电压的检测用到PIC16C711单片机的8位A/D转换器。在电流的检测时用到小电阻补偿的方法,使检测结果精确。

第四章 整机电路及其工作原理

4.1整机电路原理图

控制器的整体电路图如图3-1。

-16-

图3-1 控制器整体电路图

太阳能电池板接收太能光将太阳能转化为电能由单片机根据采集到的充放电电压电流参数发出各种控制信号,实现充放电控制。使充放电系统能稳定有效地运行。更好的保护锂电池。延长了整个太阳能路灯系统的使用年限。太阳能LED路灯系统由太阳能电池板、LED路灯控制器、锂蓄电池以及LED路灯模块组成。在整个系统中,充放电控制器处在核心地位,其工作的好坏直接决定了整个系统的性能。本文设计的控制器以PWM充电技术为核心,具备蓄电池过充、过放保护、太阳能电池过压保护、负载短路保护等多种保护功能。

4.1.1 充电部分的控制

本方案采用PWM 脉冲调制控制保护技术,不仅能有效地保护蓄电池,防止过充电现象的发生,还能快速、平稳地为蓄电池充电。所谓PWM控制就是控制输出波形的占空比,周期并不改变,通过开关管的导通与闭合来控制充放电。锂电池的充电曲线图如图2-2,蓄电池的电压低于13V时,单片机输出一个相应占空的脉冲,控制三极管(Q1)通和断的时问,从而控制场效应管IRFZ44(Q3)的通和断,使到充电的电流为0.24A 左右, 此时处于预充状态。蓄电池的电压高于1 3V 时,单片机输出一个高电平(相当于PWM 占空比为1), 三极管(Q1)导通,场效应IRFZ44(Q3)处于截断状态,此时太阳能电池板以最大的电流为蓄电池充电一一恒流充电。当蓄电池电压接近或等16.8V

太阳能路灯控制器

-17-

时,通过控制占空比,也使场效应管IRFZ44(Q3)实现通断控制,使充电状态处于恒压浮充状态。当电流小于一个值(0.24A)时,单片机就输出一个低电平,使场效应管IRFZ44(Q3)完全导通,停止给蓄电池充电。

4.1.2 放电照明部分的控制

当单片机控制照明灯的控制脚输出高电平(5V)的时候,三极管Q2就会导通,三极管02集电极E的电压变低(约为0V),此时加到场效应管(Q4)栅极的电压就会变低,场效应管就截止,流过照明灯的电流减少到0。相反,当单片机控制照明灯的控制脚输出低电平(OV)的时候,三极管Q2就会截止,三极管Q2集电极E的电压高,此时加到场效应管(Q4)栅极的电压也就高,场效应管就导通,流过照明灯(LED灯)的电流大, 照明灯打开。

4.2 整机工作原理

太阳能充放电系统主要由太阳能电池板、锂蓄电池、控制器和负载组成,系统原理如图1所示。控制电路的核心器件是PIC16C711;8位闪存单片机,具有4路A/D转换通道和13个I/O口器件体积小、价格低、功能全、性能可靠稳定,具有很高的性价比。PIC16C711通过对太阳能电池板电压、蓄电池电压、充放电流等参数的检测判断,控制T1和T2的开通和关断,达到各种控制和保护的功能。

控制器的整体工作原理图如图3-2。

-18-

图3-2 太阳能路灯控制器的工作原理图

太阳能LED路灯系统由太阳能电池板、LED路灯控制器、锂蓄电池以及LED路灯模块组成(如图1所示)。在整个系统中,充放电控制器处在核心地位,其工作的好坏直接决定了整个系统的性能。本文设计的控制器以PWM充电技术为核心,具备蓄电池过充、过放保护、太阳能电池过压保护、负载短路保护等多种保护功能。

控制器是连接太阳能电池板,蓄电池和负载的钮带。它必须具备以下几个基本功能:①过压保护:当蓄电池电压高于一定值时,停止充电。②欠压保护:当蓄电池电压低于一定值时,停止放电。③恢复充电:当蓄电池电压低于一定值时,重新恢复充电。④恢复放电:当蓄电池电压高于一定值时,重新恢复放电。⑤状态指示:太阳能电池板的供电状态和负载接通情况应指示。⑥防雷击:因太阳能电池板多半放置在户外,而且有一定的高度,容易受雷击,增加防雷击功能是必要的。

为了使控制器适应太阳能街灯等环境,充分利用现有的硬件资源增加白天黑夜的检测功能,以便白天关负载,黑夜自动点亮,满足各种用户需求。作为可扩展功能。

4.3本章小结

本章是本课题的基础,仔细的分析系统整体电路图以及系统原理图。太阳能路灯充放电控制器的核心是单片机,由单片机根据采集到的控制器的充放电电压电流参数,发出各种控制信号。实现充放电控制,是使充放电系统能稳定有效地运行。更好的保护了锂电池。延长整个太阳能路灯系统的使用年限。

太阳能路灯控制器

-19-

第五章 系统软件设计

5.1 设计思路

以单片机为核心的控制软件具有实时性、灵活性、通用性及运行可靠性的特点,现在对太阳能充电控制器软件的设计思路介绍如下:

1、首先主程序要完成系统初始化,为了在初始化的过程中,防止中断的意外到来,应在主程序的开始处先关闭中断,完成初始化后,再打开中断。

2、由于本系统是11V/14.4V自动识别,因此要在程序中必须判别。具体为,当蓄电池两端电压大于13.4V时,满足14.4V的系统,否则为11V系统,判别系统后转到相应的程序处继续执行。

3、判断太阳能极板的两端电压,来区分是白天还是黑天。若为白天,转为白天的处理程序;若为黑天转到黑天的处理程序。

4、白天处理程序中,要判断蓄电池的两端电压,在决定是否采取充电控制,充电控制方式采用PWM控制。并有指示灯时刻现实蓄电池两端电压处于何种状态,让用户一目了然。

5、充电过程会发热,所以要有温度补偿程序,保护蓄电池。

6、黑天处理程序中,按照选择的工作模式工作,工作模式即为负载的工作时间。

7、定时处理程序主要完成系统程序的工作时序,定时处理能使整个程序有条 不紊的按照系统的要求完成任务。

控制器软件的设计完全按照结构化的程序设计方法来完成,将整个程序细分为若干个子程序,方便调试与检查。开发系统采用通用编程器TOP一2048,利用C语言使得整个软件开发变得简单、快速、易于调试。主软件流程见图5-1。系统源代码见附录3。同时就几个主要的子程序做简单的介绍。

5.2系统主程序流程

主程序流程图如图5-1所示

-20-

图5-1 系统主程序流程图

-21-

太阳能路灯控制器

5.3 初始化子程序

在初始化程序中,主要对PIC16C711的系统资源,包括定时器、中断、串行通讯等初始化工作。

5.4 A/D转换子程序

A/D转换结果的读入采用查询方式。通过查询端口的信号来判断转换是否结束;8位的转换只需一次读取,就可得到结果。对于温度信号一般来说是缓变的,通过单片机的软件编程,采用查表法实现,不同的温度对应不同的过充点,其他点位按照电压差值依次与过充点对应。

#pragma interrupt_handler ade-isr:15

void main(void)

{if adc-mux==0)

adc—v0=ADC&0X3FF;

else adc—vl=ADC&OX3FF:

if(adc-mux<1)

adc—mlLX++:

else adc—max=0: ,

ADMUX=(ade-mux&OXOF);

ADCSRA l=(I<<ADSC);l

5.5 显示子程序

在显示程序中.完成发光二极管LED的显示功能。通过检测蓄电池两端的电压,确定LED的电位高低,使LED直观地显示红色、橙色或绿色。

5.6本章小结

通过前面几章对系统硬件的分析,本章仔细分析了系统的另一大模块,软件部分。要求硬件与软件相对应,烧入程序后控制器满足课题的各项设计指标。标志着课题设计的圆满成功。

-22-

结 论

由于能源的日益紧张,引起人们对太阳能应用的热潮,由太阳能极板、充放电控制器、蓄电池等构成的产品都有了相对成熟的发展,国内外很多专家也在这方面做了深入的研究。本论文就太阳能充放电控制器对蓄电池的充放电方式、控制器的功能要求和实际应用方面做了分析,完成了硬件电路设计和软件编制,实现了对蓄电池的科学管理,并将其应用到太阳能路灯系统中。

论文的主要工作有:

1、对锂蓄蓄电池的充、放电过程、影响铅酸蓄电池使用寿命的各种因素作了分析,确定了太阳能充电控制器的总体设计方案。

2、完成了控制器的硬件设计、电路板的绘制,电路的焊接。实现控制器通过对单片机PIC16C711的PWM输出来控制开关MOS管的通断,从而控制充电放电。

3、在硬件设计的基础上,对太阳能充电控制器进行了软件编程,实现对蓄电池的保护以及温度补偿、过载检测等。

4、将充放电控制器应用于太阳能路灯系统,设计整个系统的总体方案。组装太阳能路灯系统,进行现场调试,监视运行情况,及时修改软件并运行,取得了预期的运行效果。

本论文在软硬件设计上仍有很多需要完善之处:

l、在PCB板的元件布置和布线上要更加合理,以便减少干扰的引入。

2、本论文所采用的软件编程思想,还需要进一步在实际的运行中验证其稳定性及可靠性。

3、延长蓄电池寿命目前还没有一个最好的方式,如何进一步保护蓄电池,采用更优的控制方法需要更进一步的研究。

充放电控制器是太阳能路灯的核心部件,针对锂蓄电池充电的特殊要求,本文巧妙地采用简单电路检测充放电电压电流、软件补偿用于检测的小电阻的温度效应,省却硬件补偿的费用,降低成本。由单片机根据采集到的充放电电压电流参数,发出各种摔制信号,实现充放电控制,使充放电系统能稳定何效地运行,更好地保护了锂电池, 延长了整个太阳能路灯系统的使用年限。因而,本文设计的太阳能路灯充放电控制器具有较高的实用价值,对太阳能路灯的推广起到了促进作用,是有益的尝试。

-23-

致 谢

本课题在选题及研究过程中得到?的悉心指导。老师们多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拔、热忱鼓励。老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅受我以文,而且教我做人,虽时间不算太长,却给以终身受益匪浅。对老师的感激之情是无法用语言来表达的。

在此,我还要感谢在一起愉快的度过大学生生活的机电系全体老师和同门,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。通过这次毕业设计,是我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。不积跬步何以至千里,本设计能够顺利完成,在此向内哈尔滨工业大学华德应用技术学院、电子系的全体老师表示由衷的谢意。感谢他们四年来的辛勤栽培。

在论文即将完成之际,我的心情无法平静,从开始进入可提到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我再次感谢指导老师的关心和帮助以及在本次设计中帮助我的所有以前帮助过我的老师和同学,是你们的帮助和支持,让我完成了本次设计,祝你们身体健康万事如意!

参考文献

[1] 李安定.太阳能光伏发电系统工程[M].北京工业大学出版社.2006.

[2]张艳红等.一种新型光伏发电充放电控制器.可再生能源,2006,5.

[3]刘虹,沈天行.L E D 进入普通照明市场的预测及照明节电分析[J].照明工程学报,2005.

[4]杨金焕,等.一种独立光伏系统设计的新方法.太阳能学报,l995.

[5]冯垛生.太阳能发电原理与应用[M].人民邮电出版社,2007

[6]周航慈.单片机程序设计基础[M].北京航空航天大学出版社,2003.

[7]周立功,夏宇文.单片机与CPLD综合应用技术[M].北京航空航天大学出版社,2003.

[8]孙肖子,任爱锋,徐少莹,等.现代电子线路和技术实验简明教程[M1].北京高等教育出版社,2009.

-24-

[9]戴鹏飞,王胜开。王格芳,等.测试工程与LabVIEW应用[M].北京电子工业出版社,2006.

[10]何朝阳,戴君,吴立琴.基于STcl2C54lOAD的太阳能路灯控制器设计叨.电子设计工程报,2007(3):27—30.

[11]马章.新型太阳能光伏电源控制[J].铁道通信信号出版社,2000,36(7):24~25.

[12]康华光.电子技术基础:模拟部分[M].北京:高等教育出版社.2005.

[13]张盛忠.基于PICl6F676的调宽调频式太阳能交通黄闪信号灯控制器的设计

[J].电源技术应用,2006,9(12):14—17.

[l4]吴理博。赵争鸣,刘建政.用于太阳能照明系统的智能控制器[U].清华大学学报,2003,43(9):1195一1198.

[15]汤建皮,黄刚.光伏系统配套蓄电池选择[J].蓄电池.2002(4):187-190.

[16]李荣正,刘启中,陈学军.PIC单片机原理及应用[M].北京:北京航空航天大学出版社,2006.

[17]余发平,张兴,王国华.基于自适应PI控制的太阳能I正D照明系统PWM恒流控制器[J].太阳能学报,2006,27(2):132—135.

[18]曹仁贤.高效光伏充电器的研制.太刚能学报.1998(4).pp:433-436

[19]欧阳名三.独立光伏系统中蓄电池管理的研究[学位论文].合肥工业人

学.2004.pp:5—30

[20]何立民.MCS-51系列单片机应用系统没计.北京:航空航天人学出版社.1990.pp:20.210

[21]吴瑞华,耿新华.非晶硅光伏极板评述.太刚能学报特刊.1999.pp:95.101

[22]HUA C,LIN J.A modified tracking algorithm formaximum power tracking of solar array[J].EnergyConversion and Management,2004,45(6):91 1—925.

-25-

附件 系统的主程序代码

#include"reg52.h"

#include<absacc.h>

#include<math.h>

#include<intrins.h>

#include<RTimer.h>

#include<PID.h>

#include<ADIO.H>

#define uchar unsigned char

#define uint unsigned int

#include<dot.c>

#define LCDADDR XBYTE[0x84ff]

#define LCDDATA XBYTE[0x85ff]

#define DELAYONOFF XBYTE[0X8200]

#define LEDBLINK XBYTE[0X80FF]

// 空位0x7e58;0x7e59;0x7e5a;0x7e4b-7e4f;0x7e3b-0x7e3f;0x3a04以下; //#define CLEAR_ME XBYTE[0X0000]

static xdata uchar aaaa[1] _at_ 0x0000;

static xdata uchar num _at_ 0x7fff;

-26-

static xdata uint contrl_val _at_ 0x7ff0;

static uint xdata delinestep1 _at_ 0x7ff2;

//用于断电后继续

static uchar xdata coordinatex _at_ 0x7ffe;//断电保存的文件名 static uchar xdata coordinatey _at_ 0x7ffd;//文件名的步数 sbit K_SDA=P1^1

sbit K_SCK=P1^0;

sbit LAMP=P1^4;

float Selectvalue(void);

void Clearmemoryzero(void);

float Selectvalue1(void);

float Selectvalue2(void);

float Selectvalue3(void);

extern void WRInstrLef(uchar x);

extern void WRInstrMID(uchar x);

extern void WRInstrRig(uchar x);

void WRDATALef(uchar x);

void WRDATAMID(uchar x);

-27-

void WRDATARig(uchar x);

//void DelayNS(uchar x);

void Init(void);

//extern void Disp_Err(void);

extern void DispMenu_1(void);

void ClearZero(void);

static uchar xdata keyfuncindex _at_ 0x7ffc; //用于PID中断调节

//static float xdata num2 _at_ 0x7fe0;

static uchar xdata nomalstop _at_ 0x7ffb; //float xdata num _at_ 0x7388;

static uchar xdata FileName _at_ 0x7ffa; static float dianliu_1 _at_ 0x7ff4;

static uchar xdata background _at_ 0x7ff8; static uchar xdata timer0mark _at_ 0x7ff9;

-28-

//以上是7ff0-7fff

static uchar xdata Lampmark _at_ 0x7fef; static uint xdata delinestep _at_ 0x7fe0; static uchar xdata startdelay _at_ 0x7fee; static uchar xdata pause_sign _at_ 0x7fed; uchar xdata QUITFLAG _at_ 0x7fec;

uchar xdata specialmark _at_ 0x7feb;

uchar xdata QUITFLAG1 _at_ 0x7fea;

uchar xdata QUITFLAG2 _at_ 0x7fe9;

uchar xdata QUITFLAG3 _at_ 0x7fe8;

static uchar xdata ledbuzz _at_ 0x7fe7; static uchar xdata jidianqi _at_ 0x7fe6; static float dianya_1 _at_ 0x7fe2;

//以上7fe0-7fef

//....

static uchar xdata chafangdian_m _at_ 0x7fdf; static uchar xdata AD_BCD[5] _at_ 0x7fda -29-

static uchar xdata AD_BCD1[5] _at_ 0x7fd5; /*电压BCD值*/

static uchar xdata AD_BCD2[5] _at_ 0x7fd0;

//以上是7fd0-7fdf

static uchar PIDflag=0;

static uchar PIDflag1=0;

static uchar xdata ChargeFlag _at_ 0x7fc7;//充放电标志,如是停止则为0 static uchar xdata Chaflag=0;

static uchar xdata Chaflag1=0;

static uchar xdata Chaflag2=0

uchar xdata Cycflag=0;

static uchar xdata Cycflag2 _at_ 0x7fc6;

uchar xdata editflag=0;

//static uchar xdata scalenum _at_ 0x7ff2;

//static uchar xdata scalenum1 _at_ 0x7fcf;

static uchar xdata endflag _at_ 0x7fc5; //结束标志

static uchar xdata endflag1 _at_ 0x7fc4; //结束标志

static uchar xdata endflag2[4] _at_ 0x7fc0;

static uchar endflag2_1 _at_ 0x7fc8;

uchar xdata transtemp=0;

//以上是7fc0-7fc8

-30-

static float xdata totalampletime0[5][3] _at_ 0x7f80;//充电的总的安时数...7f80-7fbc

static float xdata totalampletime1[5][3] _at_ 0x7f40;//放电的总的安时数...7f40-7f7c

static uchar xdata totalampletimeBDC[5] _at_ 0x7fcb;//...

static uchar xdata runnumber=0; //文件运行的次数

static uchar xdata chongdiantime[5][3] _at_ 0x7f30;//充电的分... static uint xdata chonghour[5][3] _at_ 0x7f00;//充电的小时... static uchar xdata fangdiantime[5][3] _at_ 0x7f20;//放电的分...

static uint xdata fanghour[5][3] _at_ 0x7ee0;//放电的小时...

uchar xdata congfangnum1 _at_ 0x7f2f;

uchar xdata congfangnum2 _at_ 0x7f3f;

//以上是7f00以上的,剩下为7f1e,7f1f,7f7c-7f7f,7fbc-7fbf,7fb7c-7f7f

uchar xdata congfangquittime[5][4] _at_ 0x7ec0;//充放电停止时间...

-31-

static float xdata CURRSCALING _at_ 0x7edc;//电流比例调节 static float xdata CURRSCALING1 _at_ 0x7eb0;//电流比例调节 static float xdata CURRSCALING2 _at_ 0x7ea0;//电流比例调节

static float xdata CURRCOMPEN _at_ 0x7eb4;//电流补偿调节 static float xdata CURRCOMPEN1 _at_ 0x7ea4;//电流补偿调节 static float xdata CURRCOMPEN2 _at_ 0x7e90;//电流补偿调节

static float xdata VOLTSCALING _at_ 0x7eb8;

static float xdata VOLTSCALING1 _at_ 0x7ea8;

static float xdata VOLTSCALING2 _at_ 0x7e94;

static float xdata PID_u[2],PID_e[2];

//AD转换

uchar bdata AD_SendBuff;

sbit AD_SendBit = AD_SendBuff ^ 7;

uint bdata AD_ReadBuff;

sbit AD_ReadBit = AD_ReadBuff ^ 8;

static float xdata MAXV[4] _at_ 0x7e80;

static float xdata MAXI[4] _at_ 0x7e70;

static float xdata MAXV_1 _at_ 0x7e6c;

-32-

static void AD_SendConByte(unsigned char); sbit AD_Select = P1 ^2;

sbit AD_DA_DataIn = P1 ^5;

sbit AD_DataOut = P1 ^6;

sbit AD_DA_SLCK = P1 ^7;

sbit DA_SYNC = P1 ^3;

static void AD_SendConByte(unsigned char byte) {unsigned char i;

EA=0;

AD_Select = 0;

AD_DA_SLCK = 0;

AD_SendBuff = byte;

for (i=0;i<=7;i++)

{AD_DA_DataIn = AD_SendBit;

AD_SendBuff = AD_SendBuff << 1;

AD_DA_SLCK = 0;

_nop_();

AD_DA_SLCK = 1;

}

-33-

EA=1;

}

unsigned int AD_ReadData(unsigned char channal) {unsigned char i;

unsigned int x = 0;

EA=0;

switch (channal)

{case 0: AD_SendConByte(AD_ConByte0);break;

case 1: AD_SendConByte(AD_ConByte1);break; case 2: AD_SendConByte(AD_ConByte2);break; case 3: AD_SendConByte(AD_ConByte3);break; default: return (0);

}

AD_DA_SLCK = 0;

AD_ReadBuff = 0;

_nop_();

for (i=0; i<=11;i++)

{AD_DA_SLCK = 1;

AD_ReadBuff = AD_ReadBuff << 1;

AD_DA_SLCK = 0;

-34-

_nop_();

AD_ReadBit = AD_DataOut; }

for (i=0; i<=4; i++)

{AD_DA_SLCK = 1;

_nop_();

AD_DA_SLCK = 0;

_nop_();

}*/

for(i=0;i<=11;i++)

{AD_DA_SLCK = 1;

AD_ReadBuff = AD_ReadBuff << 1; AD_DA_SLCK = 0;

_nop_();

AD_ReadBuff|=AD_DataOut; }

for (i=0; i<=4; i++)

{AD_DA_SLCK = 1;

_nop_();

AD_DA_SLCK = 0;

-35-

_nop_();

}

EA=1;

AD_Select = 1;

x = AD_ReadBuff;

return x;

}

void AD_Init(void)

{AD_Select = 1;

AD_DA_DataIn = 1;

AD_DataOut = 1;

AD_DA_SLCK = 0;

}

void DA_Init(void)

{AD_DA_DataIn = 1;

AD_DA_SLCK = 0;

DA_SYNC = 1;// keeping high will draw more current }

void DA_SendData(unsigned int word)

{unsigned char i;

-36-

uint word1; EA=0; word1=word&0x0fff; DA_SYNC = 0; for (i=0;i<=15;i++) {AD_DA_SLCK = 1; AD_DA_DataIn=(bit)(word1&0x8000);

AD_DA_SLCK = 0;

word1 <<=1;

}

// AD_DA_DataIn = 1;

DA_SYNC = 1;

EA=1;

}

float AD_ValueScaleF(unsigned int word, float ad_max,float compes) {float AD_ScalingBuff;

AD_ScalingBuff = ((ad_max / 4095) * word) + compes;

return AD_ScalingBuff;

}

太阳能路灯控制器

-37-