基于AT89S51单片机的太阳能控制器设计与制作
本 科 生 毕 业 论 文(设 计) 论文(设计)题目:基于 AT89S51 单片机的太阳能控制器设计 与制作 2010 年 5 月 目 录 中文摘要1 1 研究意义与功能介绍1 2 电路设计.2 2.1 主原理图.2 2.2 蓄电池充电方式.3 2.3 充 放电电路.3 2.4 电压采集电路.4 2.5 光耦开关电路.4 2.6 单片机及其外围电路.5 2.7 A/D 转换电路 .6 2.8 单片机电源电路.6 2.9 PCB 图 7 2.10 作品实物.7 3 主要器件介绍8 3.1 AT89S51 单片机 8 3.2 TLC549.9 3.3MOSFET9 3.4 光耦.9 3.5 太阳能电池 .10 4 软件设计11 4.1 主要程序流程图11 4.2 主要 C 程序 .11 5 测试14 6 小结15 参考文献15 英文摘要16 致谢 17 1 基于 AT89S51 单片机的太阳能控制器设计与制作 内容摘要 本文介绍了一种基于单片机的太阳能控制器,系统使用低功耗、高性能的 AT89S51 单片机作为控制电路的核心器件。此系统由太阳能电池模块,蓄电池,充放 电电路,电压采集电路,单片机控制电路和光耦驱动电路组成。设计使用 PWM(脉宽 调制)控制技术来控制蓄电池充放电,通过控制 MOSFET 管开启和关闭达到控制电池 充放电的目的。实验结果表明,该控制器性能可靠,可以监视太阳能电池和蓄电池电 池状态,实现控制蓄电池最优充放电,达到延长蓄电池的使用寿命。 关键词 太阳能;控制器;AT89S51 单片机 我国现阶段的用电主要靠水力发电,但是我国水力资源在地域分布上极不平衡, 总体来看,西部多、东部少。对于水电资源缺乏的地区或者用电超负荷的城市开发新 能源是当务之急。我国的西部地区,包括西藏、新疆、青海、内蒙古、四川等省年日 照时间长,这些地区面积宽广、人口密集低,在一些偏僻的地区传统的供电设施建设 成本高,电能的供需矛盾显得十分突出,因此当地政府充分利用太阳能发电解决无电 地区的用电具有重大的战略意义。为了更高效的利用太阳能,白天将太阳能转化为电 能,利用蓄电池将剩余的电能储存起来,需要用电时即可由蓄电池供电。 1 研究意义与功能介绍 1.1 研究意义 随着经济的发展、社会的进步,人们对能源提出越来越高的要求,近年来能源供 需矛盾突出,寻找新能源成为当前人类面临的迫切课题。太阳光没有地域的限制无论 陆地或海洋,无论高山或岛屿,都处处皆有,可直接开发和利用,且勿须开采和运输。 它同以往其他电源发电原理完全不同,具有以下特点:1.无枯竭危险;2.干净无公害; 3.不受资源分布地域的限制;4.可在用电处就近发电;5.能源质量高;6.获取能源花费 的时间短。 1.2 功能介绍 本系统以 ATMEL 系列中的 AT89S51 单片机为控制中心,软硬件的结合,利用分 压电路对蓄电池,太阳能电池的电压、电流进行采样。再经过 A/D 转换采样数据输入 到单片机中进行处理。单片机输出经光耦驱动 MOSFET 管来控制外接电路开启关闭。 2 该系统可以实现控制蓄电池的最优充放电,当蓄电池电压在 14.4V+0.5 时,太阳能电池 停止对蓄电池充电,当蓄电池电压在 10.9V+0.5 时,蓄电池停止对负载放电;负载电流 检测电路可进行过流保护及负载功率检测(如图 1) 。 太阳能 电池 蓄电池 分压电路 采集电压 分压电路采 集电压 A / D 转换 A / D 转换 A T 8 9 S 5 1 单片机 光耦电路 光耦电路 充电控制 放电 控制 图 1 系统结构框图 2 电路设计 2.1 主原理图 如图 2 所示,电路包含太阳能电池,DC-DC 变换电路,蓄电池,数据采集电路, A/D 转换电路,单片机控制电路及状态显示部分。本设计以 ATMEL 系列 AT89S51 单 片机为控制中心的软硬件的结合,使用并联在电池两端的两个串联电阻,以分压方式 对蓄电池、太阳能电池的电压进行采样,送到 A/D 转换得到一个数字信号的电压值, 再将信号送入到单片机中进行处理。单片机输出经光耦电路控制 MOSFET 管。控制 MOSFET 管导通的方式是脉冲宽度调制( PWM),根据程序设计的载荷变化来调制 MOSFET 管栅的偏置,达到实现开关功能。按程序设计当检测到蓄电池的电压低于 12V,充电模式为均充,Q1 为完全导通状态,也就是导通的脉冲占空比最大;当检测 到蓄电池的电压在 12V-14.5V,充电模式为浮充,Q1 导通与不导通的占空比例变小; 当检测到蓄电池的电压等于 15V,Q1 截止充电停止。当检测到蓄电池的电压低于 10.8V,Q2 关闭停止放电。 3 Y1 11MHZ R9 10k R5 5k R7 5k C647 C747 X1X2X1 X2 D1 U5 U4 C1 100uF D2 VCC C5 10uF RST RST C4 104 C3 100uFQ2 K1 VCC K1 VCC R6 R8 C2 C1 CLK2 CLK1DO1 DO2 CS1 CS2 C1C2 K2 K2 VCC VCC VCC Vin Vin AD1 AD2 CLK1 VCC U4 DO1 Vin CS1 CS2 12 34 J1 CON4 DO2CLK212 34 56 J2 CON6 RL V in1 GND 2 Vout 3 T1 LM7805 1 2 B1 Q1 D3 R10 200 D4 R11 200 VCCRST 9 RXD/P3.010 INT0/P3.212 INT1/P3.313 T0/P3.414 T1/P3.515 EA/VPP 31 XTAL119 P0.0/AD0 39P0.1/AD1 38 P0.2/AD2 37P0.3AD3 36 P0.4/AD4 35P0.5/AD5 34 P0.6/AD6 33P0.7/AD7 32 P1.01 P1.12 P1.23 P1.34 P1.45 MOSI/P1.56 MISO/P1.67 SCK/P1.78 P2.0/A8 21P2.1/A9 22P2.2/A10 23 P2.3/A11 24P2.4/A12 25P2.5/A13 26 P2.6/A14 27P2.7/A15 28 ALE/PROG 30TXD/P3.111 WR/P3.616 RD/P3.717 PSEN 29 XTAL218 GND20 VCC 40 U1 AT89S51 REF+1 AIN2 REF-3 GND4 CS 5DO 6CLK 7VCC 8 U2 TLC549 REF+1 AIN2 REF-3 GND4 CS 5DO 6CLK 7VCC 8 U3 TLC549 C2 470uF R150k R25k R45k R3 50k 1 2 B2 AD1 AD2 U4 图 2 系统设计电路图 2.2 蓄电池充电方式 作为太阳能储能用的蓄电池由于存在过放、过充、使用寿命短等问题,要选择合 适的充放电方式。所有的蓄电池充电过程都有快充、过充和浮充 3 个阶段,每个阶段 都有不同的充电要求。现行的充电方法主要有恒流充电、恒压充电、恒压限流充电、 间隙式充电法等,这些充电方法各有利弊。本设计采用最容易实现的恒压充电。蓄电 池的电压在 10.8V-12V 之间为快充;蓄电池的电压在 12V-14.5V 之间为浮充;蓄电池 的电压为 14.5V 时停止充电。 2.3 充放电电路 电路由防反充二极管 D1、滤波电容 C1、续流二极管 D2、MOSFET 管 Q1、滤波 电容 C2、MOSFET 管 Q1 等构成。二极管 D1 是为了防反充,当阴天或晚上蓄电池的 电压高于太阳能电池的电压时,D1 就生效。通过控制开关闭合跟断开的时间(即 PWM—脉冲宽度调制) ,就可以控制输出电压。所使用的 MOSFET 是电压控制单极性 4 金属氧化物半导体场效应晶体管,所需驱动功率较小。而且 MOSFET 只有多数载流子 参与导电,不存在少数载流子的复合时间,因而开关频率可以很高,非常适合作控制 充放电开关。设计中采用 IRF9540N P 沟道 MOSFET 管,P 沟道 MOSFET 的导通电压 Vth 1 4 . 5 V V b a t 1 2 V 浮充充电 停止充电 Y Y N N V b a t 1 0 . 8 V 快速充电 Y N 停止放电 结束 4.2 主要 C 程序 #include //51 芯片管脚定义头文件 #include //内部包含 _nop_(); #define uchar unsigned char #define uint unsigned int sbit CLK = P0^0; /* AD 时钟信号 */ sbit CS = P0^2; /* AD 片选信号 */ sbit DOUT = P0^1; /* 数据输出 */ sbit FuZai = P1^1 ; sbit PWM = P1^0 ; sbit LED1 =P2^0; sbit LED2 =P2^1; 13 uchar t0,battery_v; void delay(uint n) //延时函数 { while(n--) { _nop_(); } } /*************************************/ void init()//初始化函数 { TMOD=0x01; TH0=(65536-50)/256; TL0=(65536-50)%256; EA=1; ET0=1; PWM=0; LED1=1; LED2=1; } /***********************************/ uchar adc_549(void) //AD 转换 { uint data_out=0; uchar i; CS = 1; _nop_(); CS = 0; for (i=0; i186)//蓄电池电压大于 10V { LED1=1; LED2=0; if(224battery_v204) { TR0=1; //开启固定 PWM 充电 if(t0==5) { PWM=1; } if(t0==12) { t0=0; PWM=0; } } else { TR0=0; LED1=1; LED2=1; } } else { LED1=0; LED2=1; FuZai=0;//关闭负载 } } } void timer0() interrupt 1 //定时器 0,用来产生 PWM { TH0=(65536-50000)/256; TL0=(65536-50000)%256; 15 t0++; } 5 测试分析 由于太阳能电池价格比较贵,所以设计中使用 12V 直流电源模拟太阳能电池。测 试所用的蓄电池规格:12V,36Ah。测试用到的仪器:万能表,可调直流电源,示波 器。测试的内容:检测蓄电池电压低于 10.8V 时,控制器是否中断放电电路;检测蓄 电池电压在 12V-14.5V 是否 PWM 充电;检测蓄电池电压大于等于 14.5V 时控制器是 否停止对蓄电池充电。由于测试使用的 12V 蓄电池容量太大( 36Ah) ,假如此控制器 以 1A 的电流对蓄电池充电,完成一次完整的充电所需时间大概为 36 小时,因此没能 完全完成测试充电过程。使用此 12V 蓄电池测得的结果是控制器能够充放电。而测试 控制器功能是否达到设计要求,所用的方法是用一个电压模拟蓄电池。 以下是模拟充电得到的参数:当模拟蓄电池的电压低于 10V,MOSFET 管 Q2 关 闭停止对负载供电,同时红灯亮;当模拟蓄电池的电压在 10V-12V 之间,Q1 导通对蓄 电池充电,同时绿灯亮;当模拟蓄电池的电压在 12V-14V 之间,PWM 充电,同时绿 灯亮;当模拟蓄电池的电压高于 14V,MOSFET 管 Q1 关闭停止充电,同时两个灯亮。 6 小结 本设计是基于 AT89S51 单片机的太阳能充放电控制器,以恒压限流的方式给蓄电 池充电, 使用开关频率很高的 P 沟道 MOSFET 管,控制充放电开关。通过采集太阳能 电池的电压电流实现太阳能电池最大功率跟踪,并检测蓄电池的端电压,防止蓄电池 的过充及过放。实践证明,该太阳能充放电控制器所组成的太阳能控制系统简单、快速、 实时性强,有利于提高太阳能电池的转换效率;有利于改善蓄电池的工作状态,提高了 蓄电池的使用寿命。在系统的设计以及在论文的写作过程中,查阅了大量的资料,包 括图书馆的相关书籍和各种期刊,从中获得了不少的启示。通过这次设计,使我在理 论和实践上都增长了很多经验。开始画 PCB 图是使用自动布线加手工修改,但是设成 以单层板的形式自动布线,生成的 PCB 图走线弯弯区区太不规则,后来使用以双层面 板的形式自动布线,然后将 TopLayer 层手工修改,得到的 PCB 图走线才像块板。然 后是去基地刷板,第一次去做板过板时直接报废,第二次做板,腐蚀液浓度太低,腐 16 蚀了一个多钟还是一点轮廓,第三次自己买了氯化铁重新打印再腐蚀。做了两块板同 时不断改进,才得到最终设计电路。最后就是调试,这一步花了几天时间,觉得做设 计最麻烦的还是调试,有时出不来结果,但不知问题出在哪。 在本设计中已经提高了太阳能电池的转换效率,但由于能力有限,所以没有对太 阳电池进行最大功率跟踪设计,没能更进一步提高太阳能的利用效率。 注释 [1]百度百科 http://baike.baidu.com/view/1641206.htm?fr=ala0_1 [2]百度文库 http://wenku.baidu.com/view/1d000f4e767f5acfa1c7cd13.html 参考文献 [1] 刘宏,吴达成等 .家用太阳能光伏电源系统 [M] .北京:化学工业出版社,2007 [2] 沈辉,曾祖勤 .太阳能光伏发电技术[M] .北京:化学工业出版社;2005 [3] 罗晓曙,闭金杰 ,杨日星,张露. AVR 单片机的太阳能电池控制器设计[J].现代电子技术, 2009(10). [4] 百度百科 http://baike.baidu.com/view/1641206.htm?fr=ala0_1 [5] 中国工控 http://www.gongkong.com/webpage/paper/201001/2010011509503300003.htm [6] 百度文库 http://wenku.baidu.com/view/1d000f4e767f5acfa1c7cd13.html [7] 黄海宏,黄长杰,王海欣著 太阳能控制器设计 [J]. 电子技术应用,May 2006 17 The Design and Production of Solar Controller Tangyurong Abstract This paper has introduce a solar controller which is base on a MCU,which is used a low-power and high-performance MCU which is called AT89S51 as the core devices of control circuit. This system is composed of a solar panels module, battery, charge and discharge circuit,Voltage and current acquisition circuit,MCU control circuit,Optocoupler drive circuit. It uses the PWM (Pulse Width Modulation) technology to control the solar panels recharge to battery, by controlling the opening and turn-off of MOSFET in the analog control circuit. The experimental results show that the the performance of the controller is reliable.can be oversee the status of solar panels and battery .It can bring out the optimization of the abattery,and extends the life of battery. Key words Controller;MCU;Solar 18 致 谢 我这次的设计能顺利完成,得益于老师和同学的指导和帮助,在这里,我对他们 的热心表示诚挚的谢意。 衷心感谢指导教师黄国现老师在这几个月来的悉心指导与督促,从最初的定题, 到资料收集,到写作、修改,到论文定稿,他给了我耐心的指导和无私的帮助。让我 从原来对单片机一无所知到对单片机有所了解再到现在的会用 C 语言在 keil 软件上编 写程序,让我对硬件电路的设计从原来惧怕到现在从容查资料,设计电路,调试电路。 同时也由衷的感谢同班薛量云同学提供了宝贵意见,使得设计符合要求。 最后,自己之所以能顺利完成,还是要感谢还是自己的父母,如果没有他们每日 辛苦的劳动与从小对我学习有着严格要求和培养我严格做人做事的态度,正是他们的 养育和教导,才有了今天的我现在的成绩。 19 广西师范大学本科毕业论文(设计)学生诚信保证书 本人郑重承诺:毕业论文(设计)《 基于单片机AT89S51 的太阳能控制器的设计 与制作》的内容真实、可靠,系本人在 黄国现 指导教师的指导下独立完成。如果存 在弄虚作假、抄袭的情况,本人愿承担全部责任。 学生签名:唐喻荣 2010年 05月 08 日