用PIC16F87X单片机实现高分辨率频率计的一种方法

发布者:电子艺术大师最新更新时间:2007-12-06 来源: 嵌入式在线关键字:脉宽  调制  脉冲  计数 手机看文章 扫描二维码
随时随地手机看文章
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。

图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 结语

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

关键字:脉宽  调制  脉冲  计数 引用地址:用PIC16F87X单片机实现高分辨率频率计的一种方法

上一篇:C8051F12X中多bank的分区跳转处理
下一篇:基于Q2403A的单片机短消息收发系统

推荐阅读最新更新时间:2024-05-13 18:39

51单片机脉冲信号的计数和LCD显示
设计目标和思路 在个人剂量仪开发的过程中,从探头输出的核脉冲信号经过后期放大,成形,滤波以及甄别之后,成为一系列脉冲信号输出,这种脉冲信号由于衰变的随机性,并不是固定频率的脉冲信号。我们本次设计就是针对这种脉冲进形脉冲信号的计数以及在LCD1602显示屏上面的显示。 这是C语言的代码部分 #include reg51.h #include stdio.h #include math.h #include string.h #include intrins.h #define uint8_t unsigned char //0-255 #define uint16_t unsigned int //0-
[单片机]
51单片机<font color='red'>脉冲</font>信号的<font color='red'>计数</font>和LCD显示
基于脉冲宽度调制的LED驱动电路
  常见的调光有双向可控硅调光、后沿调光、ON/OFF调光、遥控调光等。可控硅调光器在传统的白炽灯等调光照明应用已久,且不用改变接线,装置成本较低,各品牌可控硅调光器的性能和规格相差不大,但是其直接应用在LED驱动场合还存在着一系列问题。   1 双向可控硅TRIAC调光原理   市面上大多数可控硅调光器基本结构如图1所示,其工作原理如下:当交流电压加双向可控硅TRIAC两端时,由于Rt、Ct组成的RC充电电路有一个充电时间,电容上的电压是从0V开始充电的,并且TRIAC的驱动极串联有一个DIAC(双向触发二极管,一般是30V左右),因此TRIAC可靠截止。当Ct上的电压上升到30V时,DIAC触发导通,TRIAC可靠导通
[电源管理]
基于<font color='red'>脉冲</font>宽度<font color='red'>调制</font>的LED驱动电路
恩智浦推出全球最快的蜂窝调制解调器
2008年6月13日,恩智浦半导体(NXP Semiconductors,由飞利浦成立的独立半导体公司)宣布推出世界上速度最快的高带宽蜂窝软调制解调器——Nexperia蜂窝系统解决方案PNX6910。PNX6910由恩智浦功能强大的数字信号处理(DSP)内核——嵌入式矢量处理器(EVP)驱动,可实现高达150 Mbits的下行和50 Mbits的上行数据传输速率,并且支持多种模式(LTE/HSPA/UMTS/EDGE/GPRS/GSM)。 由于下一代移动设备提供超高速互联网浏览、视频流服务、多人联机游戏甚至标准长度的高清影片,因而消费者可以从精彩纷呈的用户体验中获得更多享受。实际上,恩智浦的Nexperia蜂窝系统
[新品]
恩智浦推出全球最快的蜂窝<font color='red'>调制</font>解调器
基于DSP的PSK信号调制设计与实现
数字调制信号又称为键控信号, 其调制过程是用键控的方法由基带信号对载频信号的振幅、频率及相位进行调制。这种调制的最基本方法有三种: 振幅键控(ASK)、频移键控(FSK)、相移键控(PSK), 同时可根据所处理的基带信号的进制不同分为二进制和多进制调制(M进制)。多进制数字调制与二进制相比, 其频谱利用率更高。其中, QPSK (即4PSK) 是MPSK (多进制相移键控) 中应用较广泛的一种调制方式。为此, 本文研究了基于 DSP 的BPSK以及DPSK的调制电路的实现方法, 并给出了DSP调制实验的结果。   1 BPSK信号的调制实现   二进制相移键控(BPSK) 是多进制相移键控(MPSK) 的基础, 2PSK是
[嵌入式]
基于DSP的PSK信号<font color='red'>调制</font>设计与实现
STC15F2K60S2的脉冲捕获应用
STC15F2K60S2的脉冲捕获应用 1.PCA工作模式寄存器CMOD PCA工作模式寄存器的格式如下: CMOD:PCA工作模式寄存器 CIDL:空闲模式下是否停止PCA计数的控制位。 当CIDL=0时,空闲模式下PCA计数器继续工作; 当CIDL=1时,空闲模式下PCA计数器停止工作。 CPS2、CPS1、CPS0:PCA计数脉冲源选择控制位。PCA计数脉冲选择如下表所示。 例如,CPS2/CPS1/CPS0=1/0/0时,PCA/PWM的时钟源是SYSclk,不用定时器0,PWM的频率为SYSclk/256 如果要用系统时钟/3来作为PCA的时钟源,应让T0工作在1T模式,计数3个脉冲即
[单片机]
STC15F2K60S2的<font color='red'>脉冲</font>捕获应用
脉冲信号源设计
根据半导体激光器驱动用的各种脉冲电源以及连续电源的设计,以及反馈技术在电源中的应用及温控电路知识,便可以根据需要设计实用的半导体激光器电源.光脉冲信号装置集中了上述知识的应用,因此作为本章的小结,我们介绍一种光脉冲信号源.
[模拟电子]
光<font color='red'>脉冲</font>信号源设计
脉冲触发电路原理图
电路中RV6 ,R V12 ,C+ 12 起分流作用,能提高触发电路的抗干扰能力,U 6 为输出级功放晶体管,对来自单片机的触发脉冲进行功率放大,T8 是脉冲变压器,L7 指示晶闸管工作情况,CF6和RL7能提高晶闸管抗干扰能力,降低门极输入阻抗。 脉冲触发 电路原理图:
[电源管理]
<font color='red'>脉冲</font>触发电路原理图
基于FPGA的数字式重复频率跟踪器的模块化实现
引 言 在较长的一段时间内,脉冲重复频率跟踪器技术都是基于ISA总线且建立在分立式IC器件架构之上,存在着元器件数量偏多、PCB(印制电路板)尺寸偏大、总线分时复用速度慢、电路稳定性不够理想、扩展性与移植性差等缺陷。当前,FPGA(现场可编程门阵列)器件技术已经发展得非常成熟,如何将其很好地应用在重复频率跟踪器技术之中,将数字式重复频率跟踪器技术模块化,减少跟踪器的元器件使用数量,缩小外形尺寸,提高跟踪器的稳定性与扩展性,加强跟踪器的可移植性,成为我们研究的一个目标。 比较以往的分立式重复频率跟踪器,模块化的数字式重复频率跟踪器的主要优点为:高集成度、高可靠性,体积小、速度快,配置灵活、生命周期长,良好的可扩展性和可移植性,风
[嵌入式]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved