当前位置:首页 > 嵌入式 > 嵌入式硬件

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中断标志位

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

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言
关闭
关闭