基于单片机正弦波有效值的测量

上传人:aa****6 文档编号:29252669 上传时间:2018-01-23 格式:DOC 页数:23 大小:1,010KB
返回 下载 相关 举报
基于单片机正弦波有效值的测量_第1页
第1页 / 共23页
基于单片机正弦波有效值的测量_第2页
第2页 / 共23页
基于单片机正弦波有效值的测量_第3页
第3页 / 共23页
基于单片机正弦波有效值的测量_第4页
第4页 / 共23页
基于单片机正弦波有效值的测量_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《基于单片机正弦波有效值的测量》由会员分享,可在线阅读,更多相关《基于单片机正弦波有效值的测量(23页珍藏版)》请在金锄头文库上搜索。

1、基于单片机正弦波有效值的测量 一简介本作品以单片机 STC12C5A60S2 为主控芯片并以此为基础,通过二极管 1N5819 实现半波整流,使用单片机内部自带 10 位 AD 对整流后的输入信号进行采样,从而实现对峰值的检测;同时通过运放LM837 对输入信号进行放大,之后通过施密特触发器,将原始信号整形成可被单片机识别的标准脉冲波形,之后配合内部计数器(定时器)达到测量其频率的目的;这样,整流和 AD 采样实现对输入信号峰值的检测;通过放大、整形实现对输入信号频率的检测。二基本功能与技术指标要求(1)输入交流电压:1mV50V,分五档: 1mV20mV, 20mV200mV, 200mV2

2、V, 2V20V, 20v50V。(2)正弦频率;1Hz100kHz;(3)检测误差:2%;(4)具有检测启动按钮和停止按钮,按下启动按钮开始检测,按下停止按钮停止检测;(5)显示方式:数字显示当前检测的有效是,在停止检测状态下,显示最后一次检测到的有效值;(6)显示:LCD,显示分辨率:每档满量程的 0.1%;三理论分析本文要求输入交流信号,通过电路测量其峰值,频率,有效值以及平均值,因为输入的交流信号为模拟信号,而一般处理数据使用的主控芯片单片机处理的是数字信号,所以我们选择使用数模转换器 AD(Analog to Digital Converter)将输入的模拟信号转换为数字信号,并进行

3、采样;由于要求输入交流信号电压峰峰值 Vpp为 50mV10V,所以如果我们采用 AD 为 8 位,则最小采样精度为,因此会产生 78.4%的误差,并且题目要求输入交528119.6流信号的频率范围为 40Hz50kHz ,所以为了保证对高频率信号的单周期内采样个数,我们需要选择尽量高速度的 AD;因此我们选用使用单片机 STC12C5A60S2,其内部自带 AD 为 8路 10 位最高速度可达到 250KHz,所以我们可以将最小采样精度缩小到 ,并且在输入交流信号频率最大时(50KHz)521014.87在单个周期内可采集 5 个点,因此可保证测量精度。由于该AD只能接受05V的模拟信号输入

4、,所以当我们直接输入一个双极性信号时可能损坏AD,因此当信号进入AD之前我们要进行半波整流,为此我们设计了整流电路,在交流信号通过整流电路输入AD后,由AD实时输出对应模拟信号大小的二进制数,并存入变量MAX中,随着信号的不断输入MAX 中只保存 AD输出过的最大值,这样既可测出输入信号的峰值;由交流信号有效值表达式 可知检波器应当首先把输入的瞬时电压平方, 然后在有效 = 1=12一定平均时间内取平均值再开方。即可得到交流信号的有效值,然后通过比较峰值和有效值的关系即可知道该交流信号的波形;由于要检测交流信号的频率,所以我们使用单片机内部定时器和计数器,而计数器只能由上升沿或是下降沿触发,所

5、以我们想通过施密特触发器将输入交流信号变为高低电平,以便检测其频率,而施密特触发器CD40106在常温5V供电下门限电压 =1.4V ,而输入 ,+=3.6交流信号的峰值最小时为25mV,所以不能保证输入信号为正的时候施密特触发器就能发生跳变,因此我们要对输入交流信号进行放大,为此我们设计了放大电路。四.电路设计1.电源电路的设计本次实验我们采用+5V,5V,+12V,12V 的电源,故采用了7805,7905,7812,7912 这四块芯片组成电源电路对作品进行供电。如图一所示:图一经过测量实际输出电压为:+5.12V -5.06V +12.67V -12.02V2分档设计由于直接对信号测量

6、时,对小信号的测量产生很大的误差,为了更有效的利用单片机的资源,故要对待测信号进行分档处理,但在实际运行中,由于进入放大器之前存在大量电阻产生了很多的噪声干扰,使输出波形严重失真,不能有效的利用,故我们舍弃了该部分的电路。 3整流电路的设计我们使用整流二极管 5819 实现半波整流,但通过此电路输出波形会出现一个负电压,因此在此基础上,我们在二极管后加了一个上拉电阻,实现最大程度的消除输入波形的负电压,使其在单片机STC12C5A60S2 内部 AD 的可接收信号范围内(0-5V) 。输入信号经过整流后进入 AD,由 AD 输出 10 位数字信号,再有单片机进行处理,得出信号的有效值。电路如图

7、二所示:图二在实际的测试中,证明该方案可行,能够实现对信号的半波整流处理。4正弦波转方波电路设计在该电路的设计中,我们一开始采用555芯片把正弦波转换为方波,但在实际的测试中发现555只能对高于6V的信号才能使正弦波转换为放波,与我们实习要求不符合,故舍弃了该方案。在老师的指导下,我们采用了滞回比较器来产生方波。本方案检测输入信号频率的核心电路,信号通过由三个运放LM324组成的运放电路后放大100倍,然后输入施密特触发器使其波形变为高低电平,将此波形输入到单片机主控芯片,利用单片机内部的计数器和定时器完成对频率的测量。大部分采用运放LM324构成放大100倍电路,位于图下方由5V电源供电的运

8、放可以产生一个2.5V的直流电压,将此2.5V的直流电压输入到第一级运放后,会使输入的交流信号上偏2.5V,变为0-5V,再经过pF的电容C3滤掉被放大的噪声以及2.5V直流后,变为-2.5+2.5的交流信号,之后进入二级放大;如图所示第二级运放在加入+2.5V 直流电压后输出为 05V 的交流信号,至此外加交流信号已被放大 100 倍;在外加交流信号被放大100 倍之后进入施密特触发器 CD40106,该触发器在常温 5V 供电下门限电压 =1.4V ,输出高电平 ,低电平 , 此部分电路输出即为这个高低电平。电路如图三所示:图三在实际的检测中发现放大器并不能将信号放大100倍,故幅值较小的

9、信号不能正常显示频率,只要当信号的峰峰值大于1.5V时才能使单片机正常显示信号的频率。5.单片机电路采用STC12C5A60S2单片机,作为整个系统的控制器,控制各个模块协调工作。运用其内部集成的一个AD作为数模转换器。如图四所示图四6.系统整体电路图如图五所示图五四软件设计AD流程图如图六 图七所示采样是否是大于最大值有效值AD 采样输出有效值将采样值存入有效值中开始整流后的信号图六开始定时器 1 定时 0.05us,定时 20 次计时器 0 下降沿计数CD40106 整形后的脉冲定时已完成输出计数器的计数图七1.正弦波有效值的测量方法工频正弦电压信号 )2sin()2sin()( ftUf

10、tUtumut频率 f 和初相位角 已知,且 0,现以 t=0 时可作为基准时间,并在 t=0 时刻开始进行等间隔采样,共得到正弦波 u(t)的 N个测量值(采样数据)u(0),u(1) , u(N-1),希望利用这 N 个测量值来计算正弦波的幅值 Um(有效值 U) 。设采样周期为 TS,如果不存在噪音,且测量无偏差,则有0)sin()0(mUu2STf )sin()(SmKfUku )1(2si)1( SmTNfN我们可以设法利用测量值求解出正弦波参数。实际上,我们的测量存在误差,同时信号存在噪音,因此,对每一个测量信号 u(k),它与对应时刻 t=kTS 的正弦波的值 存在一个误差 ,其

11、中)2sin()(ftUtum )2sin()(smkfUtu)(kek=0,1, ,N-1。定义 )(si()( kTfkeSm为了利用 N 个测量值来尽可能准确的计算正弦波幅值 Um,我们定义指标函数为: 10 2102 )(2sin()()(Nk smNkm kuTfUeU它是频率 f,幅值 Um,初相位角 的函数 。 我们的目的就是求频率 f,幅值 Um,初相位角 使得目标函数 最小。为此,令)1(0)2sin()2(sin ii()( 1010 Nk sNksmk sSmTkfuTfUff可以得到正弦波的幅值102)(sin)NkssmTkfuU为了与正弦波的真正幅值 Um 表示上的

12、区别,用 UmC 表示利用 N 个采样数据获得的正弦波幅值计算值,既 )2()2(sin)10NkssmCTkfuU对于 f50Hz(以前面的测量值为准,这里仅为举例),选择采样周期TS 20/200=0.1ms=100us,既每个周期采样 200 点(每半个周波100 次采样) , 19,.0)10sin(2kfS是确定的(可以预先求出,存于 sin 表中) ,sin 2(2fkT S)同样作为常数表,而且 CTkfNks102)(sin本身是一个常数,因此公式(2)变为 )3()2sin()10CTkfkuUNsmC当采样周期很小时,数值积分系数 C 可以用)4()(sin120tdTS来

13、替代(可以认为 C 是一个周期类的数值积分,当采样周期很小时,就用积分项来表示) 。就可利用 N 个等间隔测量值计算出正弦信号的峰值 Um。正弦波的有效值与峰值的关系 )5(2mCU半波绝对值电路:在待测交流信号的正半波,输出待测信号送 AD 变换电路,在待测信号的负半波,输出 0.正半波时,Px.y=0,单片机利用该信号识别是正半波信号,进行 AD 转换,获得 N 个采样值。在 Px.y=1 时,单片机暂停AD 变换,利用正半波获得的 N 个检测信号计算正弦波的有效值U,频率 f。2.数据测量幅值的测量输入幅值vpp(v)5 4.5 4 35 3 25 2 1.5 1单片机读数(v)3.48

14、6 3.143 2.804 2152 2.092 1742 1405 1.045 0.695误差(%)-1.4 -1.3 -0.8 1.3 -1.3 -1.4 0.6 -1.4 -1.7表1频率的测量被测信号(Hz)100 200 1K 2K 5K 10K 20K 30K 40K读值(Hz) 99 197 999 2010 5032 10040 20056 30025 40034误差(%) 1 1.5 0.1 0.5 0.6 0.4 0.28 0.083 0.08表23.数据分析由上图可知在输入信号vpp在0.7v到5v的区域内,实验作品的误差较小能够实现有效值的测量,当频率在100Hz到40

15、KHz时,在误差允许范围内,作品基本能完成对该信号的准确测量。4.软件部分代码:#include #include #define FOSC L#define BAUD 9600typedef unsigned char BYTE;typedef unsigned int WORD;sbit LCM_E=P25;/定义接口sbit LCM_RW=P26;sbit LCM_RS=P27;sfr ADC_CONTR = 0xBC; sfr ADC_RES = 0xBD;sfr ADC_LOW2 = 0xBE;sfr P1ASF = 0x9D;sfr AUXR = 0x8e; #define ADC_POWER 0x80#define ADC_FLAG 0x10#define ADC_START 0x08#define ADC_SPEEDLL 0x00#define ADC_SPEEDL 0x20#define ADC_SPEEDH 0x40#define ADC_SPEEDHH 0x60#define LCM_Data P0/数据接口void InitU

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号