下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用pic16f87x单片机实现高分辨率频率计的方法随着技术的快速进展,以为控制核心的控制器件,已经全面渗透到测试仪器和计量检定的各个方面。同时,频率计作为一种常用工具,在工程技术和测量、计量等领域的应用非常广泛。本文介绍了一种以16f87x系列单片机为控制器的高辨别率频率计的实现办法。该办法设计的频率计主要用来测量脉冲频率。它采纳图形液晶显示,清楚度高,可视范围广,可外接晶体频率源,具有测量速度快、辨别率高的优点。2 设计原理pic16f877a单片机内部集成有捕获/比较/脉宽调制 (ccp)模块。当ccp工作在捕获(capture)方式时,可捕获外部输入脉冲的升高沿或下降沿,并产生相应的中断
2、。pic16f877a单片机内部还集成了定时器/计数器模块,在本计划中采纳其中的tmr1作为定时器,该定时器的工作原理是通过tmr1“寄存器对”tmr1h:tmr1l从0000h递增到ffffh,之后再返回0000h时,会产生高位溢出,并且将会设置溢出中断标记位tmr1if为i,同时引起cpu中断响应。在匀称的脉冲序列中,脉冲频率值等于单位时光内发生的脉冲次数。按照这个原理,可以采纳pic16f87x系列单片机(本文以pic16f877a型单片机为例)内置定时器模块tmr1计时,同时用法ccp模块的捕获功能,每间隔n(n=1,4,16)个脉冲捕获一次并产生中断,记录第1个和第(m-1)*n+1
3、个脉冲到来时的定时器计时t1和tm,1所示。图1脉冲捕获暗示图用被捕获的脉冲次数除以第1次和第(m-1)*n+1次脉冲之间间隔的时光即可得到脉冲频率值。因此,脉冲频率值计算公式为:3 被测频率值范围在测试过程中,需要特殊注重的是,两次ccp中断的时光间隔必需大于1次中断服务的执行时光。否则,假如在中断服务程序执行时又发生ccp中断,就不能正常工作。按照上述条件,则有:由上式得到:式中:sccp 表示捕获分频倍数。fx 表示被测频率ttcyc 表示系统时钟周期。n 表示中断所需最小命令周期数。设定:sccp=16,n=40,tcyc= 4/20mhz = 0.2 us,则: fx由此可知,实际频
4、率测量范围在0-2 mhz之间。若需测量更大频率,可以按照需要在待测频率和cpu的ccp口之间接入相应倍数的分频器,每接入一个1/n倍分频器,可测频率范围可扩大n倍(2所示)。如在待测频率和ccp口之间接入三个1/10倍分频器,则可测频率范围为02 ghz。图2 cpu外接暗示图4 程序设计41中断程序中断程序流程图3所示。图3中断子程序流程图中断服务子程序如下:void interrupt tmr i_ccp2_ini(void)if(tmr1if=i) /推断是否定时器中断tmriif=0; /tmr1中断标记位清0tmr1on=0; /关闭tmr1tmr1l=0x00; /设置tmr1数
5、据寄存器初始值 0x0bdctmr1h=0x00;tmr1on=1; /开启tmr1time_count+; /定时计数器减1if(ccp2if=1) /推断是否ccp2中断if(ccp_count=0)tmr1ie=1; /允许tmr1中断tmr1if=0; /tmr1中断标记位清0t1con=0x30; /设置1:8分频,关闭tmr1tmr1l=0x00; /tmr1数据寄存器清零tmr1h=0x00;tmr1on=1; /开启tmr1中断ccp2if=0; /ccp2中断标记位清0ccp_count+; /脉冲计数器加14.2测试过程程序程序流程图4所示。图4主程序流程图测试过程程序如下
6、:unsigned long measure_course(unsigned charcatch_mode)time_count=0; /定时计数器清零ccp_count=o /脉冲计数器清零gie=1; /允许全局中断peie=1; /允许外围中断trisc1=0; /ccp2(rc1)输入ccp2ie=1; /允许ccp2中断ccp2if=0; /ccp2中断标记位清0ccp2con=catch_mode; /设置捕获脉冲模式e(); /中断开头while(1) /等待定时中断,时光到则退出if(ccp_count=2)break;di(); /中断结束tmr1on=0; /关闭tmr1c
7、cp2con=0x00; /关闭ccp2ccp2ie=0; /关闭ccp2中断ccp2if=0; /ccp2中断标记位清0trisc1=0; /ccp2(rc1)输出tmr1ie=0; /关闭tmr1中断tmr1if=o; /tmr1中断标记位清0peie=0; /关闭外围中断gie=0; /关闭全局中断5 性能评价传统的频率测量办法有两种:一是测周期求频率,这样对被测频率信号的信噪比要求高,否则就会产生较大的误差;另一种是计算单位时光内所产生脉冲数量,虽然这种办法对信噪比要求不高,但是显示辨别率受到限制,并且会产生±1的误差。本计划摒弃了传统的测量办法,采纳测量脉冲个数及计算被测脉冲所经受时光的办法,彻低避开了传统办法的弊端。在本计划中,cpu接外频标(2所示),测量误差仅为时基误差,而较好的外频标的误差普通小于±10-9,因而测量结果的有效数字最少可达8位以上,使得低频测量与高频测量的有效位数全都。6 结语经过测试实验,用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论