《数字直流功率表.doc》由会员分享,可在线阅读,更多相关《数字直流功率表.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘 要本论文阐述了功率测量系统的设计思路和具体设计步骤。依据单片机接口技术的原理,以测量功率为主要设计意图。设计和制作一台直流功率表,用于太阳能电池组发电量的统计或其他应用场合。能测量电压、电流、计算实时功率、累计电量,自带时钟,能测量一天内累计电量、记录每分钟电压、电流、输出功率值并通过串行接口可将数据发送至电脑。集测量、显示等功能于一体,设计完整、结构清晰、操作简单。在本设计中,对电路中电压和电流分别进行采样,再经模数转换将模拟量变为对应的数字量,之后可以利用单片机内部程序进行乘法运算就可以得到结果,并通过诺基亚5110液晶屏显示电压和功率。本文详细论述了数字直流功率表硬件电路的组成及程序
2、的编写。利用单片机完成整个测量电路的测试控制、数据处理和显示输出。关键字:直流功率表;AD转换;实时测量;存储 AbstractThis paper describes the power measurement system design ideas and specific design steps. Based on the principles of chip interface technology to measure the power of the main design intent. Design and production of a DC power meter, ba
3、ttery pack for solar power generation statistical or other applications. Can measure voltage, current, real-time computing power, cumulative power, comes with clock, can measure total power within a day, recording every minute voltage, current, output power values through the serial interface to sen
4、d data to the computer. Set measurement, display and other functions in one, design a complete, clear structure, easy to operate.In this design, the voltage and current in the circuit samples, and then the analog-digital conversion of the analog into a digital value corresponding to, and through the
5、 Nokia 5110 LCD screen display voltage and power. This paper discusses in detail the digital DC power meter hardware circuit composition and preparation procedures. Using the MCU to complete the entire measurement circuit test control, data processing and display output.Keywords: DC power meter; AD
6、conversion; real-time measurement; storage目 录引言11 基本理论21.1 电功率的数学基础21.2 功率的数字测量21.2.1功率测量方法及技术21.3 电压的测量31.3.1直接AD转换31.3.2电压的测量方法31.4 电流的测量41.4.1电流/电压转换41.4.2低端检流方式41.4.3高端检流方式41.4.4基于霍尔效应的电流检测42 设计方案42.1 方案设计及比较43 电功率测量电路63.1 系统框图63.2 工作原理63.3 电压测量电路63.4 电流测量电路73.5 电源系统电路83.6 单片机及显示电路93.7 时钟发生电路114
7、 软件系统114.1 单片机软件114.1.1软件流程124.1.2AD转换软件滤波程序124.1.3功率计算程序154.1.4数据存储程序164.1.5显示及按键响应程序174.1.6时钟读取204.1.7通信子程序225 硬件制作245.1 制作PCB板245.1.1 Protel 99se简介245.1.2绘制PCB图注意事项245.2 具体过程265.3 硬件制作275.3.1铜板的整修275.3.2热转印275.3.3腐蚀铜板275.3.4打孔275.3.5焊接276 系统调试276.1 硬件调试276.1.1硬件静态调试276.1.2硬件动态调试286.2 软件调试287 提高精确
8、度287.1 硬件处理287.2 软件处理298 结论29谢辞30参考文献31附录32引言近年来,随着电子技术、计算机技术和半导体技术的飞速发展,给电力系统测量也带来了巨大的革命。而功率表是用来测量负载功率的仪器,它和其它类的仪器仪表一样,有着相同的发展历程。按照其时间和工作原理分类,电功率表主要经历了感应式、机电式、电子式等时代。随着社会的进步科技的发展提高电能测量技术-改机械式功率表为智能型数字功率表已成为时代的要求。电力测量系统的智能型数字表通常是以单片机为核心,配置一定的外围电路和软件,能够实现多种功能。数字化智能化测控仪表是近年来工业过程应用仪表方面的主要的发展趋势。微电子技术的发展
9、和工业过程对测控方面要求的加强,使智能化测控仪表的应用更广、成本更低。单片机具有成本低、可靠性高、应用灵活的特点。由各具体行业的业内人士使用单片机来开发或改造一般仪表是一条可行的道路。在电工与电子技术应用中,经常要测量功率。它是利用通有电流的可动线圈在另一个通电线圈形成的磁场中产生转动力矩而工作的仪表,其显著缺点是结构复杂、过载能力较差,本身消耗功率较大,且易受外磁场的影响,同时这样的功率表一般都是多量程的,在测量过程中需有电压表和电流表配合选定电压和电流量程,在选择不同的电压和电流量程时,刻度盘上每一分格代表不同的瓦特数,读得的结果需要进行换算才能得出所要测量的功率,致使测量很不方便。另外在
10、功率测量中,经常遇到被测电路的功率因数很低的情况,这时必须采用专门的低功率因数功率表才能准确得到结果。基于单片机设计的新型智能功率表可克服上述不足。而随着电子技术的发展和对功率测量的精度的要求不断提高,智能型数字功率表将取代目前比较常用指针式电动功率表。电子式电能仪表的发展历程可以概括为:20世纪90年代初期的以机电一体为主的工业多费率电能仪表;中期的电子式电能仪表;中后期IC卡电能仪表、电力载波仪表等。目前随着电子技术的发展,主要是芯片的发展,电能计量产品的发展也是百花齐放。2000年初,电力供应紧张,国家试行并加大两部制电价和分时计费的应用范围,上海市推行黑白表也使得多费率电能仪表得以迅速
11、发展,促进了电子式多费率电能仪表的使用2002年,国家发展改革委员会正式发布推荐使用分时计费的产业政策在市场的推动下,电子式电能仪表发展迅猛。由于电子式电能仪表具有数字通信接口,促使电能计量及用电管理自动化系统等特点得到了大量的使用(负荷控制系统、远程抄表系统),各类抄表系统的可靠性、实用性有了较大的提高。近年来电力需求紧张,使负荷控制得到了一定的发展。即使将来电力充足,从节能环保角度而言,负荷控制产品仍然具有很重要的实际意义。随着电力部门对用电政策的调整,国家逐步推行分时电价等政策,国内民用电能仪表的市场需求正在悄悄地从以感应式电能仪表为主体向以电子式电能仪表为主导转变,具体表现为从普通功能
12、型电能仪表向长寿命、多费率、多功能、高科技型电能仪表过渡。从这一角度考虑,研究该课题也是很有重要的现实意义。1 基本理论1.1 电功率的数学基础众所周知功率是指物体在单位时间内所做的功,即功率是描述做功快慢的物理量。那么说到电功率就要包括电的基础知识,包括电量、电压、电流等方面。电功率,电流在单位时间内做的功。是用来表示消耗电能的快慢的物理量,用P表示,它的单位是瓦特(Watt),简称瓦,符号是W。电量,表示物体所带电荷的多少。单位时间内通过截面的电量就是电流。一般来说,电荷的数量叫电量,用符号Q表示,单位是库仑 (符号是C)。库仑是一个很大的单位。电流,单位时间内通过导体横截面的电荷量,叫电
13、流,用符号I表示,单位是安,字母“A”来表示。电压,也称作电势差或电位差,是衡量单位电荷在静电场中由于电势不同所产生的能量差的物理量。电压在国际单位制中的主单位是伏特(V),简称伏,用符号V表示。电压是推动电荷定向移动形成电流的原因。电流之所以能够在导线中流动,也是因为在电流中有着高电势和低电势之间的差别。电能,表示电流做多少功的物理量。电能指电以各种形式做功的能力(所以有时也叫电功)。分为直流电能、交流电能,这两种电能均可相互转换。电能的单位是“度”,它的学名叫做“千瓦时”(kWh)。在物理学中,更常用的能量单位(也就是主单位,有时也叫国际单位)是焦耳,简称焦,符号是J。电功率的计算是电压和
14、电流的乘积。这称为平均功率或有效功率。在直流电路中,电功率的表示式为P=UI;在交流电路中,电功率的表示式为。在交流电路中,电压与电流之间的相位差()的余弦叫做功率因数,用符号cos表示,在数值上,功率因数是有功功率和视在功率的比值,即cos=P/S。1.2 功率的数字测量用功率转换器与数字电压表相配就可以实现功率的数字测量。功率转换器实质上就是一个电子乘法器,其特点是它的输出电压的大小正比于它的两个输入电压数值的积。因此,如果让一个输入电压正比于负载电压的大小,而另一个输入电压正比于负载电流的大小,则电子乘法器的输出电压,显然正比于负载所消耗的功率。再用数字电压表测量这个乘法器的输出电压就可
15、以确定被测功率。当数字电压表显示值按功率接校准时,也就构成了数字功率表。1.2.1功率测量方法及技术 (1) 二极管检测功率法:就是用简单的整流电路。二极管检测电路是以平均值为响应的,不是直接测量输入功率的有效值,而是根据有效值与平均值的关系间接测量有效功率。(2) 等效热功率检测法:把一个未知交流信号的等效热量和一个直流参考电压的有效热量进行比较。当信号电阻与参考电阻的温度差为零时,这两个电阻的功耗是相等的,因此未知信号的有效值就等于直流参考电压的有效值。此技术原理简单但实际应用难以实现且检测设备价格昂贵。(3) 真有效值/直流(TRMS/DC)转换测量功率:这种办法的最大优点是被测结果与被
16、测信号的波形无关,这就是“真正有效值”的含义。因此,它能准确测量任意波形的真有效值功率。测量真有效值功率的第一种方法就是采用单片真有效值/直流转换器(例如AD736),首先测量出真有效值电压电平,然后取其有效值功率电平。另一种测量真有效值功率的方法是以AD8361型为代表的真有效值检测系统集成电路。此方法的突出优点是可测量的频带非常宽。这种检测方法有以下优点:第一,由于两个平方器完全相同,因此在改变量程时不影响转换精度;第二,当环境温度发生变化时,两个平方器能互相补偿,使输出电压保持稳定;第三,所用平方器的频带非常宽,可从直流一直到微波频段。(4) 对数放大检测功率法:AD8361集成芯片的分
17、立方案。1.3 电压的测量 1.3.1直接AD转换直接使用AD转换的原理可以使用专门的电能芯片,原理大致是由负载的电压和电流传感器产生的可识别电压信号直接经过专用电能计量芯片产生频率与负载功率成正比的脉冲信号,然后用单片机对此脉冲进行计量,从而得到负载功率。随着电子电表的快速发展,市场上有专用于电能计量芯片,这些电能计量芯片都含有A/D转换,数字相乘和滤波部分,且均有数字-频率转换部分,将计算得到的数字功率信号转化为频率,输出相应频率的脉冲信号。ADE7751可实现单相有功计量,防窃电,脉冲输出; ADE7752是防窃电三相电能计量IC;ADE7753是带串行接口和脉冲输出高精度功能三相电能计
18、量IC;ADE7754 是数字校准多功能三相电能计量IC。ADE7755可实现单相有功计量,脉冲输出;ADE7756带串行接口单相有功计量;ADE7757集成晶振以及马达驱动电路的电能计量芯片;ADE7758含有谐波分量时无功功率的计量ADE7759 高精度全电子式电能仪表的电能计量;ADE7761是数字校准多功能三相电能计量IC。又如,单相计量产品BL6503、单相防窃电计量产品BL6501、三相计量产品BL0952及各项输出指示的三相产品BL0962等。它们之中有些只提供有功功率,有些则还提供无功功率、视在功率、电流和电压有效值等更多电能参数。1.3.2电压的测量方法间接测量电压可以使用V
19、/F转换,测量模拟电压用伏频(V/F)转换器,可将相应的电压转化为相应的频率,提高测量的精确度,对应比例为1mV/Hz。使用该测量要分时取电压模拟量,再转换为频率,最后用软件处理,实现功率测量。专用的V/F转换器有AD650、AD654等。变频器的V/F控制是变频器的一种控制方式,就是在基准频率以下,变频器的输出电压和输出频率成正比关系,输出恒转矩的一种控制方式是变频器最基本的控制方式。1.4 电流的测量 1.4.1电流/电压转换电流的检测用采样电路对电流进行采样,可以电流转换成电压,电压信号反映于原来的检测电流。也就是说电流检测可通过采样电阻转换为电压值,为确保电流转换为电压的精确,尽可能的
20、使用精密电阻作为采样电阻。1.4.2低端检流方式低端检流电路的检流电阻串联到地,低端检流电路比较简单,但有几种故障状态是低端检流电路检测不到的,这会使负载处于危险的情况。1.4.3高端检流方式高端检流电路的检流电阻是串联到高电压端,高端检流电路直接连接到电源端,能够检测到后续回路的任何故障并采取相应的保护措施,特别适用于自动控制应用领域,因为在这些应用电路中通常采用机壳作为参考地。1.4.4基于霍尔效应的电流检测在一块半导体或导体材料上的Z方向加以磁场B,并沿X方向通以电流I,那么Y方向将产生电动势Vh,通常称为霍尔效应。Vh称为霍尔电压。也就是说在霍尔元件和处理电路组成就可以实现电流电压的线
21、性转换,当边缘电流Ip产生磁场时,即可由霍尔元件检测出霍尔电压信号,然后再经过放大器处理,便可输出一个电压信号。该电压信号就可以精确地反映原来的电流大小。2 设计方案2.1 方案设计及比较实现功率表的设计方案主要内容包括采样数据的A/D转换,数字相乘和数字滤波三部分。因此,电功率表的设计可分为以下几个方案。方案一:A/D转换器和单片机众所周知单片机内部有中央处理器(运算器、控制器和寄存器)和存储器,因此可进行数字相乘和滤波运算,并且有些单片机自带A/D转换器,可以大大减少设计的难度。只需电压电流采集并输送到单片机内部进行数据处理就可以得出功率设计。其原理框图如图2.1所示。51单片机实现数字相
22、乘,滤波 和A/D转换系统控制电压 电流采集模块进行采集 输入电压 输入电流 图2.1 单片机实现电功率表方案通过直接采样电压和和通过采样电流直接输送到STC12C5A60S2单片机内部进行A/D转换为全数字信号,然后用STC12C5A60S2单片机编程实现数字相乘和滤波,从而得到数字化功率信息,并产生系统所需控制信号,完成整个系统的功能。该方案设计简单,成本较低,可实现设计所须的最低要求。方案二:专用电能计量芯片和单片机随着电子电表的快速发展,目前市场上出现了很多种专用电能计量芯片众多的电能计量芯片基本原理和基本功能是一样的,都含有A/D转换,数字相乘和滤波部分,且均有数字-频率转换部分,将
23、计算得到的数字功率信号转化为频率,输出相应频率的脉冲信号.有些只提供有功功率,有些则还提供无功功率,视在功率,电流和电压有效值等更多电能参数。利用这类专用电能计量芯片和STC12C5A60S2单片机配合使用,可以很方便地开发出一些应用系统。图2.2便是这类方案的原理框图。电流电压单片机 实现系统控制采集模块专用电能 计量芯片电压 图2.2 专用电能计量芯片和单片机实现电功率表方案由图2.2可知,负载的电压和电流传感器产生的可识别电压信号直接经过专用电能计量芯片产生频率与负载功率成正比的脉冲信号,然后用单片机对此脉冲进行计量,从而得到负载功率,并产生系统所需控制信号,完成整个系统的功能。方案三:
24、MSP430FE42x系列 微控制器(MCU)-MSP430FE42x系列是TI公司生产的用于电子式电能仪表的片上系统,它具有完全可编程的通信功能,完全能满足从事开发诸如测量值自动读取(AMR)、智能卡预付和多费率计费等具有复杂功能的电子式电能仪表制造的需要。它具有高性能的16-位RISC结构指令的CPU,可实现实时信号处理和多任务计算处理;其内部集成有SCAN IF模块,可以检测信号,并实现A/D转换,最终实现低功率测量。因此,可以对其编程,使它实现从A/D转换到数字相乘和滤波的全部数字处理过程,从而产生数字化的功率信息, 在此基础上产生系统所需控制信号,完成整个系统的功能。图2.3是原理框
25、图。电压用微控制器(MCU)-MSP430FE42x实现A/D转换,数字相乘和滤波及系统控制采集模块 图2.3 用微控制器(MCU)-MSP430FE42x实现电功率表方案综合考虑,与其他两个方案相比,方案一的最大的优点就是核心电路由单片机构成,符合课题研究的要求低功耗、低成本制作简易数字直流功率表的设计。本设计最终采用方案一,并选择STC12C5A60S2单片机作为核心芯片,实现系统控制。3 电功率测量电路3.1 系统框图通过方案论证以及比较之后,选择方案一,做出系统方框图。框图主要包括设计要求分为取样部分,单片机部分和辅助部分。系统方框图如图3.1所示。输出电源显示电流检测电压取 样电压变
26、换单片机接口图3.1系统方框图3.2 工作原理通过电源输入利用采样电路分别对电压和电流进行采样,通过取样电阻以及组成的模块将采样电流转换成等效电压值,并将两电压值分别输入到STC单片机内部,可进行A/D转换、数字相乘、滤波运算和系统控制,最终将数据在液晶显示屏中显示,通过串行接口可将数据发送至电脑。若要使测量的精度尽量高,可在一段时间内多次采样数据,然后再在程序中处理,求出平均值。3.3 电压测量电路电压采集电路由电阻R1,R3分压保护电路,电容C5滤波的作用,采集数据通过VV1送到单片机。电压输入与VV1的比值等于R1+R3/R1=6:1,R1,R3取值主要考虑的是单片机STC12C5A08
27、S2的参考电压5V。设计所要求的电压是0到25V,以最大值所计算小于5V,满足要求。R1,R3如果取太小不能起到保护电路的作用,如果取太大电信号过不去,单片机采集不到信号。所以说R1的值不能太小也不能太大,但是R1和R3的比值要适当选好。电压测量电路如图3.2所示。TO AD图3.2 电压测量电路3.4 电流测量电路电流采集模块:R18 是10u欧的采样电阻,整个模块是高端检流。R17是起到一个限流的作用,主要是防止电压输入的突变,R16是一个负载电阻,起到阻抗匹配的作用。R17阻值太大的话,当输入电压太小了,就没有足够的驱动能力去驱动芯片,阻值太小就有可能电压过大烧坏芯片。R16阻值在选得太
28、大的情况,由于P=I2R.功率太大了,发热量太大了,可能会导致芯片烧掉的,如果阻值选取过太,电流转换成的电压量太小了,不利于对电流信号的采集不利于信号的采样测量。R18两边的电压经过一定的放大从VI1输送到单片机采样。R16Vin=R17VI1.电流测量电路原理图如图3.3所示。TO AD图3.3电流测量电路LT6106,高端电流检测放大器,该器件可以从高达36V的共模电压中分辨小的差分信号。输入失调电压仅25V(最大值),满标度差分输入为500mv,具有2000:1的动态范围。用两个外部电阻器设置放大器增益,提供增益准确度和漂移、功耗、响应时间以及输入/输出阻抗控制。LT6106特性特点:增
29、益可用两个电阻配置低失调电压:最大值为250V输出电流:保持为1mA电源电压范围:2.7至36V,绝对最大值为44V低输入配置电流:最大值为40nAPSRR:最低106dB低电源电流:65A,VS=12V工作温度范围为-40至1253.5 电源系统电路电源系统电路包括由LM317组成的单片机稳压供电系统和BAT2组成的采用锂电池供电给予时钟芯片。在LM317组成的单片机稳压供电系统中,C7电容用于滤波,R21以及R19组成用于调节系统所需要得稳定电压。LM317是可调节3端正电压稳压器。LM317在输出电压范围1.2伏到37伏时能够提供超过1.5安的电流,电源系统电路如图3.4所示。图3.4
30、电源系统电路 稳压电源的输出电压可用下式计算,Vo1.25(1R2/R1)。仅仅从公式本身看,R1、R2的电阻值可以随意设定。然而作为稳压电源的输出电压计算公式,R1和R2的阻值是不能随意设定的。首先317稳压芯片的输出电压变化范围是Vo1.25V37V(高输出电压的317稳压芯片如LM317HVA、LM317HVK等,其输出电压变化范围是Vo1.25V45V),所以R2/R1的比值范围只能是028.6。其次是317稳压芯片都有一个最小稳定工作电流最小稳定工作电流的值一般为1.5mA。当317稳压芯片的输出电流小于其最小稳定工作电流时,317稳压芯片就不能正常工作。当317稳压芯片的输出电流大
31、于其最小稳定工作电流时,317稳压芯片就可以输出稳定的直流电压。如果用317稳压芯片制作稳压电源时,没有注意317稳压芯片的最小稳定工作电流,那么你制作的稳压电源可能会出现下述不正常现象:稳压电源输出的有载电压和空载电压差别较大。在应用中,为了电路的稳定工作,在一般情况下,还需要接二极管作为保护电路,防止电路中的电容放电时的高压把317烧坏。LM317几种封装的管脚图如图3.5所示。图3.5 LM317封装管脚图3.6 单片机及显示电路单片机及显示电路包括一个单片机STC12C5A08S2和一个LCD5110。在众多的51系列单片机中,要算国内STC 公司的1T增强系列更具有竞争力,因他不但和
32、8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,如STC12C5A60S2单片机内部就自带高达60K FLASH ROM,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。而且STC系列单片机支持串口程序烧写。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。重要的一点STC12C5A60S2目前的售价与传统51差不多,市场供应也很充足。是一款高性价比的单片机STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新
33、一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。综上所述,单片机就选择了STC12C5A60S2。原理图如图3.6所示。图3.6单片机及显示电路原理图STC12C5A60S2芯片具有1个时钟/机器周期,高速、高可靠,2路PWM,8路10位高速A/D转换,25万次/秒1T 8051带总线,无法解密,管脚直接兼容传统89C52,有全球唯一ID号可省复位电路,36-44个I/O内部R/C时钟的新一代芯片加密性强,解密难度高。在本次设计中用此单片机主要考虑到的是其运行
34、速度的特点:高速,1个时钟/机器周期,增强型8051内核,速度比普通8051快812倍 宽电压:5.53.3V,2.23.6V工作频率:035MHz,相当于普通8051:0420MHz ISP / IAP,在系统可编程/在应用可编程,无需编程器/仿真器 STC12C5A60AD带A/D转换的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器,速度可达到250KHZ。8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不许作为A/D使用的口可继续作为I/O口使用。
35、使用LCD5110主要的目的是低功耗,能满足显示电压、电流、功率、累计电能等信息的基本要求。3.7 时钟发生电路时钟发生电路主要用于设计所要求的自带时钟,能够记录每分的实时电能值。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。原理图如图3.7所示。图3.7 时钟发生电路原理图DS1302内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动
36、调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES复位;(2)I/O数据线;(3)SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。DS1302主要性能特点:实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力;318位暂存数据存储RAM;工作电压2.0-5.5V;工作电流2.0V时,小于300nA;读/写时钟或RAM数据有两种传送方式:单字节传送和多字节传
37、送字符组方式;8脚DIP封装或可选的8脚SOIC封装(根据表面装配);采用简单三线接口;与TTL兼容(Vcc=5V);可选工业级温度范围-40+85。4 软件系统4.1 单片机软件单片机软件系统包括程序初始化模块、系统控制及显示处理模块和电量处理模块等部分组成,各部分有其特殊的任务,在电能仪表系统中完成他们相应的功能。具体软件程序为AD转换及软件滤波程序、功率计算程序、数据存储程序、显示及按键响应程序、钟读取及校正程序、通信子程序。各种程序在系统中有不一样的作用,AD转换及软件滤波程序主要对系统进行AD采集和滤波,功率计算程序主要是完成电流和电压的乘积运算,数据存储程序主要是对所采集的数据进行
38、存储,以方便对数据的传输和处理,显示及按键响应程序主要是对系统进行控制,如:单片机复位等,通信子程序主要完成数据的传输。可见各部分软件只有协同工作,整个系统才能正常运转。4.1.1软件流程调节相应程序NO按键识别NO是否有按键延时等待开始液晶初始化串口初始化DS1302初始化 图4.1 程序流程图4.1.2AD转换软件滤波程序AD转换程序主要包括AD采集返回函数和AD初始化。AD转换程序如下:#ifndef _AD_H#define _AD_H/*Define ADC operation const for ADC_CONTR*/#define ADC_POWER 0x80 /ADC powe
39、r control bit#define ADC_FLAG 0x10 /ADC complete flag#define ADC_START 0x08 /ADC start control bit#define ADC_SPEEDLL 0x00 /420 clocks#define ADC_SPEEDL 0x20 /280 clocks#define ADC_SPEEDH 0x40 /140 clocks#define ADC_SPEEDHH 0x60 /70 clocksvoid Delay_ad(uchar n) uchar x; while (n-) x = 250; while (x-
40、); /*-Get ADC result-*/uchar GetADCResult(uchar ch)/AD采集的返回函数, ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;/AUXR1=0X00; _nop_(); /经过4个时钟延时后,才能够正确读到ADC_CONTER的值 _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR & ADC_FLAG);/Wait complete flag ADC_CONTR &= ADC_FLAG; /Close ADC return ADC_RES; /Re
41、turn ADC resultvoid InitADC()/AD的初始化 P1ASF = 0x03; /Open 8 channels ADC function/AUXR1=0; ADC_RES = 0; /Clear previous result ADC_CONTR = ADC_POWER | ADC_SPEEDLL; Delay_ad(2); /ADC power-on and delay#endifADC_START:模数转换器(ADC)转换启动控制位,设置为1时,开始转换,转换结束为0。ADC_FLAG; 模数转换器转换结束标志位,当A/D转换完成后,ADC_FLAG=1,要由软件清
42、零。不管是A/D转换后由该位置申请产生中断,还是由软件查询该标志位A/D转换是否结束,A/D转换后,ADC_FLAG=1,一定要清零。ADC-CONTER:ADC控制寄存器。ADC_POWER:ADC电源控制位。0:关闭A/D转换器电源;1:打开A/D转换器电源。SPEDD1,SPEED0:模数转换器转换速度控制位。AUXR1寄存器的ADRJ位是A/D转换结果寄存器(ADC_RES,ADC_RESL)的数据格式调整控制位。当ADRJ=0时,10位的A/D转换结果的高8位存放在ADC_RES中,低2位存放在ADC_RESL的低2位中。由于电压的不稳定,可能会出现忽高忽低,所以需要软件滤波,主要内
43、容是在某个时间段的平均功率。滤波程序如下:uint filter(uchar temp,uchar tmp) /1为电压,0为电流 ,2为功率uchar cout;if(tmp=1)for(cout=0;couttemp;cout+)sum+= RES_datav;nop(); nop(); nop();if(tmp=0)for(cout=0;couttemp;cout+)sum+= RES_datai;nop(); nop(); nop();if(tmp=2)for(cout=0;couttemp;cout+)sum+= power;nop(); nop(); nop();return (s
44、um/temp) ; 4.1.3功率计算程序此段程序主要包含功率计算,累计功率计算,功率准确度软件校正。功率计算程序如下:void timer0(void) interrupt 1 TH0=0xdc; /10ms TL0=0x32;count1+;if(count1=10)count2+;count1=0;if(count2=time)count2=0;RESH80=GetADCResult(0);RESL20=ADC_RESL; RES_datai=RESH8030&RES_datai80&RES_datai120)RES_datai=RES_datai/2.35;else RES_datai=RES_datai/1.5;RESH81=GetADCResult(1);RESL21=ADC_RESL;