《等精度频率计(11页).doc》由会员分享,可在线阅读,更多相关《等精度频率计(11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-等精度频率计-第 11 页等精度频率计一、设计任务与要求设计并制作一台能测量频率和周期的等精度频率计,即在整个频率测量和周期测量范围内可获得同样高的测量精度。电路示意图如图所示。 等精度频率计电路示意图(1) 频率测量范围:1Hz10MHz(7位数字显示);(2) 周期测量范围:1s;(3) 信号及信号幅度:矩形波,TTL电平;(4) 测量误差10-7(仅考虑计数误差);(5) 预置闸门时间:1s(6)为了达到能对相关知识点进行练习的目的,要求按图1所示的电路结构设计,除应包括单片机、数字电路部分外,还应按发挥部分的要求增加模拟通道电路部分。二计数测量误差闸门时间由晶体振荡器多次倍频或分频获
2、得,所以,标准频率误差就是频率计中晶体振荡器的准确度。为了使标准频率误差对测量结果产生影响足够小,应认真选择晶振的准确度。一般说来,频率计显示器的位数愈多,所选择的内部晶振准确度就应愈高。例如七位数字的通用计数器一般采用准确度优于107数量级的晶体振荡器。这样,在任何测量条件下,由标准频率误差引起的测量误差,都不大于由1误差所引起的测量误差。放大,整形与门晶振分频门控计数N个译码显示被测信号的频率图2 等精度频率计的示意波形图设单片机在同一闸门时间TG内,测得被测信号fx的个数是Nx,测得时钟信号fs的个数是NS,则可得上式表明频率测量的相对误差由三项组成,前面两项是量化误差,也称为计数误差,
3、后面一项是标准频率的误差。由于电路中同步控制D触发器的同步作用,已经消除了被测信号NX的量化误差NX,因此频率测量计数(量化)相对误差的绝对值仅为:此时,虽然量化误差NS依然存在,但由于标准频率fs较高,即NS较大,而|NS|=20)i=0;CLK=0;while(Q);/此处是等待电平的变换TR0=0;TR1=0;dis0=TL0|(TH08);dis1=TL1|(TH1=10000000)num=num;dis_LCD(unsigned long int)num/10000000+0x30,0x02);dis_LCD(unsigned long int)num/1000000%10+0x3
4、0,0x03);print(.,0x04);dis_LCD(unsigned long int)num/100000%10+0x30,0x05);dis_LCD(unsigned long int)num/10000%10+0x30,0x06);dis_LCD(unsigned long int)num/1000%10+0x30,0x07);dis_LCD(unsigned long int)num/100%10+0x30,0x08);dis_LCD(unsigned long int)num/10%10+0x30,0x09);/dis_LCD(unsigned long int)num%10
5、+0x30,0x0a);print(MHz,0x0b); else if(numb=1000000)&(numb=100000)&(numb=10000)&(numb=1000)&(numb=100)&(numb=10)&(numb100)num=num*1000000;dis_LCD(unsigned long int)num/10000000+0x30,0x02);dis_LCD(unsigned long int)num/1000000%10+0x30,0x03);print(.,0x04);dis_LCD(unsigned long int)num/100000%10+0x30,0x0
6、5);dis_LCD(unsigned long int)num/10000%10+0x30,0x06);dis_LCD(unsigned long int)num/1000%10+0x30,0x07);dis_LCD(unsigned long int)num/100%10+0x30,0x08);dis_LCD(unsigned long int)num/10%10+0x30,0x09);/dis_LCD(unsigned long int)num%10+0x30,0x0a);print( Hz,0x0b);else/ if(numb=1000000)Tnum=Tnum*10;dis_LCD
7、(unsigned long int)Tnum/10000000+0x30,0x02);print(.,0x03);dis_LCD(unsigned long int)Tnum/1000000%10+0x30,0x04);dis_LCD(unsigned long int)Tnum/100000%10+0x30,0x05);dis_LCD(unsigned long int)Tnum/10000%10+0x30,0x06);dis_LCD(unsigned long int)Tnum/1000%10+0x30,0x07);dis_LCD(unsigned long int)Tnum/100%1
8、0+0x30,0x08);dis_LCD(unsigned long int)Tnum/10%10+0x30,0x09);dis_LCD(unsigned long int)Tnum%10+0x30,0x0a);print(s,0x0b); else if(Tnumb=100000)&(Tnumb=10000)&(Tnumb=1000)&(Tnumb=100)&(Tnumb=10)&(Tnumb100)Tnum=Tnum*1000000;dis_LCD(unsigned long int)Tnum/10000000+0x30,0x02);dis_LCD(unsigned long int)Tn
9、um/1000000%10+0x30,0x03);print(.,0x04);dis_LCD(unsigned long int)Tnum/100000%10+0x30,0x05);dis_LCD(unsigned long int)Tnum/10000%10+0x30,0x06);dis_LCD(unsigned long int)Tnum/1000%10+0x30,0x07);dis_LCD(unsigned long int)Tnum/100%10+0x30,0x08);dis_LCD(unsigned long int)Tnum/10%10+0x30,0x09);dis_LCD(uns
10、igned long int)Tnum%10+0x30,0x0a);print( Hz,0x0b);else/ if(numb10)Tnum=Tnum*10000000;dis_LCD(unsigned long int)Tnum/10000000+0x30,0x02);print(.,0x03);dis_LCD(unsigned long int)Tnum/1000000%10+0x30,0x04);dis_LCD(unsigned long int)Tnum/100000%10+0x30,0x05);dis_LCD(unsigned long int)Tnum/10000%10+0x30,0x06);dis_LCD(unsigned long int)Tnum/1000%10+0x30,0x07);dis_LCD(unsigned long int)Tnum/100%10+0x30,0x08);dis_LCD(unsigned long int)Tnum/10%10+0x30,0x09);dis_LCD(unsigned long int)Tnum%10+0x30,0x0a);print( Hz,0x0b);MR=1;/PR=0;TL0=0;TL1=0;TH0=0;TH1=0;ET2=1;TR2=1;