简易可编程稳压电源设计修改后文件.doc

上传人:本田雅阁 文档编号:2533583 上传时间:2019-04-05 格式:DOC 页数:18 大小:122.52KB
返回 下载 相关 举报
简易可编程稳压电源设计修改后文件.doc_第1页
第1页 / 共18页
简易可编程稳压电源设计修改后文件.doc_第2页
第2页 / 共18页
简易可编程稳压电源设计修改后文件.doc_第3页
第3页 / 共18页
简易可编程稳压电源设计修改后文件.doc_第4页
第4页 / 共18页
简易可编程稳压电源设计修改后文件.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《简易可编程稳压电源设计修改后文件.doc》由会员分享,可在线阅读,更多相关《简易可编程稳压电源设计修改后文件.doc(18页珍藏版)》请在三一文库上搜索。

1、 单位代码 11660 单位名称 重庆理工大学 计算机控制技术综合应用设计论文论文题目:简易可编程稳压电源设计 专业:电气工程及其自动化 学院:电子信息与自动化学院 组员: 姓名:何展东 学号:11007990208 姓名:刘一步 学号:11007990218 姓名:黄鑫鹏 学号:11007990211 中 国 重 庆2013年12月简易可编程稳压电源设计绪 论直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多但均存在以下问题:输出电压是通过粗调(波段开关)及细调(电

2、位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如1.021.03V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。常常通过硬件对过载进行限流或截流型保护,电路构成复杂,稳压精度也 不高。本文设计了一种以单片机为核心的智能化高精度简易直流电源,克服了传统直流电压 源的缺点,具有很高的应用价值。电源采用数字控制,具有以下明显优点:1)易于采用先进的控制方法和智能控制策略,使电源模块的智能化程度更高,性能更完美。2)控制灵活,系统升级方便,甚至可以在线修改控制算法,而不必改动硬件线路。3)控制系统的可靠性提高,易于标准化,可以针对不同

3、的系统(或不同型号的产品),采用统一的控制板,而只是对控制软件做一些调整即可。4)系统维护方便,一旦出现故障,可以很方便地通过RS232接口或RS485接口或USB接口进行调试,故障查询,历史记录查询,故障诊断,软件修复,甚至控制参数的在线修改、调试;也可以通过MODEM远程操作。5)系统的一致性好,成本低,生产制造方便。由于控制软件不像模拟器件那样存在差异,所以,其一致性很好。由于采用软件控制,控制板的体积将大大减小,生产成本下降。6)易组成高可靠性的多模块逆变电源并联运行系统。为了得到高性能的并联运行逆变电源系统,每个并联运行的逆变电源单元模块都采用全数字化控制,易于在模块之间更好地进行均

4、流控制和通讯或者在模块中实现复杂的均流控制算法(不需要通讯),从而实现高可靠性、高冗余度的逆变电源并联运行系统。一、系统设计1.1 设计任务与要求1.1.1设计任务设计一个简易可编程稳压电源。在设计过程中,选择12个单元电路使用仿真软件(例如Protuse等)进行仿真调试。用计算机绘制所有的电路图。1.1.2设计要求输出电压范围3-12v,步进值为0.1V电压调整率Sv0.05%V;电流调整率Si0.03%A;纹波电压峰峰值=5mA;具有过流保护和短路保护功能;用LCD1602显示设置电压1.2方案的选择与论证1.2.1 总体设计方案方案一:此方案采用传统的调整管方案,主要特点在于使用一套十进

5、制计数器完成系统的控制功能,一方面完成电压的译码显示,另一方面其输出作为EPROM的地址输入,而由EPROM 的输出经D/A 变换后去控制误差放大的基准电压,以控制输出步进。方案二:采用52系列单片机作为整机的控制单元,通过改变输入数字量来改变输出电压值,从而使输出运放的的电压发生变化,间接地改变输出电压的大小。为了能够使系统具备检测实际输出电压值的大小,可以经过DAC0832进行数模转换,间接用单片机实时对电压进行采样,然后进行数据处理及显示。采用软件方法来解决数据的预置以及电流的步进控制,使系统硬件更加简洁,各类功能易于实现本系统以直流电源为核心,利用52系列单片机为主控制器,通过键盘来设

6、置直流电源的输出电流,设置步进等级可达0.1V,并可由数码管显示实际输出电压值和电压设定值。利用单片机程控输出数字信号,经过D/A转换器(DAC0832)输出模拟量,再经过运算放大器隔离放大,控制输出DAC0832的输出电流,随着输出电流的变化而输出不同的电压。单片机系统还兼顾对恒压源进行实时监控,输出电压经过电流/电压转变后,通过A/D转换芯片,实时把模拟量转化为数据量,经单片机分析处理, 通过数据形式的反馈环节,使电压更加稳定,构成稳定的压控电压源。1.2.2 方案的比较与论证1.2.2.1 数控部分方案一采用中、小规模器件实现系统的数控部分,使用的芯片很多,造成控制电路内部接口信号繁琐,

7、中间相互关联多,抗干扰能力差。在方案二中采用单片机完成整个数控部分的功能,电路简单 。1.2.2.1 输出部分方案一采用线性调压电源,以改变其基准电压的方式使输出不仅增加/减少,这样不能不考虑整流滤波后的纹波对输出的影响,而方案二中使用运算放大器作前级的运算放大器,由于运算放大器具有很大的电源电压抑制比,可以大大减小输出端的纹波电压。在方案一中。为抑制纹波而在线性调压电源输出端并联的大电容降低了系统的响应速度,这样输出的电压难以跟踪快变的输入,方案二中的输出电压波形与D/A变换输出波形相同,不尽可以输出直流电平,而且只要预先生成波形的量化数据,就可以产生多种波形输出,使系统陈给有一定驱动能力的

8、信号源。1.2.2.3 显示部分方案一中的显示输出是对电压的量化值直接进行译码显示输出,显示值为D/A转换的输入量,由于D/A转换与功率驱动电路引入的误差,显示值与电源实际输出值之间可能出现较大偏差。方案二中采用了键盘/显示lcd602,不仅简化接口引线,而且减小了软件对键盘/显示器的查询时间,提高CPU的利用率。综上所述,选择方案二,使用单片机实现。1.2.3 系统的原理框图和电路图显示AT89C52最小系统电流放大输出DAC0832“+”“-”“电压设置与输出”按键短路保护基准电压预置电压显示电源电路稳压电源模块图稳压电源电路图二、系统的硬件设计2.1数控部分2.1.1AT89C51单片机

9、AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可提供高性价比的应用场合,可灵活应用于各种控制领域。因此,在这里我选用AT89C51单片机来完成。主要性能参数:与MCS-51产品指令系统完全兼容4K字节可重擦写Flash闪存存储器1000次擦写周期全静态操作:0hz-24hz三级加密程序存储器

10、128x8字节内部RAM32个可编程I/O口线2个16位定时/计数器6个中断源可编程串行UART 通道低功耗空闲和掉电模式AT89C51 内存空间1、内部程序存储器(FLASH)4K 字节。2、外部程序存储器(ROM)64K 字节。3、内部数据存储器(RAM)256 字节。4、外部数据存储器(RAM)64K 字节。2.2 信号处理电路2.2.1D/A转换电源输出电压范围是3-12V,步长0.1V,共有90个状态,8位的D/A转换有256个状态,能满足要求。2.3开关与显示部分2.3.1 显示部分显示数据以串行方式从89C51的P3口输出送往LCD1602的数据端,然后将变成的并行数据编译显示屏

11、输出。位选码由89C51的P13P15口输出并经译码器译码,以对数码管LED1LED8进行位选控制,这样,液晶屏便以100ms的时间间隔轮流显示。2.4.2 开关部分对每个开关我们都赋予了特定的功能:开始键-开始工作并设置电压以及控制输出电压指令“+”键-每按键一次增加0.1V“-”键-每按键一次减少0.1VAT89C51 和8279 键盘、显示器接口下图2.11 是AT89C51、0832与键盘和显示器的接口电路,当有键按下时,0832可用中断方式通知C51。编程实现的功能是:当有开关03按下时,完成健值获取,并用LED输出显示键值。2.4输出电路2.4.1 稳压输出部分这部分将数控部分送来

12、的电压控制字转换成稳定电压输出,电路主要由D/A转换、稳压输出、过流保护指示和延时启动等几部分组成,电路图如图所示电压输出范围为3-12V,步长0.1V,共有90种状态,所以上面提到选用8位D/A转换器DAC0832。设计中用两个电压控制字代表0.1V,当电压控制自从0,2,4到598 时,电源输出电压为3.0,3.1,3.2到12V。当DAC0832基准电压采用+12V 时,D/A转换电路满幅,输出为12.0V(电压控制字为1023时)。由于世界最大用到电压控制字598 ,因此D/A转换部分最大输出电压V1=(598/1023)*15=8.77D/A转换部分输出的电压作为稳压输出电路的参考电

13、压。稳压输出电路的输出与参考电压成比例,范围是0-29.9V,稳压输出部分采用典型的串联反馈稳压电路,也可以认为是以参考电压作为输入的直流功率放大器。这部分电路主要有运放U3A和三极管T1、T2构成,T2时大功率三极管。D/A转换电路输出的电压V1接到运放U3A的同相端,稳压电源的输出经R5、RW3和R6组成的取样电路分压后送到运放U3A的反相端,经运放比较放大后,驱动由T1和T2组成的复合调整管。当电路平衡时,D/A输出电压V1与取样电压V2相等,R5=50,R6=340,51电位器RW3调在中间位置,设稳压电源输出电压为VOUT,则V2=(R6+51/2)/(R5+R6+51)* VOUT

14、=(340+25.5)/(500+340+51)* VOUT=0.294VOUT因为 V1=V2VOUT=V1/0.294=3.4V1所以 VOUT=3.4V1=3.4*8.79V=29.9V2.4.2 输出电压显示电路为了实现输出电压的实时监控,使用ICL7107 搭接的数字电压表对其输出电压采样测量,并输出显示,用户可以从显示器上看见两个电压值:其一为单片机设置的电压值,即期望值,其二为输出电压的实测值。正常工作时两者相差很小。一旦出现异常情况,用户可以看到期望值不符,从而采取相应的措施。三、系统的软件设计软件要实现的功能是:键盘对单片机输入数据,单片机对获得的数据进行处理,送到8位数模转

15、换器(DAC8032),再送到数字电压表,实现数字量对电压的控制。3.1 主控程序主控程序首先进行系统初始化,然后读入预置电压值,输出相应的电压控制字,等待键盘输入。根据键盘的不同输入,用散转方式转入相应的应用程序,执行后,若用户又输入“清除显示”,则输出电压控制字0,返回初始状态,等待下一次按键。3.2 中断程序过流保护由中断实现,在中断服务程序中进行各项报警和保护操作,中断服务程序。键盘中断程序中将一标志置“1”,表示有键键入,并将键盘码读入赋给一个变量。在主程序和各个应用程序中读取此标志和变量值,作为进行各项操作的依据,读后将标志清零。四、电路扩展4.1抑制纹波本题对纹波要求非常高,对于

16、本系统,造成纹波的主要因素是工频干扰、负载波动和数字调节的过冲噪声。其中第三项是数字控制系统必然存在的,不可避进中断输入电压设定值负载电压测量免;因此,主要从抑制工频干扰和提高负载容量上来抑制纹波。在电源端即进行滤波。系统的工频干扰主要由电源变压器引入,因此在电源端进行滤波对抑制工频干扰是十分必要和十分有效的。本系统的两个电源都在输出端进行了三极管有源滤波。五、误差分析从电路的原理框图可以看出,系统的主要误差来源于三个方面:(1)DAC0832的量化误差 DAC0832为8位D/A 转换器,满量程为12V 的量化误差为1/2LMBS=(1/2)*(1/210)*12V=5.68Mv。按满度归一

17、化的相对误差为(1/2)*(1/210)=0.05%(2)基准电压温漂引入的误差 LM336在040OC范围内漂移不大于4Mv,故相对误差=2mV/5V=0.04%。相关程序:#include delay.h/*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i10;i+) for(j=0;j33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delaynms(unsigned char n) unsigned char i;for(i=0;

18、in;i+) delay1ms(); #includedisplay.h#includedelay.h#include /包含_nop_()函数定义的头文件#define DataPort P3 /定义数据端口 sbit RS=P13; /寄存器选择位,将RS位定义为P2.3引脚sbit RW=P14; /读写选择位,将RW位定义为P2.4引脚sbit E =P15; /使能信号位,将E位定义为P2.5引脚sbit BF=P37; /忙碌标志位,将BF位定义为P3.7引脚/*以下是对液晶模块的操作程序*/*函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;resul

19、t=0,不忙*/unsigned char BusyTest(void)bit result;RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1; /E=1,才允许读写_nop_(); /空操作_nop_();_nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间result=BF; /将忙碌标志电平赋给resultE=0; /将E恢复低电平return result;/*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void WriteInstruction (unsigned char dictate) while

20、(BusyTest()=1); /如果忙就等待RS=0; /根据规定,RS和R/W同时为低电平时,可以写入指令RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲,/ 就是让E从0到1发生正跳变,所以应先置0_nop_();_nop_(); /空操作两个机器周期,给硬件反应时间P3=dictate; /将数据送入P0口,即写入指令或地址_nop_();_nop_();_nop_();_nop_(); /空操作四个机器周期,给硬件反应时间E=1; /E置高电平_nop_();_nop_();_nop_();_nop_(); /空操作四个机器周期,给硬件反应时间E=0; /当E由

21、高电平跳变成低电平时,液晶模块开始执行命令/*函数功能:指定字符显示的实际地址入口参数:x*/void WriteAddress(unsigned char x)WriteInstruction(x|0x80); /显示位置的确定方法规定为80H+地址码x/*函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y(为字符常量)*/void WriteData(unsigned char y)while(BusyTest()=1); RS=1; /RS为高电平,RW为低电平时,可以写入数据RW=0;E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲,/ 就是让E从0到1发生正

22、跳变,所以应先置0P3=y; /将数据送入P3口,即将数据写入液晶模块_nop_();_nop_();_nop_();_nop_(); /空操作四个机器周期,给硬件反应时间E=1; /E置高电平_nop_();_nop_();_nop_();_nop_(); /空操作四个机器周期,给硬件反应时间E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令/*函数功能:对LCD的显示模式进行初始化设置*/void LcdInitiate(void)delaynms(15); /延时15ms,首次写指令时应给LCD一段较长的反应时间WriteInstruction(0x38); /显示模式设置:1

23、62显示,57点阵,8位数据接口delaynms(5); /延时5ms,给硬件一点反应时间WriteInstruction(0x38);delaynms(5);WriteInstruction(0x38); /连续三次,确保初始化成功delaynms(5);WriteInstruction(0x0c); /显示模式设置:显示开,无光标,光标不闪烁delaynms(5);WriteInstruction(0x06); /显示模式设置:光标右移,字符不移delaynms(5);WriteInstruction(0x01); /清屏幕指令,将以前的显示内容清除delaynms(5);void str

24、ing(unsigned char *str) /屏幕显示程序unsigned char *s;s=str;while(*s)WriteData(*s);s+;#include #include delay.h#include display.h#define vodata P2sbit KEY_Function =P10; /功能sbit KEY_Addition =P11; /+加sbit KEY_Subtraction=P12; /-减sbit LED=P16;unsigned char KEY_Number=0,voset=0,ms=0;unsigned char last_funct

25、ion=1,last_add=1,last_sub=1;unsigned char code str = vset= ; /定义字符数组显示提示信息void keyscan();/*- 主函数-*/ main()vodata=0X00;TH0=(-500)/256;TL0=(-500)% 256;TMOD=0x01;ET0=1;EA=1;TR0=1;LcdInitiate(); /调用LCD初始化函数 while (1) /主循环keyscan();void keyscan()if(KEY_Function)&last_function)KEY_Number=(+KEY_Number)%3?K

26、EY_Number:1);last_function=KEY_Function;if(KEY_Number=1)if(KEY_Addition)&last_add)voset=(voset90)?+voset:voset;else if(KEY_Subtraction)&last_sub)voset=(010)ms=0;if(KEY_Number=1)LED=0;WriteAddress(0x00); string(str);delaynms(1);vodisplay=voset+30;WriteData(0x30+vodisplay/100);WriteData(0x30+vodisplay%100/10);WriteData(0x2e);WriteData(0x30+vodisplay%10);WriteData(0x56);delaynms(1);elseif(KEY_Number=2)LED=1;vodata=voset+30; 17

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1