DIY编程器网

标题: 用PIC16F87X单片机实现高分辨率频率计的一种方法 [打印本页]

作者: liyf    时间: 2012-1-27 14:12
标题: 用PIC16F87X单片机实现高分辨率频率计的一种方法

                     1 引言
  随着电子技术的迅速发展,以单片机为控制核心的控制器件,已经全面渗透到测试仪器和计量检定的各个方面。同时,频率计作为一种常用工具,在工程技术和无线电测量、计量等领域的应用十分广泛。本文介绍了一种以PIC16F87X系列单片机为控制器的高分辨率频率计的实现方法。
  该方法设计的频率计主要用来测量脉冲频率。它采用LCD图形液晶显示,清晰度高,可视范围广,可外接晶体频率源,具有测量速度快、分辨率高的优点。


  2 设计原理
  PIC16F877A单片机内部集成有捕捉/比较/脉宽调制PWM (CCP)模块。当CCP工作在捕捉(capture)方式时,可捕捉外部输入脉冲的上升沿或下降沿,并产生相应的中断。
  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个脉冲到来时的定时器计时t1和tm,如图1所示。



图1脉冲捕捉示意图
  用被捕捉的脉冲次数除以第1次和第(m-1)*n+1次脉冲之间间隔的时间即可得到脉冲频率值。因此,脉冲频率值计算公式为:



  3 被测频率值范围
  在测试过程中,需要特别注意的是,两次CCP中断的时间间隔必须大于1次中断服务的执行时间。否则,如果在中断服务程序执行时又发生CCP中断,就不能正常工作。
  根据上述条件,则有:



  由上式得到:



  式中:

  设定:SCCP=16,N=40,TCYC= 4/20MHz = 0.2 us,则: fx[/td][/tr][/table]稳定可靠的优点,可应用于计量测试领域。同时由于使用软件控制,电路结构简单,使用硬件少,使得成本低廉且携带方便,因此也可广泛应用于工农业生产和居民生活中,具有推广价值。
?
            




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2