基于单片机的电源管理系统设计.docx
《基于单片机的电源管理系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电源管理系统设计.docx(32页珍藏版)》请在冰豆网上搜索。
![基于单片机的电源管理系统设计.docx](https://file1.bdocx.com/fileroot1/2023-2/17/0c9fb272-fa29-4564-b4e3-44a3831a2401/0c9fb272-fa29-4564-b4e3-44a3831a24011.gif)
基于单片机的电源管理系统设计
1引言
本章简要的叙述了电源管理系统的市场需求和发展趋势,并系统的介绍了本文要研究的主要内容及特点。
1.1电源管理系统的现状及发展趋势
随着电子产业的高速发展,给电源市场带来了巨大的挑战和市场机会。
但同时也给电源提出了新的需求。
需要自身独立的内置电源管理系统,保证其在移动或无人职守状态下工作,一般采用可充电的锂离子电池或镍氢电池作为设备内置电源(连续使用三到五年不更换)。
但其却有限压的要求,蓄电池的使用和保护方法及剩余电量监测对电池寿命有着重大的影响,是产品性能的一个重要方面。
合理的充电策略对维持畜电池性能延长其使用寿命都有重要的意义。
电源管理是一个完整的系统,它不仅包含对畜电池的电量检测和充放电管理和为设备提供标准电压等级和定制电压等级的电源输出,还应有人机交互的功能。
现在地电源发展正在朝着以下几个方向发展:
(1)高效率、高功率;
(2)网络化、智能化的监控管理;
(3)全数字化控制;
(4)产品绿色环保。
1.2本文的主要内容及特点
本论文主要研究的是基于AT89C51单片机的电源管理系统的设计,该系统具有输出电压、电流显示功能;电流保护功能,当电流超过安全范围时,系统停止电压输,过流保护后必须按复位键才能重新输出;充电和过放保护电路;供电功能。
2系统的总体设计任务
本论文分为硬件部分和软件部分。
2.1基于AT89C51的硬件设计任务
(1)蓄电池充电电路的设计:
为蓄电池充电,并且具有防止电池过量充电的功能。
(2)可调电源的设计:
1.5V-12V连续可调电源的输出。
(3)系统稳压点烟的设计:
这个设计的目的是为整个系统提供的稳压电源。
(4)模数转换电路的设计:
把模拟的电压电流信号转换成数字信号。
(5)看门狗电路设计:
这个设计的功能是在单片机的程序跑飞的情况下自动复位。
(6)显示模块设计:
把输出的电压、电流情况显示出来。
(7)译码电路设计:
译码电路选择显示的位置和AD采样。
(8)AT89C51工作电路设计:
使单片机正常工作。
(9)74LS161分频器设计:
对AT89C51的ALE进行4分频为AD0809头、提供时钟频率。
(10)辅助电路设计:
单片机晶振电路、逻辑电路和按键电路。
2.2软件设计的主要任务
(1)分析整个系统,把总系统分为几个子系统,并考虑几个子系统之间的内在的关系。
本论文要完成的任务是:
初始化程序设计、按键程序设计、充放电控制程序设计、A/D转换程序设计、过流保护程序设计、显示程序设计。
(2)编写各个子系统的程序,最后组合在一起,得到整个系统。
(3)编译、检查、修改。
(4)看是否能得到我们需要的结果,如果得不到就回到上一步,直到得到想要的结果为止。
3电源管理系统的硬件设计
3.1AT89C51单片机
AT89C51单片机具有简单实用、高可靠性、良好的性能价格比以及体积小等优点。
其特性如下:
(1)一个8位的CPU,包括了运算器和控制器两部分。
(2)片内128个字节的RAM是以高速RAM的形式集成,可以加快运行速度。
(3)4K字节可编程闪烁存储器。
(4)32可编程I/O线。
(5)两个16位定时器/计数器。
(6)5个中断源。
(7)可编程串行通道。
(8)低功耗的闲置和掉电模式。
(9)片内振荡器和时钟电路。
3.2基于AT89C51的电源管理系统设计框图
图1为系统框图:
图1电源管理系统设计框图
3.3AT89C51基本工作电路设计
本设计是基于单片机的电源管理电路设计,因此核心是单片机电路,考虑到需要两个中断输入,存储容量、外接接口对单片机端口的需求以及兼顾到节约成本的原则,本论文选用了常用的AT89C51单片机。
它采用Atmel公司的非易存储器制造技术,与MCS51的指令设置和芯片引脚可兼容。
AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是客反复擦写的Flash存储器可有效地降低开发成本。
图2AT89C51基本工作电路
AT89C51工作的简单的电路是其外围接一个晶振和一个复位电路,给单片机接上电源和地,单片机就可以工作了,图2为单片机的简单的工作电路。
图2中提到的MAX813芯片是看门狗电路,后面章节将对看门狗电路进行更为详细的分析。
3.4电源输出电路的设计
3.4.1LM317芯片的工作原理
LM317作为输出电压可变的集成三端稳压块,是一种使用方便、应用广泛的集成稳压块。
稳压电源的输出电压可用下式计算,Vo=1.25(1+R2/R1)。
仅仅从公式本身看,R1、R2的电阻值可以随意设定。
然而作为稳压电源的输出电压计算公式,R1和R2的阻值是不能随意设定的。
首先317稳压块的输出电压变化范围是Vo=1.25V—37V(高输出电压的317稳压块如LM317HVA、LM317HVK等,其输出电压变化范围是Vo=1.25V—45V),所以R2/R1的比值范围只能是0—28.6。
1、2脚之间为1.25V电压基准。
其次是317稳压块都有一个最小稳定工作电流,有的资料称为最小输出电流,也有的资料称为最小泄放电流。
最小稳定工作电流的值一般为1.5mA。
由于317稳压块的生产厂家不同、型号不同,其最小稳定工作电流也不相同,但一般不大于5mA。
当317稳压块的输出电流小于其最小稳定工作电流时,317稳压块就不能正常工作。
当317稳压块的输出电流大于其最小稳定工作电流时,317稳压块就可以输出稳定的直流电压。
在应用中,为了电路的稳定工作,在一般情况下,还需要接二极管作为保护电路,防止电路中的电容放电时的高压把317烧坏。
3.4.2基于LM317的电源输出电路
图3中的D42、D43用于保护LM317通过单片机输出相应的信号,就可以控制输出相应的电压大小。
为了保证稳压器的输出性能,R41应小于240欧姆。
改变1脚和地之间的阻值即可调整稳压电压值。
该电路是中输入的是经过稳压处理的电压,后面是一个三级管开关电路,当P1.3输出为低的时候,经过反相器在三极管的基极产生一个高电压是三级管导通,导通后在23F的线圈里面就有了电流,产生磁性,使开关K3导通,在Vout端输出需要的电压。
图3基于LM317的电源输出电路
3.5蓄电池充电电路
图4为蓄电池充电电路,该电路具有防止过充的功能,充电电压是220V、50Hz的市电。
蓄电池在输出电压为12V,功率在20W时可连续工作5小时。
本电路包括下面几个电路:
(1)降压整流电路:
又变压器T、整流二极管D11、D12组成。
(2)Q11可控硅触发电路:
由电阻R11、二极管D14、可控硅Q11组成。
(3)大电流充电电路:
整流电路及可控硅Q11组成。
(4)小电流充电电路:
由整流电路、二极管D13、电阻R12、电位器r13组成。
(5)大电流切断电路:
由电阻R11、R17和可控硅Q12、稳压管D15、电位器R15以及电阻R14等组成。
图4蓄电池充电电路
本电路防止过量充电的原理是:
当Q11被触发导通后即对蓄电池进行大电流充电。
当充电电压升高到规定的上限值时,由于预先调节R15,使电位器R15的滑动点与地之间的电压等于稳压管D15的稳压值与可控硅触发电压之和,所以这时可控硅Q12被触发导通。
Q12导通后,Q11触发电路受蓄电池电压反向偏置而关断。
此后,电源通过D13、R12、R13对蓄电池进行小电流充电。
调节R13使电流限制在允许范围内。
3.6系统稳压电源设计
本论文的设计是基于AT89C51单片机的电源管理系统,其中使用到了+12V和+5V的电源,输入由蓄电池提供的12V电源。
电路中使用到的两个芯片是LM7812和LM7805,下面将分别作出介绍。
3.6.1LM7812和LM7812芯片的工作原理
78xx/79xx系列三端稳压器件是最常用的线性降压型DC/DC转换器,目前也有大量先进的DC/DC转换器层出不穷,例如低压差线性稳压器LDO等,78xx/79系列简单易用、价格低廉,直到今天还在大多电路中采用。
图5为其这个系列芯片的引脚图。
78xx/79xx系列在降压电路中应注意以下事项:
(1)输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏;
(2)输出电流不能太大,1.5A是其极限值。
大电流的输出,散热片的尺寸要足够大,否则会导致高温保护或热击穿;
(3)输入输出压差也不能太小,大小效率很差。
LM7805是常用的三端稳压器,一般使用的是TO-220封装,能提供DC5V的输出电压,应用范围广,内含过流和过载保护电路。
带散热片时能持续提供1A的电流,如果使用外围器件,它还能提供不通的电压和电流,正面朝上第一脚是正极输入二脚是负极三脚是正极输出。
图5LM系列芯片的引脚图
3.6.2稳压电源电路
LM7812是12V的稳压芯片,LM7805是5V的稳压芯片,这种芯片的好处是应用比较的简单,只需要接上几个电容就可以试用了。
而且如果前段电源有轻微的波动几乎对后面的输出没有影响,这种芯片具有自动调节功能。
图6为稳压电源电路。
图6稳压电源电路
3.7ADC0809模数转换电路
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
3.7.1ADC0809芯片介绍
(1)ADC0809的内部逻辑结构
ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
(2)引脚结构
IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
通道选择表如表1所示。
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
表1通道地址选择表
START为转换启动信号。
当START上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,START应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三态处处锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D0为最低位,D7为最高位。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。
EOC为转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
Vcc为+5V电源。
Vref为参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(Vref(+)=+5V,Vref(-)=-5V).
3.7.2ADC0809应用说明
(1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
(2)初始化时,使ST和OE信号全为低电平。
(3)送要转换的哪一通道的地址到A,B,C端口上。
(4)在ST端给出一个至少有100ns宽的正脉冲信号。
(5)是否转换完毕,我们根据EOC信号来判断。
3.7.3ADC0809数模转换电路
ADC0809是一个8位模拟数字转换器件,如图7所示。
其中IN0—IN7一共8个输入通道,但每次只能用其中的一个,通道的选择由ADD_A、ADD_B、ADD_C三根地址信号控制,本设计选用IN_0和IN1,通道的选择可以通过ADD_A的高低电平来区分。
2_1—2_8是8位输出,接入单片机的AT89C51的P0.0—P0.7引脚。
其中2_8的低位应该接P0.0,2_1的高位接P0.7。
引脚10是时钟输入端,时钟频率位640KHz—1280KHz。
引脚6、22是开始采样端,高电平有效,引脚9是使能端。
AD0809只能对电压信号进行模拟转换,而且输入的电压在0V—5V之间的,如果输入的电流信号,必须进行电流信号转换位电压信号,如果输入的电压信号大于5V,可以通过分压电路进行分压。
图7中的IN_0输入的是电压信号,其中R72和R73组成了分压电路。
IN_1输入的是电流信号,该电流信号通过R71转换成电压信号。
Ref(-)接地,ref(+)接5V电压。
图7ADC0809数模转换电路
3.874LS161分频器电路设计
模拟数字转换器件ADC0809要正常工作,必须要有一个时钟频率,在AT89C51的第30引脚ALE是单片机输入时钟频率的1/6,由于单片机的时钟是12M的晶振,所以这里也就是2M,而ADC0809需要一个500K—800K的时钟,所以只需要对ALE引脚的输出信号进行3分频,本论文所用的分频器是74LS161计数器进行分频。
3.8.174LS161芯片的功能介绍
74LS161芯片的清除端是异步的。
当清除端CLEAR位低电平时,不管时钟端CLOCK状态如何,即可完成清除功能。
161芯片的预置是同步的。
当置入控制器LOAD位低电平时,在CLOCK上升沿作用下,输出端Q0—Q3与数据输入端相一致。
对于74161而言,当CLOCK由低至高跳变或跳变前,如果计数控制端ENP、ENT位高电平,则LOAD应避免由低电平至高电平的跳变,而74LS161则无此限制。
161的计数是同步的,靠CLOCK同时加在四个触发器上而实现的。
当ENP、ENT均为高电平时,在CLOCK上升沿作用下Q0—Q3同时变化,从而消除了异步计数器中出现的计数尖峰。
对于74LS161,只有当CLOCK为高电平时,ENP、ENT跳变与CLOCK无关。
161有超前进位功能。
当计数溢出时,进位输出端(RCO)输出一个高电平脉冲,其宽度位QA的高电平部分。
对于74LS161,在CLOCK出现前,即使ENP、ENT、CLEAR发生变化,电路的功能也不受影响。
3.8.274LS161芯片各引脚功能说明如表2所示:
PCO
进位输出端
CLOCK
时钟输入端(上升沿有效)
CLEAR
异步清除输入端(低电平有效)
ENP
计数控制端
ENT
计数控制端
ABCD
并行数据输入端
LOAD
同步并行置入控制端(低电平有效)
Q0—D3
输出端
表274LS161芯片各引脚功能说明
3.8.3分频器电路设计
74LS161同步四位二进制计数器,其电路设计如图8所示:
图8分频器电路
3.9看门狗电路设计
应用系统受到干扰后,都要进行复位,而一般的电路往往不能保证系统的安全可靠工作,因此便出现了看门狗。
看看门狗就是监控定时器的简称,它是用来检测微处理器是否正常工作,如果工作不正常,程序就会跑飞或者死机,看门狗电路的输入端没有被及时触发,那么看门狗就会产生一个复位脉冲,能有效的使系统复位使系统恢复正常运转。
所谓看门狗电路,就是一个能发出“复位”信号的计数器或定时器电路,MAX813L芯片就是这么一种芯片。
该芯片具有监控电路,如图9所示。
图9中提到的MAX813芯片是看门狗电路,是具有监控电路的微处理芯片,它具有4个功能:
(1)具有独立的看门狗计时器,如果看门狗输入在1.6s内无变化,就会产生看门狗输出;
(2)掉电或电源电压低于1.25V时,产生掉电输出;
(3)上电时能自动产生200ms宽的复位脉冲;
(4)具有人工复位功能,当人工复位端输入低电平时,产生复位信号输出。
MAX813芯片各引脚功能如下:
MR(1脚):
手动复位端。
当该端输入低电平保持240ma以上,MAX813就能产生复位信号,该复位信号脉宽为200ms(见7脚)。
Ccc(2脚):
工作电源接+5V。
GND(3脚):
电源接地端。
PFI(4脚):
电源故障输入端。
当该端输入电压低于1.25V时,MAX813使电源故障输出端产生的信号由高电平变为低电平(见5脚)。
PFO(5脚):
电源故障输出端。
电源正常时,保持高电平;电源电压变低或掉电时,输出由高电平变为低电平。
WDI(6脚):
看门狗信号输入端(喂狗信号)。
程序正常运行时,必须每隔1.6s之内向该端送一次信号;若超过1.6s,MAX813接受不到喂狗信号,则产生看门狗输出(见8脚)。
RESET(7脚):
复位信号输出端。
上电时,自动产生200ms的复位脉冲;手动复位端输入低电平时,该端也产生复位信号输出。
WDO(8脚):
看门狗信号输出端。
正常工作时输出保持高电平;看门狗输出时,该端输出信号由高电平变为低电平。
3.9.2看门狗电路
本电路的工作原理是:
单片机P1.7作为看门狗的“喂狗”信号定时给出一个脉冲,当程序正常运行时,单片机每隔一段时间输出一个脉冲给WDI触发MAX831L电路,使RESET始终为低电平;若单片机程序一旦出现异常,不能在1.6s内送出“喂狗”脉冲,MAX813L的RESET将产生一个正脉冲到单片机的RESET口,使单片机系统复位,使其能重新正常运行。
看门狗电路如图9所示:
图9看门狗电路
3.10显示模块设计和译码电路设计
3.10.174HC245芯片功能及管脚介绍
74HC245是总线驱动器,典型的TTL型三态缓冲门电路。
由于单片机等CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。
74LS245芯片的各管脚定义:
第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。
第2--9脚“A”信号输入输出端,A1=B1、、、、、、A8=B8,A1与B1是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。
如果DIR=“0”OE=“0”则B1输入,A1输出,其它类同。
第11--18脚“B”信号输入输出端,功能与“A”端一样。
第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。
第10脚GND,电源地。
第20脚VCC,电源正极。
3.10.274LS138芯片介绍
74LS138为3线--8线译码器,共有54/74S138和54/74LS138两种线路结构型式,其74LS138的工作原理如下:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。
74LS138功能是利用G1、/(G2A)和/(G2B)可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。
若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
3.10.3显示模块及译码电路分析
本次毕业设计显示是采用7个八段共阴数码管,第一个数码管显示的是标志位,显示当前输出的电压是什么状态。
总共有3个状态,分别是:
1表示当前输出的是12V,2表示当前输出的是9V,3表示当前输出的是1.5V—12V的连续可调电压。
后面的三个数码管显示的是输出的电压的大小,前两个是电压的整数部分,后一个是电压的小数部分;最后三个数码管显示的是当前输出的电流大小,前一个是电流的整数部分,后两个显示的是电流的小数部分。
每个数码管都有8跟数据线和一根公共线,公共线接正,表示数码管为共阳,公共线接地,表示数码管为共阴,每一根线对应一根发光二极管。
图10为显示电路和3-8译码电路。
图中通过单片机的P0端口向数码管送显示的数据,通过P2.5、P2.6、P2.7三根地址线经过3-8译码器选择显示的位置。
其中最后一个Y7可以作为P0端口送数据到数码管还是从AD0809读取数据的选择信号。
图10显示电路和3-8译码电路
3.11辅助电路设计
辅助电路虽然比较简单,但却是每个系统中必不可缺的部分。
有些时候,系统的稳定性就取决于这些看似不起眼的辅助电路上。
3.11.1晶振电路设计
图11为晶振电路,是单片机工作的必须的部件。
它是正弦波震荡电路,供其他数字电路整形后作时钟源。
图11晶振电路
3.11.2逻辑电路设计
图12为逻辑电路的电路图,经过逻辑变化,实现单片机控制ADC0809,使其正常工作。
图12逻辑电路
3.10.3电源滤波电路
图13是电源滤波电路,可以有效的防止信号的互相干扰,可以使器件更稳定的工作。
图13
经过以上的各个部分的详细介绍后,我们只需要把以上的各个模块按照资源分配、主次、先后的不同按一定的顺序排列在一起就可以实现本论文想要实现的功能了。
4电源管理系统设计的软件部分
对于高效的软件工程,良好的设计师关键,一个设计的好的软件系统应该是直接实现和易于维护、易懂、可靠的。
设计的不好的系统,尽管可以工作,但很可能维护起来费用昂贵、测试困难、不可靠。
因此,设计阶段是软件开发过程中最重要的阶段。
软件设计在很大程度上仍是一个特定过程。
一般用自然语言给定一个需求集,预先作非正式设计,常常用流程图的形式说明,接着开始编码,当系统实现时还需要修改。
4.1软件设计流程
流程图是一种传统的算法表示法,它利用几何图形的框来代表各种不同性质的操作,用流程图来指示算法的执行方向。
由于它简单直观,所以应用广泛,特别是在早期语言阶段,只有通过流程图才能简单地表述算法,流程图成为程序员们交流的重要手段。
本论文由于控制信号比较多,AT89C51单片机的引脚已经不能满足需要了,所以采用AD0809和数码管显示端口复用的技术,这就需要在编写程序的时候特别小心这些信号之间的关系。
除此之外,程序设计中还设计了过了两个中断程序,一个是AD0809数模转换中断,一个是电压过低自动充电中断,这两个中断的设计比较重要也比较难。
由于电压、电流出现小数部分,而单片机处理小数相对比较困难,我们通过对电压乘以10和对电流乘以100的处理方法,然后再数码管的相应的地方通过硬件点亮小数点的方法解决小数问题,实际证明了这样的方法大大简化了整个的程序设计。
图14为整个系统程序设计的流程图。
图14整体程序流程图
4.2编写程序
有了硬件的基础,再加上流程图的疏导,下面的工作就是编写各个模块的程序了,在附录中的程序中添加了适当的注释,这样的话便于修改程序,也便于以后程序的维护。
软件部分的程序见附录部分。
4.3仿真程序和调试
联机仿真必须借助仿真开发装置、示波器、万用表等工具。
这些工具是单片机开发的最基本工具。
信号线是联络89C51和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。
51系列单片机的信号线