单相正弦波逆变电源摘要:本单相正弦波逆变电源的设计,以12V蓄电池作为输入,输出为36V、50Hz的标准正弦波交流电.该电源采用推挽升压和全桥逆变两级变换,在控制电路上,前级推挽升压电路采用SG3525芯片控制,闭环反馈;逆变部分采用驱动芯片IR2110进行全桥逆变,采用U3990F6完成SPWM的调制,后级输出采用电流互感器进行采样反馈,形成双重反馈环节,增加了电源的稳定性;在保护上,具有输出过载、短路保护、过流保护、空载保护等多重保护功能电路,增强了该电源的可靠性和安全性;输出交流电压通过AD637的真有效值转换后,再由STC89C52单片机的控制进行模数转换,最终将电压值显示到液晶12864上,形成了良好的人机界面.该电源很好的完成了各项指标,输入功率为46.9W,输出功率为43.6W,效率达到了93%,输出标准的50Hz正弦波.关键词:单相正弦波逆变 DC-DC DC-AC SPWMAbstract: The single-phase sine wave inverter power supply design, battery as a 12V input and output for the 36V, 50Hz standard AC sine wave. The use of push-pull power booster and two full-bridge inverter transform,in the control circuit, the pre-boost push-pull circuit using SG3525 chip control,closed-loop feedback;inverter driver IC IR2110 in part to the use of full-bridge inverter using SPWM modulation U3990F6 pleted,level after the use of current transformer output sampling feedback. The feedback link in the formation of a double and increase the stability of power.In protection, with output overload, short circuit protection, overcurrent protection, the protection of multiple no-load protection circuit, which enhancing the reliability of the power supply and safety.AC voltage output of the AD637 True RMS through conversion, and then from the control of single-chip STC89C52 analog-digital conversion, the final value of the voltage to the liquid crystal display 12864 on the formation of a good man-machine interface. The pletion of the power good indicators, input power to 46.9W, output power of 43.6W, the efficiency reached 93%, 50Hz sine wave output standards.Key words: Single-phase sine wave inverterDC-DCDC-ACSPWM目录1.系统设计41.1设计要求41.2总体设计方案41.2.1设计思路41.2.2方案论证与比较51.2.3系统组成82.主要单元硬件电路设计92.1DC-DC变换器控制电路的设计 92.2DC-AC电路的设计102.3 SPWM波的实现 102.4 真有效值转换电路的设计112.5 保护电路的设计12 2.5.1 过流保护电路的设计 12 2.5.2 空载保护电路的设计13 2.5.3 浪涌短路保护电路的设计14 2.5.4 电流检测电路的设计152.6 死区时间控制电路的设计152.7 辅助电源一的设计152.8 辅助电源二的设计152.9 高频变压器的绕制172.10 低通滤波器的设计183.软件设计183.1 AD转换电路的设计183.2液晶显示电路的设计 194.系统测试204.1测试使用的仪器204.2指标测试和测试结果214.3结果分析245.结论25参考文献25附录1 使用说明25附录2 主要元器件清单25附录3 电路原理图与印制板图28附录4 程序清单391. 系统设计1.1设计要求制作车载通信设备用单相正弦波逆变电源,输入单路12V直流,输出220V/50Hz.满载时输出功率大于100W,效率不小于80%,具备过流保护和负载短路保护等功能.1.2总体设计方案1.2.1设计思路题目要求设计一个车载通信设备用单相正弦波逆变电源,输出电压波形为正弦波.设计中主电路采用电气隔离、DC-DC-AC的技术,控制部分采用SPWM〔正弦脉宽调制〕技术,利用对逆变原件电力MOSFET的驱动脉冲控制,使输出获得交流正弦波的稳压电源.1.2.2方案论证与比较⑴ DC-DC变换器的方案论证与选择方案一:推挽式DC-DC变换器.推挽电路是两不同极性晶体管输出电路无输出变压器〔有OTL、OCL等〕.是两个参数相同的功率BJT 管或MOSFET管,以推挽方式存在于电路中,各负责正负半周的波形放大任务.电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小效率高.推挽输出既可以向负载灌电流,也可以从负载抽取电流.推挽式拓扑结构原理图如图1.2.1所示.图1.2.1 推挽式拓扑结构图方案二:Boost升压式DC-DC变换器.拓扑结构如图1.2.2 所示.开关的开通和关断受外部PWM信号控制,电感L将交替地存储和释放能量,电感储能后使电压泵升,而电容可将输出电压保持平稳,通过改变PWM控制信号的占空比可以相应实现输出电压的变化.该电路采取直接直流升压,电路结构较为简单,损耗较小,效率较高.图1.2.2 Boost电路方案比较:方案一和方案二都适用于升压电路,推挽式DC-DC变换器可由高频变压器将电压升至任何值.Boost升压式DC-DC变换器不使用高频变压器,由12V升压至312V,PWM信号的占空比较低,会使得Boost升压式DC-DC变化器的损耗比较大.所以采用方案一.〔2〕DC-AC变换器的方案论证与选择方案一:半桥式DC-AC变换器.在驱动电压的轮流开关作用下,半桥电路两只晶体管交替导通和截止,它们在变压器T原边产生高压开关脉冲,从而在副边感应出交变的方波脉冲,实现功率转换.半桥电路输入电压只有一半加在变压器一次侧,这导致电流峰值增加,因此半桥电路只在500W或更低输出功率场合下使用,同时它具有抗不平衡能力,从而得到广泛应用.半桥式拓扑结构原理图如图1.2.3所示.图1.2.3 半桥式拓扑结构图方案二:全桥DC-AC变换器.全桥电路中互为对角的两个开关同时导通,而同一侧半桥上下两开关交替导通,将直流电压成幅值为的交流电压,加在变压器一次侧.改变开关的占空比,也就改变了输出电压.全桥式电路如图1.2.4所示.图1.2.4 全桥式电路方案比较:方案一和方案二都可以作为DC-AC变换器的逆变桥,由两者的工作原理可知,半桥需要两个开关管,全桥需要四个开关管.半桥和全桥的开关管的耐压都为,而半桥输出的电压峰值是,全桥输出电压的峰值是,所以在获得同样的输出电压的时候,全桥的供电电压可以比半桥的供电电压低一半.出于这点的考虑,决定采用方案二.〔3〕辅助电源的方案论证与选择方案一:采用线性稳压器7805.方案二:采用Buck降压式DC-DC变换器.方案比较:方案一的优点在于可以使用很少的元器件构成辅助电源一,但是效率较低.方案二的优点在于效率高达90%,缺点是需要的元器件多,且成本较高.由于辅助电源一会影响到整个系统的效率,所以采用方案二.图1.2.5 直接数据处理框图方案二:使用电流传感器加真有效值转化器以与ADC对电流进行采样读数.利用电流传感器和电阻将电流转换成电压输出,经AD637进行真有效值转换后,由ADC0832进行读数, 1.2.3 系统组成系统方框图如图1.2.7所示,先采用DC-DC变换器把12V蓄电池的电压升至312V,保证输出真有效值为36V的正弦波不出现截止失真和饱和失真.输出电压反馈采用调节SPWM信号脉宽的方式.该系统采用两组相互隔离的辅助电源供电,一组供给SPWM信号控制器使用,另外一组供给输出电压、电流测量电路使用,这样避免了交流输出的浮地和蓄电池的地不能共地问题.因为SPWM控制器输出的SPWM信号不含死区时间,所以增加了死区时间控制电路和逆变桥驱动电路.空载检测电路使得当没有负载接入时,让系统进入待机模式,当有负载接入时,才进行逆变工作模式.同时,空载检测电路也作为过流保护的采样点.输出电流检测使用电流互感器和真有效值转换芯片AD637实现.输出电压也使用AD637进行RMS-DC转换后,由ADC采样后分析,在液晶屏幕上显示.图1.2.7 系统组成图2. 单元硬件电路设计2.1 DC-DC变换器控制电路的设计DC-DC变换器控制电路如图2.1.1所示.SG3525是电流控制型PWM控制器,所谓电流控制型脉宽调制器是按照接反馈电流来调节脉宽的.可以补充一些SG3525芯片资料〔内部结构、封装、引脚端功能〕在脉宽比较器的输入端直接用流过输出电感线圈的信号与误差放大器输出信号进行比较,从而调节占空比使输出的电感峰值电流跟随误差电压变化而变化.由于结构上有电压环和电流环双环系统,因此,无论开关电源的电压调整率、负载调整率和瞬态响应特性都有提高,是目前比较理想的新型控制器.和设定了PWM芯片的工作频率,计算公式为.为死区时间编程电阻.,构成了电压反馈回路.,,构成了频率补偿网络.为软启动时间设定电容.图2.1.1 DC-DC变换器控制电路图2.2 DC-AC电路的设计全桥逆变电路图如2.2.1所示.电路采用两个半桥驱动芯片IR2110分别驱动全桥的两边场效应管IRF540按驱动信号SPWM波交替导通,输出功率放大的SPWM波.可以补充一些IR2110芯片和IRF540资料〔内部结构、封装、引脚端功能〕图2.2.1 DC-AC电路图2.3 SPWM波的实现〔1〕SPWM波的原理在进行脉宽调制时,使脉冲系列的占空比按正弦规律来安排.当正弦值为最大值时,脉冲的宽度也最大,而脉冲间的间隔则最小,反之,当正弦值较小时,脉冲的宽度也小,而脉冲间的间隔则较大,这样的电压脉冲系列可以使负载电流中的高次谐波成分大为减小,称为正弦波脉宽调制.图2.3.1 与正弦波等效的矩形脉冲序列波形〔2〕实现方法U3990是数字化的、专为车载、太阳能、风力、数码发电机而设计的纯正弦波单相逆变电源主控芯片,它不仅可以输出高精度的SPWM正弦波脉冲序列,还可以实现稳压、保护、空载时自动休眠等功能,并且具备LED指示灯驱动、蜂鸣器控制、逆变桥控制引脚,从而可以利用该芯片组成一个性能优良的逆变电源系统.U3990 的内部构成主要有:正弦波发生器、双极性调制脉冲产生逻辑、50Hz〔或 60Hz〕时基、电压反馈 / 短路检测、正弦波峰值调压稳压单元、外部扩展的保护响应逻辑、负载检测、过温检测、电池电压测量、逆变控制、指示灯控制、蜂鸣器控制、抗干扰自恢复单元构成.整个电路封装成一个18引脚IC〔DIP18〕,其引脚图如图2.3.2所示.图2.3.2 U3990引脚图可以补充一些U3990芯片资料和电路〔内部结构、封装、引脚端功能〕2.4 真有效值转换电路的设计真有效值转换电路采用高精度的AD637芯片,可测量的信号有效值高达7V,精度优于0.5%,3dB带宽为8MHz,可对输入信号的电平以dB形式表示.可以补充一些AD637芯片资料和电路〔内部结构、封装、引脚端功能〕其应用电路如图2.4.1所示.逆变电源的输出电压与电流经AD637进行有效值变换后的模拟电压信号送A/D转换器AD0832,由STC89C52控制AD0832进行模/数转换,并对转换结果进行运算处理.为输出电压经 5倍分压后的输入.为输出电压经5倍分压后的真有效值电压输出口.最终输出电压真有效值可由下式决定.. 〔2.4.1〕为电流传感器TA1016-2对输出电流采样转化为电压后的输入口,为输出电流转换为电压后的真有效值输出口.最终输出电流真有效值可由下式决定. 〔2.4.2〕图2.4.1 AD637构成的真有效值转换电路2.5 保护电路的设计2.5.1过流保护电路的设计过流保护电路如图2.5.1所示.此电路是过流保护电路,其中100kΩ电阻用来限流,通过比较器LM311对电流互感器采样转化的电压进行比较,LM311的3脚接一10kΩ电位器来调比较基准电压,输出后接一100Ω的电阻限流它与后面的220µF的电容形成保护时间控制.当电流过流时比较器输出是高电平产生保护,使SPWM不输出,控制场效应管关闭,等故障消除,比较器输出低电平,逆变器又自动恢复工作.图2.5.1 过流保护电路图2.5.2空载检测电路的设计空载检测电路图如图2.5.2所示.使用电流互感器检测电流输出,当没有电流输出时,使三极管截止 ,从而使RS_CK为高电平,停止输出SPWM波.8s后,再输出一组SPWM,若仍为空载,则继续上述过程.若有电流输出,使导通,从而使RS_CK为低电平,连续输出SPWM波形,逆变器正常工作.图2.5.2 空载检测电路图2.5.3浪涌短路保护电路的设计浪涌短路保护电路原理图如图2.5.3所示.此电路是短路保护电路,用0.1Ω进行采样电压,通过470kΩ电阻得到电流,此电流流过光电耦合器,当电流高于光藕内二级管导通电流时光藕输出端导通,U3990的10脚变成低电平,使SPWM波不输出,关闭场效应管,形成保护,此过程非常快,当故障排除后,光电耦合器输出关断,逆变器正常工作.图2.5.3 浪涌短路保护电路原理图2.5.4电流检测电路的设计图2.5.4是电流检测电路,通过电流互感器采样输出电流,通过一个390Ω的电阻转化成电压值,在用AD采样进单片机,由12864液晶显示电流.图2.5.4 电流检测电路图2.6 死区时间控制电路的设计图2.6.1是死区时间设置电路,通过用数字电路延时实现死区时间设置,很显明获得死区时间的方法是驱动信号的下降延不延时,只延时驱动信号的上升延,电路中采用了74HC08的与门逻辑电路集成芯片,为了使波形最小失真,死区时间设为150ns,电阻选47kΩ,电容选30pF.图2.6.1 死区时间控制电路图2.7辅助电源一的设计图2.7.1是辅助电源一的电路图,由前级12V蓄电池直接供电,采用Back电路拓扑结构的开关电源,使用的是MAX1776电源管理芯片,它是集成PWM产生电路和场效应管于一体的电源芯片,电路中调节电位器可调节反馈,从而控制输出.它的效率达到95%符合节能的要求,最高工作频率是200kHz.其中输出电压的计算公式为: <2.7.1>输出电感的计算公式为: <2.7.2>式中,为导通周期,单位为s.为输出电流,单位为A.图2.7.1 辅助电源一原理图2.8 辅助电源二的设计辅助电源二的硬件电路图如图2.8.1所示,采用两节9V电池串联后,中间抽头作为地,经两个电容滤波后可获得±9V电压输出,给AD637供电,+9V电压处再添加一个7805稳压电路,可获得+5V电压输出,给单片机以与液晶显示器,ADC供电.图2.8.1 辅助电源二的电路图2.9 高频变压器的绕制根据设计要求,依次根据公式计算参数.⑴计算峰值磁通. <2.9.1>其中为磁芯有效截面积,的单位为mT,的单位为,的单位为.为了避免偏磁的现象发生,设计时取值为0.32mT,较低于额定值.为77,经计算,的值为24.64.⑵计算每伏最佳匝数. <2.9.2> <2.9.3> 其中为导通时间,D为占空比,为频率.==11.16. 〔2.9.4〕==0.453匝/伏 〔2.9.5〕⑶计算原边绕组匝数. <2.9.6>取为10V,经计算,的值为4.53,取5匝.⑷计算副边绕组.① V=1.08×<1.1<2.9.7>为要求输出电压,为二极管和副边绕组压降.此处=51V,=1.2V,得为61.884V.②计算副边匝数. <2.9.8>取=61.884V,所以的值为28.033匝,此处取28匝.⑸选择导线尺寸和线圈布局.初级采用0.35直径的漆包线8线并绕5匝,次级采用0.35mm直径的漆包线2线并绕28匝.2.10 低通滤波器的设计低通滤波器原理图如图2.10.1所示.低通滤波器采用一阶无源LC低通滤波器,低通滤波器L、C的取值可由下式得到.<2.10.1><2.10.2>为了避免磁环电感饱和,Q值取0.1,截止频率为3.5kHz,经计算,C的值为1.13µF,实取0.68µF.L为3.04mH,实取2.36mH.图2.10.1 低通滤波器原理图3. 软件设计3.1 ADC0832的控制程序的设计ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片.它体积小,兼容性强,性价比高.正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI.但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用.当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意.当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束.此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号.在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号.在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能.当此2位数据为"1"、"0"时,只对CH0 进行单通道转换.当2位数据为"1"、"1"时,只对CH1进行单通道转换.当2位数据为"0"、"0"时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入.当2位数据为"0"、"1"时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入.ADC0832工作时序图如图3.1.1所示.图3.1.1 ADC0832工作时序图 ADC0832的应用原理图如图3.1.2所示.ADC0832的接线图比较简单,将D0和DI短接,CLK,和D0分别与STC89C52 单片机的端口连接.CH0和CH1分别为电压输入通道0和通道1,此处用到通道0来测量逆变电源输出的电压.图3.1.2 ADC0832应用原理图3.2 液晶显示驱动的设计开发仿真软件使用Keil uVision2,C语言编程.采用YJD12864C—1〔汉字图形点阵液晶显示模块〕,可显示汉字与图形,内置8192个中文汉字〔16X16点阵〕、128个字符〔8X16点阵〕与64X256点阵显示RAM〔GDRAM〕,显示内容为128列×64行.该模块有并行和串行两种连接方法,在本设计中采用并行连接方法.该部分利用STC89C52单片机来控制液晶显示,显示输出电压.程序流程图如图3.2.1所示.图3.2.1 程序流程图4.系统测试4.1 测试使用的仪器测试仪器与使用设备如表4.1.1所示.表4.1.1 测试仪器与设备序号名称、型号、规格数量备注1TDS1012数字存储示波器〔60MHz、1.0GS/s〕1泰克科技〔中国〕##2UT70A数字万用表1优利德##3YB33150函数/任意波信号发生器〔15MHz〕1##固纬电子##4.2 指标测试和测试结果在测试前,先对整机进行调试,首先把接入跳线帽,使得系统进入调试状态,调节RP1,使DC-DC变换器输出电压为52V,然后调节 使DC-AC变换器输出真有效值电压为36V.然后取下跳线帽,在输出端接入1个10Ω电阻,调节 使DC-AC的输出电压真有效值为20V,得到的输出电流为2A,调节使得,在输出电流为2A的时候系统实现过流保护,此时现象为蓝灯闪烁,蜂鸣器发生间断的报警声.然后断开负载,接上跳线帽,把DC-AC的输出电压调到36V真有效值输出,取下跳线帽.此时,系统调试完毕.4.2.1 输出正弦波的测试将示波器表笔接到输出端,可以观察到标准的50Hz的正弦波波形,无明显失真.其波形图如4.2.1所示.图4.2.1 50Hz正弦波波形图4.2.2输出功率与效率的测试〔1〕定义:即为电源把其输入有功功率转换为有效输出功率的能力.〔2〕测试方法:测试方框图如图4.2.2所示.图4.2.2 效率测试方框图① 先如图4.2.1布置好测试电路.② 各路输出电压、电流的测量应同时进行.③ 开启所有设备,记录输入功率数值与各输出电压、电流值.④ 计算出输出功率值..⑤ 效率,为输入功率.〔3〕测试结果与分析:表4.2.1 效率测试结果电压〔V〕电流功率输入12.143.8646.9输出36.21.20643.6由上表可计算得.4.2.3 过流保护的测试(1) 定义:当输出电流大于设定保护值时,系统自动关闭输出,形成过流保护.当输出 电流低于设定保护值时,系统自行恢复正常工作状态.〔2〕测试方法:测试方法如图4.2.3所示.在输出端接入3个串联的10Ω的电阻作为负载.在系统正常工作之后,短路其中一个或两个电阻来模拟过流状况的发生.观察系统是否进行过流保护.图4.2.3 过流保护测试框图〔3〕测试结果与分析:开机后蜂鸣器鸣叫一声,系统进入逆变工作状态,工作指示灯亮〔红色〕.此时输出电流真有效值为1.2A,系统工作正常.短路其中的一个10欧姆电阻,此时输出电流真有效值为1.8A,系统仍正常工作.再短路负载的任意两个电阻,系统检测到过流信号后,在1s左右后开始进入过流保护状态,此时过流保护指示灯〔蓝色〕闪烁,蜂鸣器间断性的鸣叫.取消那两个电阻的短路状态后,系统又恢复逆变工作状态.4.2.4 空载待机功能测试〔1〕定义:当无负载接入时,系统关闭输出进入待机模式.当有负载接入时,系统进入正常工作状态.〔2〕测试方法:接入负载然后断开负载,观察系统的输出状态.〔3〕测试结果与分析:输出端不接入负载,开机5s后系统进入待机状态,此时不进行逆变输出,工作指示灯状态〔红色〕为间断性的闪烁.接入负载后,系统就开始进入逆变工作状态,此时工作指示灯〔红色〕常亮.待机状态时,每隔0.5s,输出一个周期的正弦波,若仍无输出电流〔即无负载输入〕,则继续保持待机状态.空载时的输出波形图如图4.2.4所示.图4.2.4 空载时的输出波形4.2.5 输出电压范围的测试〔1〕定义:输出电压的最大值与最小值.〔2〕测试方法:调节电压反馈回路的参数,观察输出电压的大小.〔3〕测试结果:接入30Ω负载,调节,输出电压可在20到36之间变化.4.3 结果分析经过测试后,题目的基本要求都已完成,各项指标都完成的比较好.在输出功率为43.6W的情况下,效率达到了93%.同时该电源还具有短路保护,空载保护,过流保护的功能.在所测试的项目中,电流显示功能没有成功,原因是AD637部分输出与输入不成线性比例关系,而电流互感器输出是正确的.而电压显示部分,因为AD637的输入信号较大〔V级〕,所以输入输出基本成线性比例关系.在重载输出的时候,输出波形失真较严重,原因是前级DC-DC的输出功率不足,又因为在效率测试的时候,效率较高,功率器件均无发热的现象,所以判断是变压器的匝比低了.只要提高变压器的匝比就可以解决.5. 结论 该单相正弦波逆变电源的输入为12VDC,输出为36V/50Hz交流电.该设计基本完成了各项要求,输出功率大于40W,效率达到了93%.同时该电源具有短路保护,空载保护,过流保护,过载保护的功能,增强了电源的安全性和稳定性.但是设计中没有过压保护和欠压保护等功能,所以在今后还要继续研究各种保护电路的实现方法.测试后发现到,在DC-DC电路中,变压器的匝比制作的稍微少了一点,若增加副边匝比5匝,则可以增大输出功率,降低输出正弦波的失真.该逆变电源的输出功率和电流都较小,在以后的逆变器的制作中,争取能做到1000W以上的逆变电源.参考文献[1] 黄智伟.全国大学生电子设计竞赛系统设计[M].:航空航天大学,2006.[2] 黄智伟.全国大学生电子设计竞赛技能训练[M].:航空航天大学,2006.[3] 康华光.电子技术基础模拟部分[M].:高等教育,2006.[4] 康华光.电子技术基础数字部分[M].:高等教育,2006.[5]徐德宏.开关电源设计指南[M].:机械工业,2004.[6] 刘胜利.现代高频开关电源实用技术[M].:电子工业,2001. [7] 王兆安,黄俊.电力电子技术[M].:机械工业,2008.附录1 使用说明〔1〕输入端接入12V的蓄电池后,蜂鸣器短鸣一声,若电源未接入负载,则系统会自动进入待机状态,此时红色工作指示灯闪烁.若接入了负载,系统进入逆变工作状态,红色指示灯长亮.〔2〕负载不可低于10Ω.〔3〕输入电压不可高于18V,否则会烧坏芯片.附录2 主要元器件清单附录2表1 主要元器件清单序号名称型号数量1单片机STC89C5212模数转换器ADC083213真有效值转换芯片AD63724电源管理芯片SG352515SPWM单片机U3990F616与门74HC0817非门74HC1418比较器LM31119场效应管驱动芯片IR2110210光电藕合器TLP521111整流桥DB107G212电源管理MAX1776113场效应管IRF540414场效应管IRF3205215三极管9014116三极管8050117二极管1N4007218二极管1N4148119二极管HER107320电解电容47uF/100V1021CBB电容0.1µF2222电解电容10µF223CBB电容0.01µF424瓷片电容33pF425CBB电容0.22µF126电解电容47µF/25V127电解电容220µF/25V128CBB电容0.001µF129CBB电容0.68µF230CBB电容2.2µF/680V131电解电容220µF/10V132电解电容4.7µF133瓷片电容20 pF234瓷片电容30 pF235晶振20M136晶振11.05926MHz137发光二极管红色138发光二极管篮色139电流互感器TA1016—2240电感2.3mH241电感10µH142电感90µH143蜂鸣器/144电阻10Ω845电阻100Ω446电阻150Ω247电阻200Ω148电阻0.1Ω/3W149电阻1kΩ750电阻4.7 kΩ451电阻10 kΩ852电阻15 kΩ253电阻20 kΩ454电阻36 kΩ155电阻2.2 kΩ256电阻100 kΩ657电阻100 kΩ/1W258电阻47 kΩ459电阻2M Ω160精密电位器500 kΩ261精密电位器20 kΩ162精密电位器10 kΩ1附录3 电路原理图与印制板图附录3图1 DC-DC电路原理图附录3图2 DC-DC电路印制板图元件布局图附录3图3 DC-DC电路印制板图底层图附录3图4 DC-AC电路原理图附录3图5 DC-AC电路印制板图元件布局图附录3图6 DC-AC电路印制板图顶层图附录3图7 DC-AC电路印制板图底层图附录3图8 DC-AC电路控制板印制板图元件布局图附录3图9 DC-AC控制板印制板图顶层图附录3图10 DC-AC电路控制板印制板图底层图附录3图11 真有效值转换电路原理图附录3图12 真有效值转换电路印制板元件布局图附录3图13 真有效值转换电路印制板底层图附录3图14 单片机与外围电路原理图附录3图15 单片机与外围电路印制板元件布局图附录3图16 单片机与外围电路印制板底层图附录4 程序清单文件名:ad12864.C功 能:完成对输出电压与电流的采样,并计算出功率,同时在液晶上显示频率、电压、电流与功率的大小.最后修改时间:20##8月15日#include #include #define uint unsigned int#define uchar unsigned char#define _Nop<> _nop_<>#define nop<> _nop_<>//--------------------------------------------sbit ADC0832_DIO = P1^0; /*定义ADC控制端口*/sbit ADC0832_CLK = P1^1; sbit ADC0832_CS = P1^2;//---------------------------------------------sbit RS = P2^2; //H=data; L="mand"; /*定义LCD12864控制端口*/sbit RW = P2^3; //H=read; L="write";sbit E = P3^2; //input enable;sbit PSB= P3^3; //H=并口; L="串口";sbit RST= P3^5; //Reset Signal 低电平有效sbit busy=P0^7; //lcd busy bit#define lcd_data_port P0/*以下是LCD12864驱动程序*/void lcd_delay /*LCD12864 延时*/{ uchar j;while{ for {;} } } void lcd_busy_wait /*检测忙信号*/{ P0 = 0xff; RS = 0; RW = 1; E = 1; while; E = 0;}void lcd_mand_write /*LCD12864 命令字写入*/{ lcd_busy_wait<>; RS = 0; RW = 0; E = 0; lcd_data_port = mand; _Nop<>; _Nop<>; E= 1; _Nop<>; _Nop<>; E = 0; }void lcd_system_reset<> /*LCD12864 初始化*/{ RST = 1; PSB = 1; lcd_delay<20>; lcd_mand_write<0x30>; lcd_delay<100>; lcd_mand_write<0x30>; lcd_delay<50>; lcd_mand_write<0x30>; lcd_delay<10>; lcd_mand_write<0x01>; lcd_mand_write<0x06>; lcd_mand_write<0x0c>; lcd_data_port = 0xff; /*释放数据端口*/ }void lcd_char_write /*LCD12864 字符写入*/{ uchar xy_pos; if<=8>||=4> > return; /*X位置超出显示范围退出*/ if xy_pos = 0x80 + x_pos; else if xy_pos = 0x90 + x_pos; /*计算转换地址*/ else if xy_pos = 0x88 + x_pos; else if xy_pos = 0x98 + x_pos; lcd_mand_write; /*命令字写入*/ lcd_busy_wait<>; RS = 1; RW = 0; lcd_data_port = lcd_dat; E= 1; _Nop<>; _Nop<>; E=0; lcd_data_port = 0xff; /*释放数据端口*/} void lcd_char_write1 /*LCD12864汉字写入*/{ uchar xy_pos; if<=8>||=4> > return; /*X位置超出显示范围退出*/ if xy_pos = 0x80 + x_pos; else if xy_pos = 0x90 + x_pos; /*计算转换地址*/ else if xy_pos = 0x88 + x_pos; else if xy_pos = 0x98 + x_pos; lcd_mand_write; lcd_busy_wait<>; RS = 1; RW = 0; lcd_data_port = lcd_datH; E= 1; _Nop<>; _Nop<>; E=0; lcd_data_port = 0xff; /*释放数据端口*/ lcd_busy_wait<>; RS = 1; RW = 0; lcd_data_port = lcd_datL; E= 1; _Nop<>;_Nop<>;E=0; lcd_data_port = 0xff; /*释放数据端口*/}/*以下是ADC0832驱动程序*/uchar ADC0832_Read{ /*读取ADC的 CH 通道电压值,ADC作为2路单独电压输入*/ uchar i; uchar ADC_buff=0; ADC0832_CS = 1; ADC0832_DIO = 1; /*启动位*/ ADC0832_CLK = 0; ADC0832_CS = 0; nop<>; ADC0832_CLK = 1; nop<>; ADC0832_CLK = 0; ADC0832_DIO = 1; /*送 SGL/DIF 位 */ nop<>; ADC0832_CLK = 1; nop<>; ADC0832_CLK = 0; if ADC0832_DIO = 0; /*送转换通道值*/ else ADC0832_DIO = 1; ADC0832_CLK = 1; nop<>; ADC0832_CLK = 0; nop<>; ADC0832_DIO = 1; /*释放DIO端口,转由ADC控制*/ for{ nop<>; ADC0832_CLK = 0; nop<>; ADC0832_CLK = 1; nop<>; if ADC_buff=ADC_buff+1; /*读取8位数据*/ ADC_buff=ADC_buff<<1; } nop<>; nop<>; ADC0832_CS = 1; ADC0832_CLK = 1; return ADC_buff; /*返回转换值*/ } unsigned int ADC0832da_to_Volage{ /*将输入的数据转换成方便的电压值*/ /*转换公式 volage=da*Vref/255 其中Vref为4.95 */ unsigned int Volage; float tt; tt=da*4.95/255; Volage= tt*100+0.5; /*对结果进行4舍5入*/ return Volage; }void delay_1ms /*1MS为单位的延时程序*/{ uchar j;while{ for {;} } }uchar num_to_char_table[]={"0123456789"};uchar code lcd_12864_v_table1[]={"电压: . V"};uchar code lcd_12864_i_table2[]={"电流: . A"};uchar code lcd_12864_p[]={"功率: . W"};uchar code lcd_12864_f[]={"频率: 5 0 Hz"};void main<> /*主函数*/{ uint adc_v_buff1; uint adc_i_buff2; uchar adc_db_buff1; uchar adc_db_buff2; uchar i; delay_1ms<1>; lcd_system_reset<>;/*LCD初始化*/ for lcd_char_write1; for lcd_char_write1; for lcd_char_write1; for lcd_char_write1; while<1> { adc_db_buff1 = ADC0832_Read<0>; /*通道0进行AD转换*/ adc_db_buff2 = ADC0832_Read<1>; /*通道1进行AD转换*/ adc_v_buff1 = ADC0832da_to_Volage; //数据处理 adc_i_buff2 = ADC0832da_to_Volage; adc_v_buff1=adc_v_buff1*7; adc_i_buff2=adc_i_buff2*2000/400; lcd_char_write<3,1,num_to_char_table[adc_v_buff1/1000]>; /*显示电压*/ lcd_char_write<4,1,num_to_char_table[adc_v_buff1%1000/100]>; lcd_char_write<5,1,num_to_char_table[adc_v_buff1%1000%100/10]>; lcd_char_write<3,2,num_to_char_table[adc_i_buff2/100]>; /*显示电流*/ lcd_char_write<4,2,num_to_char_table[adc_i_buff2%100/10]>; lcd_char_write<5,2,num_to_char_table[adc_i_buff2%10]>; lcd_char_write<3,3,num_to_char_table[/10000]>; /*显示功率*/ lcd_char_write<4,3,num_to_char_table[/1000]>; lcd_char_write<5,3,num_to_char_table[/100]>; delay_1ms<200>; }}21 / 21。