• 786.00 KB
  • 2022-04-22 11:27:39 发布

毕业设计论文(基于51单片机数控直流电源的设计).doc

  • 46页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'基于51单片机数控直流电源的设计基于51单片机数控直流电源的设计摘要本文主要论述了一种基于51单片机为核心控制器的数控直流电源的设计原理和实现方法。该电源具有电压可预置、可步进调整、输出的电压信号和电流信号可同时显示功能。文章介绍了系统的总体设计方案,其主要由微控制器模块、稳压控制模块、电压/电流采样模块、显示模块、键盘模块、电源模块五部分构成。该系统原理是以STC89C52单片机为控制单元,以数模转换芯片DAC0832输出参考电压控制电压转换模块LM317输出电压大小,同时输出稳压、恒流采用模数转换芯片ADC0832对采样的电压、电流转换为数字信号,再通过单片机实现闭环控制。文章最后对数控直流电源的主要性能参数进行了测定和总结,并对其发展前景进行了展望。关键词单片机(MCU);数模转换器(DAC);模数转换器(ADC);闭环控制Basedonthe51microcontrollernumericalDCpowersupplydesign 基于51单片机数控直流电源的设计Author:LiuXuezhiMajor:ElectronicinformationtechnologyTeacher:HuangLinTitle:AssociateProfessorAbstractThemethodofthispaperbasedonthe51microcontrollercoreofthenumericalcontrollerDCpowersupplydesigntheoryandrealization.Thepowersupplyhassomefunctionssuchaspresettingvoltage,steppingadjustment,displayingtheoutputvoltagesignalsandcurrentsignalsatthesametime.Thispaperintroducesageneraldesigningplanofthesystem,whichismainlyconsistedofmicro-controllermodule,DCRegulatorsmodule,voltage/currentsamplingmodule,displaymodule,keyboardmodule,powersupplymodule.Thesystemisbasedontheprincipleofsingle-chipmicrocomputertocontroltheunitSTC89C52toDAC0832digital-to-analogconverterchipreferencevoltagetocontroltheoutputvoltageLM317outputvoltageconversionmodulesize,whiletheoutputvoltageregulator,currentuseofanalog-to-digitalconverterADC0832chipsamplingofvoltageandcurrentconvertedtodigitalsignals,andthenthroughthesingle-chipclosed-loopcontroltoachieve.ArticleonthemainDCpowersupplyCNCperformanceparametersweremeasuredandsummarized,andtheirdevelopmentprospects.Keywordsmicrocontroller(MCU),theDigitaltoAnalog(DAC),theAnalogtoDigital(ADC),theclosed-loopcontrol目录1.前言………………………………………………………………………………11.1研究背景及意义…………………………………………………………………11.2国内外研究现状…………………………………………………………………1 基于51单片机数控直流电源的设计1.3课题的主要内容…………………………………………………………………21.4论文的总体结构…………………………………………………………………32.方案论证与设计基础知识…………………………………………………………32.1方案设计与论证…………………………………………………………………32.2主控单片机(MCU)………………………………………………………………52.3液晶显示屏(1602)……………………………………………………………62.4三端可调稳压器…………………………………………………………………82.5运算放大器OP07………………………………………………………………92.6数模转换芯片…………………………………………………………………102.7模数转换芯片…………………………………………………………………113.系统电路原理及硬件实现………………………………………………………123.1系统总体框图…………………………………………………………………123.2系统模块电路设计……………………………………………………………133.2.1单片机控制模块………………………………………………………………133.2.2稳压控制模块…………………………………………………………………143.2.3电压与电流采样模块…………………………………………………………153.2.4显示模块………………………………………………………………………183.2.5电源模块………………………………………………………………………193.2.6键盘模块………………………………………………………………………203.3系统整体原理图………………………………………………………………204.系统的软件设计…………………………………………………………………214.1软件设计思路…………………………………………………………………214.2系统软件流程…………………………………………………………………214.2.1主程序模块……………………………………………………………………214.2.2闭环比较程序模块…………………………………………………………235.系统测试与误差分析……………………………………………………………245.1系统测试………………………………………………………………………245.1.1软件测试……………………………………………………………………245.1.2硬件测试……………………………………………………………………245.1.3系统整体测试…………………………………………………………………255.2误差分析………………………………………………………………………266.设计总结和展望…………………………………………………………………27致谢…………………………………………………………………………………29参考文献……………………………………………………………………………30附录1系统整体原理图………………………………………………………………31附录2系统源程序……………………………………………………………………321.前言1.1研究背景及意义 基于51单片机数控直流电源的设计电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。当今电源技术融合了电气、电子、系统集成、控制理论、材料等诸多学科领域。直流稳压电源是电子技术常用的仪器设备之一,广泛的应用于教学、科研等领域,是电子实验员、电子设计人员及电路开发部门进行实验操作和科学研究所不可缺少的电子仪器。在电子电路中,通常都需要电压稳定的直流电源来供电。而整个稳压过程是由电源变压器、整流、滤波、稳压等四部分组成。然而这种传统的直流稳压电源功能简单、不好控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通的直流稳压电源品种有很多,但均存在以下二个问题:输出电压是通过粗调(波段开关)及细调(电位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时,困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。稳压方式均是采用串联型稳压电路,对过载进行限流或截流型保护,电路构成复杂,稳压精度也不高。在家用电器和其他各类电子设备中,通常都需要电压稳定的直流电源供电。但在实际生活中,都是由220V的交流电网供电。这就需要通过变压、整流、滤波、稳压电路将交流电转换成稳定的直流电。滤波器用于滤去整流输出电压中的纹波,一般传统电路由滤波扼流圈和电容器组成,若由晶体管滤波器来替代,则可缩小直流电源的体积,减轻其重量,且晶体管滤波直流电源不需直流稳压器就能用作家用电器的电源,这既降低了家用电器的成本,又缩小了其体积,使家用电器小型化。传统的直流稳压电源通常采用电位器和波段开关来实现电压的调节,并由电压表指示电压值的大小。因此,电压的调整精度不高,读数欠直观,电位器也易磨损。而基于单片机控制的直流稳压电源能较好地解决以上传统稳压电源的不足。随着科学技术的不断发展,特别是计算机技术的突飞猛进,现代工业应用的工控产品均需要有低纹波、宽调整范围的高压电源,而在一些高能物理领域,更是急需电脑或单片机控制的低纹波、宽调整范围的电源。1.2国内外研究现状从十九世纪90年代末起,随着对系统更高效率和更低功耗的需求,电信与数据通讯设备的技术更新推动电源行业中直流/直流电源转换器向更高灵活性和智能化方向发1展。在上世纪80年代的第一代分布式供电系统开始转向到上世纪末更为先进的第四代分布式供电结构以及中间母线结构,直流/ 基于51单片机数控直流电源的设计直流电源行业正面临着新的挑战,即如何在现有系统加入嵌入式电源智能系统和数字控制。随着科学技术的迅速发展,人们对物质需求也越来越来高,特别是一些高新技术产品。如今随着直流电源技术的飞跃发展,整流系统由以前的分立元件和集成电路控制发展为微机控制,从而使直流电源智能化,具有遥测、遥信、遥控的三遥功能,基本实现了直流电源的无人值守。并且,在当今科技快速发展过程中,模块化是直流电源的发展趋势,并联运行是电源产品大容量化的一个有效手段,可以通过设计N+1冗余电源系统,实现容量扩展,提高电源系统的可靠性、可用性,缩短维修、维护时间,从而使企业产生更大的效益。如:扬州鼎华公司近些年来结合美国SorensenAmrel等公司的先进技术,成功开发了单机最大功率120KW智能模块电源,可以并联32台(可扩展到64台),使最大输出功率可以达到7600kW以上。智能模块电源采用电流型控制模式,集中式散热技术,实时多任务监控,具有高效、高可靠、超低辐射,维护快捷等优点,机箱结构紧凑,防腐与散热也作了多方面的加强。它的应用将会克服大功率电源的制造、运输及维修等困难。而且和传统可控硅电源相比节电20%-30%节能优势,奠定了它将是未来大功率直流电源的首选。1.3课题的主要内容1、如何实现对电源的输出控制系统设计的目的是要用微处理器来替代传统直流稳压电源中手动旋转电位器,实现输出电压在电源量程范围内步进可调,精度要求高。实现的途径很多,可以用DAC的模拟输出控制电源的基准电压或分压电阻,或者用其它更有效的方法,因此如何选择简单有效的方法是本课题需要解决的首要问题。2、数控直流电源功能的完备数控直流稳压电源要实现电压的键盘化输出控制,同时要具备输出、过压过流保护及数组存贮与预置等功能。另外,根据要求电源还应该可以通过按键选择一些特殊的功能。如何有效的实现这些功能也是课题所需研究解决的问题。3、性能指标输出最大电压:15V输出最大电流:1A2电压步进:0.1V电压分辨率:0.02V 基于51单片机数控直流电源的设计1.4论文的总体结构第一部分简要介绍课题的背景、意义、国内外研究现状,介绍本文的主要研究内容,包括实现的目标、功能的完备和性能指标。第二部分提出了数控直流电源的总的设计思路和几种实现方案论证,以及相关系统实现的功能,对这些方案的可行性进行比较分析,选择了一种基于51单片机系统的数控直流电源的方案,并对该方案运用的基础知识和使用的器件作出扼要的介绍。第三部分模块化详细阐述了基于51单片数控直流电源的系统整体结构和设计框图,包括数据单片机控制模块、稳压控制模块、电压/电流采样模块、电源模块及键盘模块。第四部分主要阐述了数控直流电源的软件系统的设计思路和软件设计流程。第五部分对数控直流电源的性能参数进行测量与评估,以及对误差进行分析。第六部分对本数控直流电源的给出了本课题的结论,并对其发展前景进行了展望。2.方案与设计基础知识2.1方案设计与论证根据设计的要求:1、最高输出电压15V,最大输出电流1A。2、电压步进0.1V。3、纹波系数尽可能小,输出稳定。4、有限按键操作方便,LCD显示界面。5、闭环控制理论的嵌入式软件实现。特色及基本技术路线:1、低成本解决方案。2、直观的实验效果。3、经典理论验证平台先硬件后软件,先局部后整体。我设计出以下三个方案:方案一:设计开关电源。在前期方案设计中采用PWM脉宽调制。它的功耗小,效率高,稳压范围宽,电路形式灵活多样,功耗小,效率高。在制作过程中发现,PWM3占空比的线性变化使相应的电流呈非线性变化,经分析发现滤波电容的存在对占空比很小的PWM波积分效果明显,导致电压 基于51单片机数控直流电源的设计的非线性变化更显著,特别是PWM占空比很小时(希望得到输出的电压很小),利用单片开关电源的PWM技术控制开关的占空比来调整输出电压的,以达到稳定输出的目的。但用数字量控制的作用更加明显。方案二:用D/A和运算放大器做电流源,即采用D/A输出调节晶体管的偏值电流(电压)。采用此方案能有效的缩短调节时间,并能提高输出精度。设计方案,包括了微控制器模块、稳压控制模块、显示模块、键盘模块、电源模块四部分构成,形成开环控制。方案原理示意图见图2-1:51单片机(8051)掉电存贮单元(24C02)三位数码管显示单元电压控制单元(LM317)按键电路电源电路图2-1方案二原理框图采用常用的51芯片作为控制器,P0口和DAC0832的数据口直接相连,DA的电压输出端接放大器OP07的输入端,设定放大器的放大倍数为5,输出到电压模块LM3317的电压分辨率0.1V。所以,当MCU输出数据增加1的时候,最终输出电压增加0.1V,当调节电压的时候,可以以每次0.1V的梯度增加或者降低电压。数码管显示电路,该系统使用3个数码管,可以显示三位数,分别组成显示电路的十位、个位、小数点位。本主电路的原理是通过MCU控制DA的输出电压大小,通过放大器放大,给电压模块作为最终输出的参考电压,真正的电压,电流还是由电压模块LM317输出。4方案三:用D/A和运算放大器做电流源,即采用D/A输出调节晶体管的偏值电流(电压);使用电压/电流采样电路,通过A/D转换实现闭环控制。采用此方案 基于51单片机数控直流电源的设计是对方案二的改进,能有效的缩短调节时间,进一步提高输出精度。设计方案,其主要由微控制器模块、稳压控制模块、电压/电流采样模块、显示模块、键盘模块、电源模块五部分构成。液晶屏显示电路,该系统使用LCD1602液晶显示屏,可以清晰地显示分别组成显示电路的十位、个位、小数点位,同时还能显示英文名称和电压/电流单位。方案原理示意图见图2-2。51单片机(89C52)掉电存贮单元(24C02)LCD显示单元电压控制单元(LM317)按键电路电源电路输出电压/电流采样图2-2方案三原理框图依据设计要求中说提出的特色及基本技术路线,所以最后选用方案三。2.2主控单片机(MCU)2.2.1STC89C52简介STC89C52为8位单片机,程序存储器为8K,外部可扩展至64KB,内部RAM为512B,可扩展至64KB,4组可位寻址的8位输入/输出口,即图中P0,P1,P2,P3。有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。在内5部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。 基于51单片机数控直流电源的设计图2-3STC89C52引脚图2.2.2引脚说明主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。2.3液晶显示屏(1602)2.3.1LCD1602简介LCD1602可以在LCD显示屏上完整显示32个英文字符和日文等一些字符,适合显示英文文字信息量较小的地方.可以应用在计算器,频率计,信号发生器,时钟等产品上。6 基于51单片机数控直流电源的设计图2-4LCD16021、显示容量:16X2个字符.2、芯片工作电压:4.5-5.5V3、工作电流2MA(5.0V)不包括背光电流.4、模块最佳工作电压为5V5、字符尺寸:2.95X4.35(WXH)mm6、带有英文和日文字库,使用方便.2.3.2引脚接口说明表2-1LCD1602引脚说明编号符号引脚说明1VSS电源地2VDD电源正极3VL液晶显示偏压信号4RS数据/命令选择端(H/L)5R/W读/写选择端(H/L)6E使能信号7D0Data1/078D1Data1/0 基于51单片机数控直流电源的设计9D2Data1/010D3Data1/011D4Data1/012D5Data1/013D6Data1/014D7Data1/015BLA背景光源正极16BLK背景光源负极2.4三端可调稳压器LM317是美国国家半导体公司的三端可调正稳压器集成电路。LM317的输出电压范围是1.2V至37V,负载电流最大为1.5A。它的使用非常简单,仅需两个外接电阻来设置输出电压。此外它的线性调整率和负载调整率也比标准的固定稳压器好。LM317内置有过载保护、安全区保护等多种保护电路。可调整输出电压低到1.2V。保证1.0A输出电流。典型线性调整率0.01%。典型负载调整率0.1%。80dB纹波抑制比。输出短路保护。过流、过热保护。调整管安全工作区保护。标准三端晶体管封装。电压范围1.25V至37V连续可调。LM317工作原理:LM317的输入最同电压为30多伏,输出电压1.5----32V...电流1.5A...不过在用的时候要注意功耗问题...注意散热问题。LM317有三个引脚.一个输入一个输出一个电压调节。输入引脚输入正电压,输出引脚接负载,电压调节引脚一个引脚接电阻(200左右)在输出引脚,另一个接可调电阻(几K)接于地.输入和输出引脚对地要容。8LM317标准应用电路图 基于51单片机数控直流电源的设计图2-5LM317应用电路LM317的输出电压:Vout=1.25V(1+R2/R1)+IAdjR2。因为IAdj控制在小于100uA,IAdjR2这一项的误差在多数的应用中可以忽略,这时的输出电压为Vout=1.25V(1+R2/R1)。2.5运算放大器OP07OP07低噪声高精度运算放大器图2-6OP07引脚图9 基于51单片机数控直流电源的设计2.5.1特点1、低的输入噪声电压幅度—0.35μVP-P(0.1Hz~10Hz)2、极低的输入失调电压—10μV3、极低的输入失调电压温漂—0.2μV/℃4、具有长期的稳定性—0.2μV/MO5、低的输入偏置电流—±1nA6、高的共模抑制比—126dB7、宽的共模输入电压范围—±14V8、宽的电源电压范围—±3V~±22V9、可替代725、108A、741、AD510等电路2.5.2应用简介OP07高精度运算放大器具有极低的输入失调电压,极低的失调电压温漂,非常低的输入噪声电压幅度及长期稳定等特点。可广泛应用于稳定积分、精密绝对值电路、比较器及微弱信号的精确放大,尤其适应于宇航、军工及要求微型化、高可靠的精密仪器仪表中。2.6数模转换芯片D/A转换芯片DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。如图2-6所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。DAC0832的逻辑框图和引脚排列。10 基于51单片机数控直流电源的设计图2-7DAC0832引脚图D0~D7:数字信号输入端。ILE:输入寄存器允许,高电平有效。CS:片选信号,低电平有效。WR1:写信号1,低电平有效。XFER:传送控制信号,低电平有效。WR2:写信号2,低电平有效。IOUT1、IOUT2:DAC电流输出端。Rfb:是集成在片内的外接运放的反馈电阻。Vref:基准电压(-10~10V)。Vcc:是源电压(+5~+15V)。AGND:模拟地NGND:数字地,可与AGND接在一起使用。2.7模数转换芯片2.7.1A/D转换芯片ADC0832介绍ADC0832是具有多路转换开关的8位串行IOAD转换器,转换速度较高。正常情况下,ADC0832与单片机的接口应为4条数据线,分别是/CS、CLK、DO和DI,但由于DO与DI在通信时并未同时使用,并且与单片机的接口是双向的,在/CS变低后的前3个时钟周期内DI端被检测,DO端呈高阻态。数据转换开始后,DI线被禁止,直到11 基于51单片机数控直流电源的设计下一次转换开始,所以在I/O口资源紧张时可以将DI和DO并联在一根数据线上使用。 图2-8ADC0832引脚图2.7.2ADC0832接口说明1、CS_片选使能,低电平芯片使能。2、CH0模拟输入通道0,或作为IN+/-使用。3、CH1模拟输入通道1,或作为IN+/-使用。4、GND芯片参考0电位(地)。5、DI数据信号输入,选择通道控制。6、DO数据信号输出,转换数据输出。7、CLK芯片时钟输入。8、Vcc/REF电源输入及参考电压输入(复用)。3.系统电路原理及硬件实现3.1系统总体框图系统的总体设计方案主要由微控制器模块、稳压控制模块、电压/电流采样模块、显示模块、键盘模块、电源模块五部分构成。12 基于51单片机数控直流电源的设计输入输出显示(LCD1602)MCUSTC89C52EEPROM数据存储(24C02)数模转换DAC0832按键(三个)电压放大OP07可调稳压LM317输出模数转换ADC0832电压跟随器TS914电压电路电流放大并转换成电压(L272)电压采样电流采样电源(+15V、-15V、+5V)3-1系统总体框图3.2系统模块电路设计3.2.1单片机控制模块MCU模块即为单片机部分,整个控制都是依靠单片机完成。从功能和价位以及本题目要求来看,我选择51系列STC89C52作为本方案的控制核心,P0口接液晶显示LCD1602作为输出数据显示传输,同时P20、P21、P22是液晶LCD控制端口;P1口接DAC0832作为输出数据传输,P30为DAC0832控制端口;P31、P32、P33接三个独立键盘作为输入数据传输;P34、P35接容量为2K的数据存贮器24C02,可以实现掉电数据贮存和预置数据贮存;P25、P26、P27接ADC0832作为输入/输出数据传输。13 基于51单片机数控直流电源的设计图3-2单片机控制电路3.2.2稳压控制模块本稳压控制模块设计主要是用DAC0832输出的参考电压去控制LM317输出大小变化。其中DAC0832的基准电压Verf来源是通过调节LM336-5V基准源。控制器STC89C52的P1口和DAC0832的数据口直接相连,DA的/CS和/WR1连接后接P3.0,/WR2和/XEFR接地,让DA工作在单缓冲方式下。DA的8脚接参考电压,参考电压电路如图3-3所示,通过调节可调电阻调节LM336的输出电压为5.12V,DAC的输出电流转换为电压的公式为:所以在DAC0832的11脚输出电压的分辨率为5.12V/256=0.02V,也就是说DA输入数据端每增加1,电压增加0.02V。在此电路中,R为取样电阻,采用康铜丝绕制(阻值随温度的变化较小),阻值为0.35,因而采样电阻的功率可以由P=I2*R算出。由图3-3和图2-5的LM317应用电路分析可得,设运算放大器OP07的输入电压分别为Ui1、Ui2,输出电压为Vo1。DA的14 基于51单片机数控直流电源的设计电压输出端接运算放大器OP07的输入端,该放大电路运用了典型的差分式放大电路,并由差分放大公式Uo1=Au(|Ui1-Ui2|)且放大值Au=(R17+R18)/R17,得输出电压与输入电压关系Uo1=(R17+R18)/R17*(|Ui1-Ui2|)=(1K+4K)/1K*(|Ui1-Ui2|)=5*(|Ui1-Ui2|)。电源输出电压为Uout=Uo1+Uref*(1+R22/R23)=Uo1+1.25*(1+R22/R23)=Uo1+1.8,其中Uref为R23两端的电压,所以最小输出电压为1.8V,输出到电压模块LM317的电压分辨率=0.02V×5=0.1V。当MCU输出数据增加1的时候,最终输出电压增加0.1V,当调节电压的时候,可以以每次0.1V的梯度增加或者降低电压。图3-3稳压控制电路3.2.3电压与电流采样模块15 基于51单片机数控直流电源的设计图3-4V/I采样电路电压与电流采样模块是系统的重要组成部分,ADC0832是一个8位的逐次逼近型ADC,它与一个两通道的模拟器连接,能对来自端口的两路单端输入电压进行采样。其中单端电压输入以0V (GND) 为基准。对ADC的说明:以输入电压为标准,如果输入电压大于设定的电压值,则减小DA输出电压一位数值,再采样回为比较,如此循环,直到输入的电压等于设定的电压值或者接近设定的电压值(有时不可能完全相等)。同理,如果输入电压小于设定的电压,则增大DA输出电压一位数值,再采样回为比较,如此循环,直到输入的电压等于设定的电压值或者接近设定的电压值。这样,就能达到闭环反馈的目的。(1)电压采样电路电压采样电路(如图3-5所示)是在输出回路中并联两个可调电阻,调节使R12/(R11+R12)=1/5,则从两个电阻之间采样电压为0.2Uo(Uo为电源输出电压)与系统DA转换5Ui对应,然后通过运算放大器TS914连接成的电压跟随器,对采样到的电压输入到模数转换器ADC0832转换成数字信号,输入到单片机系统进行处理。16 基于51单片机数控直流电源的设计图3-5电压采样电路(2)电流采样电路电流采样电路(如图3-6所示),为了提高系统控制的灵敏度,采用一级运算放大器对采样电压进行放大,再送到ADC进行A/D转换。最后数据由单片机系统进行相应处理,而且该芯片是采用串行数据传送方式,硬件电路简单。在输出回路中串联一个采样电阻,从采样电阻上得到一个反馈电压。由运算放大器L272组成的差分比例运算电路,输出电压为Uo=R16/R15*(Ui1-Ui2)=20*(Ui1-Ui2),Ui1、Ui2分别为采样电阻R19两端的电压。由于采样电阻阻值(0.35Ω)很小,在该电阻上的压降相应也小,即压降就为电流。其电流控制电路图如图3-6所示,放大倍数Au=R16/R15=60/3=20,经运放过来的电压通过A/D转换,送给单片机处理,从而实现压控稳流。17 基于51单片机数控直流电源的设计图3-6电流采样电路3.2.4显示模块显示的方式很多,主要分为两类:LED显示,LCD显示。前者显示亮度高,制作成本低,适合做远距离显示,但由于其耗电较大,所用端口随显示的数据位数增加而增加。如果采用动态扫描方式显示,则占用CPU的时间,如果采用静态显示则需要加锁存器,耗费硬件制作时间,就该题目要求来说,需要设定电压显示,又与实际电压比较再显示,LCD显示更为清晰、直观,从上面诸多因数来看,采用LCD显示比较理想。LCD最常用的就是1602液晶模块。LCD1602可以在LCD显示屏上完整显示32个英文字符和日文等一些字符,适合显示英文文字信息量较小的地方,可以清晰显示出同时还能显示英文名称和电压/电流单位,电压(三位数字:十位、个位、小数位),电流(三位数字:个位、两位小数)。通过单片机编程控制第4脚RS数据/命令选择端(H/L),第5脚R/W 读/写选择端(H/L),第6脚E使能信号,从而实现显示效果。它的显示运行原理如下:读状态:输入:RS=L,RW=H,E=H;输出:D0~D7=状态字写指令:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲;输出:无读数据:输入:RS=H,RW=H,E=H;输出:D0~D7=数据写数据:输入:RS=L,RW=L,D0~D7=数据,E=高脉冲;输出:无18 基于51单片机数控直流电源的设计图3-7LCD1602显示电路3.2.5电源模块电源模块是让AC220V电源通过变压器降压,整流滤波后得到要调节电源输入端(POWER-INPUT);降压为AC15V整流滤波后经过三端稳压7815,7915得到DC15V电压为运算放大器供电;同时,降压为AC5V整流滤波后经过三端稳压7805得到DC+5V电压为单片机和其它芯片提供工作电源。图3-8电源电路19 基于51单片机数控直流电源的设计3.2.6键盘模块系统中键盘模块设计三个按键KEY1、KEY2、KEY3,如图3-9所示,分别由单片机P31、P32、P33口输入。KEY1为翻页按键,最近设置的电压大小保存在EEROM里面,比如5个电压,按一下KEY1,电压变为下一个,省去了反复设置电压的麻烦,KEY2为电压+,KEY3为电压-,按一下KEY2,当前电压增加0.1V,按一下KEY3,当前电压减小0.1V。图3-9键盘电路3.3系统整体原理图本设计的数控直流电源是由STC89C52为主控模块,DAC0832为数模转换器,ADC0832为模数转换器,三端稳压可调LM317为控制输出芯片,键盘模块由三个独立按键组成;系统实现闭环控制。系统主要由微控制器模块、稳压控制模块、电压/电流采样模块、显示模块、键盘模块、电源模块五部分构成,具有电压可预置、可步进调整、输出的电压信号和电流信号可同时显示功能。系统整体原理图(见附录1)。20 基于51单片机数控直流电源的设计4.系统的软件设计4.1软件设计思路当系统上电,立刻进行初始化,分别是端口初始化,D/A、AD初始化,定时器初始化;然后系统默认电压,默认电流。基本思路:按键扫描D/A转换、电压/电流数值显示读A/D转换并比较纠正电压/电流数值显示按键扫描,按前述循环。4.2系统软件流程4.2.1主程序模块流程图如图4-1示,负责与各子程序模块的接口和检查键盘功能号。程序运行后,开始检测是否有键按下,若有则进入设定按键功能。液晶LCD1602直接显示CPU设定的数值,使CPU资源得到充分利用。同时系统不断采集外部数据,经过相关运算、分析,然后发出命令对实际值进行相应的修正,控制输出电压可调、稳定。21 基于51单片机数控直流电源的设计初始化开始调用闭环程序比较子程序D/A子程序A/D子程序是空载标志置数取键号是设置键是“+”键是“-”键调用电压设定子程序调用电压加0.1V子程序调用电压减0.1V子程序YYYYNNNN图4-1主程序流程图22 基于51单片机数控直流电源的设计4.2.2闭环比较程序模块流程图如图所示,通过调用闭环比较子程序得出实际值与设定值的差值,如果是实际值大于设定值则将原来的显示设定值减去这个差值再送去转换,如果是实际值小于设定值则将原来的显示设定值加上这个差值再送去转换。保护现场实际—设定差值大于1负标志位为0显示设定值+差值显示设定值-差值把结果显示保留显示设定值恢复现场返回NYYN图4-2闭环比较流程图23 基于51单片机数控直流电源的设计5.系统测试与误差分析5.1系统测试5.1.1软件测试1、测试软件程序编译器keiluvision2程序烧录器STC-ISPV352、编译结果在编制完C语言后,即在keiluvision2界面下,进行了调试,结果如下:根据提示,我找到了,程序在编写上的错误,加以改正,再次进行调试。通过上述简单的测试,证明此次设计的程序基本上正确无误。然后,将烧录了程序的单片机STC89C52接到系统电路中,查看系统电路的运行情况;如果程序逻辑有问题可进一步修改,直到系统正常运行。5.1.2硬件测试1、DAC0832的参考电压的调试,调节滑动变阻器R10使三端稳压器LM336-5.0稳定输出电压为5.12V。由于三端稳压器LM336-5.0性能不稳定和输出要求精度高,必须要细心、耐心调试,直到输出电压达到要求。2、运放OP07的正输入端电压是来自于DAC0832的输出。调试过程中,不但要测量正输入端电压是否按0.02V步进,而且还要测量OP07的输出端电压是否为0.1V的步进;由于电阻会存在误差,测试时又要考虑是否需要稍微增加或减少DAC0832的输入参考电压VERF,以保证系统的精确度。24 基于51单片机数控直流电源的设计3、运放OP07采用双电源供电。如果双电源存在不平衡性会造成放大的误差,这时候需要调零,细心、反复调节滑动电阻R21使放大系统达到平衡。4、数控电源的最终输出端没有达到步进为0.1V的指标,检查三端稳压器LM317性能的好坏和是否有误差;如果LM317性能良好,需要协调前面三个步骤的调试,使最终的输出电压达到要求。5.1.3系统整体测试。1、测试工具开关电源T-50系列双踪示波器数字万用表2、测量结果表5-1电压测试表系统理论值系统测量值误差(V)显示电压值(V)理论码值(bit)实测码值(bit)实测电压值(V)3.000011110000111103.20.24.500101101001011004.60.15.000110010001100015.10.15.500110111001101105.60.16.000111100001110116.006.501000001010000006.60.17.001000110010001017.20.27.501001011010010107.60.18.001010000010011118.008.501010101010101008.509.001011010010110019.20.210.001100100011000119.8-0.2系统由于刚开启时在电压方面不稳定,存在一定误差,但是单片机立刻会对其进行25 基于51单片机数控直流电源的设计控制,使系统再次稳定。3、精度分析显示电压与实测电压的折线图如图5-1所示。绝对误差:U=(0.2+0.1+……+0.2+0.2)/12=0.11V相对误差:rA=U/U=(0.2/3.0+0.1/4.0+……+0.2/9.0+0.2/10)/12=1.8%线性度:rL=Lmax/YFS=0.2/15=1.3%灵敏度:K=0.1V图5-1显示电压与实测电压的折线图5.2误差分析从电路的原理框图可以看出,系统的误差来源于四个方面:1、DAC0832的量化误差,DAC为8位D/A转换器,满量程为15V的量化误差为1/2LMBS=(1/2)*(1/28)*15V=29.30mV。按满度归一化的相对误差为(1/2)*(1/28)=0.20%2、基准电压温漂引入的误差LM336在0—40OC范围内漂移不大于4mV,故相对误差<=4mV/5V=0.08%。3、三端稳压器的电路引起的误差。26 基于51单片机数控直流电源的设计图5-2LM317稳压电路Uout=VREF+(IR1+Iadj)R2=(1+R2/R1)VREF+IadjR2改变电阻R2两端电压,即可改变输出电压的大小。由于Iadj很小(只有50μA),可写为Uo=(1+R2/R1)VREF=1.25(1+R2/R1)。此时的误差为50*100/15*106=0.033%。4、其它器件和线路由于温漂、不稳定等原因引起的误差。6.设计总结和展望总结经过几十天的艰苦奋战,我最终完成了毕业设计的基本要求。虽然过程是艰苦的,但最终成功的喜悦同样令我快乐。此设计用D/A和运算放大器做电源,即采用D/A输出调节晶体管的偏值电流(电压)。采用此方案能有效的缩短调节时间,并能提高输出精度,经计算需要采用8位的D/A芯片。为了争取时间,降低成本,我们的解决方案是采用的51单片机。改变电压的大小,当单片机通过闭环负反馈调节回路的A/D转换检测到电压没达到设定值时,将再次对输出电压进行调制,直到输出电压达到设定值;电压值理论上是线性变化的,不会产生高次谐波,基本实现了任务书中的各项要求和目标,达到了此次毕业设计预期目的。但更重要的是培养了我的动手能力,使我进一步了解毕业设计的基本知识,能领会和灵活运用毕业设计中目标任务、计划、过程控制、总结反馈等各个环节所涉及的内容,并且具备了迅速接受新知识的能力,对新挑战具有一定的适应能力。271、收集相关资料。一方面利用学校图书馆资源,另一方面利用网上资源。2、提高设计效率,遇到不解的疑惑 基于51单片机数控直流电源的设计与老师、其他同学及时沟通,以迅速解决设计中遇到的问题。3、尽早落实工作,剩下时间专心致志做好毕业设计。4、同学之间相互学习、沟通、鼓励、支持。本次设计过程中,对纹波也没有提出严格要求,所以常用的稳压集成电路就可以满足要求。本设计输出的电压稳压精度高,可以用在对直流电压要求较高的设备上,或在实验室中当作实验电源使用。在本次设计的过程中,我发现很多的问题,给我的感觉就是很难,很不顺手,看似原理比较简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路,还有资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的促进和帮助,我相信,通过这次的毕业设计,在下一阶段的学习中我会更加努力,力争把功课学好,学精。同时,通过本次毕业设计,巩固了我们学习过的专业知识,也使我们把理论与实践从真正意义上相结合了起来;考验了我们借助互联网络搜集、查阅相关文献资料,和组织材料的综合能力;从中可以自我测验,认识到自己哪方面有欠缺、不足,以便于在日后的学习中得以改进、提高。展望放眼今后,直流稳压电源今后的发展方向之一将是以微处理器为核心的数控直流稳压电源,它将利用最新的计算机技术、网络技术及数字化技术,充分发挥微处理器强大的信息处理能力,使其突破传统直流稳压电源的概念,传统直流稳压电源的高稳定性输出仅是这种数控直流稳压电源其众多功能之一。它的功能包括:控制的智能化,即控制电路采用全数字化,控制手段用微处理器和单片机组成的软件控制方式,达到了较高的智能化程度,并且进一步提高了电源设备的可靠性;将随着微处理器和监控软件的引入,电源的自我监控能力普遍增强,可以实时地监控设备本身的各种运行参数和状态,预警功能和故障诊断功能,有效地实现了实验电源的无人职守;随着互联网技术应用日益普及和信息处理技术的不断发展,在管理上达到网络化,电源设备具备数据处理和通信能28力,通过其智慧型人机界面,使网络技术人员可以随时监视电源设备运行状态、各项技术参数;具有远程开关机功能,使网络技术人员可定时开关电源。 基于51单片机数控直流电源的设计随着科学技术的发展,直流稳压电源等仪表数字化、智能化、网络化将是发展方向。高精度数控直流稳压电源的研制对准了这个发展方向,加上计算机技术的迅速发展,使之具有非常广阔的发展空间。致谢大学四年就快画上一个句号了,毕业设计是我在学校交的最后一份答卷。在论文完成之际,感受收获的喜悦的同时,心中充满了更是感激之情。在此次毕业设计过程中,特别要感谢毕业设计指导老师黄琳副教授!感谢您在这段日子了对我亲切的关怀和悉心的指导。由于本人自身知识有限,所以从课题的选择到论文最终定稿这个过程中遇到了不少困难。在老师的耐心指导与督促之下,本论文经过多番修改终于顺利地完成。这个过程由始至终都离不开老师的辛勤。借此机会,我也感谢大学四年期间所有指导过我的老师,感谢他们对我无私的教诲和帮助,感谢他们的谆谆教导。在此同时也要非常感谢一直陪伴在我身边给予我精神支持和行动支持的同学们,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑。同学在你们身上我也学到了不少受益的知识。29参考文献[1]邹红.数字电路与逻辑设计[M].北京:人民邮电出版社,2008.3 基于51单片机数控直流电源的设计[2]李祥臣.模拟电子技术基础教程.[M]北京:清华大学出版社,2005.3[3]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2006.1[4]邱关源.电路(第四版)[M].北京:高等教育出版社,2006.4[5]李群芳,张士军,黄建.单片微型计算机与接口技术(第二版)[M].北京:电子工业出版社,2007.12[6]刘文涛.单片机语言C51典型应用设计[M].北京:人民邮电出版社,2006.5[7]于永,戴佳,常江.51单片机实例精讲[M].北京:电子工业出版社,2007.4[8]曹凤.微机数控技术及其应用[M].四川:电子科技大学出版社,2002.8[9]胡寿松.自动控制原理[M].北京:科学出版社,2007.1[10]潘永雄,沙河,刘向阳.电子线路CAD实用教程(第二版)[M].陕西:西安电子科技大学出版社,2006.9[11]Jun-LianZhangandJian-XunJin.AnalysisofDCPowerTransmissionUsingHighT_cSuperconductingCables[J],JournalofElectronicScienceandTechnologyofChina,2008.(2)[12]S.Levialdi,NATOASTonSigitalimageprocessing,1980:105-145[13]PowerIntegration.Inc.Topswich-GX(TOP242-249)datasheets[R],2000[14]PowerIntegration.Inc.Nationalsemiconductordatasheets[R].2005[15]ClovisL.Tondo,ScottE.Gimpel.TheCAnswerBookSolutionstotheExercisesinTheCProgrammingLanguage[R].200030附录1:系统整体原理图 基于51单片机数控直流电源的设计31附录2:系统源程序 基于51单片机数控直流电源的设计#include#include#include#include#defineucharunsignedchar#defineuintunsignedint#define_Nop()_nop_()#defineDATP0uchargo;sbitK1=P3^1;//第一个键sbitK2=P3^2;//第二个键sbitK3=P3^3;//第三个键sbitWR2=P3^0;//DAC的控制端//位定义#defineLcd_DataP0//定义数据端口sbitRS=P2^0;//定义连接端口sbitRW=P2^1;sbitE=P2^2;sbitBusy=P0^7;bithold=0;bit_Int=0;bitk=0;bitm=0;bitfushu=0;bitq=0;//全局变量定义uintDAdat;//存放送到DA的数据32uintx;//ucharADdat;//存放从ADC读出的数据 基于51单片机数控直流电源的设计ucharvol;//存放输入电压值ucharkeynum;ucharkyreg;uchartemp;//存放功能状态ucharhh;///数组定义staticcodeucharDisp[]="0123456789-";staticcodeucharDisp2[]="Error!";staticcodeucharDisp3[]="Volis:";//函数声明ucharkeyread(void);//读键函数ucharkeyread2(void);//读键函数2ucharkeyread3(void);//读键函数3voidreADC(void);//AD反馈读数函数ucharcmp(ucharADdat,ucharDAdat);//反馈比较函数voidlcdinit();//LCD初始化函数voidlcdcmd(ucharcmd);//LCD写控制字函数voidlcddata(uchardat);//LCD写数据函数voidseDAC(ucharDAdata);//DAC送数函数voiddelay(uchart);//延时函数voidextint(void);voidvolchange();//输出电压自增自减函数/***********************DAC送数*********************/main()//主程序{unsignedintvol;uchari,j,l=0,a=0,b=0,e=0;33bitdian=0;bito=0,p=0;//负数标志位、确认标志位 基于51单片机数控直流电源的设计delay(255);EA=1;EX0=1;PX0=1;IT0=1;//EX1=1;//IT1=1;pp:a=b=0;dian=0;o=p=0,x=0;P1=0;lcdinit();lcdcmd(0x80);for(j=0;j<7;j++)//开机送0V并显示到LCD{lcddata(Disp3[j]);}seDAC(128);DAdat=128;lcddata("0");lcddata("0");lcddata(".");lcddata("0");lcddata("V");while(1){while(!k){delay(200);34i=keyread();if(!m) 基于51单片机数控直流电源的设计{lcdcmd(0x1);for(j=0;j<7;j++)lcddata(Disp3[j]);m=1;}elseif(i==11){m=0;gotopp;}//复位elseif(i==12){temp=1;k=1;q=!q;hh=1;;}//加1elseif(i==13){temp=2;k=1;q=!q;hh=1;;}//减1}if(vol>150){lcdcmd(0x01);delay(2);lcdcmd(0x80);for(i=0;i<16;i++)lcddata(Disp2[i]);p=1;//溢出标志,P=1溢出}if(!fushu&&!hh)//送入DAC的数字量{DAdat=256*vol/150+128;if(DAdat==512)DAdat=511;hh=0;}elseif(fushu&&!hh){DAdat=256-256*vol/150;fushu=0;35hh=0;} 基于51单片机数控直流电源的设计if((temp==0)&&(!p))seDAC(DAdat);//函数调用elseif(temp==1){volchange();seDAC(DAdat);keyread2();temp=0;}elseif(temp==2){volchange();seDAC(DAdat);keyread3();temp=0;}p=0;k=0;}}/*******************输出电压自增自减程序************************/voidvolchange(){uchari,a,b,c,y,z;if(temp==1&&(DAdat<511)){if(q){if(z==9){DAdat+=3;z=0;}//进位elseDAdat+=2;}elseDAdat+=3;z++;if(DAdat>=129){x=x+1;lcdcmd(0x01);for(i=0;i<7;i++)lcddata(Disp3[i]);c=x/100,a=x%100/10;b=x%10;//一位小数、个位、十位的运算lcdcmd(0x01);for(i=0;i<7;i++)36lcddata(Disp3[i]);//电压显示lcddata(Disp[c]); 基于51单片机数控直流电源的设计lcddata(Disp[a]);lcddata(".");lcddata(Disp[b]);lcddata("V");}}elseif(temp==2&&(DAdat>1)){if(q){if(y==9){DAdat-=3;y=0;}//借位elseDAdat-=2;}elseDAdat-=3;y++;if(DAdat>127){x=x-1;c=x/100,a=x%100/10;b=x%10;//一位小数、个位、十位的运算lcdcmd(0x01);for(i=0;i<7;i++)lcddata(Disp3[i]);//电压显示lcddata(Disp[c]);lcddata(Disp[a]);lcddata(".");lcddata(Disp[b]);lcddata("V");}37}hh=0; 基于51单片机数控直流电源的设计}/********************DAC送数******************************/voidseDAC(ucharDAdat){WR=1;_Nop();_Nop();DAT=DAdat;WR=0;_Nop();_Nop();WR=1;}//************读键值*******ucharkeyread(){ucharkysta=1;//按键标志,kysta=1无按键while(kysta)//锁定P3口低三位{P3=0x0e;kyreg=P3;if(kyreg!=0x0e){delay(20);kyreg=P3;if(kyreg!=0x0e)38{if(kyreg==0x0c)return11;//第一个键 基于51单片机数控直流电源的设计if(kyreg==0x0a)return12;//第二个键if(kyreg==0x06)return13;//第三个键}}while(kyreg!=0x0e)//键复位{P3=0x0e;kyreg=P3;}}}ucharkeyread2(){if(K2==0)//KEY2键实现数据增加{WR2=1;delay(50);WR2=0;if(K2==0)//第二个键按下delay(50);//P1口数值加1P1=go;go++;while(!K2);}}ucharkeyread3()39{if(K3==0)//KEY3键实现数据减少 基于51单片机数控直流电源的设计{WR2=1;delay(50);WR2=0;if(K3==0)//第三个键按下delay(50);P1=go;go--;//P1口数值减1while(!K3);}}/********************延时*********************/voiddelay(uchart){uchari=100;while(t--){while(i--);}}voiddelay1(uchartime){while(time--);}/*******************LCD驱动**************************///写控制字函数voidlcdcmd(ucharcmd){RS=0;40RW=0;DAT=cmd; 基于51单片机数控直流电源的设计E=1;_Nop();_Nop();E=0;delay(2);}//写数据函数voidlcddata(uchardat){RS=1;RW=0;DAT=dat;_Nop();E=1;_Nop();_Nop();E=0;delay(2);}//LCD初始化函数voidlcdinit()//显示初始化{lcdcmd(0x38);delay(2);lcdcmd(0x38);delay(2);lcdcmd(0x38);delay(2);41lcdcmd(0x01);lcdcmd(0x06); 基于51单片机数控直流电源的设计lcdcmd(0x0c);}/*****************ADC反馈读数***********************/voidreADC()interrupt2using1{ucharresult;bitstate;DAT=0xff;ADdat=DAT;_Nop();_Nop();if(ADdat>=DAdat)//输出值大于显示值{result=ADdat-DAdat;输出值减显示值state=0;}else{result=DAdat-ADdat;显示值减输出值state=1;}if(result>=2){result/=2;if(state)result=DAdat-result;elseresult=DAdat+result;}42elseresult=DAdat;_Int=1; 基于51单片机数控直流电源的设计}/******************反馈比较*************************/ucharcmp(ucharx,uchary){ucharresult;bitstate;if(x>=y){result=x-y;state=0;}else{result=y-x;state=1;}if(result>=2){result/=2;if(state)result=y-result;elseresult=y+result;}elseresult=y;return(result);}43'