版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计STM32数控电流源毕业论文基于STM32的数控电流源设计摘要电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各个行业。随着计算机和通讯技术发展而带来的现代信息技术革命,给电源技术提供了广阔的发展前景,同时也给电源技术提出了更高的要求。现在市场上数控电流源的存在输出精度不高,功率密度比较低,带负载能力不强,体积大,价格较高,操作繁琐,工作状态不稳定等弊端,因此数控电源的主要发展方向是针对上述缺点不断改善。数字化智能电源模块是针对传统智能电源模块的不足提出的,数字化能够减少生产过程中的不确定因素和人为参与的环节数,有效地解决电源模块中诸如可靠性、智能化和产品一致性等工程问题,极大地提高生产效率和产品的可维护性。所以,高精度的数控直流电流源有很大的发展空间。在本设计中将采用STM32单片机为系统的主控制器,能够实现多功能、宽范围、可调节等诸多功能,为更好的实现恒流提供条件,完成数控电流源的设计。STM32片内集成的A/D转换器、D/A转换器和PWM发生模块降低了系统复杂程度,使系统简单,可靠,低价。关键字:电源技术;数控电流源;STM32;数字化
ABSTRACTPowertechnology,especiallyCNCpowertechnologyisoneengineeringtechnologywithstrongpractice,itservicesforeveryfield.Moderninformationtechnologyrevolution,thatbroughtwiththedevelopmentofcomputerandcommunicationstechnology,providesabroaddevelopmentprospects,butalsomakesahigherdemandsinpowersupplytechnology.AtthepresenttimeCNCcurrentsourceonthemarketexistssomeshortcomings,suchasoutputprecisionisnothigh,thepowerdensityisrelativelylow,capacitywithaloadisnotstrong,bulky,expensive,complicatedoperations,instabilityworkingstateandsoon.SothemajordevelopdirectionofCNCpowerisspecializedfortheseshortcomings,andtoreformthem.Digitalintelligentpowermodulesismadeagainstthelackingoftraditionalintelligentpowermodules,digitizecanreduceuncertaintyandhumanparticipatingquantityoflinksintheproductionprocess,andresolvesomeengineeringproblemseffectively,suchasreliability,intelligence,productconsistencyproblemandsoon,andgreatlyimproveproductionefficiencyandmaintainabilityoftheproduct.Therefore,high-accuracyCNCDCcurrentsourcehasalotofspacetodevelop.Inthisdesign,STM32MCUwillbeusedasthemaincontrollerofthewholesystem,itcanachievethemulti-function,widerange,adjustable,andmanyotherfunctions,providingbetterconditionsforachievingconstantcurrentandcompletingthedesignofCNCcurrentsource.ItintegratesA/Dconverter,D/AconverterandPWMmoduleinSTM32chip,thusreducingcomplexityofthesystem,keepthesystemsimple,reliableandlowprice.Keywords:Powertechnology;Numericalcontrolcurrentsource;STM32;digital目录摘要 ⅠAbstract Ⅱ第1章 11.1数控电流源项目的目的和意义 11.2数控电流源在国内外的发展概况 21.3基于STM32的数控电流源的设计的内容 4第2章 52.1数控电流源的核心技术原理 52.2方案的总体设计 62.2.1数控电流源的主控芯片的选择 62.2.2基于STM32的数控电流源系统结构 82.2.3恒流源模块电路的方案讨论 92.3本章小结 9第3章基于STM32数控电流源的硬件电路设计 103.1恒流源模块电路的设计方案 103.1.1以LM350A为恒流源模块的核心元件的恒流源电路 103.1.2数控宽范围调整、大电流输出恒流源电路 143.2数控部分 163.3供电电源 183.3.1三端稳压器 183.3.2供电电源电路 193.4本章小结 20第4章 214.1主程序设计 214.2负载电流取样子程序设计 224.3键盘中断程序设计 234.4LCD1062显示程序设计 244.5本章小结 24结束语 25参考文献 26致谢 28附录 29附录A. 29附录B 31 第1章引言1.1数控电流源项目的目的和意义电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各个行业。当今电源技术融合了电气、电子、系统集成、控制理论、材料等诸多科学领域。随着计算机和通讯技术发展而带来的现代信息技术革命,给电源技术提供了广阔的发展前景,同时也给电源技术提出了更高的要求。随着数控电源在电子装置中的普遍使用,普通电源在工作时产生的误差,会影响整个系统的精确度,电源在使用时会造成许多不良后果。世界各国纷纷对电源产品提出了不同的要求并制定了一系列产品精度标准,达标后才能够进入市场。随着经济全球化的发展,满足国际标准的电源产品才能够获得通行证。数控电源是从80年代才开始发展起来的产品,期间系统的电力电子理论开始建立。这些理论为其后来的发展提供了良好的理论基础,在以后的时间里,数控电源技术开始长足的发展。现在市场上数控电流源的存在输出精度不高,功率密度比较低,带负载能力不强,体积大,价格较高,操作繁琐,工作状态不稳定等弊端,因此数控电源的主要发展方向是针对上述缺点不断改善。所以,高精度的数控直流电流源有很大的发展空间。单片机技术及电压转换模块的出现为高精度数控电源的发展提供了有利条件。新的变化技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用。电源采用数字控制,具有以下明显优点:(1)易于采用先进的控制方法和智能控制策略,使电源模块的智能化程度更高,性能更完美。(2)控制灵活,系统升级方便,甚至可以在线修改控制算法,而不必改动硬件线路。(3)控制系统的可靠性提高,易于标准化,可以针对不同的系统(或不同型号的产品),采用统一的控制板,而只是对控制软件做一些调整即可。(4)系统维护方便,一旦出现故障,可以很方便地通过RS232接口或RS485接口或USB接口进行调试,故障查询,历史记录查询,故障诊断,软件修复,甚至控制参数的在线修改、调试;也可以通过MODEM远程操作。(5)系统的一致性好,成本低,生产制造方便。由于控制软件不像模拟器件那样存在差异,所以,其一致性很好。由于采用软件控制,控制板的体积将大大减小,生产成本下降。(6)易组成高可靠性的多模块逆变电源并联运行系统。为了得到高性能的并联运行逆变电源系统,每个并联运行的逆变电源单元模块都采用全数字化控制,易于在模块之间更好地进行均流控制和通讯或者在模块中实现复杂的均流控制算法(不需要通讯),从而实现高可靠性、高冗余度的逆变电源并联运行系统。本课题主要研究的是基于你单片机的数控直流恒流源的设计,恒流源是能够向负载提供恒定电流的电源,因此恒流源的应用范围非常广泛,并且在许多情况下是必不可少的。例如,在用通常的充电器对蓄电池充电时,随着蓄电池端电压的逐渐升高,充电电流就会相应减少。为了保证恒流充电,必须随时提高充电器的输出电压,但采用恒流源充电后就可以不必调整其输出电压,从而使劳动强度降低,生产效率得到了提高。恒流源还被广泛用于测量电路中,例如,电阻器阻值的测量和分级,电缆电阻的测量等,且电流越稳定,测量就越准确。它既可以为各种放大电路提供偏流以稳定其静态工作点,又可以作为其有源负载,以提高放大倍数,并且在差动放大电路、脉冲产生电路中得到了广泛应用。此外,线性扫描锯齿波的获得,有线通信远供电源、电泳、电解、电镀等化学加工装置电源,电子束加工机、离子注入机等电子光学设备中的供电电源也都必须应用恒流源。随着电力电子技术的不断发展,数控电源在以往使用线性电源的场合中也获得日益广泛的应用。在一些工业场合需要提供电压源和电流源,而且要求范围广、纹波低。如果采用多台功能单一的电源设备,体积和重量都会增加很多,不经济,也不能满足工作的要求。因此研究开发多功能、宽范围、可调节的数控电源很有意义。1.2数控电流源在国内外的发展概况在我国,以电力电子学为核心技术的电源产业,从二十世纪60年代中期开始形成,到了90年代以来,随着对系统更高效率和更低功耗的要求,电信与数据通信设备的技术更新推动电源行业中直流/直流转换器向更高灵活性和智能化的方向发展,电源产业进入快速发展期。一方面,电源产业规模的发展在加快;另一方面,在国家自然科学基金的资助下或创新意识指导下,我国电力电子技术的研究从吸收消化和一般跟踪发展到前沿跟踪和基础创新,电源产业涌现了一些技术难度较大,具有国际先进水平产品的产品而且还生产了一大批具有代表性的研究成果和产品。目前国内还开展了跟踪国际多方面前沿性课题的研究或基础创新研究。但是我国电源产业与发达国家相比,存在着很大的差距和不足。在电源产品的质量、可靠性、开发投入、生产规模、工艺水平、先进检测设备、智能化、网络化、持续创新能力等方面的差距为10-15年,尤其在实现直流恒流的智能化、网络化方面的研究不是很多。目前国内在这两方面研究比较多的是城都电子科技大学和广州华南理工大学,主要是利用单片机和可编程系统器件(PSD)来控制开关直流稳压电源或数字化电压单元达到数控的目的,但和国外的比较起来,效果不是很理想,还存在很大的差距和不足。现今,随着数控直流电源技术的飞跃发展,整流系统由以前的分路原件和集成电路发展为微机控制,从而是直流电源智能化,具有遥测、遥信和遥控的三遥功能。目前,全国的电源及其配件的生产销售企业有4000家以上,产值由300-400亿元,但国内企业销售的数控直流稳压电源大多是代理日本和台湾的产品,国内厂家生产的直流稳压电源虽然也在向数字化方向发展,但多限于对输出显示实现数码显示,或实现多组数值预置。总体来说,国内直流恒流源技术在实现智能化等方面相对落后,面对吉列的国际竞争,是个严重的挑战。上海江柏电子科技有限公司是一家专注生产与研发,精密线性高速可编程直流源,及锰铜分流器取样电阻,公司全系列可编程直流电源供应器具有双重性能。即是恒压源,又是恒流源,是国内精密直流电源主要生产商与供应商之一,可满足不同用户电源的要求所需。精密线性高速可编程直流电源采用线性结构方式制作,运用高速CPU处理器及16bitAD与DA数字转换以提供精准的数字化测量,产品性能卓越,是国内众多客户所需的最佳选择,能提供高频场所直流所需之要求,产品稳定性高,提供电压1mV分辨率及电流分辨率为1mA。广泛应用于工业控制、通讯通信、军工、科研和教学及LED照明测试等领域。分流器广泛用于扩大仪表测量电流范围,有固定式定制分流器和精密合金电阻器,均可用于通讯系统、电子整机、自动化控制的电源等回路作限流,均流取样检测。随着电子技术的发展,恒流源已经广泛地应用在各个领域。目前市面上较成熟的恒流源输出或者在mA量级,或者在百安培量级,不能满足所有输出段位的需求。许多输出电流不是很大、要求稳定度和输出精度较高的恒流源还是由使用者自行研制的。恒流源在现代化工农业及科研生产的运用中正朝着体积小、精度高、稳定性好、使用灵活的方向发展。急于功率运算放大器的恒流源在理论上具有体积小、精度高、稳定性好、可扩展等优点,输出电流范围在按培量级适用于小型电动机、线圈等的驱动。但还需要通过实验做进一步深入的研究,这对于恒流源的发展具有相当现实的意义。而且数字化智能电源模块是针对传统智能电源模块的不足提出的,数字化能够减少生产过程中的不确定因素和认为参与的环节,有效地解决了电源模块中诸如可靠性、智能化和产品一致性等工程问题,极大地提高了生产效率和产品的可靠性。性能好的电子设备,首先离不开稳定的电源,电源稳定度越高,设备和外围条件越优越,那么设备的寿命更长。基于此,人们对数控恒定电流器件的需求越来越迫切。当今社会,数控恒压技术已经很成熟,但是恒流方面特别是数控恒流的技术才刚刚起步,有待发展,高性能的数控恒流器件的开发和应用存在巨大的发展空间。1.3基于STM32的数控电流源的设计的内容1、基本内容设计一个基于STM32的数控电流源,该设计包括电流源模块、测量模块、供电模块和数控模块等,电流源模块采用了集成运放和大功率复合管构成的闭环电流深度负反馈电路。由单片机控制高精度D/A的输出电压送入电流模块,可完成对输出电流的小步进控制。测量模块是由双积分型高精度A/D来测量取样电阻的电压值进而转化为电流值来完成。2、预期达到的目标(1)可输出一路电流,范围100mA-2000mA,精度1%;(2)具有良好的人机界面;(3)对输出的电流进行反馈测量,以对其进行实时校准;(4)V/I转换模块采用高效MOS管电路。3、拟解决的主要问题(1)如何实现恒流;(2)输出电流的步进操作和设定操作的实现;(3)主程序的编写。第2章基于STM32的数控电流源的整体方案设计2.1数控电流源的核心技术原理恒流电源是为电流型负载提供稳定电流的重要仪器。常见的恒流源电路方案有:脉冲调宽式、线性负反馈方式等。脉冲调宽式(开关式)恒流源通过改变调整器的工作脉冲宽度达到恒流的目的。目前广泛应用于空间技术、计算机、通讯、家电等领域中。这种恒流源调整器工作在开关状态、功率损耗小、效率高达70%~95%,但纹波电流大,辐射干扰强、恒流精度低。线性负反馈式恒流源通过改变调整器的工作电压,使其输出电流保持恒定,具有失真小、稳定度高、纹波小等特点,但功率损耗大、效率较低,主要应用于高精度场合。方案一:此方案采用传统的调整管方案,主要特点在于使用一套十进制计数器完成系统的控制功能,一方面完成电压的译码显示,另一方面其输出作为EPROM的地址输入,而由EPROM的输出经D/A变换后去控制误差放大的基准电压,以控制输出步进。方案二:采用STM32系列单片机作为整机的控制单元,通过改变输入数字量来改变输出电压值,从而使输出功率管的基极电压发生变化,间接地改变输出电流的大小。为了能够使系统具备检测实际输出电流值的大小,可以经过片内ADC进行模数转换,间接用单片机实时对电流进行采样,然后进行数据处理及显示。采用软件方法来解决数据的预置以及电流的步进控制,使系统硬件更加简洁,各类功能易于实现本系统以直流电源为核心,利用STM32系列单片机为主控制器,通过键盘来设置直流电源的输出电流,设置步进等级可达0.1V,并可由液晶显示来显示实际输出电流值和电流设定值。利用单片机程控输出数字信号,经过片内D/A转换器输出模拟量,再经过运算放大器隔离放大,控制输出功率管的基极,随着功率管基极电电流的变化而输出不同的电流。单片机系统还兼顾对恒流源进行实时监控,通过A/D转换,实时把模拟量转化为数据量,经单片机显示,通过硬件的的反馈和比较环节,使电流更加稳定,构成稳定的压控电流源。相比较两种方案,第一种方案已经成熟,但其操作繁琐复杂,需要对EPROM的地址进行大量的操作,不利于简化操作;第二种方案的控制相对较为简单,用户操作也较第一种方案简单,且STM32的功能强大,有利于进行功能的扩展。综上所述,本设计的方案即定为第二种方案,将选择采用STM32单片机为系统的主控制器的压控电流方式。2.2方案的总体设计2.2.1数控电流源主控芯片的选择数控电流源的主控芯片的性能将决定数控电流源系统功能优劣和能否扩展更多功能,本设计里将考虑到两种芯片,一种是较易于掌握的51系列单片机,一种是功能更强更全面的,性能更好的STM32系列单片机。下面将对两种方案进行对比,选择一种更符合本设计的的方案。方案一:AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,主要特点如下:1、4kBytesFlash片内程序存储器;2、128bytes的随机存取数据存储器(RAM);3、32个外部双向输入/输出(I/O)口;4、5个中断优先级、2层中断嵌套中断;5、6个中断源;6、2个16位可编程定时器/计数器;7、2个全双工串行通信口;8、看门狗(WDT)电路;9、片内振荡器和时钟电路;10、与MCS-51兼容;11、全静态工作:0Hz-33MHz;12、三级程序存储器保密锁定;13、可编程串行通道;14、低功耗的闲置和掉电模式。AT89S51在众多嵌入式控制应用系统中得到广泛应用。作为初学者是很好的入门工具,被大家所熟悉,上手快,节约开发时间。图2.1AT89S51芯片方案二:使用基于Cortex-M3处理器内核的STM32微处理器,其主要特点如下:1、Thumb-2指令集架构(ISA)的子集。2、哈佛处理器架构,在加载/存储数据的同时能够执行指令取指。3、三级流水线。4、32位单周期乘法。5、具备硬件除法。6、Thumb状态和调试状态。7、处理模式和线程模式。8、ISR的低延迟进入和退出。9、可中断-可继续的LDM/STM,PUSH/POP。10、ARMv6类型BE8/LE支持。11、ARMv6非对齐访问。12、分支预测功能基于Cortex-M3处理器内核的STM32微处理器,以其高性能、低成本在众多MCU中占有举足轻重的地位。由于使用嵌入式系统将为整个硬件电路的设计带来极大简化,如不再考虑过压保护电路、过流保护电路。此外,STM32F103不但速度快,内部的资源极为丰富,如64引脚STM32F103RC有2个12位ADC,比单独使用一个ADC要便宜近一半。综上所述,基于STM32的功能强大,此次设计确定使用基于Cortex-M3处理器内核的增强型STM32微处理器:STM32F103VET6-LQFP100。该型号有一百个引脚,供电电压为2-3.6V,本设计内供电电压为3.3V,片内包含三个A/D(16)和一个D/A(2)(括号内为通道数),为本设计省去了外设的A/D和D/A。图2.2STM32F103VET6-LQFP100芯片2.2.2基于STM32的数控电流源系统结构整机系统结构如图2.1所示。图2.3数控电流源系统的结构框图本方案围绕STM32芯片,由供电模块、液晶显示模块、报警模块、负载电流检测模块、恒流源模块、按键模块构成。供电电模块:我采用的是桥式整流结合三端稳压芯片的处理方法。由此得到单片机使用的3.3V电源和驱动运算放大器的±15V电源,该模块中还包括为单片机内提供参考电压的恒定电压源,其电路由TL431为核心器件。恒流源模块:这个系统由精密运算放大器和STM32芯片内部12位DAC一组成,共同设定流过场效应管的,同时由恒定电压源为DAC提供恒定的参考电压。 负载电流检测模块:这个模块由STM32内部12位ADC和自制的0.2Ω康铜电阻组成。液晶显示模块:主要有LCD1062组成,负责显示参数和提供用户服务界面。过流报警模块:这个部分由蜂鸣器和红色的LED指示灯组成。负责当发生过流现象时,给用户报警。按键模块:这是本系统的用户控制方式,采用4×4键盘模块。2.2.3恒流源模块电路的方案讨论:恒流源模块是本设计的核心模块之一,该部分电路的优劣直接影响到输出电流的质量,方案有两种:以LM350A为恒流源的核心部件的恒流源电路数控宽范围调整、大电流输出恒流源电路方案的具体讨论将在第3章进行讨论。2.3本章小结:综上所述,通过方案的比较和芯片的比较,本设计最终确定,主控芯片采用基于Cortex-M3处理器内核的STM32F103VET6-LQFP100微处理器,以压控电流为控制方式,完成数控电流源系统的总体设计。总体电路包括:供电模块、液晶显示模块、报警模块、负载电流检测模块、恒流源模块、按键模块。最后完成数控电流源的系统框图的设计。第3章基于STM32数控电流源的硬件电路设计3.1恒流源模块电路的设计方案数控电流源的设计中,恒流源电路关系重大,恒流源模块电路的好坏直接影响到数控电流源系统输出电流的质量,如果恒流源模块电路设计不当,将会得不到稳定的准确的电流值。本节将就恒流源模块电路的设计方案和细节进行讨论。3.1.1以LM350A为恒流源的核心元件的恒流源电路恒流源部分本身是一个独立的线性负反馈恒流源,如图3.1所示。图3.1数控电流源的恒流源部分U2(LM350A)为可调稳压器,依靠外接电阻来调节输出电压,选择精度高的电阻可保证输出电压的精度和稳定性。在本设计里,LM350A为调整器,是恒流源的核心部件。负载电流经采样电阻R7,产生微弱的采样电压,经过超低噪声运算放大器U5B同相放大。放大的电压信号送往由U3B组成的差分放大器的负端(同时送往数控部分进行A/D转换)。差分放大器把负端采样电压与正端的数控部分设定电压的差值进行放大,输出到调整器的调整端,形成闭环反馈。若有某种情况使负载电流增加,则采样电阻上的电压增加,使同相放大器U5B输出电压变大,差分放大器输出电压减小,调整器调整端电压减小,调整器输出电压变低,使负载电流减小,从而维持了负载电流的动态稳定,反之亦然。可以看出,差分放大器的正端决定了负载电流的大小。若U3B正端电压升高,则调整器调整端电压升高,调整器输出电压升高,负载电流增加,同相放大器输出增加,差分放大器负端电压升高,直到U3B正负端电压相等,系统再次动态稳定采样电阻串联在负载回路内,并由此检测负载电流变化。因此,采样电阻的稳定性将直接影响到恒流源的性能,且采样电阻还应有足够大的功率,否则也会影响恒流源的性能甚至烧坏。综合以上各因素,在实际电路中选用大功率锰铜材料制成的精密电阻,其温度系数达到(-3~+20)10-6/℃。采样放大器U5B选用超低噪声运放AD797。因为它处于闭环反馈的第一级,所以要尽量减小噪声的影响。差分放大器U3B选用高精度运放OP07,提供高精度的比较结果。过热、过流、过压保护功能由三端稳压芯片LM350内部提供。为了使电路在未加负载时仍处于线性工作状态,还要有一定预负载。预负载电流一般取:IR0=IOMax/(20-50)预负载电阻R6取220Ω,功率为2W。D8是为了防止引线较长使线路中出现反向感应电压而损坏电路。加上D8可使反向感应电压经过D8构成闭合回路,从而保护电路。电路中要获得较高精度的电流值需要有关键元件的精度和电路的合理性来决定,下面将对电路中关键元器件的选择进行介绍。1、调节器LM350的选择LM350A是可调节的三端正电压稳压器,在输出电压范围为1.2V到33V时能提供超过3.0A的电流。此稳压器非常易于使用,只需要两个外部电阻来设置输出电压。此外可有内部限流,热关断和安全区补偿是指基本能防止烧断保险丝。LM350服务于多种应用场合,包括局部稳压、卡上稳压。通过在调节点和输出之间接一个固定电阻,LM350能被用作精密的稳流器。(1)确保3.0A输出电流(2)输出在1.2V到33V之间可调节(3)负载跳帧率:典型0.1%(4)电源调整率:典型值0.005%/V(5)内部热过载保护(6)不随温度变化的内部短路电流限制(7)输出晶体管安全区域补偿(8)对高电压采取浮空工作(9)标准3引脚晶体封装(10)避免准备多种固定电压LM350A能提供极好的负载调整率,但为实现最优性能需要注意几点。编程电阻(本设计为R1)应在尽可能靠近稳压器处连接,使与参考电压有效串联的线路压降最小,避免调整率变差。本设计中LM350A作为恒流源模块中的核心部件起到稳流、确保输出、调整电流、过热、过流、过压保护等诸多功能。设计中LM350A局部电路如图3.2所示。图3.2恒流源电路中LM350A局部电路2、闭环反馈的第一级运放AD797(U5B)的选择 作为闭环反馈的第一级的运放,必须尽量减少噪声对恒流源的影响。AD797是模拟器件公司推出的具有优良噪声特性的音频带运算放大器,AD797的主要特点是低噪声()、低失真度()和高的转换速度(20V/µS),期满功率带宽为280kHz,它还具有输入失调电压为80µV(max),温漂为1µV/℃的优良特性。AD797的第8脚是一个为了减小失真的补偿端,通常在该脚和输出端之间连接一个几十pF的电容。AD797的输出电流较大,可达50mA(typ),对于低负载电阻和容性负载具有优良的驱动能力。其引脚排列图如图3.3所示。图3.3AD797引脚图由于AD797具有上述的优良特性,相对比其他的运放,更符合本设计的设计要求。运用AD797时需注意,在无信号时,其电流消耗稍大,达8.2mA(typ),且要有效地利用AD797的特性,就必须在低阻抗的情况下(信号源内阻小于1KΩ)使用该运算放大器,这是在设计中应当注意的。3、差分放大器OP07(U3B)的选择恒流源要不断校准负载电流,使之与设定电流值相符。即需要不断校准U5B放大的电压值,使之与STM32设定电流值转换的电压值相符,为电流源提供高精度的比较结果。高精度运放OP07即能满足设计的需要。OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。由于OP07具有非常低的输入失调电压(对于OP07A最大为25µV),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。OP07的特点如下:(1)超低偏移:150µV最大。(2)低输入偏置电流:1.8nA。(3)低失调电压漂移:0.5µV/℃。(4)超稳定,时间:2µV/month最大。(5)高电源电压范围:±3V至±22V。OP07的引脚图如图3.4所示。图3.4OP07引脚图OP07芯片引脚功能说明:
1和8为偏置平衡(调零端),2为反向输入端,3为正向输入端,4接电源负极,5空脚,6为输出,7接电源正极。图3.5OP07输入失调电压调零电路3.12数控宽范围调整、大电流输出恒流源电路设计中,通过D/A与精密运算放大器一起设定流过场效应管的,恒定电压源为D/A提供恒定的参考电压,这样,只要当场效应管工作在其线性区域内,就可根据所加的栅极电压来控制负载电流,原理如下:图3.6中,相对于D/A输出电压变化而变化,而参考电压又相对于地保持稳定。通过简单计算可知,调整D/A输出即可调整流过的电流,实现电流数控。由原理图可知,保持恒定电流源的精密度和稳定性,主要取决于恒定参考电压源和的综合精度和稳定性。电路的优点就是输出电流大,采用高分辨率的D/A便于输出电流的小步进调整,但关键在于场效应管的选择,放大器以及高精度电阻类型的确定和阻值确定。确定上述的因素后完成的设计图如图3.6所示。如图所示,电流输出管对于电流源要采取场效应管,因为三极管还有一个基极电流造成集电极和发射极电流不等,从而产生系统误差。本设计即采用如图3.6的设计,为实现电流的大范围调整,的压降不能太大,采用=1Ω的大功率精密电阻,放大器采用低成本LM324放大器(由正负电源供电,可实现从零调整),场效应管采用60N60。当流过60N60的电流较大时,其发热量可能会很大,可根据计算和实际情况确定其散热片,配风扇效果会更好。图3.6宽范围调整、大电流输出恒流源核心的电路图要防止由外部寄生参数引起的驱动电流振荡,这里的寄生参数是指场效应管栅极电容和回路电感。回路电感是栅极驱动电路中的电流所产生的电感。为消除分布电感引起的寄生振荡,可以采取以下措施:(1)在印刷电路板上,尽可能缩短放大器输出极与场效应管栅极之间走线的距离,一般要严格控制在1cm以内,甚至更短。(2)在MOSRET的栅极与驱动电路之间串联一个电阻。能够衰减栅极上出现的振荡,以限制驱动电流的峰值,防止栅极振荡。STM32F103VET6-LQFP100芯片中内嵌有12位D/A和A/D,可实现输出电流的连续可调。由图中可看到,负载串联了一个检测电阻,通过一级反馈放大电路与单片机内嵌A/D相连,向单片机反馈负载电流,并在液晶显示上显示出来。图3.7紧密基准电压源电路前面已经描述过,图3.6的电路的电压由单片机设定,单片机恒定电压源就由图3.7的电路提供。该电路的核心器件为TL431,TL431是一个有良好的热稳定性能的三端可调分流基准电压源。的输出电压用两个电阻就可以任意地设置从Vref(2.5V)到36V范围内的任何值。该器件的典型动态阻抗为0.2Ω,在很多应用中可以用它代替齐纳二极管。TL431的特性如下:可编程输出最高电压为36V;电压参考误差:±0.4%,典型值@25℃;地动态输出阻抗,典型0.22Ω;负载电流能力1.0mA-100mA;等效全范围温度系数50ppm/℃典型;温度补偿操作全额定工作温度范围;低输出噪声电压。TL431内部方框图如图3.8所示。图3.8TL431内部方框图数控电流源中,恒流源电路的设计是关键电路之一,对比两个电路可知,第一种电路相对较复杂,对器件的要求更高,采用硬件矫正负载电流,对硬件要求更高,但在程序上的复杂程度较第二种电路简单;第二种电路较简单,对器件要求相对较低,采用软件矫正负载电流,对硬件要求低,但对芯片和程序以及供电电路的稳定性依赖程度非常大。但第一种电路的所输出的电流范围和精度都不及第二种电路输出的电流,第二种电路的D/A如果足够高,还可以继续提高电路的精度,通过STM32的强大扩展功能,第二种电路有更大的改进和扩展的空间。通过实际的完成效果的对比,本设计采用第二种电路的设计。3.2数控部分数控部分主要由微处理器模块、键盘模块、显示模块。微处理器是整个数控部分的处理控制中心;片内A/D完成模拟信号到数字信号的转换;片内D/A完成数字信号到模拟信号的转换;键盘模块给用户提供控制接口;显示模块根据需要显示相应的电流值。数控部分主要完成以下几个任务:(1)响应用户的按键操作,保存用户设定的电流值。(2)控制A/D按照一定的周期将采样信号(图3.5中U5B的输出)数字化。(3)在微处理器内部根据用户设定值对采样数据进行处理。(4)将处理结果通过D/A转换为模拟信号,输出到恒流源差分比较器的正端,完成数控部分对恒流源部分的控制。(5)按照用户的需要显示相应的电流值。微处理器选STM32单片机。STM32是一种基于cortex-M3处理器内核的32位微处理器。STM32处理器内包含3个12位的ADC,满足取样精度及转换精度。在输出2000mA情况下,控制精度可达2000mA/212≈0.5mA。显示模块选用LCD1062液晶显示。键盘模块直接使用微处理器的通用I/O口。1、STM32的最小系统STM32芯片的外围电路的优劣影响了整个系统的性能,此电路的设计在本设计中按照官方典型推荐应用设计进行应用,STM32最小系统电路见附录A。2、键盘及液晶显示1602液晶也叫1602字符型液晶。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它有若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。1602采用标准的16脚接口,各引脚功能如表3.1所列。表3.1LCD1602引脚功能引脚名称功能说明1GND电源地2VCC5V电源正极3V0V0为液晶显示器对比度调整端4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器5RWRW为读写信号线,高电平进行读操作,低电平进行写操作6EN使能端7~14D0~D7D0~D7为8位双向数据端15BLA+背光正极16BLA-背光负极LCD1062液晶显示与STM32的接口电路如图3.9所示。图3.9LCD1062液晶显示键盘部分采用4×4按键。具有功能选择及输入数字等功能。键盘部分电路图如图3.10所示。图3.10数控模块键盘部分电路3.3供电电源供电电源的职能是满足各个模块的供电和稳定,需要专门的供电电路,本设计的供电电路主要应用到了固定集成三端稳压器的典型电路来为系统提供稳定的电压。3.3.1三端稳压器集成稳压器是指将不稳定的直流电压变为稳定的直流电压的集成电路。由于集成稳压器具有稳压精度高、工作稳定可靠、外围电路简单、体积小、重量轻等显箸优点,在各种电源电路中得到了普遍的应用。三端稳压器结构如图3.11所示。图3.11三端稳压器的内部电路这是一个输出正5V直流电压的稳压电源电路。IC采用集成稳压器7805。电路图如图3.12所示。图3.12固定三端稳压电路78xx系列集成稳压器是常用的固定正输出电压的集成稳压器,输出电压有5V、6V、9V、12V、15V、18V、24V等规格,最大输出电流为1.5A。它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。78xx系列集成稳压器为三端器件:1脚为输入端,2脚为接地端,3脚为输出端,使用十分方便。3.3.2供电电源电路电源部分使用单输入三输出变压器,将市电(220V/50Hz)转换为两路17V的交流电源。分别使用通用的三端稳压芯片7815、7805、AN1117将三路交流电源整流为系统所需的三种直流电源:+15V、-15V、+5V、3.3V。其中+15V电源为恒流源、运算放大器提供正电源;-15V电源为运算放大器提供负电源;+5V电源为数控部分提供工作电源。在完成-15V的供电的时候用到了ICL7660,它的作用是将电桥中产生的+15V电压转换为-15V电压,为设计中运放提供负电压。三种电源都设计了必要的保护电路、指示灯及预负载电路,以保证其正常、稳定地工作。供电电路图如图3.13所示。图3.13基于STM32的电流源系统的电源部分本模块中为单片机提供恒定的参考电压的恒定电压源已经在前面介绍过,此处就不再多介绍了。3.4本章小结本章主要对数控电流源的电路结构和实现方法做了简明的介绍,列出了关键电路的设计思想和方案,并完成关键电路方案的确定以及电路模块中重要元件的选型和电路设计,并提出了自己的设计思想,经过实际操作实验,设计的电路达到设计的要求。第4章基于STM32的数控电流源的程序设计一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。因此充分利用其内部丰富的硬件资源和软件资源。程序设计语言有三种:机器语言、汇编语言和高级语言。机器语言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(成为目标程序),计算机才能“看懂”,然后逐一执行。高级语言是面向问题和计算过程的语言,它可通过于各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快,也便于学习和交流。4.1主程序设计主程序流程图如图4.1所示。图4.1数控电流源主程序框图主程序构成无限循环,主要完成单片机初始化,关中断,菜单显示内容初始化,按键扫描,功能切换,计时等功能。主程序中,首先由初始化默认电流,然后显示系统所处状态;再判断键盘是否被按下,扫描键盘的操作;根据键盘的输入改变输出电流值。在程序中,控制的是电压值,需要通过公式转换成电流值显示到液晶显示上。负载的实际电流值由单片机内部D/A采集、处理、显示。4.2负载电流取样子程序设计图4.2为取样中断子程序流程,该程序段主要实现采集取样电阻的电流值,并将数值送到LCD显示模块中显示“实际负载电流值”。电流取样子程序流程图如图4.2所示。图4.2电流取样子程序流程图4.3键盘中断程序设计按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或者重复执行。现在用软件延时的方法来避开抖动阶段。在判断是否有键闭合后都延时5ms,按下键后再延时12ms就可以避免键盘的抖动。然后键码分析,执行相应的模块,显示后返回。键盘程序流程图如图4.3所示。图4.3键盘中断程序流图4.4LCD1602显示程序设计当LCD1602的寄存器选择信号RS为1时,选择数据寄存器;当LCD1602的读写选择线RW为0时,进行写操作;当LCD1602的使能信号EN置高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往LCD写入显示数据,LCD执行命令,判断执行是否完毕,如果没有执行完毕,返回到选择指令寄存器。如果执行命令完毕,显示数据,子程序返回。写数据到LCD子程序流程图如图4.4所示。图4.4写数据到LCD子程序流程图4.5本章小结本章主要完成了设计的程序流程,完成主程序、电流取样、键盘和显示部分的程序流程图的设计。设计中程序的设计是关键之一,系统的控制和显示部分都需要系统程序来完成。好的程序能让系统功能更加完善,运行速度更快,操作更加简便。完成程序流程后将要继续完成系统程序的编写。结束语现在市场上数控电流源的存在输出精度不高,功率密度比较低,带负载能力不强,体积大,价格较高,操作繁琐,工作状态不稳定等弊端,因此数控电源的主要发展方向是针对上述缺点不断改善。本设计是基于STM32的数控电流源的设计,即是针对以上的不足进行部分的改进,在设计中通过了解电流源的相关发展状况知道了数控电流源研究的目的和意义、数控电流源在国内外的发展状况等资料的收集;系统方案和主控芯片的确定、模块电路的设计和模块电路中关键元器件的选型、系统主程序和子程序的设计等。实现了输出精度为1%范围100mA-2000mA的直流电流,具有良好的人机界面,恒流源中可对输出的电流进行放大、反馈测量并与设定值进行比较完成恒流控制,在设计的过程中,恒流源部分要保证电流的恒流,在电路设计和元器件的选择上都要要求严格,恒流源部分选用LM350A稳压器通过在调节点和输出之间接一个固定电阻,LM350能被用作精密的稳流器来实现基本的恒流电路,通过小阻值的检测电阻完成负载电流的反馈检测经过低噪声运放AD797的第一次反馈放大电路和精密运放OP07与单片机设定值的比较调节的电路。这样就能保证输出负载实际电流与设定值相符。输出电流的步进操作和设定操作都由键盘操作完成,二者采取分立的方式:通过两个键的+/-操作完成步进/步减的操作;通过键盘将数值输入到单片机,经过转换和片内A/D进行对恒流源的电流值设定操作。这样就完成对电流的步进和设定操作。完成系统的全部设计,硬件电路和主程序的编写设计是两大重点,在本设计中都已完成,并已经完成检测,效果良好,系统能够完成既定目标,可完成输出宽范围的可调的稳定电流。此次设计过程中,我对STM32单片机的功能有了更深入的了解和认识到精密元器件的功能特性对电路设计的重要性。在完成设计任务之外也让我系统性地认识和全面地掌握了单片机相关技术,从本次毕业设计中我更加深刻地认识到理念来源于实际的含义。在和同学以及老师的就相关问题的互相讨论交流中,我认识到自己的很多不足,但在这些不足中我又学到了很多知识,使我的综合应用能力有了很大提高。
参考文献[1]罗耀华.电子测量仪器原理及应用(II)智能仪器[M].哈尔滨:哈尔滨工程大学出版社,2004.[2]欧伟明.电子信息系统设计[M].西安:西安电子科技大学出版社,2005.[3]刘守义.单片机应用技术[M].西安:西安电子科技大学出版社,2002.[4]童诗白,华成英.模拟电子技术基础[M].高等教育出版社,2003.[5]全国大学生电子设计竞赛[D].第四届全国电子设计竞赛获奖作品选编.北京理工大学出版社,2001.[6](美)詹姆斯·比格内尔、罗伯特·多诺万.数字电子学(英文版.原书第4版)[M].北京:机械工业出版社,2003.[7]康华光.电子技术基础(模拟部分)[M].北京:高等教育出版社,2006.[8]苏文平,任文颖.电子技术实践与制作教程[M].国防工业出版社,2007.[9]张毅刚,彭喜元.单片机原理与应用设计[M].北京:电子工业出版社2008.[10]张毅刚,彭喜元.单片机原理与应用设计[M].北京:电子工业出版社,2008.[11]何勇.光电传感器及其应用[M].北京:化学工业出版社,2004.[12]尚振东.智能仪器工程设计[M].西安:西安电子科技大学出版社,2008.[13]周航慈,朱兆优.智能仪器原理与设计[M].北京:北京航空航天大学出版社,2005.[14]谭浩强.C程序设计.北京:清华大学出版社,2006.[15]田泽.嵌入式系统开发与应用.北京:北京航天航空大学出版社,2005.[16]李英伟,王成儒等.USB2.0原理与工程开发.北京:国防工业出版社,2007.[17]康华光,陈大钦.电子技术基础(模拟部分).北京:高等教育出版社,2004.[18]王英.模拟电子技术基础.成都:西南交通大学出版社,2006.[19]马忠梅,单片机的C语言应用程序设计,北京航天航空大学出版社,2006.[20]S.L.Loyka.ASimpleFormulafortheGroundResistanceCalculation.IEEETrans.OnElectromagneticCompatibility,1999,41(2):152-154.[21]MocrochipTechnologyInc..Microchip2006ProductSelectorGuide,2006.[22]Jun-LianZhangandJian-XunJin.AnalysisofDCpowerTransmissionUsingHighT-cSuperconductingCables[J].JournalofElectronicScienceandTechnologyofChina,2008.[23]ARM—based32一bitMCUSTM32FlOlxxandSTM32Fl03xxfirmwarelibraryUsermanual,STMicroelectronics,2008.[24]STM32FlOxxxUSBdevelopmentKit,STMicroelectronics,2008.[25]STM32FlOlxxandSTM32F103xxadvancedARM-based32-bitMCUsReferencemanual,STMicroelectronics,2008.致谢经过长时间的努力,我的毕业设计和说明书的撰写已经接近尾声,也标志着大学生活尾声的临近。在毕业设计的过程中,由于经验的缺乏以及知识的局限性,有许多考虑不周全的地方,在选题、设计等方面,如果没有导师的指导,没有同学们的支持和帮助,单独完成这个设计,是不可能的。在说明书撰写完稿之际,我想借此机会对在完成毕业设计期间关心、帮助、支持和鼓励过我的老师、同学以及朋友们致以最诚挚的谢意和最衷心的祝福!首先我要感谢的是我的指导老师,在完成整个毕业设计的过程中,张老师给我提供了很大的帮助,在选题、设计以及修改说明书的各个环节里老师给我指出了很多错误,提出了很多宝贵意见,对于设计中存在的问题也是耐心的回答和指导,让我能够顺利的完成毕业设计。在此谨向张老师致以诚挚的谢意和崇高的敬意。其次要感谢的是所有在大学四年中教育指导过我的所有老师,你们传授给我的专业知识是我完成本设计的基础,也是日后踏入工作岗位的重要基石,对于老师们一丝不苟,兢兢业业的精神表示衷心的感谢。最后我还要向所有关心和支持我学习的朋友和同学们表示真挚的谢意!感谢你们对我的关心、关注和支持。附录附录A.STM32F103VET6-LQFP100芯片的最小系统电路图图A1STM32F103VET6-LQFP100芯片最小系统电路图图A2数控电流源的核心电路和供电电路附录A3数控电流源的键盘和液晶显示电路附录B.数控电流源的主程序(部分)while(1)//主循环{DAC->DHR12R1=0;STM32F103VET6_Chinese_str((320-16*17)/2,50,17,Chinese_Table_16x16_nan,charColor,Blue);STM32F103VET6_Chinese_str(70,90,3,Chinese_Table_16x16_ti,charColor,Blue);STM32F103VET6_Chinese_str(140,90,8,Chinese_Table_16x16_shu,charColor,Blue);STM32F103VET6_Chinese_str((320-16*15)/2,200,15,Chinese_Table_16x16_zun,charColor,Blue);if(!GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_5)){ Delay_ARMJISHU(100); while(!GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_5)); STM32F103VET6_Clear(Blue); exit_2=1; while(exit_2) //按*键进入功能循环{DAC->DHR12R1=0;STM32F103VET6_Chinese_str(0,10,6,Chinese_Table_16x16_1,charColor,Blue);STM32F103VET6_Chinese_str(0,40,6,Chinese_Table_16x16_2g,charColor,Blue);STM32F103VET6_Chinese_str(0,70,6,Chinese_Table_16x16_3,charColor,Blue);STM32F103VET6_Chinese_str(0,100,3,Chinese_Table_16x16_4,charColor,Blue);//STM32F103VET6_Chinese_str(0,130,2,Chinese_Table_16x16_5,charColor,Blue);//功能一:手动加减电压值if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_12)) { Delay_ARMJISHU(200);if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_12)){while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_12)); STM32F103VET6_Clear(Blue); exit=1; while(exit) {STM32F103VET6_Chinese_str(110,55,4,Chinese_Table_16x16_d,charColor,Blue); STM32F103VET6_PutStr_16x24(248,50,c4,1,charColor,Blue); a1=(vol+1)%10; a2=(vol+1-a1)/10;STM32F103VET6_PutChar_num(176,50,a2,charColor,Blue);STM32F103VET6_DrawPoint(200,50,charColor,Blue);//画一个点STM32F103VET6_PutChar_num(224,50,a1,charColor,Blue);if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)) //+ {Delay_ARMJISHU(300);if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)) { if(vol<99){ vol=vol+1; } while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)); } }if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)) //- { Delay_ARMJISHU(300); if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)) { if(vol>3) { vol=vol-1; while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)); } } }DAC->DHR12R1=(vol*40950-230)/1304;//检测过流 ADCConvertedValueLocal=ADCConvertedValue; Precent=(ADCConvertedValueLocal*100/0x1000); //算出百分比 Voltage=Precent*33; while(Voltage>500) { STM32F103VET6_Clear(Blue); while(1) {STM32F103VET6_Chinese_str(110,55,4,Chinese_Table_16x16_d,charColor,Blue);DAC->DHR12R1=0; a1=0; a2=0;STM32F103VET6_PutChar_num(176,50,a2,charColor,Blue);STM32F103VET6_DrawPoint(200,50,charColor,Blue);//画一个点STM32F103VET6_PutChar_num(224,50,a1,charColor,Blue);STM32F103VET6_PutStr_16x24(248,50,c4,1,charColor,Blue);STM32F103VET6_Chinese_str((320-16*10)/2,200,10,Chinese_Table_16x16_x,charColor,Blue);GPIO_SetBits(GPIO_DAC,DS1_PIN|DS2_PIN); //所有引脚置高电平 } } //退出按键,在所有的功能中都使用这种退出方法 if(!GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_5)) {Delay_ARMJISHU(300);if(!GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_5)) { while(!GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_5)); exit=0; vol=0; ili9320_Clear(Blue); } } }}} //功能2:自动加减电压值 (6号按键) if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_6)) { Delay_ARMJISHU(200); if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_6)) { exit=1; while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_6));/*功能2的定时器初始化*/ Timer_Config(); NVIC_Config();TIM_Cmd(TIM2,DISABLE); //起初是关闭的,当进入功能2后打开 STM32F103VET6_Clear(Blue);while(exit) { vol=vol_21;STM32F103VET6_Chinese_str(110,55,4,Chinese_Table_16x16_d,charColor,Blue);STM32F103VET6_PutStr_16x24(248,50,c4,1,charColor,Blue); a1=(vol+1)%10; a2=(vol+1-a1)/10; STM32F103VET6_PutChar_num(176,50,a2,charColor,Blue); STM32F103VET6_DrawPoint(200,50,charColor,Blue);//画一个点STM32F103VET6_PutChar_num(224,50,a1,charColor,Blue);//自加扫描 if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)&counter21) { flag2=1; Delay_ARMJISHU(200); if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)) { TIM_Cmd(TIM2,ENABLE); counter21=0; while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)); }} if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)&!counter21) { Delay_ARMJISHU(200); if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)) { TIM_Cmd(TIM2,DISABLE); counter21=1; while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)); } }//自减扫描 if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)&counter22) { flag2=0; Delay_ARMJISHU(200); if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)) { TIM_Cmd(TIM2,ENABLE); counter22=0; while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)); } }if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)&!counter22) { Delay_ARMJISHU(200); if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)) { TIM_Cmd(TIM2,DISABLE); counter22=1; while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)); } }DAC->DHR12R1=(vol*40950-230)/1304; //检测过流 ADCConvertedValueLocal=ADCConvertedValue;Precent=(ADCConvertedValueLocal*100/0x1000); //算出百分比 Voltage=Precent*33; while(Voltage>500) { STM32F103VET6_Clear(Blue); while(1) {STM32F103VET6_Chinese_str(110,55,4,Chinese_Table_16x16_d,charColor,Blue); DAC->DHR12R1=0; a1=0; a2=0; STM32F103VET6_PutChar_num(176,50,a2,charColor,Blue);STM32F103VET6_DrawPoint(200,50,charColor,Blue);//画一个点STM32F103VET6_PutChar_num(224,50,a1,charColor,Blue);STM32F103VET6_PutStr_16x24(248,50,c4,1,charColor,Blue);STM32F103VET6_Chinese_str((320-16*10)/2,200,10,Chinese_Table_16x16_x,charColor,Blue);GPIO_SetBits(GPIO_DAC,DS1_PIN|DS2_PIN); //所有引脚置高电平 } } //退出按键,在所有的功能中都使用这种退出方法 if(!GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_5)) { Delay_ARMJISHU(100); if(!GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_5)) {while(!GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_5)); exit=0; TIM_Cmd(TIM2,DISABLE); vol=0; vol_22=0; ili9320_Clear(Blue); }} }}} //功能3:输入电压数值7号功能键 if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7)) { Delay_ARMJISHU(100); if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7)) { exit=1; while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7)); ili9320_Clear(Blue); while(exit) { num31=num33; num32=num34; STM32F103VET6_Chinese_str(10,12,12,Chinese_Table_16x16_q,charColor,Blue);STM32F103VET6_Chinese_str(110,55,4,Chinese_Table_16x16_d,charColor,Blue);STM32F103VET6_DrawPoint(200,50,charColor,Blue);//画一个点STM32F103VET6_PutStr_16x24(248,50,c4,1,charColor,Blue);//显示单位:vSTM32F103VET6_PutChar_num(176,50,num32,charColor,Blue); //显示十位STM32F103VET6_PutChar_num(224,50,num31,charColor,Blue); //显示个位 DAC->DHR12R1=(vol*40950-230)/1304; //先输入十位上的数键位,切换键,个位按键,确认键if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)) {Delay_ARMJISHU(300);if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)) { while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_9)); counter_3++; } } if((!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8))) { Delay_ARMJISHU(300);if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)) {while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)); if(!(counter_3%2)) { if(num33<10)num33=num33+1; if(num33>=10)num33=0; } if(counter_3%2) {if(num34<10)num34=num34+1;if(num34>=10) num34=0; } } }if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10)) //确认键 { Delay_ARMJISHU(300); if(!GPIO_ReadInputDataB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国商品交易行业市场全景评估及投资前景展望报告
- 2025年镀锡铜包铝行业深度研究分析报告
- 2025-2031年中国贴片材料行业发展运行现状及发展趋势预测报告
- 2025年中国网上药店行业发展趋势预测及投资战略咨询报告
- 二零二四年度住宅小区隔音降噪工程维护合同样本3篇
- 2025年度智能穿戴设备出样及市场拓展合同4篇
- 2025年茶叶原料种植基地建设项目合同4篇
- 2020-2025年中国酒吧行业发展潜力分析及投资方向研究报告
- 2024绿化养护合同服务内容具体说明
- 2025年度生物制药研发二零二五版合作协议4篇
- 桥梁监测监控实施方案
- 书籍小兵张嘎课件
- 艺术哲学:美是如何诞生的学习通超星期末考试答案章节答案2024年
- 北京海淀区2025届高三下第一次模拟语文试题含解析
- 量子医学治疗学行业投资机会分析与策略研究报告
- 多重耐药菌病人的管理-(1)课件
- (高清版)TDT 1056-2019 县级国土资源调查生产成本定额
- 环境监测对环境保护的意义
- 2023年数学竞赛AMC8试卷(含答案)
- 神经外科课件:神经外科急重症
- 2023年十天突破公务员面试
评论
0/150
提交评论