等精度频率计的设计_第1页
等精度频率计的设计_第2页
等精度频率计的设计_第3页
等精度频率计的设计_第4页
等精度频率计的设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、简易频率计制作学院:学电学院班级:0816班学生姓名:陈杨04081843王忠超 04081843齐俊斌 04081843时间:从2018年5月10日到2018年5月15日等精度频率计的设计一摘要:本设计是基于AT89C52单片机频率计入信号为峰峰值5v的正弦信号,频率 测量范围10HZ100MHz ,频率测量精度为0.1%。采用1602夜晶显示器显示测 量结果。信号源由PROTEUS的虚拟信号发生器产生。b5E2RGbCAP二关键词:频率计等精度单片机分频三设计原理与总体方案:测量一个信号的频率有两种方法:第一种是计数法,用基准信号去测量被 测信号的高电平持续的时间,然后转换成被测信号的频率

2、。第二种是计时法, 计算在基准信号高电平期间通过的被测信号个数。 p1EanqFDPw根据设计要求测量10HZ100MHz的正弦信号,首先要将正弦信号通过过零 比较转换成方波信号,然后变成测量方波信号。如果用第一种方法,当信号频 率超过1KHZ的时候测量精度将超出测量极度要求,所以当被测信号的频率高于 1KHZ的时候需要将被测信号进行分频处理。如果被测信号频率很高需要将被测 信号进行多次分频直到达到设计的精度要求。DXDiTa9E3d根据设计要求用单片机的内部T0产生基准信号,由INTO输入被测信号,通 过定时方式计算被测信号的高电平持续时间。通过单片机计算得出结果,最后 有1062夜晶显示器

3、显示测量结果。等精度频率计的系统设计框架如下图1所示RTCrpUDGiT图1等精度频率计系统设计框图四硬件设计:硬件电路主要分为信号转换电路、分频电路、数据选择电路、单片机系统 和显示电路五部分。其总体电路图如图2所示。5PCzVD7HxA,v.wisecol,J, ,u?10 / 10- _L图2总体电路图4.1 电平转换电路:要将正弦信号转换成方波信号可以用过零比较电路实现。正弦信号通过LM833N与零电平比较,电压大于零的时候输出LM833N的正电源+5V,电压小于零的时候输出负电源0V。具体电路如图3所示。jLBHrnAILg4.2 分频电路:分频电路采用十进制的计数器74HC401来

4、分频,当被测信号脉冲个数达到10个时74HC401产生溢出,C0端输出频率为输入频率的1/10,达到十分频的 作用。如果当频率很高是需要多次分频只需将多片74HC401极联就可以了。74HC4017寸序图如图4所示,系统分频电路如图5所示。xhaqx74J0xCARRYOUT图474HC4017时序图图5分频电路4.3 数据选择电路:根据设计要求要根据计数脉冲个数来选择分频次数,可以用74151来选择分频次数,74151的选择控制信号有单片机的I/O 口来控制。数据选择电路如图6所 示 o LDAYtRyKfE4.4 单片机系统:单片机采用AT89C51,采用12MHz的晶振频率。单片机的P3

5、.2口接被处理后的被测信号,P0口接液晶显示器的数据输入端,ALE, RD, WR, P0.0, P0.A, AJ2伯S Y T Al 4pfij由M35.181 ML 1r .U/MLAJPO 1/AD1 P0j2/AI>2XTAL2P0,3ZAD3PO.4CAC4Pa.5<AD5 PO 6/AC6RSTPD,7<AD7P2.0ZfiSP2Aifi6P2 2/A10 PSENP2.3M11ALEP2/VA12EA.P2.5/A13P2.0/A14P2.7/A15P1OP3.O/RXDP1 1P12P3.2/WT0P13P3.3/iNT1P14PS.TOP15P3.5/T1P

6、16P3.6jWRP17P3.7/RD38',3736g35343332an!ianALE <g-r _23JI 4252B27 :2白_ m :,: 七 :,:1245U_8_1314怡:T_|>HL -1> 研AT89C511通过外接控制电路接液晶显示器的控制端。单片机系统的电路如图7所示。Zzz6ZB2Ltk4.5显示电路:图7单片机系统显示电路由1602a成,其电路如图8所示。LCD1。|,).,HIIr |3口口Qa口口口图8 显示电路五软件设计:等精度频率计的软件设计主要由主程序、分频选择程序、液晶显示程序组成。5.1 等精度频率计的算法设计:根据设计要求

7、频率范围是10HZ100MHZ,当频率为10HZ时,T=100000us,高电平为50000US, 0.1%的误差为100us,由单片机产生的基准频率为1MHZ,T0=1us,最大误差为1us,计数个数为50000方式1),满足设计要求。当频率增 加到1KHZ时,产生的误差刚刚能达到设计要求,这时计数个数为500。当频率大于1KHZ时即计数个数小于500)就需要将被测频率分频后再测量,如当频 率为10KHz时,先计算计得的脉冲数等于50,小于了 500,所以将10KHz的信 号10分频得到1KHZ,这时就满足要求了。dvzfvkwMII最后得到的频率f= 2d其中n为计得的脉冲个数,i为分频的

8、次数。5.2 主程序:主程序首先对系统环境初始化,设置分频选通信号 P2=0x00,选通01道。设置T0工作方式,采用硬件启动方式,GATE=1,当INT0和TR0同时为1时启动 计时,计数方式为方式116位),TH0和TL0都置零。当外部中断INT0=1时等 待,当外部中断为0时启动T0即TR0=1 ,当INT0一直为0时就等待,一旦INT0=1就启动计数同时等待,当INT0为0时跳出并关闭T0即TR0=0。这样就计得高电 平期间基准脉冲个数,当脉冲个数小于 500时就选择10分频信号,即P2自加1, 同时记录分频一次;如果分频后脉冲个数还小于 500则再次分频,知道计数个数大于500。其示

9、意图如图9所示,主程序流程图如图10所示。rqyn14ZNXI被测脉冲INT0基准脉冲T0启动 计数启动T0, TR 0=1停止计数,读出计rTTTTTTTTTTTTTJN个脉 冲图9计数工作示意图开始EmxvxOtOco图10主程序流程图5.3 程序清单:5.3.1 主程序:#include<reg51.h>#include<stdio.h>#include<lcd.c>#include<math.h>sbit p32=P3A2。main(> unsigned int period,k,j,i=0 。float f,m 。char buf

10、f30。init_LCD(> 。P2=0x00。while(1>TMOD=0X09 。TH0=0。TL0=0 。while(p32=1> 。TR0=1 。while(p32=0> 。while(p32=1> 。TR0=0。period=TH0*256+TL0 。while(period<=500> /* 判断是否分频及计算分频次数*/ P2+ 。i+ 。period=period*10 。if(i=6>P2=0x00 。break。k=pow(10,i> 。/* 10 的 i 次方 */f=(1000000.0/(2*period>&

11、gt;*k 。if(f<1000>sprintf(buff,"f=%5.2fHZ",f> 。elsem=f/1000.0 。sprintf(buff,"f=%5.2fKHZ",m> 。lcdprintf(0,0,buff> 。5.3.2 显示子程序:#include <lcd.h>charcodeCGRAM_TABLE=0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,/。年 SixE2yXPq50x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00,/。月0

12、x0F,0x09,0x09,0x0F,0x0,0x09,0x0F,0x00 。/ 。日void delay(>unsigned char i。for(i=0 。 i<250。 i+> 。void init_LCD(>unsigned char i。WR_COM=0x38 。/设置为8位数据总线,16*2, 5*7点阵for(i=0 。 i<100 。 i+>delay(> 。WR_COM=0x01 。/清屏幕for(i=0 。 i<50。delay(> 。WR_COM=0x06 for(i=0 。 i<50。delay(> 。W

13、RCOM=0x0ci+>i+>/光标移动,显示区不移动,读写操作后AC 力口 1for(i=0 。 i<50。delay(> 。i+>/* /6ewMyirQFLvoid init_cgram(>unsigned char i。/。设置自定义字符WRCOM=0x40 。for(i=0 。 i<24。 i+>WR_DAT=CGRAM_TABLEifor(i=0 。 i<40。 i+>delay(>。/* /kavU42VRUsvoid PutChar(char t>WR_DAT=t 。delay(> 。delay(&g

14、t; 。void clr_lcd(>WR_COM=0x01 。delay(> 。delay(> 。void lcdprintf(char x,char y,char *s>/clr_lcd(> 。if(y>1>y=1 。WR_COM=(y*0x40+x>|0x80 。delay(> 。delay(> 。while(*s!=0>WR_DAT=*s 。s+。delay(>。delay(>。六 调试:等精度频率计的调试比较简单,在电平转换前的输入端输入标准的正弦信号,把编译好的程序指定到Proteus的单片机中。运行Pro

15、teu出|3可在显示器中观测到显示结果。y6v3ALoS89当然我们在调试过程中也遇到了不少的困难。首先我们用4017来作为十分频器,但是没有注意到4017是CMOS型的,而我们系统所用的是TTL电平,所 以最后改用了 74HC4017;在刚开始的时候当输入某个频率时输出显示为零,或者为负数,最后发现是输出的数据类型定义错了,因为最大要测量10MHz的频率,所以要定义输出数据类型为longint型,否则输出将产生溢出显示负数。M2ub6vSTnP七 结束语:本设计所设计的频率计有有较高的精度,频率范围较高,有较强的实用价值。当然本设计只是基于各种理想的实验条件下得出的结论,设计当中不可避免的存在一些问题。例如在信号转换的电路中只是粗略的将正弦信号转换成方波信号,而没有对输出信号进行进一步的处

温馨提示

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

评论

0/150

提交评论