【单片机计数与频率测量系统设计与研究】单片机最高计数频率

  【摘要】本文从测量原理及系统功能说明、计数器的测量电路及程序设计和频率测量电路与程序设计三个方面对单片机计数与频率测量系统进行研究,以期为广大单片机开发者提供设计研究思路。
  【关键词】计数;频率测量;单片机;AT89S51
  1.引言
  频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。在单片机和数字电路中,经常需要测量脉冲个数、脉冲宽度、脉冲周期、脉冲频率等参数。利用单片机内部高稳定度的标准频率源和定时/计数器,可方便地测量信号的频率和周期,实现计数器和频率计的功能。
  2.测量原理及系统功能说明
  利用单片机进行计数和频率测量,一般使用单片机内部的定时/计数器。下面我们先对AT89S51单片机的定时/计数器的特性进行简要介绍。
  (1)定时/计数器结构与特性
  AT89S51单片机内部有两个16位可编程的定时/计数器,如图1(a)所示。每个定时/计数器的基本结构如图1(b)所示。
  (2)特殊功能寄存器TMOD和TCON
  1)定时器方式控制寄存器TMOD,字节地址为89H,其格式如表1所示。
  ①GATE——门控位。为“0”时,仅由运行控制位TR0/TR1=1时来启动定时/计数器运行;为“1”时,由运行控制位TR0/TR1=1和外中断端INT0/INT1=1共同来启动定时/计数器运行。
  ②M0、M1工作方式选择位。共有4种组合编码,对应4种工作方式,含义如表2所示。
  ③C/T——计数器模式和定时器模式选择位。为“0”时工作在定时器模式;为“1”时工作在计数器模式,对P3.4(T0)或P3.5(T1)的外部脉冲进行计数(负跳变)。
  2)定时器控制寄存器TCON,字节地址为88H,位地址为88H~8FH,其格式如表3所示:
  其中,低4位是与中断有关的设置。
  (3)定时/计数器对外部计数输入信号的要求
  当MCS-51内部的定时/计数器被设定为定时器工作模式时,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器加1。
  因此,定时/计数器的输入脉冲的周期与机器周期一样,输入脉冲的频率为时钟振荡频率的1/12。当采用12MHz频率的晶体时,计数速率为1MHz,输入脉冲的周期间隔为l微秒。由于定时的精度决定于输入脉冲的周期,因此当需要高精度的定时时,应尽量选用频率较高的晶体。
  3.单片机计数器的测量电路及程序设计
  用单片机对输入信号进行脉冲计数比较简单,可以采用累加器进行计数累加计数,也可使用计数器进行计数。
  图2是使用累加器进行外输入(按键输入)计数并LED显示的硬件。在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数输入按钮,用单片机的P0.0~P0.7口接一个共阳数码管,作为0~9计数显示,计到9后回到0,如此反复。汇编程序流程图如图3所示。
  4.单片机频率测量电路与程序设计
  (1)单片机频率测量方法
  用单片机电子计数法测量频率有测频率法和测周期法两种。
  计数器测频率法主要是将被测频率信号加到计数器的计数输入端,然后让计数器在标准时间TS1内进行计数,所得的计数值N1。与被测信号的频率fx1的关系如下:
  fx1=N1/TS1=N1*fS1
  而计数器测周期法则是将标准频率信号fS2送到计数器的计数输入端,而让被测频率信号fx2控制计数器的计数时间,所得的计数值N2与fx2的关系如下
  fx2=fS2/N2
  (2)单片机频率测量范围
  对于高频信号的测量,一般采用测频率法,这时TO和T1一个作为输入频率脉冲的计数器,另一个作为计数时问问隔的定时器,在不附加外分频情况下,最大测量频率是500kHz。如果外接100分频器,频率测量范围可扩展到50MHz。
  对于较低频率信号的测量,通常采用测周期法,其频率的下限取决于单片机计数器的极限,一般最低可到约4Hz。
  因此,使用51单片机定时/计数器的测频范围约为4Hz≤fx≤50MHz。精度可以达到1Hz。
  测频法测量的频率覆盖范围较宽,且在高频端的测量精度较高,而在低频段的测量精度较低,同时测量时问较长。测周法测量的频率覆盖范围较窄,在高频段的测量精度较低,在低频段的测量精度较高,测量时间短。因此,可以根据实际情况进行选择,也可以使用软件程序进行切换,以适应不同频率测量。
  (3)测量过程与软件设计
  频率的概念就是在1s内脉冲的个数,即为频率值。因此,用51单片机测量频率,一般定时/计数器T1设为定时器使用,定时/计数器TO设为计数器使用。这样计数器TO在定时器T1的定时时问内进行被测频率的脉冲计数,如果T1的定时时问设为1s,则TO的计数值就是被测频率信号的频率值。
  由定时/计数器结构与原理可知,T1工作在定时状态下,最大定时时问为65ms,达不到1s的定时,所以采用每次定时50ms,共定时20次,即可完成1s的定时要求。TO是工作在计数状态下,对输入的频率信号进行计数,由于最大计数值为fosc/24,而fosc=12MHz,因此,TO的最大计数频率为500kHz。
  如图4是利用AT89S51单片机的TO、T1的定时/计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。在不附加外部分频电路情况下,能够对0~250kHz的信号频率进行准确计数,计数误差不超过±1Hz。频率脉冲信号由P3.4(TO)输入,由六位共阳数码管进行频率显示。其定时与计数的频率测量子程序流程图如图5所示。
  5.结束语
  对单片机计数与频率测量系统进行了设计与研究,其目的是为了给广大单片机开发应用者一种设计思路,更好的深入了解单片机如何实现计数与频率测量功能。
  参考文献
  [1]韩剑.基于CPLD和89S51的多功能信号测量仪[J].国外电子元器件,2008,16(7):43-44,48.
  [2]张春水,张佳培.基于单片机和FPGA的频率特性测试仪[J].电子设计工程,2009,17(1):64-65,68.
  作者简介:马艳艳(1984—),女,河南新乡人,新乡职业技术学院助教,研究方向:单片机。

推荐访问:单片机 计数 测量 频率