11硬件系统设计测量频率的方法一般分为无源测频法、有源测频法及电子计数法三种。无源测频法(又可分为谐振法和电桥法),常用于频率粗测,精度在1%左右。有源比较法可分为拍频法和差频法,前者是利用两个信号线性叠加以产生拍频现象,再通过检测零拍现象进行测频,常用于低频测量,误差在零点几Hz;后者则利用两个非线性信号叠加来产生差频现象,然后通过检测零差现象进行测频,常用于高频测量,误差在±20Hz左右。以上方法在测量范围和精度上都有一定的不足,而电子计数法主要通过单片机进行控制。由于单片机的较强控制与运算功能,电子计数法的测量频率范围宽,精度高,易于实现。本设计就是采用单片机电子计数法来测量频率,其系统硬件原理框图如图1所示。图11.1系统单元电路设计在硬件单元电路包括的时钟电路,复位电路是单片机外围电路中必须电路,在此不再请说明,而对于按键电路中用四个独立式按键分别接在单片机的P0口的P0.0,P0.1,P0.2,P0.3(具体参考附录中仿真电路图Ⅲ)。下面简单介绍显示电路,由于此次设计的测量值采用8位动态显示(具有硬件简单,功耗低和显示灵活性强等优点),对于数码管的段控,位控分别接在单片机的P1口,P2口,其中要把LED显示器的段码表预先存放在存储气中,所以段控数据锁存用74LS373,而位控需要较大的电流因此采用74LS06(6输入6输出非门)对位控驱动,具体电路参考如下图2.2图22软件系统设计用单片机电子计数法测量频率有测频率法和测周期法两种方法。测量频率主要是在单位定时时间里对被测信号脉冲进行计数;测量周期则是在被测信号一个周期时间里对某一基准时钟脉冲进行计数。测量矩形波的周期通过对频率求倒即可得到,测量脉宽需要外部中断0INT和内部定时器,测量占空比可以通过脉宽与周期的商来得到。2.1测频率与周期分析2.1.1测频法与测周期法误差分析电子计数器测频法主要是将被测频率信号加到计数器的计数输入端,然后让计数器在标准时间Ts1内进行计数,所得的计数值N1。与被测信号的频率fx1的关系如下:3而电子计数器测周法则是将标准频率信号fs2送到计数器的计数输入端,而让被测频率信号fx2控制计数器的计数时间,所得的计数值N2与fx2的关系如下:事实上,无论用哪种方法进行频率测量,其主要误差源都是由于计数器只能进行整数计数而引起的±1误差:可见,在同样的Ts下,测频法fx1的低频端,误差远大于高频端,而测周法在fx2的高频端,其误差远大于低频端。理论研究表明,如进行n次重复测量然后取平均,则±1误差会减小n倍。如给定±1误差ε0,则要求ε≤ε0ο对测频法要fx1≥对测周法则要求fx2≤ε0fs2ο因此,对一给定频率信号fs进行测量时,用测频法fs1越低越好,用测周法则fs2越高越好。2.1.28052单片机的测频范围和测频时间8052单片机的定时器/计数器接口,在特定晶振频率fc=12MHz时,可输人信号的频率上限是fx≤fc/24=500kHz。如用测频法,则频率的上限取决于8052,故测频法的测量范围是:4即:fx1≤500kHz。用测周法设计时,其频率的下限取决8052计数器的极限。考虑到8052内部为16位,加上TF标志位,计数范围为217,因此其最大计数时间为秒。而如果采用半周期测量,则测频范围是:在测周法中,标准频率信号fs2由8051的内部定时结构产生,fs2恒为fc/12,因此,在给定ε0为0.01时,fx2既有一定的上限频率,也有一定的下限频率。即:并由此可见得出:4Hz≤fx1≤10kHz理论上可以达到无穷大,即fs1可以达到无穷低,因此,fx1可达到无穷小,因此,可以认为测频法的测频范围只有上限频率,没有下限频率。而再这样,两个频率范围相叠加即可得到该频率计的测频范围:4Hz≤fx1≤50MHz。精度可以达到1Hz。从以上分析可以看出,测频法测量的频率覆盖范围较宽,且在高频端的测量精度较高,而在低频段的测量精度较低,同时测量时间较长。测周法测量的频率覆盖范围较窄,在高频段的测量精度较低,在低频段的测量精度较高,测量时间短。因此,测频法适于高频信号的测量,测周法适于较低频信号测量。综合以上两点本次设计采用测频法测量被测信号的频率与周期。(具体外部中断控制的寄存器,定时器/计数器控制的寄存器的设置见程序清单)2.2测脉宽与占空比分析首先脉宽是对矩形波信号而言,信号的脉宽指的是一个周期内高电平部分所占的时间,用单片机测量一个信号的脉宽需要用的其外部中断0INT和内部定时器,在定时器方式选择寄存器(TMOD)中通过控制GATE(门控位)来测量脉宽,当GATE=1,以外部中断请求信号(0INT)启动定时器。只有当单片机检测到0INT=1是才能启动定时器,一当单片机检测到是低电平此时关闭定时器,而此时被测信号的脉宽就是TH0*256+TL0;而对于占空比则是脉宽比上周期(精确到0.001)。(具体外部中断控制寄存器,定时器/计数器控制的寄存器的设置见程序清单)52.3程序设计流程图频率/周期测量流程图脉宽/占空比流程图6总流程图2.4程序清单详细程序内容见附录Ⅱ73系统仿真此次频率计设计采用电子线路设计常用仿真软件Proteus7.1SP2与KeiluVision3,通过绘制电路原理图与编写C程序对系统进行仿真。仿真结果如下:在Proteus软件中信号发生器(PulseGeneratorProperties)对话框设置如下启动Play仿真按钮,按下第一个键(测频率键)数码管显示如下:按下第二个按键(测周期键)数码管显示如下:按下第三个按键(测脉宽键)数码管显示如下:8按下第四个键(测占空比键)数码管显示如下:4系统使用说明该系统具有测频率,周期,脉宽,占空比功能,键值功能Ⅰ测量频率Ⅱ测量周期Ⅲ测量脉宽Ⅳ测量占空比(具体键值位置参阅附录Ⅲ)9参考文献[1]李广弟,朱月秀,冷祖祁.单片机基础[M]北京:北京航空航天大学出版社,2007.100~117[2]王建校、杨建国、宁改娣等.51系列单片机及C51程序设计[M]北京:科学出版社,2002.20~57[3]杨忠煌、黄博俊、李文昌.单芯片8051实务与应用[M]北京:中国水利水电出版社,2001.220~330[4]马忠梅、马岩、张凯等.单片机的c语言应用程序设计[M]北京:北京航空航天大学出版社,1997.100~110[5]周立功等.单片机基础实验指导书[M]广州:广州周立功单片机发展有限公司,2003.120~14010