(论文)[课程设计]等精度频率计最新优秀毕业论文资料搜集呕血奉献_第1页
(论文)[课程设计]等精度频率计最新优秀毕业论文资料搜集呕血奉献_第2页
(论文)[课程设计]等精度频率计最新优秀毕业论文资料搜集呕血奉献_第3页
(论文)[课程设计]等精度频率计最新优秀毕业论文资料搜集呕血奉献_第4页
(论文)[课程设计]等精度频率计最新优秀毕业论文资料搜集呕血奉献_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

等精度频率计摘 要:本文设计的频率计将8051微处理器的智能特性与数字逻辑器件相结合,采用硬 件逻辑与软件指令巧妙配合的智能闸门控制方式,实现了0.110MHz范围内的等精度无档切换测量功能,精度可达0.0001。关键词:等精度;高精度;频率计;智能仪表。目录一、概述3八、实验原理31测量频率的工作原理32提高精度的工作原理33计数器的工作原理44放大与整形原理55LCD的工作原理5三、硬件电路6四、软件程序6五、实验数据与数据分析121基数据测量结果122数据分析12六、误差分析12七、总结分析与结论13八、参考文献13一概述频率计是用来测量信号频率或周期的仪器,在工程领域有广泛的应用。设计频率计一般有两种方案。一种是专用芯片,如利用MAXIM 公司的ICM7240实现。其特点是简单易行,其最高计数频率是15MHz,而且测量精度也受到芯片本身的限制;另一种方案是以单片机为主再附加一些逻辑电路。一般最常用的方法是用一个TC通道作为定时器,另一个TC通道作为计数器,定时时间到产生中断,在中断服务程序中处理计数结果,求出频率。本文设计的频率计是按第二个方案设计的:将8051微处理器的智能特性与数字逻辑器件相结合,采用硬件逻辑与软件指令巧妙配合的智能闸门控制方式,实现了0.110MHz范围内的等精度无档切换测量功能,精度可达0.0001。二实验原理1测量频率的工作原理将两个TC通道都设置为计数器方式,其中由记数器1对标准2M脉冲(从单片机8051的ALE脚引出)经两片74LS161芯片进行32分频后由CPU的TC1通道进行记数;待测信号经74LS161芯片进行256分频后,经二选一通道选择器后由CPU的TC0通道进行计数。闸门开通期间两计数器进行计数,而关闭期间停止计数。如果设各通道计数满产生的中断次数分别为v和w,外部分频计数器结果为nbz和ncs,设通道1计数结果为mbz,通道0计数结果为mcs,则标准信号的计数脉冲累计结果为:mbz=v*65536*32+TH0*256*32+TL0*32+nbz待测信号经过分频和未经分频的的计数脉冲累计结果为:mcs=w*65536*256+TH0*65536+TL0*256+ndc (经过分频)mcs=w*65536+TH0*256+TL0 (未经分频)而实际上,当高频信号产生中断的时候就立刻终止计数,因此待测信号不会产生中断,故待测信号经过分频和未经分频的的计数脉冲累计结果也可以写成:mcs=TH0*65536+TL0*256+ndc (经过分频)mcs=TH0*256+TL0 (未经分频)因标准信号频率为2MHz,故可计算出待测信号的频率为:F=(mcsmbz)*2000000Hz2提高精度的工作原理提高频率测量精度的关键因素是保证闸门的开启与关闭必须与被测信号保持严格的同步,即在被测信号某一周期的上升沿(或下降沿)开启闸门,而在另一周期的上升沿(或下降沿)关闭闸门,这样才能确保采样一个或几个完整的信号周期,这一点对于低频段尤为重要。采样一个完整周期的示意图如图一所示。图一 采样一个完整周期示意图本系统通过D触发器、单片机软件指令巧妙配合共同完成这一任务。标准信号源直接取自微处理器的频率为12M的晶振经6分频后在ALE脚输出的脉冲,频率为2MHz。而12MHz晶振频率的51系列单片机所能记数的最高频率只能达到500KHz,因而考虑到要测量高达10MHz的高频信号必须经过分频器进行分频处理。如图二所示,标准信号的待测信号是完全同步的。图二 D触发器控制信号同步3计数器的工作原理当待测信号为高频时,数据选择器选择经256分频的信号,进入TC0通道;当待测信号为低频时,数据选择器选择未经分频的信号,进入TC0通道。与此同时标准信号经32分频进入TC1通道。如图三、图四所示:图三 标准信号32分频 图四 待测信号256分频,二选一数据选择4放大与整形原理 由于待测信号的幅度和频率的大小、以及信号波的类型未知,故待测信号必须先经过放大和整形,使之成为幅值在35V之间的脉冲波,以便正确测量频率。图五 放大与整形5LCD的工作原理单片机中的WR、RD和P2.7控制LCD使能E,P2.6 和P2.5分别控制读/写R/W和寄存器选择RS。如图六所示图六 LCD原理与接口三硬件电路四软件程序#include#include#include#include#define lcdxs XBYTE0xdfff#define lcdkz XBYTE0x9fffbdata int lcdsm;#define lcdsm XBYTE0xbfffsbit K1=P31;sbit x0=P30;sbit x2=P32;sbit K2=P36;int r,m,k,i,j,dp,k,a;int v=0;long d,n;unsigned char code dispcode=0x30,0x31,0x32,0x33,0x34, 0x35,0x36,0x37,0x38,0x39, 0x2e,0x4b,0x48,0x7a;float f,mbz ,mcs,nbz,ncs;int haha10=0,hehe12=0,p=6;f_busy() /*查询忙标志*/ int p2,y; int t7; p2=0x80; doy=lcdsm;t7=p2&y; while (t7=0x80); void delay(void) int i; for(i=100;i0;) i-; void delay100(void) int i,j; for(i=0;i0;j-) ;void div(void) /*分频子程序*-/ P3=0xfe; TMOD=0x55; TH0=0x00; TL0=0x00; TR0=1; P3=0xff; delay100(); x0=0; n=TH0*256+TL0; a=P1; void shuju(void) /*计算子程序*/ while(v=00); while(x2!=0&TL0!=0); if(x2=0) nbz=P2&0x1f; ncs=P1; mbz=65536*32*v+TH1*32*256+TL1*32+nbz; if(r=0) mcs=TH0*256+TL0; else mcs=TH0*65536+TL0*256+ncs; f=(mcs*2000000)/mbz; if(f9000000) f=f+10000; void chuli(void) /*数据处理*/if(f1000) d=f*100; else d=f*1000000; for(j=0;j=0;i-) if(hehei!=0)break; haha0=hehei; haha1=hehei-1; haha2=hehei-2; haha3=hehei-3; haha4=hehei-4; haha5=hehei-5; haha6=hehei-6; haha7=hehei-7; dp=log10(f); if(dp=3) for(j=8;j=dp-2;j-) hahaj+1=hahaj; hahadp-2=10; haha7=11; else if (dp0&dp=dp+1;j-) hahaj+1=hahaj; hahadp+1=10; else if(dp=0) if(f=0;j-) hahaj+2=hahaj; haha0=0; haha1=10; else if(f=1) for(j=8;j=dp+1;j-) hahaj+1=hahaj; hahadp+1=10; else if(dp=0;j-) hahaj+3=hahaj; haha0=0; haha1=10; haha2=0; haha8=12; haha9=13;void lcd00(void) /*LCD清屏*/ K2=1; P0=0x00; f_busy(); lcdkz=0x01; f_busy(); lcdkz=0x38; f_busy(); lcdkz=0x0e; f_busy(); lcdkz=0x06;void lcd(void) /-*显示子程序*-/ for(k=0;k8;k+) f_busy(); lcdxs=dispcodehahak; f_busy(); lcdkz=0xc0; f_busy(); lcdxs=dispcodehaha8; f_busy(); lcdxs=dispcodehaha9; for(i=0;i=24) r=1; P3=0Xff; delay100(); shuju(); else if(n=1)|(n=0&a20) r=0; P3=0xf7; delay100(); shuju(); else P3=0xfe; TR0=0; /触发器清零 TMOD=0x51; TH0=0x00; TL0=0x00; ET0=1; EA=1; P3=0X7e; P3=0xf1; while(x2=0); x0=0; while(x2=1); TR0=1; x0=1; while(x2=0) ; TR0=0; mcs=v*65536+TH0*256+TL0; f=1000000.0/mcs; chuli(); lcd00(); lcd(); delay100(); goto TT; void t1(void) interrupt 3 using 2 /*计数器中断 T1*/ x0=0; v+;void t0(void) interrupt 1 using 2 /*计数器中断 T0*/ v+;五实验数据与数据分析1数据测量结果实际频率(Hz)测量显示结果实际频率(Hz)测量显示结果15M14986.7KHz1K999.960Hz10M9999.84KHz500499.894Hz8M7999.60KHz200199.943Hz2M1999.71KHz10099.9864Hz1M999.945KHz5049.9923Hz500K499.999KHz109.99836Hz200K199.999KHz10.99983Hz100K99.9897KHz050.49999Hz50K49.9983KHz010.09987Hz2数据分析 测试环境有影响。 信号不稳定引起的数据上下波动。 实验数据整体偏小。 六误差分析 电路不稳定引起误差。 实验中用到大频率,频率间相互影响产生误差。测量仪器范围、精度引起的误差。 实验中用全是TTL器件速度较慢。 两信号不是绝对同步导致误差。七、总结分析与结论。 根据本设计理论分析及实际测试结果,表明: 本设计达到了0.110M的频率测量范围。 本设计总体上达到了0.0001误差的要求。 本设计中实际测量结果表明没有完全达到等精度的要求。 频

温馨提示

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

评论

0/150

提交评论