《数控直流稳压电源的.doc》由会员分享,可在线阅读,更多相关《数控直流稳压电源的.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流数控直流稳压电源的.精品文档. 单位代码: 005 分 类 号: TN867 延安大学西安创新学院 本科毕业论文(设计)题 目: 数控直流稳压电源的设计 专 业: 电子信息工程 姓 名: 学 号: 0903024121 指导教师: 毕业时间: 二零一三年六月 数控直流稳压电源的设计摘要:本设计针对对普通直流电源一般不可以调节或调节范围小的缺点设计出了一种可调节,宽调节范围的直流稳压电源。该直流稳压电源系统以STC单片机公司的89C52RC单片机为核心,利用10位DA芯片TLC5615作为DA输出,由单片机由采样电阻对输出电压进行采样处理,采用
2、C语言进行程序控制,输出09.9V,步进0.1V的精确稳压输出关键词:直流电流源;单片机;89C52RC;TLC5615High precision DC current source based on 51 MCUAbstract: For regular direct current voltage stabilizer accuracy is not high, and the adjusting range is small, we designed a direct voltage stabilizer with high precision and wide adjusting r
3、ange. This system is based on the MCU of 89C52RC which product by STC. Using a chip TLC5615 which with 10 bit as DA output. By using the resister to process the output voltage. Use the C language to control the system. So that it can output 0+9.9V, and stepping for 0.1V adjustment function.Key words
4、: DC current;MCU;89C52RC;TLC5615目 录1 引言12 设计原理13 单元电路的设计23.1 DA的选择与论证23.2 稳压输出方案选择与论证23.3 显示模块的选择与论证33.4 输入按键的选择与论证34 本系统核心器件简介34.1 STC89C52单片机34.2 TLC5615芯片44.3 TLC431芯片54.4 LM324芯片55 硬件电路设计65.1 电源电路65.2 DA输出电路65.3 稳压输出电路65.4 数码管显示电路75.5 整体电路原理设计86 系统软件设计96.1 主程序流程图96.2 DA转换流程图97 系统调试与仿真107.1 系统仿真1
5、07.2 DA输出仿真:117.3 PCB制作127.4 硬件调试137.5 软件调试148 结束语15参考文献16致谢17附录一 程序清单181 引言当今社会人们极大的享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路-电源电路。大到超级计算机、小到袖珍计算器,所有的电子设备都必须在电源电路的支持下才能正常工作。当然这些电源电路的样式、复杂程度千差万别。可以说电源电路是一切电子设备的基础,没有电源电路就不会有如此种类繁多的电子设备。数控直流稳压电源主要用微处理器等配合其它控制器件控制电源的电压输出,实现数控可调,高精度输出,过流保护,数字显示等。其调节的范围大,利用高精度的DA转换
6、器,可以实现数控电源高精度输出,同时步进可调。这种高精度的的数控稳压电源可以满足对电源要求比较高的场合。数控直流稳压电源还可以将输出电压值进行采样处理,再送回微处理器进行处理,从而实现输出的闭环控制。还可以对输出的电流进行检测,当输出过载时,可以立即切断输出,保护电源不被烧坏。2 设计原理该方案以STC 51系列单片机89C52为控制核心,单片机控制DA输出模拟电压,然后经过运算放大器放大电压,再经功率管放大电流。通过采样电路对输出电压值进行采样,实现闭环控制。单片机对采样值进行处理,在显示部分显示设定电压值和输出电压值。若输出超过当前设定的值,则单片机启动报警同时关闭输出以保护电源。系统的框
7、图结构如图2-1所示。按键显示单片机D/A输出放大电流过流保护输出电 源 供 电图2-1系统的框图结构3 单元电路的设计3.1 DA的选择与论证方案一:采用我们熟悉的8位DA,DAC0832;方案二:采用我们熟悉的10位DA,TLC5615;方案三:采用内部自带基准源的12位DA MAX531。对于方案一:选择DAC0832虽符合题目的要求,但是输出精度不高,误差大,所以我们放弃方案一。对于方案二:为10位DA,输出精度更高,同时也可通过程序改进精度,使其变为精度更高的步进0.01V,同时该DA芯片价格比较合理。对于方案三:MAX531内部自带2.048V基准源,输出精度高,但价格太贵,本着满
8、足设计要求尽量节约成本的前提,我们放弃方案三。综上所述,我们选择方案二。3.2 稳压输出方案选择与论证方案一:DA输出的电压经过集成运算放大器进行放大,再将放大之后的电压输出到LM317的调节端,利用LM317能够可调输出,实现稳压输出。下图2-1是方案一的原理图:DA输出LM317集成运算放大输出AD图3-1方案一原理框图方案二:DA输出的电压经过集成运算放大器放大,再将放大之后的电压与达林顿管的基极相连,利用达林顿管放大电流,从而达到稳定电压输出。下图是方案二的原理图:DA输出集成运算放大输出T1R1T2图3-2方案二原理框图对于方案一:可以实现稳压输出,但是由于LM317自身调节的范围为
9、1.2V-37V,而我们设计时要求为从0V输出到9.9V,所以不能满足。对于方案二:利用达林顿管的性质,做成闭环回路控制。其输出电压不受负载影响。当DA输出为0时,其输出也为0,所以满足设计的要求。综合所述,所以我们选择方案二。3.3 显示模块的选择与论证方案一:采用1602液晶屏作为显示模块方案二:采用四位共阳极数码管作为显示模块对于方案一:1602可以显示2行英文字符和数字,电路连接简单,占用单片机I/0口少。缺点是显示字符小,不易看清,价格太高,程序编写复杂对于方案二:采用数码管至少要4位,则要占用12个I/O口,数码管显示时采用动态扫描功耗较低。显示清楚,易于辨认。程序编写简单,价格低
10、。缺点是显示信息量较少,不能显示符号。综合考虑,我们决定选取方案二。3.4 输入按键的选择与论证方案一:采用4*4键盘方案二:采用5按键,第一个和第二个加减0.1V,第三个和第四个加减1V,第五个确认输出。对于方案一:主要采用4*4的矩阵键盘,可以设置0-9和步进,小数点等按键,可以快速的输入。但是4*4键盘占用的PCB面积较大,增加了PCB的成本,增加了PCB的布线难度,并且得占用8个单片机I/0口,这种方案不可取。对于方案二:中虽不能直接输入0-9,但是可以通过“+”和“-”来实现0-9数字的输入,这样只占用了5个单片机I/O口,节约3个I/O口,同时PCB的面积和成本也进一步缩小。综上考
11、虑,我们选择方案二。4 本系统核心器件简介4.1 STC89C52单片机STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个
12、7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。图4-1 STC89C524.2 TLC5615芯片TLC5615为美国德州仪器公司1999年推出的产品,是具有串行接口的数模转换器,其输出为电压型,最大输出电压是基准电压值的两倍。带有上电复位功能,即把DAC寄存器复位至全零。性能比早期电
13、流型输出的DAC要好。只需要通过3根串行总线就可以完成10位数据的串行输入,易于和工业标准的微处理器或微控制器(单片机)接口,适用于电池供电的测试仪表、移动电话,也适用于数字失调与增益调整以及工业控制场合。TLC5615器件的引脚图及各引脚功能如下图:图4-2 TLC5615引脚图DIN:串行数据输入端;SCLK:串行时钟输入端;/CS:芯片选用通端,低电平有效;DOUT:用于级联时的串行数据输出端;AGND:模拟地;REFIN:基准电压输入端。2V(VDD-2);OUT:DAC模拟电压输出端;VDD:正电源端,4.55.5V,通常取5V。4.3 TLC431芯片德州仪器公司(TI)生产的TL
14、431是一个有良好的热稳定性能的三端可调分流基准源。他的输出电压用两个电阻就可以任意的设置到从Verf(2.5V)到36V范围内的任何值。该器件的典型动态阻抗为0.2,在很多应用中用它代替齐纳二极管,例如,数字电压表,运放电路,可调压电源,开关电源等。它的引脚图如下:图4-3 TLC431引脚图4.4 LM324芯片LM324系列器件带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。
15、LM324的管脚连接图如下:图4-4 LM324管脚连接图每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。5 硬件电路设计根据设计的要求,本系统可分为电源模块、DA输出模块和稳压输出模块三大重要部分,缺一不可。5.1 电源电路电源电路采用的是直流线性稳压器组成。图5-1为电源电路原理图:图5-1 电源电路原理图5.2 DA输出电路DA输出主
16、要采用10位DA TLC5615,电压基准源采用TL431分压得到。C5为滤波电容,TL431输出电压时,流过它的电流最低为1mA,所以我们通过一个2K电阻使其工作电流大于1mA。这样其1脚对地的电压就为基准电压2.5V。如下图:图5-2 DA输出电路5.3 稳压输出电路稳压部分的原理框图如下:DA输出集成运算放大电压功率管放大电流输出反馈输出电压采样报警过流图5-3稳压部分原理框图稳压输出放大输出电路图如下图所示:图5-4放大输出电路图5.4 数码管显示电路所有数码管的段选全部连接在一起,如何能显示不同的内容呢?动态显示是多个数码管,交替显示,利用人的视觉暂留作用使人看到多个数码管同时显示。
17、在编程时,需要输出段选和位选信号,位选信号选中其中一个数码管,然后输出段码,使该数码管显示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应的段码,高速交替。在动态显示程序中,各个位的延时时间长短是非常重要的,如果延时时间长,则会出现闪烁现象;如果延时时间太短,则会出现显示暗且有重影。图5-5数码管显示电路5.5 整体电路原理设计基于单片机数控直流稳压源的系统整体硬件设计如图5-6所示。图5-6系统整体硬件设计图6 系统软件设计6.1 主程序流程图图6-1 系统总流程图系统软件设计主要分为DA输出,AD采集,显示,按键,报警这几个部分。通电之后,程序先初始化,判断键盘有无输入,若无输
18、入,则继续等待输入。若有输入,则读取输入的值,并相应的改变输出,并显示输出。输出时对输出的电压进行检测,再送回单片机进行处理,同时检测报警电路与单片机的接口,看电平有无变化,若发现报警电路启动,则说明过载,此时应关闭DA输出,并发出声光报警。如果没有过载,则继续输出,并显示。6.2 DA转换流程图DA转换流程图,如下如图6-2所示。YES程序入口初始化读取键盘输入数据输出数据到DA数据=900输出NO图6-2 DA转换流程图7 系统调试与仿真7.1 系统仿真Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿
19、真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持
20、续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:(1)原理布图(2)PCB自动或人工布线(3)SPICE电路仿真图7-1Proteus系统界面7.2 DA输出仿真:为了检测硬件电路与程序,对DA输出与显示部分做了仿真,其仿真图如下图所示。输出从0-9.9V,步进0.1V。图7-2系统仿真图7-3系统仿真7.3 PCB制作PCB制作把系统的电路原理图设计好以后。下一步工作就是进行实物制作了,而实物制作的第一步就是对电路进行排版布线。过程如下:(1)电路原理图的布局在器件布局的
21、过程中应注意以下几点:一个模块及其附属的一些分离元器件应尽量放到一起;不同的电路模块尽量划分清晰,使得在调试过程中多电路的检查能够一目了然;较容易发热的元器件尽量放到电路的边缘,有利于散热。(2)布线PCB布线的好坏对系统性能有直接的影响,在高频电路表现的尤为突出,所以,在进行电路布线时还需注意以下几点:模拟地和数字地应分开接地,避免数字信号和模拟信号会相互干扰;每一根走线,能短则短,不要为了盲目追求少跳线而绕远路,因为线越短电阻越小,干扰也会越小;电源线和地线尽量从电路板的边缘走线,且电源线尽量画的比一般线宽略粗一些;走线在改变方向时应该走45角或曲线,避免直角的拐角。(3)打印与转印打印时
22、要注意油纸不能折叠,打印的设置必须准确,只留下底层的走线和焊盘。而在转印时首先覆铜板要刷洗干净,以免在转印时油墨不能完全的转印;其次,转印机必须预热到机器发出提示音,这表明,转印机已经准备好转印了;第三,转印机的转印速度档位应放在“正常”档位,板子的类型应放在“印刷板” 档位。第四,在转印时,注意油纸上的走线图必须能够完整的附在覆铜板上,一块板子最好转印两次,确保把油墨完全的转印到覆铜板上。(4)腐蚀将油纸上的电路图转印到覆铜板后,接着就要把多余的铜腐蚀掉。不过在刚转印好的时候,首先应检查是否转印完整,若有断线、走线空心的问题,必须用油墨笔将断线补起来,空心的走线填完整。确保转印工序完成后,就
23、可以将电路板放入FeCl3溶液里进行腐蚀了,俗称“烂板”。如果有条件,可以将腐蚀液加热,再放入电路板,这样能够有效的提高腐蚀的速度。(5)打孔腐蚀好的板子,在洗净之后就可以打孔了,打孔时尤其要注意孔的大小不能将焊盘的铜箔完全打掉,否则焊接时,焊盘没有铜箔就无法进行焊接了。最后,打孔完成,用砂纸将毛糙磨平,这样PCB板的制作就顺利完成了。7.4 硬件调试做硬件焊接完成之后,我们必须对硬件进行调试,发现其中可能存在的问题,并对其进行改进。硬件调试的方法有两种:方案一用万用表和其他仪器仪表进行检测方案二采用软件测试硬件的方法进行检测方法分析:这两种方法各有优点,方法一能直接准确的确定元件的故障所在点
24、,并直接进行故障排除。但是此方法必须对元件进行一一检测,检测的过程非常慢。对于一个大系统和元件比较多的电路来说,此种方法不适合方法二用软件来控制硬件,编写某一电路的控制程序,看这部分的电路的运行结果是否与书的软件控制的效果一致。如果不一致,则证明这部分电路有问题。这种方法可以迅速的判断某一部分电路的故障,对于大系统来说,这种方法可以缩小故障的范围,再对所出现的故障进行排除,节约系统调试的时间。这个数控直流稳压电源系统中,我们把电路分成几个小模块,采取方法一和方法二相结合的测试方法进行测试。测试步骤:(1)用万用表对电路中的电源线进行测量,我们先用万用表的蜂鸣档,将万用表的红黑表笔接到电路电源线
25、进行测量,若发现蜂鸣器响,则证明电源线有短路。如蜂鸣器没有响,则证明电源线无短路现象。(2)再用蜂鸣档对单片机的电源、晶振、复位等电路进行测量,看有没有连接好。若连接正常,则对系统进行通电。通电前先拨出单片机。(3)测量单片机的工作电压。看是否正常,若不正常。再用万用表进行检测,排除电源故障。(4)若电源工作正常,插上单片机。编程控制,数码管的亮灭,以及数码管按键等,看是否正常。若都正常,测证明电路硬件连接无误。若有故障,再用万用表对出故障的模块进行检测。7.5 软件调试软件调试是建立在硬件调试的基础之上的。调试完硬件之后,我们就开始编写程序,对程序进行调试。我们先画出程序的流程图,然后根据流
26、程图来编写程序。程序编写调试方法:方法一:根据流程图,直接编写。方法二:先编写部分模块的程序,再对模块程序进行整合。方法分析:方法一中直接根据流程图写,适合小规模的程序,对于大规模的程序不适合,且程序的可移植性差。方法二中可以移植相似的程序,节约程序编写的工作量。对于大规模的程序比较适合。程序的编写也相对比较轻松。可以节约程序的编写时间。在本系统中,我们采取方法二来进行软件的编写与调试程序编写和调试方法:(1)建立主程序,定义各端口。(2)写出数码管、按键的模块程序。(3)对各模块程序进行整合。(4)对整合的模块进行调试。(5)对最终的程序进行优化。8 结束语这次设计数控直流稳压电源,是毕业前
27、对我们大学四年所学知识的一个检验。检验我们的硬件设计能力,软件设计能力,还有查阅资料与人沟通等各方面的能力。同时也将我们大学四年的知识运用到实践中。在设计的过程中,我首先设计硬件,要画原理图。以前的课程中学过protel99se这个画图软件。但是由于长时间没有用,并且那时上这个门时练习不多也不怎么熟练,所以在设计原理图的过程中很吃力,不得不查找protel99se的相关资料,再进行画图。经过几天的查找资料看其操作教程,最后完成了原理图设计。在编写软件时,为了能尽快把程序调试好,我学习了Proteus仿真软件,利用这个仿真软件,在线实时调试程序。因为利用Proteus在程序编译完成后,就可以直接
28、运行程序。而如果不仿真,则每次要将编译完成的代码通过下载线下载到单片机里面,再通电运行,这样很浪费时间。所以我先在Proteus仿真软件里面进行仿真,仿真好了之后,再下载到单片机里面进行检验。在写程序时,也遇到了不少问题,自己平时没有经常的练习写程序,所以在面对这样一个系统时,不知道从哪里下手。于是在网上找了相关的例程来学习。经过几天的学习,终于找到一点当年写程序的感觉了。在调试的过程中虽然遇到一些困难,但是通过请教周围的朋友,最终得以解决。完成硬件与软件的设计之后,再回顾此电源的设计,心中感慨万千,从理论到实践,让我明白了,学校里面学了很多很多的东西,但是我们要和实践相结合,否则就是空理论。
29、只有将理论转化为实践,才能真正的走出校门,走向社会,完成从学生到社会型人才的转变。参考文献1邹红.数字电路与逻辑设计M.北京:人民邮电出版社,2008.32李祥臣.模拟电子技术基础教程.M.北京:清华大学出版社,2005.33童诗白,华成英.模拟电子技术基础M.北京:高等教育出版社,2006.14邱关源.电路(第四版)M.北京:高等教育出版社,2006.45李群芳,张士军,黄建.单片微型计算机与接口技术(第二版)M.北京:电子工业出版社,2007.126刘文涛.单片机语言C51典型应用设计M.北京:人民邮电出版社,2006.57于永,戴佳,常江.51单片机实例精讲M.北京:电子工业出版社,20
30、07.48曹凤.微机数控技术及应用M.四川:电子科技大学出版社,2002.89胡寿松.自动控制原理M.北京:科学出版社,2007.110潘永雄,沙河,刘向阳.电子线路CAD实用教程(第二版)M.陕西:西安电子科技大学出版社,2006.9致谢在论文完成之际,我要忠心的感谢身边给予过我莫大帮助的老师、同学和朋友,致以他们最诚挚的谢意。本研究及学位论文是在我的指导教师邵思飞的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,邵老师都始终给予我细心的指导和不懈的支持。邵老师多次询问研究进程,并为我指点迷津,帮助我开拓研
31、究思路,精心点拨、热忱鼓励,这让我在整个论文的撰写过程中学习到了很多关于课题研究方面的知识。真诚的感谢参加论文评审和答辩的各位老师,感谢你们的辛勤劳动和即将从你们那里获得的有益教诲;感谢学长和同学们在设计中给予的指导和帮助。在这四年的学期中结识的各位生活和学习上的挚友让我得到了人生最大的一笔财富。在此,也对他们表示衷心感谢。本文参考了大量的文献资料,在此,向各学术界的前辈们致敬。最后要感谢的是我的父母和家人,感谢他们多年来对我默默的支持和帮助。由衷的希望在未来的日子里,周围的老师、同学和朋友们一如既往的在各方面继续给予我更多的指教和帮助,以期取得新的进步和成绩来回报大家。附录一 程序清单 #i
32、nclude sbit SCLK =P20 ; /定义端口 sbit DIN =P22; sbit CS =P21 ; sbit K1 =P30; sbit K2 =P31; sbit K3 =P32; sbit K4 =P33; sbit K5 =P34;unsigned int temp;/中间变量unsigned char j=0; /j_片选,vout_电压输出unsigned char counter4=0x08,0x04,0x02,0x01;char scan1,scan2,scan3,scan4;const seven_seg10=0x3f,0x06,0x5b,0x4f,0x66
33、,0x6d,0x7d,0x07,0x7f,0x6f;/数码管的显示const seven_seg_point10=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/有小数点的数码管显示TI 10位DA TLC5615的驱动程序 -调用方式: void da5615(unsigned int da)函数说明: TI 10位DA TLC5615的驱动程序void display();void delay(int x)int i ;for(i=0;ix*140;i+)display();void display()P1=counterj;switc
34、h(j) case 0:P0=seven_segscan1;break; case 1:P0=seven_seg_pointscan2;break; case 2:P0=seven_segscan3;break; case 3:P0=seven_segscan4;break; default:break;/j为其他情况是跳出循环j+;if(j=4) j=0; void da5615(unsigned int da) /DA子函数unsigned char i;da=6; CS=0;SCLK=0;for (i=0;i12;i+)DIN=(bit)(da&0x8000);SCLK=1;da=1;S
35、CLK=0;CS=1;SCLK=0;for (i=0;i12;i+); /12位数值转换成串行输给DA芯片/*void delay(int x)int i,j;for(i=0;ix;i+)for(j=0;j1) scan1-; if(scan1=-1) scan1=9; scan2-; if(scan2=-1) scan2=9; scan1-;if(key3()scan2+;if(scan2=10) scan2=9; if(key4() scan2-; if(scan2=-1) scan2=0;num=10*(scan2*10+scan1);/输出的数字量if(num=1000) num=990; if(key5()temp=num; /短按确认main()while(1) da5615(temp); vout(); display();