基于单片机正弦波有效值测量仪表设计.docx
- 文档编号:28652184
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:29
- 大小:673.18KB
基于单片机正弦波有效值测量仪表设计.docx
《基于单片机正弦波有效值测量仪表设计.docx》由会员分享,可在线阅读,更多相关《基于单片机正弦波有效值测量仪表设计.docx(29页珍藏版)》请在冰豆网上搜索。
基于单片机正弦波有效值测量仪表设计
电子系统设计创新与实践
设计报告
题目:
基于单片机正弦波有效值测量仪表设计
院〔系〕:
信息科学与工程学院
专业班级:
电子信息工程
学生:
学号:
同组成员:
指导教师:
肖洪祥职称:
副教授
设计方案〔30分〕
样机测试〔40分〕
设计报告〔30分〕
总分
2012年7月
摘要
在实际中,有效值是应用最广泛的参数,电压表的读数除特殊情况外,几乎都是按正弦波有效值进展定度的。
有效值获得广泛应用的原因,一方面是由于它直接反映出交流信号能量的大小,这对于研究功率、噪声、失真度、频谱纯度、能量转换等是十分重要的;另一方面,它具有十分简单的叠加性质,计算起来极为方便。
本文详细介绍一个正弦波有效值测量仪表设计,以STC89C52单片机为控制核心,由交流电压采集模块,正弦波转方波模块,AD转换模块、显示模块等构成。
系统采用交流电压输入信号,经TLC372比拟器和LM358放大器进展信号采集,经过AD0809进展数据采样,然后输入到89C52单片机进展交流电压有效值的计算和测量,加上CD4049进展正弦波转换为方波,输入到89C52单片机进展频率的计算和测量,结果用1602液晶显示正弦波的有效值和频率。
关键词:
交流电压有效值测量AD0809STC89C52
Abstract
Inpractice,theeffectivevalueisthemostwidelyusedparameters,voltagemeterexceptinspecialcircumstances,arealmostaseffectivevalueofsinewaveforcalibration.Effectivevalueandwidelyappliedreasons,partlybecauseitdirectlyreflectstheACsignalenergy,thestudyofpower,noise,distortion,frequencyspectrumpurity,energyconversionisveryimportant;ontheotherhand,ithasaverysimplesuperpositionproperty,calculationisveryconvenient.
Thispaperdescribesaneffectivevalueofsinewavemeasuringinstrumentdesign,usingSTC89C52SCMascontrolcore,bytheACvoltageacquisitionmodule,sinewavetosquarewavemodule,theADconversionmodule,displaymodule.ThesystemadoptstheACinputsignal,theparatorTLC372andLM358amplifierforsignalacquisition,throughAD0809datasampling,andtheninputtotheSCM89C52ACvoltageeffectivevaluecalculationandmeasurement,andCD4049areconvertedtosquarewavesinewave,inputtotheSCM89C52frequencycalculationandmeasurement,theresultswiththe1602liquidcrystaldisplaysinusoidalRMSandfrequency.
Keywords:
AcvoltageRMSmeasurementAD0809STC89C52
1.概述
1.1题目名称
1.2功能和指标要求
1.3相关情况概述
2.技术方案
2.1有效值测量的方法
2.2设计思路
2.3总体技术方案
3.硬件设计
3.1信号采集电路
3.2正弦波转方波电路
3.3ADC0809电路
3.4单片机最小系统和1602显示电路
3.5电源电路
4.软件设计
4.1频率测量
4.2幅度测量
4.3软件测试
1.概述
1.1题目名称
基于单片机的正弦波有效值测量仪表设计。
1.2功能和指标要求
1〕输入交流电压:
5V~50V;
2〕正弦频率:
50Hz±5Hz;
3〕检测误差:
≤2%
4〕具有检测启动按钮和停顿按钮,按下启动按钮开场检测,按下停顿按钮停顿检测;
5〕显示方式:
数字显示当前检测的有效值。
在停顿检测状态下,显示最后一次检测到的有效值;
6〕显示分辨率:
0.1V
7〕工作电源:
电网AC220V,要求在电网电压变化±15%围能够正常工作。
1.3相关情况概述
在日常的生产、生活和科研中,工频电无处不在,所谓工频就是电力供电系统交流电的频率,我国国家规定工频为50赫兹,即周期为0.02秒,英、美等国规定的工频为60赫兹。
因此,对工频电的测量也是一个应用广泛的实际问题。
传统的测量仪器在使用时需要预先估计待测值的测量围,多数情况下都要从较大量程档位逐次向小量程档位切换,增加了操作的复杂性,且易发生误操作损坏仪器。
近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制日新月异更新。
在实时监测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用。
电子计算机的飞跃进步,单片机的普及与推广,为数字多用表智能化做出了奉献。
作为重要的测量工具,工频有效值多用表的开展可以说见证了现代工业的开展和科技进步。
从传统的模拟多用表,到现在准确度和灵敏度越来越高的数字仪表,多用表的开展可谓是日新月异。
目前的工频有效值多用表的设计大概可以分为以下几类:
〔1〕基于单片机的数字工频有效值多用表,这类仪表中,最有代表性的是89C52系列的。
由于8位机在价格和性能方面的优点,这类仪表可以说是越来越成熟,并且能根据不同的场合选用不同的核心芯片来满足实际的要求。
〔2〕将传统测量方法和现代数字化测量方法有机结合起来,能适用于工频交流电特征,同时也能适用于非工频电参数测量,以提高通用性。
在这类系统中,由单片机实现测量控制、数据分析处理、显示和量程自动转化等功能;由CPLD器件和高速A/D芯片组成双通道高速同步数据采集电路,由锁相倍频电路实现工频周期均匀等样间隔。
2.技术方案
2.1有效值测量的方法
(1)有效值的定义:
时变量的瞬时值在给定时间间隔的均方根值。
对于周期量,时间间隔为一个周期。
〔2〕测量有效值有三种方案:
方案一:
采用二极管整流电路,再通过峰值检波电路测得峰值,然后根据波形因数求得相应的有效值。
方案二:
利用单片机控制A/D对一个周期的信号进展连续多点采样,然后在软件中根据有效值计算公式求均方根就可得到有效值。
方案三:
采用专用有效值检测芯片如AD736直接将交流信号转换直流有效值信号。
方案选择:
方案一硬件电路较复杂,且能测得的波形有限,对不同的波形还需根据其波形因数采取不同的换算关系。
方案二软件计算,编程难度不大,而方案三软硬件都较简单,但是资金投入比拟大,故设计中选用方案二。
2.2设计思路
本课题主要实现的是交流电压有效值和频率的测量,我们首先要对交流电压进展硬件采集,通过电压比拟器TLC372CP及其外围电路,输出信号源的峰值,再通过AD转换输入单片机,把采集到的数据通过软件计算,求均方根即得交流电压的有效值;第二个模块那么是测量频率,对频率的测量,我们应该先把正弦波转换为方波,利用STC89C52自带的定时/计数器T0,T1来测量频率,T0用作定时器,工作在模式2〔八位自动重装〕,定时1秒,T1那么用来计数,工作在模式1〔十六位定时器〕,一秒完毕时输出T1的值,即为频率。
然后输出到LCD1602进展显示。
2.3总体技术方案
本实习的设计方案是采用STC89C52单片机芯片来做控制模块,把采集到的正弦波幅度经过ADC0809转换成数字,然后通过软件编程计算实现幅度测量,把计算得到的正弦波有效值显示在1602第一行。
在采集正弦波幅度的同时,我们启动定时器,采集正弦波的的时间,通过软件编程计算正弦波的频率,把正弦波的频率显示在1602的第二行。
图2-1系统总框图
系统概述
本设计是基于STC89C52单片机的数字电压表,并且能够显示频率,主要运用ADC0809芯片来进展电压从模拟量转化到数字量,STC89C52单片机为控制核心,以1602为显示器件。
八位的A/D转换器分辨率为0.0196,当输入电压为5V时输出数据为255。
该系统主要包括四个模块:
电源〔输出+12、+5、-12、-5V〕,A/D转换模块,单片机控制模块和液晶显示模块。
电源模块将220V、50HZ交流经过变压、整流、滤波和稳压,稳压采用7812、7805、7912、7905稳压芯片实现。
A/D模块采用ADC0809对电压进展模拟到数字的转换,转换完成后输入到单片机,ADC0809采样所需标准频率设定为500KHZ,通过单片机的ALE端,可以输出2MHZ频率,再利用74LS74进展四分频,即可得基准频率。
主控模块以单片机及其外围电路构成控制A/D采样,进展数据的转换,最后由液晶输出显示。
3.硬件设计
3.1信号采集电路
我们选用的是TLC372和2个LM358芯片组成信号采集电路,TLC372是双路差动比拟器,LM358放大器是比拟电路的核心器件,LM358是适合于电池供电的低功耗器件,有两个独立的、高增益的、部频率补偿的双运算放大器。
两片LM358配合使用就能够将输入线圈的电流信号转换成双极性的电压信号输出,可以用于单片机控制的存储器中待机波形与实时采样波形数据的比拟区分。
图3.1信号采集电路
3.2正弦波转方波电路
测量正弦波频率的方法有很多种,但是我们一般选用过零比拟器或施密特触发器把正弦波转换为方波,再进展方波的频率测量。
本模块由8050三极管将要测量的交流电压的频率进展放大,经过反相器CD4049,对交流信号进展转换为方波,以便单片机采集信号并测量。
CD4049是一块S金属/非金属氧化物半导体数字集成电路,通用性非常强,应用很广泛,主要功能是对数字信号倒相、对模拟信号进展转换,对不规那么数字信号进展整形或波形变换,信号放大等,通过组合和设置阻容反响,可以非常容易的制作信号发生、信号缓冲放大、单稳触发、双稳触发、延时控制装置等。
图3.2正弦波转方波原理图
图3.3正弦波转方波仿真图
3.3ADC0809电路
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进展转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
74LS74是一个双D触发器,将单片机ALE端的信号四分频后,提供应ADC0809做基准频率。
图3.4ADC0809转换电路
3.4单片机最小系统和1602显示电路
系统采用AT89C52单片机作为主控制器,LCD1602液晶显示电压有效值和频率。
AT89C52具有功能强、体积小、本钱低、功耗小等特点,它可单独地完成现代工业控制所要求的智能化控制功能,能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
系统显示采用常用的字16字X2行的字符型液晶模块,其微功耗、体积小、显示容丰富、超薄轻巧等诸多优点,使得在各类仪表和低功耗系统中得到广泛的应用。
与数码管相比该模块还有位数多、显示容丰富、程序简单等优势。
应用接口电路如下图,包括单片机、复位电路、晶振电路、LCD1602,按键控制电路。
LCD1602由单片机P3.5控制RS端,由P3.4控制E使能端,RW接地,由单片机P0口进展输出数据控制。
如下图,我们设置S2为启动键,当S2被按下,那么系统开场采样信号,并计算交流电压的有效值;S3为停顿键,当S3被按下,那么将最终的正弦波有效值显示在液晶的第一行,第二行显示正弦波的频率。
当测量电压超出我们需要测量的围时,那么给P3.7口一个低电平启动报警系统。
当按下复位键,系统那么回复最初的等待测量状态。
图3.5单片机最小系统和1602液晶显示
(1)时钟电路设计
STC89C52单片机部带有时钟电路,因此,振荡电路比拟简单,只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件〔晶体振荡器和电容〕,即可构成一个稳定的自激振荡器。
本设计选择的部振荡电路的外部电路如下图。
图3.6晶振电路
振荡频率为12MHz,时钟发生器是一个2分频触发器电路,它将振荡器的信号频率FOSC除以2,向CPU提供了两相时钟信号。
ADC0809正常工作需要提供10KHz到1MHz围的外部时钟,如果单独设计时钟产生电路,会增加电路的复杂程度。
AT89S52单片机的地址锁存器允许信号ALE输出频率为系统频率的1/6,经D触发器二分频后可获得1/12系统时钟频率。
如果单片机时钟频率采用12MHz,那么ALE引脚的输出频率为2MHz,再经二分频后为1MHz,符合ADC0809对时钟频率的要求。
如果单片机的时钟频率为6MHz,虽然二分频后得到的时钟频率满足要求,但是其单片机的工作速度较慢,所以单片机的时钟频率采用12MHz的。
〔2〕复位电路设计
复位是单片机的初始化操作。
其主要功能是将程序计数器PC初始化为0000H,使得单片机从0000H单元开场执行程序。
在运行中,外界干扰等因素可使单片机的程序陷入死循环状态。
为摆脱困境,可将单片机复位,以重新启动。
复位也使得单片机退出低功耗工作方式而进入正常工作状态。
复位电路虽然简单,但其作用非常重要,一个单片机能否正常运行,首先要检测是否能复位成功。
在复位电路中,RST引脚是复位信号的输入端,复位信号是高电平有效,其时间应持续24个振荡周期以上,假设使用频率为6MHz的晶振,那么复位信号要持续时间应超过4us才能完成复位操作。
故本设计使用12MHz的晶振。
其电路如下图。
图3.7复位电路
3.5电源电路
整流电路采用单相全波整流电路,器件选用二极管构成的整流桥堆。
滤波电路采用电容滤波,即在整流电路的负载上并联一个电容
,电容为50V,2200μF的极性大电容。
本电路主要由220V交流电压,经18V变压器输入到电路中,经过LM7812、LM7912、LM7805、LM7905四个稳压芯片的压降,各输出±12V和±5V直流电压。
供电局部有四组电压输出,其电路构造根本一样。
有变压器、桥式整流、滤波和稳压等局部组成。
图3.8电源原理图
图3.9电源仿真图
如图,输出电压为±12V、+5.01V、-5.02V
4.软件设计
4.1频率测量
软件测频的原理归结成一句话,就是“在单位时间对被测信号进展计数〞。
被测信号,通过输入通道的放大器放大后,进入整形器加以整形变为矩形波,并送入主门的输入端[3]。
由晶体振荡器产生的基频,按十进制分频得出的分频脉冲,经过基选通门去触发主控电路,再通过主控电路以适当的编码逻辑便得到相应的控制指令,用以控制主门电路选通被测信号所产生的矩形波,至十进制计数电路进展直接计数和显示。
假设在一定的时间间隔T累计周期性的重复变化次数N,那么频率的表达式为式:
〔1〕
图1说明了测频的原理及误差产生的原因。
时基信号
待测信号
丧失〔少计一个脉冲〕计到N个脉冲多余〔比实际多出了0.x个脉冲〕
图4.1测频原理
在图4.1中,假设时基信号为1KHZ,那么用此法测得的待测信号为1KHZ×5=5KHZ。
但从图中可以看出,待测信号应该在5.5KHZ左右,误差约有0.5/5.5≈9.1%。
这个误差是比拟大的,实际上,测量的脉冲个数的误差会在±1之间。
假设所测得的脉冲个数为N,那么所测频率的误差最大为δ=1/〔N-1〕*100%。
显然,减小误差的方法,就是增大N。
本频率计要求测频误差在1‰以下,那么N应大于1000。
通过计算,对1KHZ以下的信号用测频法,反响的时间长于或等于10S,。
由此可以得出一个初步结论:
测频法适合于测高频信号。
频率计数器严格地按照
公式进展测频[4]。
由于数字测量的离散性,被测频率在计数器中所记进的脉冲数可有正一个或负一个脉冲的
量化误差,在不计其他误差影响的情况下,测量精度将为:
应当指出,测量频率时所产生的误差是由N和T俩个参数所决定的,一方面是单位时间计数脉冲个数越多时,精度越高,另一方面T越稳定时,精度越高。
为了增加单位时间计数脉冲的个数,一方面可在输入端将被测信号倍频,另一方面可增加T来满足,为了增加T的稳定度,只需提高晶体振荡器的稳定度和分频电路的可靠性就能到达。
上述说明,在频率测量时,被测信号频率越高,测量精度越高。
图4.2频率测量流程图
频率测量模块程序:
#include
#include
#include"LCD1602_8.H"
unsignedchark[8];
unsignedintnum;
unsignedchari;
unsignedlongx,t;
voidmain(void)
{
lcd_init();
TMOD=0x25;//T0计数T1定时
TH0=0x00;//计数值清零
TL0=0x00;
TH1=0x06;//250us
TL1=0x06;
while
(1)
{
x=(t<<16)+TH0*256+TL0;
while(x/10)
{
k[i]=x%10;
x/=10;
i++;
}
k[i]=x;
lcd_pos(4,1);
for(i=7;i!
=0;i--)
{
lcd_wdat(k[i]+48);
}
lcd_wdat(k[i]+48);
lcd_wdat('');
lcd_wdat('H');
lcd_wdat('z');
}
}
voidt0(void)interrupt1using1
{
t++;
}
voidt1(void)interrupt3using3
{
num++;
if(num==4000)
{
TR0=0;
TR1=0;
}
}
4.2幅度测量
有效值测量方法:
交流电是幅度随时间变化而变化的正弦波,电压有效值就是电压的均方根值,它的计算方法是先平方、再平均、然后开方。
工频交流电是50Hz,每个周期为20mS,可以在固定的时间间隔T(如200uS)取电压即时值U,然后累加U*U的值,一段时间后(整倍周期数)把累加值取平均值再开方就可以得到这段时间的电压有效值了。
公式如下:
〔1〕
这里,
为信号的有效值,T为测量时间,
是一个时间的函数,但不一定是周期性的。
对等式两边进展平方得:
〔2〕
右边的积分项可以用一个平均来近似
〔3〕
这样式〔2〕可以简化为:
〔4〕
等式两边除以
得:
〔5〕
图4.3幅度测量流程图
幅度测量模块程序:
#include
#include
#include"LCD1602_8.H"
unsignedchark[8],j[8];
unsignedintnum,a,fudu;
unsignedchari;
unsignedlongx,t,z;
floats;
voidxianshi()
{
fudu=8;
s=fudu*0.135;
a=s*1000;
j[0]=a/10000;
j[1]=a%10000/1000;
j[2]=a%1000/100;
j[3]=a%100/10;
j[4]=a%10;
lcd_pos(2,0);
lcd_wdat(j[0]+48);
lcd_pos(3,0);
lcd_wdat(j[1]+48);
lcd_pos(4,0);
lcd_wdat('.');
lcd_pos(5,0);
lcd_wdat(j[2]+48);
lcd_pos(6,0);
lcd_wdat(j[3]+48);
lcd_pos(7,0);
lcd_wdat(j[4]+48);
lcd_pos(8,0);
lcd_wdat('');
lcd_pos(9,0);
lcd_wdat('V');
}
voidt0(void)interrupt1using1
{
t++;
}
voidt1(void)interrupt3using3
{
num++;
if(num==3720)
{
TR0=0;
TR1=0;
}
}
voidmain(void)
{
lcd_init();
TMOD=0x25;//T0计数T1定时
TH0=0x00;//计数值清零
TL0=0x00;
TH1=0x06;//250us
TL1=0x06;
ET0=1;
ET1=1;
EA=1;
IE=0x8a;
TR0=1;
TR1=1;
TCON=0x50;
PT1=1;//T1优先级最高
while
(1)
{xianshi();
}
}
图4.4程序总流程图
4.3软件测试
通过软件仿真,输入不同的交流电压和不同的频率,我们都可以在LCD1602上面看到测试得到的结果,通过计算可以得到测量结果的绝对误差和相对误差,根据此结果,我们可以知道我们设计的电路的准确度与实习要求的准确度相差多大。
图4.5总仿真图
软件仿真,当我们输入20V50Hz交流电时,结果
图4.5总仿真例如1
软件仿真,当我们输入15V45Hz交流电时,结果如图
图4.6总仿真例如2
表4.1仿真数据处理
表4.1仿真电压数据
输入电压
〔V〕
真实有效值
〔V〕
显示有效值
(V)
绝对误差
〔V〕
实际相对误差
〔%〕
15
10.608
10.260
0.348
3.280
16
11.315
10.935
0.380
3.358
17
12.022
11.610
0.412
3.427
18
12.729
12.285
0.444
3.488
19
13.437
12.960
0.477
3.549
20
14.144
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 正弦波 有效值 测量 仪表 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)