ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:259.99KB ,
资源ID:21971489      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21971489.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的数控直流稳压电源的设计文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的数控直流稳压电源的设计文档格式.docx

1、从上世纪九十年代末起,随着对系统更高效率和更低功耗的需求,电信与数据通讯设备的技术更新推动电源行业中直流/直流电源转换器向更高灵活性和智能化方向发展。整流系统由以前的分立元件和集成电路控制发展为微机控制, 从而使直流电源智能化, 基本实现了直流电源的无人值守。直流稳压电源是最常用的仪器设备, 在科研及实验中都是必不可少的。数控电源采用按键盘,可对输出电压进行设置, 输出由单片机通过D/A,控制驱动模块输出一个稳定电压。同时稳压方法采用单片机控制, 单片机通过A/D 采样输出电压, 与设定值进行比较, 若有偏差则调整输出, 越限则输出报警信号并截流。工作过程中, 稳压电源的工作状态(输出电压、电

2、流等各种工作状态) 均由单片机输出驱动LCD显示, 由键盘控制进行动态逻辑切换。以单片机为核心的智能化高精度简易直流电源的设计,电源采用数字调节、输出精度高, 特别适用于各种有较高精度要求的场合。1.3.数控电源的优点(1)易于采用先进的控制方法和智能控制策略,使电源模块的智能化程度更高,性能更完美。(2)控制灵活,系统升级方便,甚至可以在线修改控制算法,而不必改动硬件线路。(3)控制系统的可靠性提高,易于标准化,可以针对不同的系统(或不同型号的产品),采用统一的控制板,而只是对控制软件做一些调整即可。第二章 系统的设计要求和方案选择2.1.设计要求系统电压调节范围为012V,最大输出电流1A

3、,具有过载和短路保护功能。输出电压可用1602LCD液晶显示。键盘设有6个键,复位键,步进增减1V两个键,步进增减0.1V两个键以及确认键。复位键用于启动参数设定状态(5V),步进增减键用于设定参数数值,确认键用于确认输出设定值.电源开机设定电压输出默认值为5V。通过步进增减按键功能选择可在不同的设定参数之间切换,再按确认键进入设定电压输出状态。若按复位键,则电压输出恢复5V。系统设有自动识别功能,将不接受超出使用范围(012V)的设定值2.2.方案论证与比较2.2.1稳压电源的选择方案一:简单的并联型稳压电源并联型稳压电源的调整元件与负载并联,因而具有极低的输出电阻,动态特性好,电路简单,并

4、具有自动保护功能;负载短路时调整管截止,可靠性高,但效率低,尤其是在小电流时调整管需承受很大的电流,损耗过大。方案二:串联型稳压电源并联稳压电源有效率低、输出电压调节范围小和稳定度不高这三个缺点。而串联稳压电源可以避免这些缺点,同时串联稳压电源可以通过三端稳压实现,而且这类芯片内部都有过流和过热的保护电路,例如W117,其额定电流可达1.5A,输出电压的调节范围为1.2-37V,内部有过流和过热保护电路,而且价格也的相当便宜如图2.1所示,所以综合考虑采用方案二。图2.1三端稳压器2.2.2 数字显示方案液晶显示器显示利用单片机的软硬件资源实现高精度高速A/D转换,转换精度和转换速度可以通过软

5、件来改变。但是对软件部分要求非常高不易实现。数码管显示数码管显示分为静态显示和动态显示两种,但是不管哪种显示都具有结构简单、易于实现等优点。同时采用3位数码管完全可以满足本设计的要求。在用8051控制的同时,可以简化软件程序,快速实现。所以本设计中采用数码管显示。第三章 系统硬件设计3.1.系统设计由于本设计的输入为220V的交流电电压,所以必须先经过整流滤波电路然后经过三端稳压器的处理输出直流稳定的电压,当然在输出前还得有单片机的控制才可以输出。在控制中单片机通过接受来自键盘的指令信号,并且通过数码显示器显示当前值,然后由单片机发出控制信号控制接口和驱动电路来控制稳压器的输出,通过数码显示器

6、显示输出值。具体的系统图如图3.1所示。图3.1系统流程图3.2.微控制器模块3.2.1 8051单片机的性能AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性为:(1)与M

7、CS-51 兼容 (2)4K字节可编程闪烁存储器 (3)寿命:1000写/擦循环(4)数据保留时间:10年(5)全静态工作:0Hz-24Hz(6)三级程序存储器锁定(7)128*8位内部RAM(8)32可编程I/O线(9)两个16位定时器/计数器(10)5个中断源 (11)可编程串行通道(12)低功耗的闲置和掉电模式(13)片内振荡器和时钟电路3.2.2 8051单片机的最小系统对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机

8、,51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。在次最小系统中包含了复位电路、振荡电路和供电电路。如图3.2所示。图3.2单片机最小系统3.3.电源模块3.3.1单片机供电模块为了满足单片机的正常工作,必须给其提供+5v的直流电源,所以设计一个可以使用usb的5v直流供电电路,具体电路如图3.3.1所示。图3.3.1单片机供电图3.3.2整流滤波电路和+5v供电模块整流电路采用桥式电路,整流管采用普遍使用桥堆。根据使用手册可知W7805的输入端电压为9V,W117的输入电压为25V,具体电路如图3.3.2所示。图3.

9、3.2辅助电源模块3.4.W117电阻网络和继电器驱动电路根据w117的基本功能,调压电阻网络可采用如图3.4.1所示电路。这里的电阻网络采用分立元件组成的8为权电阻串联式网络,而开关采用舌簧式继电器的触点。为了使W117正常工作,要求流过R1的电流不小于5mA,而R1两端的电压为恒定的1.25v,所以若取流过R1的电流为5mA,则R1=1.25V/5mA=250,为了满足调节单位为0.1v,故R=0.1/5mA=20,则可以求得该网络的其他电阻值。 图3.4.1W117的调压电阻网络和驱动电路3.5.显示电路在显示电路中分为静态显示和动态显示,由于本设计是要求采用三位数码管,而静态显示无法满

10、足设计的需要,故在本设计中采用并联动态显示。图3.5是动态显示的原理图,只要有一位接通过单片机的扫描让每位选线轮流选通,同时在段选线上送出该位要显示的段位码。图3.5系统显示电路3.6.键盘电路键盘控制电路分为独立式和矩阵式,由于本设计的要求不是特别的高,加上独立式按键结构电路简单易于实现的特点,所以在本设计中采用独立式按键结构。电路结构如图3.6。图3.6独立按键式结构图第四章 软件4.1.主程序C语言程序如下:#include Unsigned charled15=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f,0x39,0x52,0x6

11、4,0x37,0x0e;/ 9 8 7 6 5 4 3 2 1 0 void main() /主函数void ledout(unsigned char ATA,char add,char j);void delays(unsigned char t);unsigned char odata,key,temp;unsigned int F,f=0x100; /初始频率char add=0,j=1; odata = 155; /电压初值为5v j=1; while(1) for(F=f;F0x110;F+) P3=0xff; key=P3; if (key!=0xff) unsigned char

12、 i; for(i=0;i57) odata=odata-2; /电压加0.1V break; case 0xbf: if(odata0;t-) for(s=0;svoid key_deal(void)unsigned char Key_value; / 按键键值 P1 |= 0x07; / P1.0P1.2为输入端口 Key_value = P1 & 07; / 屏蔽P1口高5位,取键值 switch (Key_value) case 6: Sub_S1();break; / S1按键按下,执行对应子程序 case 5: Sub_S2(); / S2按键按下,执行对应子程序 case 3:

13、Sub_S3(); / S3按键按下,执行对应子程序 default:4.3.显示驱动程序absacc.hAdc_Temp.hcode uchar disp_seg=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7c,0x39,0x5f,0x79,0x71,0x40,0x00,0xff,0xf3;/ 0 1 2 3 4 5 6 7 8 9 a b c d e f - 全灭, 全亮, P./定义显示缓冲区(由定时中断程序自动扫描)uchar DispBuf8; /8位数码管显示的数字码(显示段码的偏移量)uchar bdata

14、key_flag=0; /定义键盘状态标志位sbit key_first_flag = key_flag0;sbit key_delay_flag = key_flag1;sbit key_valid_flag = key_flag2;uchar key_value; /key_value=0: no key, or key_value=1-8 stand for key1-key8void DispInit(); /数码管扫描显示初始化void DispClear(); /清除数码管的所有显示void DispP(); /显示P. /在数码管位置x(07)处显示字符c(仅限十进制数字和减号)

15、/void DispChar(unsigned char x, unsigned char y);/显示指定位置x(07)处的小数点/void DispDotOn(unsigned char x);/*函数:T1INTSVC()功能:定时器T0的中断服务函数 */void T1INTSVC() interrupt 1 using 1 / interrupt 3 for T1 code uchar com = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80; static uchar key_value_temp, n = 0; uchar key_in,i; T

16、R0 = 0; TH0 = 0xf8; / 0xfc66:1ms for 11.0592MHz, oxf8cd:2ms, 0xB800:20ms, 0x4C00:50ms TL0 = 0xcd; P1 = 0xFF; /暂停显示 if ( (DispBufn&0x80) = 0x80 ) /带小数点显示 DispBufn = DispBufn&0x7f; LED_OUT = (disp_segDispBufn | 0x80);/更新扫描数据 else LED_OUT = disp_segDispBufn; P1 = comn; /重新显示 if(key_first_flag=0) key_in

17、 = KEY_IN; if(key_in!=0xff) /初次检测到有键按下 i1; if( (key_in&0x01)=0x00 )/若键按下,对应KEY_IN的输入口读入状态位为0 key_first_flag = 1;/置标志 key_value_temp = i;/暂存 else if(key_delay_flag=0 & n=key_value_temp) i+)0x01)=0x00 ) /经过一轮扫描后(8*2ms=16ms),第一次按下的键仍被按下 key_delay_flag = 1; else if(key_delay_flag=1 &0x01)=0x01 ) /再经过一轮扫

18、描后,按键已释放:则为有效键 key_valid_flag = 1; key_value = key_value_temp+1; n+; n &= 0x07; -/-; TR0 = 1;DispClear()清除数码管的所有显示void DispClear() for ( i=0;8; i+ ) DispBuf = 0x11; /0x00;DispP()显示,即最高为显示P.,其余显示灭void DispP() DispClear(); DispBuf7 = 0x13; /0xf3;DispChar()在数码管上显示字符参数: x:数码管的坐标位置(07,0为高位,7为低位) y:要显示的字符,c=019(仅限十进制数字和减号)void DispChar(unsigned char x, unsigned char y) /0123456789,-,全灭,全亮的数码管字型数据/ code unsigned char Tab = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x00,0xff; Di

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

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