当前位置:首页 > 单片机 > 单片机
[导读]本文介绍了一种以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  — 表示捕捉分频倍数。
  •   fx — 表示被测频率t
  •   TCYC —表示系统时钟周期。
  •   N —表示中断所需最小指令周期数。

  设定:SCCP=16,N=40,TCYC= 4/20MHz = 0.2 us,则: fx<2,000,000Hz

  由此可知,实际频率测量范围在0-2 MHz之间。

  若需测量更大频率,可以根据需要在待测频率和CPU的CCP口之间接入相应倍数的分频器,每接入一个1/n倍分频器,可测频率范围可扩大n倍(如图2所示)。如在待测频率和CCP口之间接入三个1/10倍分频器,则可测频率范围为0~2 GHz。

CPU外接示意图

图2 CPU外接示意图

  4 程序设计

  4.1中断程序

  中断程序流程图如图3所示。

中断子程序流程图

图3中断子程序流程图

  中断服务子程序如下:

  void interrupt TMR I_CCP2_ini(void)
{
if(TMR1IF==I) //判断是否定时器中断
{
TMRIIF=0; //TMR1中断标志位清0
TMR1ON=0; //关闭TMR1
TMR1L=0x00; //设置TMR1数据寄存器初始值 0x0bdc
TMR1H=0x00;
TMR1ON=1;  //开启TMR1
time_count++; //定时计数器减1
}
if(CCP2IF==1) //判断是否CCP2中断
{
if(ccp_count==0)
{
TMR1IE=1; //允许TMR1中断
TMR1IF=0; //TMR1中断标志位清0
T1CON=0x30; //设置1:8分频,关闭TMR1
TMR1L=0x00; //TMR1数据寄存器清零
TMR1H=0x00;
TMR1ON=1; //开启TMR1中断
}
CCP2IF=0; //CCP2中断标志位清0
ccp_count++; //脉冲计数器加1
}
}

  4.2测试过程程序

  程序流程图如图4所示。
主程序流程图
         图4 主程序流程图

测试过程程序如下:

  unsigned long measure_course(unsigned char
catch_mode)
{
time_count=0; //定时计数器清零
ccp_count=O //脉冲计数器清零
GIE=1; //允许全局中断
PEIE=1; //允许外围中断
TRISC1=0; //CCP2(RC1)输入
CCP2IE=1; //允许CCP2中断
CCP2IF=0; //CCP2中断标志位清0
CCP2CON=catch_mode; //设置捕捉脉冲模式
e(); //中断开始
while(1) //等待定时中断,时间到则退出
if(ccp_count==2)
break;
di(); //中断结束

TMR1ON=0; //关闭TMR1
CCP2CON=0x00; //关闭CCP2
CCP2IE=0; //关闭CCP2中断
CCP2IF=0; //CCP2中断标志位清0
TRISC1=0; //CCP2(RC1)输出
TMR1IE=0; //关闭TMR1中断
TMR1IF=O; //TMR1中断标志位清0
PEIE=0; //关闭外围中断
GIE=0; //关闭全局中断
……
}

  5 性能评价

  传统的频率测量方法有两种:一是测周期求频率,这样对被测频率信号的信噪比要求高,否则就会产生较大的误差;另一种是计算单位时间内所产生脉冲数量,虽然这种方法对信噪比要求不高,但是显示分辨率受到限制,并且会产生±1的误差。

  本方案摒弃了传统的测量方法,采用测量脉冲个数及计算被测脉冲所经历时间的方法,完全避免了传统方法的弊端。

  在本方案中,CPU接外频标(如图2所示),测量误差仅为时基误差,而较好的外频标的误差一般小于±10-9,因而测量结果的有效数字最少可达8位以上,使得低频测量与高频测量的有效位数一致。

  6 结语

  经过测试试验,使用该方法研制的频率计具有测量准确度高、使用方便、

稳定可靠的优点,可应用于计量测试领域。同时由于使用软件控制,电路结构简单,使用硬件少,使得成本低廉且携带方便,因此也可广泛应用于工农业生产和居民生活中,具有推广价值。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭