基于单片机的太阳能电池控制器的设计.docx

上传人:b****6 文档编号:7143836 上传时间:2023-01-21 格式:DOCX 页数:51 大小:406.11KB
下载 相关 举报
基于单片机的太阳能电池控制器的设计.docx_第1页
第1页 / 共51页
基于单片机的太阳能电池控制器的设计.docx_第2页
第2页 / 共51页
基于单片机的太阳能电池控制器的设计.docx_第3页
第3页 / 共51页
基于单片机的太阳能电池控制器的设计.docx_第4页
第4页 / 共51页
基于单片机的太阳能电池控制器的设计.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

基于单片机的太阳能电池控制器的设计.docx

《基于单片机的太阳能电池控制器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的太阳能电池控制器的设计.docx(51页珍藏版)》请在冰豆网上搜索。

基于单片机的太阳能电池控制器的设计.docx

基于单片机的太阳能电池控制器的设计

基于单片机的太阳能电池控制器的设计

【摘要】目前在全世界范围内,由于能源的不可再生和人类的过度开采,全球化的能源危机已经初现端倪,为此世界各国竞相发展绿色能源,太阳能凭借其独特的优点,受到了一致的青睐,在太阳能的各种应用中,光伏发电应用倍受关注。

光伏发电系统主要有两种:

分布式发电系统和独立式发电系统,然而现在光伏发电应用的主流为独立式发电系统,在独立式发电系统中主要由四部分:

太阳能电池板,控制器,,和直流负载。

其中控制器为整个发电系统的核心,由于独立式发电系统中蓄电池的充电放电比较频繁故所以控制器要对蓄电池的充电放电进行管理,从而延长蓄电池寿命,减少系统的故障率,提高系统稳定性大大减少发电运营成本。

本次毕业设计就将对独立式光伏发电中所要使用到的基于单片机的太阳能蓄电池的控制器进行探讨和研究。

【关键词】太阳能;单片机;控制器

 

Abstract:

Atpresent,whilemostcountriesallovertheworldaredevelopinggreenandrenewableenergy,solarenergyisacceptedcommonlybecauseofitsunusualadvantages.Photovoltaic(PV)systemsarepaidmoreattentiontoamongitsvariousapplications.PVsystemsaremainlytwo:

stand-alonedistributedpowersystemsandpowergenerationsystems,butstand-alonesystemshasbeenatrendinnowdays.Stand-alonedistributedpowersystemshasfourmainlyparts:

theSolarpanels,thecontroller,thebatteryandtheDCload,whileinthefourparts,thecontrolleristhemostimportantone.Thecontrollerhastodecidehowandwhentochargeordischargebecauseofthehighworkingfrequencyofthesystem,Sothecontrollercanextendedthebatterylife,decreasethefailurerate,makethesystemsteadyandreducethecostsofsystem.Thisgradualdesignaimedatthestudyofthecontrollerusedinthestand-alonesystemsbasedonmicrocontroller.

Keywords:

solarenergy;microcontroller;controlle

 

1.1题目要求1

1.2题目国内外发展现状1

1.3题目设计目标级功能要求2

1.4题目设计所需要的环境2

参考文献.............................................36

致谢.................................................38

1概述

1.1题目要求

在全球能源形势紧张,全球气候变暖严重威胁经济发展的今天,世界各国都在寻取新的能源替代战略,以求得可持续发展及在日后的发展中获得优势地位。

太阳能以其清洁、可再生、安全等显著等显著优势成为当今关注的重点。

尤其是太阳能光伏发电技术,在近些年来更是得到飞速的发展,时至今日光伏发电技术已经极其成熟,在光伏发电技术中主要分为两种:

独立式发电系统和分布式发电系统。

分布式发电系统则主要应用于大规模的并网发电系统。

独立式发电系统主要面向小型用户或者小型负载,独立式发电系统以其应用灵活,适应性强贝越来越多的应用于各个领域。

独立式光伏发电系统主要有4部分组:

太阳能电池板、制器、电池和直流负载。

太阳能电池板和蓄电池的技术发展相对来说比较成熟,而对于控制器由于所适用的场合有所不同,其对性能的要求也就各不相同,就一般太阳能电池板蓄电池对于控制器的要求主要侧重于对蓄电池充放电的管理,以及对夜间和白昼的充放电选择,这样才能更加合理的利用太阳能,使光伏发电系统的效率最大化,另一方面通过单片机对蓄电池的过充电和过放电的管理,可以延长蓄电池的寿命,从而进一步提升系统的性价比,因此对于设计出这样一种智能控制器就显得很必要了。

1.2题目国内外发展现状

太阳光没有地域的限制无论陆地或海洋,无论高山或岛屿,都处处皆有,可直接开发和利用,且勿须开采和运输。

它同以往其他电源发电原理完全不同,具有以下特点:

1.无枯竭危险;2.干净无公害;3.不受资源分布地域的限制;4.可在用电处就近发电;5.能源质量高;6.获取能源花费的时间短。

正是由于以上特点,美国在经历上世纪80年代能源危机后,就一直致力于开发太阳能发电技术,到现在为止该项技术在美国,德国,瑞士和日本等国的技术发展和推动下,已变得极为成熟。

在我国国内市场,已经有很多对此类控制器开发研制的技术厂商和科研院所,因此从某一方面来讲,我国已完完全全进入太阳能全面发展的时代。

图1.1太阳能电池板给直流系统供电的系统结构框图

图1.2本次设计中所采用的系统结构框图

1.3题目设计目标及功能要求

在本次设计中抓药要设计出一种智能型的太阳能电池控制器,对功能具体要求如下:

1电池长时间发电,电压较低时要停止放电。

2蓄电池电压高于其所能承受的电压时,要停止对其充电。

3通过电压采样检测,对不同的蓄电池不同充电状态,采用不同的充电方案。

4对于整套充放电系统要设置可手动关停的按钮,以达到对系统更为智能的设计。

5通过设置时间,从而根据光照情况对蓄电池进行自动的关停。

6可对线路进行过流,短路保护

本次设计中将以ATMEL系列中的AT89S51单片机为控制中心,软硬件的结合,利用分压电路对蓄电池,太阳能电池的电压、电流进行采样。

再经过A/D转换采样数据输入到单片机中进行处理。

单片机输出经光耦驱动MOSFET管来控制外接电路开启关闭。

该系统可以实现控制蓄电池的最优充放电,当蓄电池电压在14.4V+0.5时,太阳能电池停止对蓄电池充电,当蓄电池电压在10.9V+0.5时,蓄电池停止对负载放电;负载电流检测电路可进行过流保护及负载功率检测.。

1.4题目设计所需要的环境

对于本次设计的关键核心在于,如何对硬件电路进行设计,和单片机程序如何设计。

现行的硬件电路设计和单片机汇编语言设计的主要工具为proteus和keiluVision2,proteus对数字电路的设计有着优越的性能,它有着庞大的元件库,而且元件库中拥有大量的微处理器芯片,另一方面,keil对汇编语言进行编译成功后可产生能与proteus进行联机调试的“HEX”文件。

故在本次设计中采用proteus和keil这两款软件分别对软硬件进行设计和仿真。

在接下来的各个章节中,我们就将对独立式光伏发电系统中的控制器部分,通过proteus和keil对其进行软硬件的设计,并对其进行仿真。

2总体设计

系统设计的流程图如下

 

Y

N

Y

N

Y

N

N

Y

图2.1系统设计的流程图

由流程图可知,对于整个充放电过程主要分为以下4个阶段:

Vbat≤10.8V时,电池停止放电,而且当有结束按键输入时要结束整个程序,当无啊、结束按键输入时,程序转而对蓄电池进行快充

10.8V<Vbat<12V时,对电池进行快速充电

12V<Vbat<14.5时,对电池进行浮充

Vbat=14.5V时,对电池停止充电

执行以上各阶段程序后,程序要继续进入电压检测阶段,进而根据充电情况对充放电方案重新进行选择。

由流程图可以看出没有对充放电进行专门的设置,而是通过单片机比较经过A/D转换过的采样电压的大小来对冲电或放电进行管理的,当电压值大于14.5V时单片机发出信号,使得充放电电路停止充电,,当然此时可以放电回路,可以放电,也可以出断开状态;当电压值小于10.8V时,首先要断开放电回路,然后再通过一个外置于单片机的手动开关,若此时用户想要控制器停止工作,则按下按钮,此时单片机就会进入停止工作状态,,若想让单片机继续进行充放电工作状态,则无需按下按钮,系统会自动进入快充状态,之后后继续进入下一个电压采集转换,以及方案选择的循环中,直至用户需要停止系统工作按下按钮。

2.1硬件总体设计

图2.1硬件总体设计图

2.2程序总体设计

ORG0000H

LJMPSTART

ORG0003H

LJMPEXTERN_INT

ORG000BH

LJMPTIMER0_INT

START:

MOVSP,#050H;设置堆栈

MOVR0,#030H;设置A/D存储单元初始地址

MOVIE,#0FFH;打开所有中断

MOVDPTR,#0FEF8H;采集通道首地址,只使用一路A/D就可以

MOVR0,#40H

MOV@R0,#00H;清除方案选择

MOVR0,#40H

MOV@R0,#00H;清楚方案选择触发位

MOVR1,#042H

MOV@R0,#00H;清除定时计数器

LCALLTIMER1_INT

LOOP:

MOVR0,#30H;30H是A/D转换的地址,将数据和几个值进行比较,确定方案

MOVA,@R0

SUBBA,#99H;当电压很小的时候,采用第1种方案,想引脚PWM发送占空比为10%的信号

JCPROCESS_01

MOVA,@R0

SUBBA,#0AAH

JCPROCESS_02;很小的时候,采用第2种方案,想引脚PWM发送占空比为20%的信号

MOVA,@R0

SUBBA,#0CDH

JCPROCESS_03;电压很小的时候,采用第3种方案,想引脚PWM发送占空比为50%的信号

MOVA,#04H;当电压超出的时候,采用第4种方案,向引脚PWM发送占空比为0%的信号

LJMPPROCESS_04

 

CLEAR_FLAG:

MOVR0,#40H;清除方案选择位

MOV@R0,#00H

MOVR0,#41H;清除触发位

MOV@R0,#00H

LJMPLOOP

PROCESS_01:

MOVR1,#040H;

MOV@R1,#01H;;选择方案1

PROCESS_01_NEXT:

CLRP2.4;;将和PWM连接的管脚置低,此时停止充电

MOVR1,#01H;

MOVR0,#01H

PROCESS_01_01:

DJNZR1,PROCESS_01_01

DJNZR0,PROCESS_01_01;空跑16*256*2个周期

CLRP2.4;将和PWM连接的管脚置低

MOVR1,#01H

MOVR0,#01H

PROCESS_01_02:

DJNZR1,PROCESS_01_02

DJNZR0,PROCESS_01_02;空跑16*256*2*9个周期

MOVR1,#041H;当方案改变标志位到来的时候,清楚标志并且重新进行判断

CJNE@R1,#00H,CLEAR_FLAG

SJMPPROCESS_01_NEXT

PROCESS_02:

MOVR1,#040H

MOV@R1,#02H;选择方案2

PROCESS_02_NEXT:

SETBP2.4;将和PWM连接的管脚置高,选择浮充

MOVR1,#01H

MOVR0,#01H

PROCESS_02_01:

DJNZR1,PROCESS_02_01

DJNZR0,PROCESS_02_01;空跑16*256*2个周期

CLRP2.4;将和PWM连接的管脚置低

MOVR1,#01H

MOVR0,#01H

PROCESS_02_02:

DJNZR1,PROCESS_02_02

DJNZR0,PROCESS_02_02;空跑16*256*2*8个周期

MOVR1,#041H;当方案改变标志位到来的时候,清除标志并且重新进行判断

CJNE@R1,#00H,CLEAR_FLAG

SJMPPROCESS_02_NEXT

PROCESS_03:

MOVR1,#040H

MOV@R1,#03H;选择方案3

PROCESS_03_NEXT:

SETBP2.4;将和PWM连接的管脚置高,选择快充

MOVR1,#01H

MOVR0,#01H

PROCESS_03_01:

DJNZR1,PROCESS_03_01

DJNZR0,PROCESS_03_01;空跑16*256*2*2个周期

CLRP2.4;将和PWM连接的管脚置低

MOVR1,#01H

MOVR0,#01H

PROCESS_03_02:

DJNZR1,PROCESS_03_02

DJNZR0,PROCESS_03_02;空跑16*256*2*7个周期

MOVR1,#041H;当方案改变标志位到来的时候,清除标志并且重新进行判断

CJNE@R1,#00H,CLEAR_FLAG

SJMPPROCESS_03_NEXT

PROCESS_04:

CLRP2.4;停止放电

CLRP2.1

MOVR1,#040H

MOV@R1,#04H;选择方案4

MOVR1,#041H

CJNE@R1,#00H,CLEAR_FLAG

SJMPPROCESS_04

TIMER1_INT:

ANLTMOD,#0FH;设置定时器T1为方式2

ORLTMOD,#10H

MOVTMOD,#21H;定时器T0工作在方式1

MOVPCON,#080H

CLRTR1;禁止定时器T1

SETBEA

SETBET1

SETBET0

SETBPT0;定时器T0中断优于串口中断

CLRTF1

MOVTL0,#00H

MOVTH0,#01FH;定时器T0中断发生时间为62.5ms

SETBTR0;使能定时器T0

CLRTF0

RET;

;-------------------------------------------------

;进入定时器中断,每500ms设置1次标志位

;-------------------------------------------------

TIMER0_INT:

PUSHACC;累加器入栈

PUSHPSW;程序状态字入栈

MOVPSW,#18H;切换寄存器区域

CLRTF0;清除定时器TF0

CLRTR0;禁止定时器T0

MOVTL0,#00H

MOVTH0,#01FH;定时器T0中断发生时间为6

CLRTF0;清除溢出中断位

MOVR1,#042H

INC@R1;增加计数器的值,到8为止,这样达到500ms

CJNE@R1,#08H,TIMER0_READY

MOV@R1,#00H;清除计数器的值

MOVR1,#041H;设置标志位,每500ms重新选择方案

MOV@R1,#01H

TIMER0_READY:

SETBTR0;使能定时器T0

POPPSW;程序状态字出栈

POPACC;累加器出栈

RETI

;---------------------------------------------------

;进入外部中断,每进入一次读取ADC的值

;--------------------------------------------------

EXTERN_INT:

PUSHACC;累加器压栈

PUSHPSW;程序状态字压栈

MOVPSW,#010H;切换寄存器区域

MOVDPTR,#0FEF8H;A/D转换器首地址

MOVXA,@DPTR;读入A/D的值

MOVR1,#030H;存储A/D转换器的数据的地址

MOV@R1,A;将A/D的值读入该地址

POPPSW;程序状态字出栈

POPACC;累加器出栈

RETI

END

3硬件设计

3.1电压采集电路

3.1.1电压采样电路

如图2.5所示,电压采集电路使用两个串联的电阻,大小比例为4:

1,然后并联在需要检测的电压两端,从两个电阻中间采集电压。

由分压公式得出采集的电压为VR1R21/5电池充满电时电压大概为14.5V,计算出采集到的电压为2.9VA/D转换芯片的ADC0809的值为94H

图3.1电压采集电路

假设蓄电池电压为U,则根据欧姆定律

R=

和串联电路的分压特性,可得

=

.U=

U=

U

通过采样对蓄电池电压进行采样后,模数转换的芯片输入端所处理的电压范围缩小至0~3V,大大增强了数模转换的可行性

3.1.2ADC0809模数转换芯片

AT89S51单片机没有内置的A/D转换模块,因此采集的电压需要经A/D转换才可接入单片机。

在本次设计中,我们采用ADC0809对采样电压进行数模转换,

ADC0809为八位逐次比较式A/D转换芯片,具有8路模拟输入通道和8位数字输出通道,其工作频率为640kHz(理论上≤1kHz)。

该芯片采用脉冲启动方式:

只要给其控制端加一个符合要求的脉冲信号即可启动该芯片进行模数转换(通常用

和地址译码的输出经过一定的逻辑电路进行控制,对于本次设计,只需把符合要求的电平加到启动控制端即可可是转换)。

ADC0809芯片内部逻辑与引脚图

 

IN7

..

..DB7

IN0.

.

.

ADDA.

ADDB.

ADDCDB6

ALE

(a)

(b)

图3.2ADC0809芯片的内部逻辑结构与引脚图

(a)内部逻辑图(b)引脚图

ADC0809输入通道地址选择表

表3.1ADC0809输入通道地址选通表

ADDCADDBADDA

选通的通道

000

001

010

011

100

101

110

111

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

ADC0809工作转换时序

START

ALE

A.B.C

IN

OE

EOC

D0~D7

图3.3ADC0809工作时序图

3.1.374LS373锁存器

74LS373是一种带输出三态门的8D锁存器,其结构如下图所示

8D锁存器三态门

IN1~IN8

OUT1~OUT8

图3.474LS373结构示意图

1D~8D为8个输入端

1Q~8Q为8个输出端

G为数据锁存控制端:

当G为“1”时,锁存器输出端同输入端;当G由“1”变0时,数据输入锁存器中。

为输出允许端:

为“0”时,三态门打开;当

为“1”时,三态门关闭,输出呈高阻状态。

在51单片机系统中,常采用74LS373做为地址锁存器使用,其连接方法如下图所示。

 

ALE

图3.574LS373用作地址锁存器

3.2单片机及其外围电路

3.2.1单片机功能引脚介绍

本设计使用51些列单片机,51系列单片机是8051系列的简称,是指MCS-51系列单片机和其他公司的8051派生品。

MCS-51系列单片机最早是由intel公司推出的通用型单片机,MCS-51系列单片机产品可分为两大系列:

51子系列和52子系列。

51子系列的基本产品是8031,,8051和87c51三种机型,分别与这三种机型兼容的低功耗CMOS器件产品是80C31,80C51和87C51。

它们的指令系统和芯片引脚完全兼容,它们之间的差别仅在于片内有无ROM或EPROM

图3.651单片机引脚图

51单片机引脚功能:

MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:

lP0.0~P0.7P0口8位双向口线(在引脚的39~32号端子)。

lP1.0~P1.7P1口8位双向口线(在引脚的1~8号端子)。

lP2.0~P2.7P2口8位双向口线(在引脚的21~28号端子)。

lP3.0~P3.7P2口8位双向口线(在引脚的10~17号端子)。

P0口有三个功能:

1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)

2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)

3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

P0口有三个功能:

1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)

2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)

3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

RST复位信号:

当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。

XTAL1和XTAL2外接晶振引脚。

当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

VCC:

电源+5V输入

VSS:

GND接地。

3.2.2单片机外围电路

8051单片机单片机及其外围电路包括上电复位电路,晶振如图11所示,

 

图3.7单片机外围电路图

3.3充放电电路

3.3.1MOSFET

MOSFET为金属—氧化层—体-场效晶体管,简称金氧半场效晶体管(Metal-Oxide-SemiconductorField-EffectTransistor,MOSFET)是一种可以广泛使用在模拟电路与数字电路的场效晶体管(field-effecttransistor)。

MOSFET依照其“通道”的极性不同,可分为n-type与p-type的MOSFET,通常又称为NMOSFET与PMOSFET,其他简称尚包括NMOSFET、PMO

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

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1