对50hz正弦交流信号有效值的测量_单片机.docx_第1页
对50hz正弦交流信号有效值的测量_单片机.docx_第2页
对50hz正弦交流信号有效值的测量_单片机.docx_第3页
对50hz正弦交流信号有效值的测量_单片机.docx_第4页
对50hz正弦交流信号有效值的测量_单片机.docx_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录摘要iabstractii1.软件介绍12.设计任务32.1设计要求32.2理论分析33硬件电路设计43.1有效值测量模块43.2 a/d转换模块63.3单片机控制模块72.4显示模块83.5总体电路设计94程序设计104.1程序框图104.2源程序115软件仿真166心得体会18参考文献19武汉理工大学单片机原理与应用课程设计说明书摘要 在实际使用中,有效值是应用最广泛的参数,电压表的读数除特殊情况外,几乎都是按正弦波有效值进行定度的。有效值获得广泛应用的原因,一方面是由于它直接反映出交流信号能量的大小,这对于研究功率、噪声、失真度、频谱纯度、能量转换等是十分重要的;另一方面,它具有十分简单的叠加性质,计算起来极为方便。 本次课程设计以stc89c51单片机为控制核心,利用有效值测量芯片ad736对正弦交流信号的有效值进行测量,测量结果由放大器放大,经tlc549芯片a/d转换后,由单片机控制lcd液晶显示器显示有效值。关键字:有效值、ad736、tlc549abstract in actual use, the rms is the most widely used parameters, voltage meter in addition to the special situation, almost all is according to the set of sinusoidal rms. the cause of the valid values being widely applied, on the one hand, because it is directly reflect the size of the ac signal energy, for the study power, noise, distortion, frequency spectrum purity, energy conversion and so on is very important; on the other hand, it has a very simple superposition nature, extremely convenient to calculate. this course design with the stc89c51 microcontroller as the core, using rms measurement chip ad736 of sinusoidal ac signal effective value measure, the measured results by the amplifier amplification, after eight bits a/d conversion chip, the lcd display rms was controlled by single chip microcomputer.keywords: current effective value, ad736, tlc549ii1.软件介绍proteus软件是英国labcenterelectronics公司出版的eda工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即将增加cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar、keil和mplab等多种编译器.proteus软件具有其它eda工具软件(例:multisim)的功能。这些功能是:(1)原理布图.(2)pcb自动或人工布线.(3)spice电路仿真.革命性的特点:(1)互动的电路仿真用户甚至可以实时采用诸如ram,rom,键盘,马达,led,lcd,ad/da,部分spi器件,部分iic器件。(2)仿真处理器及其外围电路可以仿真51系列、avr、pic、arm、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,proteus建立了完备的电子设计开发环境。在proteus绘制好原理图后,调入已编译好的目标代码文件:*.hex,可以在proteus的原理图中看到模拟的实物运行状态和程。proteus是单片机课堂教学的先进助手.proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中proteus也能茯得愈来愈广泛的应用。使用proteus软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们用proteus开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,用proteus进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,proteus有较高的推广利用价值。2.设计任务2.1设计要求 设计并实现对50hz正弦交流信号有效值的测量,要求输入信号0-15v, 测量显示的分辨率为0.01, 误差0.02。2.2理论分析 方案一:利用数字测量技术对交流信号有效值进行准确测量。测量交流信号的数字测量方法主要有峰值测量法、平均值测量法和纯计算法。其中纯计算法公式为:vrms=1t0tv2tdt 方案二:利用采用有效值检测芯片ad736直接将交流信号转换直流有效值信号。 方案比较:方案一中峰值测量法和平均值测量法只能用于无谐波的纯正弦信号场合,其测得的值不是真有效值。纯计算法只要满足奈奎斯特采样频率条件就可测得真有效值,但在使用传统的纯计算法时,数字测量系统必须满足所谓的整周期采样条件,即交流信号的周期必须等于采样周期的整数倍或有理分数倍,否则该方法求得的值就不符合真有效值的定义。这使整个工作过程变得复杂,同时加大了时间滞后和测量误差。方案二设计精度比较高,能够符合设计要求。故综合考虑选择方案二。设计流程图如图1所示 tlc549a/d转换放大器放大信号信号输入信号衰减ad736有效值计算at89c51控制核心lcd液晶显示器显示有效值图1 设计流程图3硬件电路设计3.1有效值测量模块 有效值测量模块以ad736芯片为核心,根据初始信号的大小选择不同衰减倍数后输入ad736,初始信号在0200mv内不衰减,200mv2v内衰减10倍,2v15v内衰减100倍。ad736是经过激光修正的单片精密真有效值ac/dc转换器。其主要特点是准确度高、灵敏性好(满量程为200mvrms)、测量速率快、频率特性好(工作频率范围可达0460khz)、输入阻抗高、输出阻抗低、电源范围宽且功耗低。最大的电源工作电流为200a,用它来测量正弦波电压的综合误差不超过3%。 ad736各引脚功能如下: +vs:正电源端,电压范围为2.816.5v; -vs:负电源端,电压范围为-3.2-16.5v; com:公共端;图2 ad736引脚图 vo:输出端; cf:输出端滤波电容,一般取10f; cc:低阻抗输入端,用于外接低阻抗的输入电压(200mv),通常被测电压需经耦合电容cc与此端相连,通常cc的取值范围为1020f。当此端作为输入端时,第2脚vin应接到com; vin:高阻抗输入端,适合于接高阻抗输入电压,一般以分压器作为输入级,分压器的总输入电阻可选10m,以减少对被测电压的分流。该端有两种工作方式可选择:第一种为输出ac+dc方式。该方式将1脚(cc)与8脚(com)短接,其输出电压为效流真有效值与直流分量之和;第二种方式为ac方式。该方式是将1脚经隔直电容cc接至8脚,这种方式的输出电压为真有效值,它不包含直流分量。 cav:平均电容。它是ad736的关键外围元件,用于进行平均值运算。其大小将直接响应到有效值的测量精度,尤其在低频时更为重要。多数情况下可选33f。 有效值测量模块电路如下图所示,ad736有多种典型应用电路,包括低输入阻抗方式、高输入阻抗方式下的双电源供电电路和9v单电源供电电路。本方案采用高输入阻抗下的双电源供电方式,该电路中的+vs与com、-vs与com之间均并联一只0.1f的电容以便滤掉该电路中的高频干扰。 cc与com之间并联一个10f的电容起隔直作用。若将图中1脚与8脚短接而使cc失效,则所选择的就是ac+dc方式;去掉短路线,即为ac方式。r为限流电阻,d1、d2为双向限幅二极管,超过压保护作用,选in4148高速开关二极管。图3 有效值测量模块电路图3.2 a/d转换模块 a/d转换模块的核心是tlc549芯片,tlc549是一款8位串行a/d转换芯片,可与通用微处理器、控制器通过clk、cs、dataout三条口线进行串行连接。具有4mhz片内系统时钟和软硬件控制电路,转换时间最长17s,tlc549为40000次/s。总失调误差最大为0.5lsb,典型功耗值为6mw。采用差分参考电压高阻输入,可按比例量程校准转换范围,ref-接地,ref+ref-1v,可用于较小信号的采样。有效值在输入tlc549前需经过同相放大器,计算其放大倍数为: vi=r6r5+r6vo vovi=1+r5r6=10tlc549工作原理如下:其sdo、cs、sclk引脚分别与单片机p2.1、p2.2、p2.0相连,由单片机控制其状态。当cs为高时,数据输出sdo端处于高阻状态,此时sclk不起作用。这种cs控制作用允许在同时使用多片tlc549时,共用sclk,以减少多路(片)a/d并用时的i/o控制端口。当cs为低时,内部电路在测的cs下降沿后,再等待两个内部时钟周期,然后自动将前一次转换结果的最高位(d7)位输出到sdo端上。在sclk第4个下降沿开始采样模拟输入,第8个下降沿前一次的转换结果全部移出,保持功能持续4个内部时钟周期后,开始进行32个内部时钟周期的a/d转换。图4 a/d转换模块3.3单片机控制模块 at89c51集成了cpu、ram、rom、定时/计数器和多功能i/o口等计算机所需要的基本功能部件,其构成的最小系统由单片机、时钟电路、复位电路等构成,具有简单可靠的优点。如图5所示为89c51单片机构成的最小系统,采用内部振荡方式产生时钟信号,复位电路采用开关复位。rp1为p0口的上拉电阻,p0口输出lcd液晶显示器显示的相关信息, p2口一部分控制tlc549进行a/d转换,一部分控制液晶显示器,p3.2口与独立按键相连,控制量程转换。图5 单片机控制模块2.4显示模块 显示模块通过液晶显示器显示输出的波形和频率,其电路图如下图所示。lm016l的8位数据端接单片机的p0口,三个控制端rs、rw、e也分别与单片机的p2口相连。图6 液晶显示模块3.5总体电路设计 由上述模块电路的设计,设计总体电路如下图所示。根据输入信号的大小选择不同程度的衰减,由ad736将交流信号的有效值测量出来,并经过放大器放大后输入a/d转换器tlc549,tlc549将数据模数转换后输入到单片机,由单片机控制lcd液晶显示器显示有效值。图7 总体电路设计表1 资源分配表i/0口分配具体分配内容p0输出液晶显示屏显示内容p2.0tlc549外部时钟输入p2.1串行输出口p2.2芯片使能端p2.5-p2.6液晶显示屏控制端p3.2量程切换4程序设计4.1程序框图开 始初始化显示启动外部中断int0将a/d转换后的结果进行量程转化判断num的值num=0num=2num=1将结果乘以10将结果乘以100显示量程02v显示量程020v显示有效值外部中断开始ex0=0,num+否是num=3num=0ex0=1结 束图8 程序设计框图4.2源程序19#include#include#define uchar unsigned char#define uint unsigned intsbit clk = p20; /tlc549外部时钟输入sbit out = p21; /转换结果数据串行输出端sbit cs = p22; /芯片选择输入端sbit rs=p25; /lcd控制sbit rw=p26;sbit en=p27;sbit key=p32; /外部中断口,量程选择 uchar num;/量程标志uchar ad_data;uint ad_data1;uchar code str1=value: ;uchar code str2=range: ;uchar code str3=0-200mv;uchar code str4=0-2v ;uchar code str5=0-20v ;uchar buffer5=00000;uchar danwei=mv;uchar adout(void) /a/d转换uchar i,x;clk = 0;out = 1;cs = 0;for(i = 0;i8;i+)/串行数据移位输入 clk = 1; x=1; /x的值左移一位后赋值给x x|=out; /x与out位或后将值赋值给x clk= 0; cs = 1;for(i=0;i8;i+) /等待tcl549保持和转换工作的完成 _nop_();return x;void delay1ms(uint ms) /延时1毫秒unsigned int i,j; for(i=0;ims;i+) for(j=0;j100;j+);void wr_com(uchar com)/1602写指令 delay1ms(1); rs=0; rw=0; en=0; p0=com; delay1ms(1); en=1; delay1ms(1); en=0;void wr_dat(uchar dat)/1602写数据 delay1ms(1); rs=1; rw=0; en=0; p0=dat; delay1ms(1); en=1; delay1ms(1); en=0;void lcd_init()/1602初始化设置 delay1ms(15); wr_com(0x38);delay1ms(5); /设置16*2显示,5*7点阵,8位数据接口 wr_com(0x08);delay1ms(5); /关显示,不显示光标 wr_com(0x01);delay1ms(5); /显示清0,数据指针清0 wr_com(0x06);delay1ms(5); /写一个字符后地址指针加1 wr_com(0x0c);delay1ms(5); /设置开显示,不显示光标void display(uchar *p) /显示 while(*p!=0) /当指针所指的地址的值不是空字符时,执行程序 wr_dat(*p);p+;delay1ms(1); init_play()/初始化显示 lcd_init();/1602初始化显示 wr_com(0x80);/显示value: display(str1); wr_com(0xc0);/换行显示range: display(str2);wr_com(0x80+0x0c); /显示mv display(danwei);wr_com(0xc0+0x07); /显示0-200mv display(str3);void show(uint date)/显示子函数 buffer0=date/10000+0;/将各个位上的数转换成ascll码buffer1=date/1000%10+0;buffer2=date/100%10+0;buffer3=date/10%10+0;buffer4=date%10+0;wr_com(0x80+0x07); /显示有效值数值display(buffer);void main() init_play();/初始化显示 ie = 0x81; /允许总中断中断,使能 int0外部中断 it0=1; /触发方式为脉冲负边沿触发 key=1; /i/o口初始化 while(1) ad_data = adout(); ad_data1=(unsigned int)(unsigned long int)ad_data*500/255); /将结果进行量程转化 if(num =1) ad_data1 = ad_data1 * 10; wr_com(0xc0+0x07); /将量程显示改为0-2v display(str4); if(num =2) ad_data1 = ad_data1 * 100; wr_com(0xc0+0x07); /将量程显示改为0-20v display(str5); show( ad_data1);/显示有效值 void intv0() interrupt 0 /外部中断int0 ex0 = 0; num+; if(num =3) num = 0; ex0 = 1;5软件仿真 将由上述c语言程序通过keil软件生成的hex文件下载到proteus电路图中的单片机上进行仿真,仿真结果如下: 1. 当输入信号有效值150mv时,液晶显示如图9。图9 输入信号有效值150mv 2.当输入信号有效值1.5v时,液晶显示如图10。图10 输入信号有效值1.5v 3.当输入信号有效值12v时,液晶显示如图11。图11 输入信号有效值12v表2 仿真电压数据输入有效值(v)显示有效值(v)绝对误差(v)相对误差(%)0.10.1010.00110.20.2010.00000011.0100.01122.0100.010.555.000001010.1000.111212.1000.10.51515.00000 随机输入015v范围内的50hz正弦信号,部分有效值转化后有误差,如输入有效值0.5v,显示0.5mv,输入有效值12v,显示12.1v。但基本能保证在0.02的误差范围内。6心得体会学习单片机知识与学习其他任何知识一样,仅从理论上去求知,而不去实践

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论