1、目 录一、引言11.1 数字频率计的发展和意义11.2 数字频率国内外的发展形势1二、系统总体设计32.1 系统设计要求32.2 测频方法32.3 系统设计思路32.4 系统设计框图4三、系统硬件设计53.1 单片机模块53.1.1 AT89C52介绍53.1.2 单片机引脚分配63.1.3 复位电路63.1.4 定时/计数器63.2 电源模块73.2.1 电源变压器83.2.2 整流电路83.2.3 滤波电路93.2.4 稳压电路93.2.5 电源模块原理图93.3 放大整形模块103.3.1 与非门74LS00103.3.2 放大整形模块原理图103.4 分频模块113.4.1 分频器74
2、LS161芯片113.4.2 多路选择器74LS151芯片123.4.3 分频模块原理图123.5 显示电路133.5.1 频率数值显示电路133.5.2 频率数值单位显示电路14四、系统软件设计154.1 开始154.2 初始化模块154.3 频率测量模块和量程自动切换模块164.4 显示模块174.5 延时模块17五、数字频率计仿真185.1 电源模块仿真185.2 放大整形电路仿真195.2.1 仿真软件 MULTISIM 10.0仿真整形电路195.2.2 仿真放大整形电路195.3 频率计仿真205.3.1 用KEIL软件205.3.2 使用软件Proteus仿真频率计215.3.3
3、 频率计仿真运行调试22六、结论27参考文献28致谢29附录A30程序源代码30附录B36仿真效果图36基于单片机的数字频率计一、引言1.1 数字频率计的发展和意义随着电子技术的飞速发展,各类分立电子元件及其所构成的相关功能单元,已逐步被功能更强大、性能更稳定、使用更方便的集成芯片所取代。由集成芯片和一些外围电路构成的各种自动控制、自动测量、自动显示电路遍及各种电子产品和设备已广泛应用于各个领域,更新换代速度可谓日新月异。在电子系统广泛的应用领域中,到处看见处理离散信息的数字电路。供消费用的冰箱和电视、航空通讯系统、交通控制雷达系统、医院急救系统等在设计过程中都用到数字技术。数字频率计是现代通
4、信测量设备系统中不可缺少的测量仪器,不但要求电路产生频率准确的和稳定度高的信号,而且能方便的改变频率。与传统的测量方式相比,运用了单片机频率计有着体积更小,运算速度更快,测量范围更宽和制作成本更低的优点。由于传统的频率计中有许多功能是依靠硬件来实现的,而采用单片机测量频率之后,有许多以前需要用硬件才能实现的功能现在仅仅依靠软件编程就能实现,而且不同的软件编程代码能够实现不同的功能,从而大大降低了制作成本。数字频率计主要实现方法有直接式、锁相式、直接数字式和混合式四种。直接式的优点是速度快、相位噪声低,但结构复杂、杂散多,一般只应用在地面雷达中。锁相式和直接数字式都同时具有容易实现产品系列化、小
5、型化、模块化和工程化的特点,其中,锁相式更是以其容易实现相位同步的自动控制且低功耗的特点成为众多业内人士的首选,应用最为广泛。1.2 数字频率国内外的发展形势在国际上数字频率计的分类很多。按功能分类,电子计数器有通用和专用之分。通用型计数器是一种具有多种测量功能、多种用途的万能计数器,它可测量频率、周期、多周期平均值、时间间隔、累加计数、计时等。专用计数器指专门用来测量某种单一功能的计数器。按频段分类有低速频率计数器、中速频率计数器、高速频率计数器和微波频率计数器之分。其中低速频率计数器最高计数频率小于10MHZ;中速频率计数器最高频率计数频率为10到100MHZ;高速频率计数器最高计数频率大
6、于100MHZ;微波频率计数器的测频范围为1到80GHZ或更高。数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功能,从而提高系统可靠性和速度。现如今,数字频率计已经不仅仅是测量信号频率的装置了,还可以测量方波的脉宽。在人们的生产生活中数字频率计也发挥着越来越重要的作用,比如有数字频率计来监控生产过程,这样可以及时发现系统运行中的异常情况,以便给人们争取时间处理。除此之外,它还可以应用于工业控制等其它领域。在传统的电子测量仪器中,示波器在进行频率测量时测量精度较低,误差较大。频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速地跟踪捕捉到被测信号的频率变
7、化。正是由于频率计能够快速准确地捕捉到被测信号频率的变化,因此频率计拥有非常广泛的应用范围。目前,市场上的频率计厂家可分为三类:中国大陆厂家、中国台湾厂家、欧美厂家。其中,欧美频率计厂家所占有的市场份额最大。欧美频率计厂家主要有:Pendulum Instruments 和 Agilent科技。 现如今,对于频率计的设计目前也有专用芯片可以实现,如利用MAXIM公司的ICM7240来设计频率计,但由于这种芯片的计数频率比较低,远不能达到在一些场合而要测量很高的频率要求,而且测量精度也受到芯片本身的限制,因此提出用AT89C52单片机设计频率计来解决这些问题,从而实现高精度,宽范围测量的频率计的
8、设计。二、系统总体设计2.1 系统设计要求本课题设计技术要求:1. 测量范围10HZ2MHZ;2. 用四位数码管显示测量值;3. 能根据输入信号自动切换量程;4. 可以测量方波、三角波及正弦波等多种波形。2.2 测频方法在频率、速度等脉冲类测量过程中,采集指定的脉冲个数,与过程时间比较来测定频率、速度。这样的采样方式就是定数采样或定脉冲采样。这种方法其实是测量单个脉冲的周期或指定个数脉冲的总周期。这种测量脉冲的方法又叫做测周法。在频率、速度等脉冲类测量过程中,在指定的时间内,计量脉冲个数,让脉冲个数与指定的时间比较来测定频率、速度。这样的采样方式就是定时采样。这种方法其实是测量单位时间的脉冲个
9、数。这种测量脉冲的方法又叫做测频法。目前测量频率的方法主要有脉冲定时测频法,脉冲周期测频法,脉冲倍频测频法和脉冲分频测频法。本文采用脉冲定时测频法和脉冲分频测频法。2.3 系统设计思路以单片机AT89C52单片机为核心,设计一种数字频率计,它由放大整形电路、分频电路、多路选择器、单片机、显示电路等组成,应用单片机中的定时/计数器和中断系统等完成频率的测量。在整个设计过程中,放大整形电路是把非矩形波转化成矩形波,这样单片机才能识别;分频电路是为了测量更高频率的信号,多路数据选择器是用来选择输入信号的;单片机用来测量频率和切换量程等;显示电路用来显示频率值。所制作的频率计采用外部十分频,实现10H
10、z2MHz的频率测量,而且可以实现量程自动切换,通过四位数码管显示频率值,再用不同的LED发光二极管显示频率值的单位。2.4 系统设计框图本课题设计以单片机为核心,设计一种数字频率计,应用单片机中的定时器/计数器和中断系统等完成频率的测量。其中包括放大整形模块、分频模块、电源模块、单片机模块、显示模块等。图1 频率计总体设计框图三、系统硬件设计根据系统设计的要求,频率计实际需要设计的硬件系统主要包括以下几个部分:单片机模块、电源模块、放大整形模块、分频模块及显示模块,下面将分别给予介绍。3.1 单片机模块以AT89C52单片机为控制核心,来完成对待测信号的计数、译码和显示以及对分频比的控制,利
11、用其内部的定时计数器完成待测信号频率的测量。单片机AT89C52内部具有3个16位定时计数器,定时计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。3.1.1 AT89C52介绍AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。图2 PDIP封装的AT89C52引脚图3.1.2 单片机
12、引脚分配根据系统设计及各模块的分析得出,单片机的引脚分配如下表所示。表1 单片机端口分配表模 块端口功能显示模块P0.0-P0.4、P2.0-P2.7数码管频率值显示P1.4-P1.6LED单位显示分频模块P1.0-P1.2通道选择P1.3清零复位模块RST、EA复位3.1.3 复位电路有时系统在运行过程中出现程序跑飞的情况,因此在程序开发过程中需要复位。本文选用手动复位,通过复位可以再次测量信号或测量新的信号。复位电路通常分为两种:上电复位(图3)和手动复位(图4)。图3 上电复位图4 手动复位3.1.4 定时/计数器方式寄存器TMOD:特殊功能寄存器TMOD为T0、T1的工作方式寄存器,其
13、格式如下: D7 D6 D5 D4 D3 D2 D1 D0GATEC/TM1M0GATEC/TM1M0 T1方式字段 T0方式字段TMOD的低4位为T0的方式字段,高4位为T1的方式字段,它们的含义是完全相同的。1.工作方式选择位M1,M0M1,M0两位确定计数器的结构方式,其对应关系如下表:表2 计数器结构方式功能表M1 M0工作方式 功 能 说 明0 1 方式0 13位计数器0 1 方式1 16位计数器1 0 方式2 初值自动重新装入的8位计数器1 1 方式3仅适用于T0,分为两个8位计数器,T1在方式3停止计数2. 定时器方式和外部事件计数方式选择位C/TC/T=0为定时方式。在定时方式
14、中,以振荡器输出时钟脉冲的十二分频信号作为计数信号,也就是每一个机器周期定时器加“1”。若晶振为12MHZ,则定时器计数频率为1MHZ,计数的脉冲周期为1us。定时器从初值开始加“1”计数直至定时器溢出所需的时间是固定的,所以称为定时方式。C/T=1为外部事件计数方式,这种方式采用外部引脚(T0为P3.4,T1为P3.5)上的输入脉冲作为计数脉冲。内部硬件在每个机器周期采样外部引脚的状态,当一个机器周期采样到高电平,接着的下一个机器周期采样到低电平时计数器为1,也就是说在外部输入电平发生负跳变时为1。外部事件计数时最高计数频率为晶振频率的二十四分之一,外部输入脉冲高电平和低电平时间必须在一个机
15、器周期以上。对外部输入脉冲计数的目的通常是为了测试脉冲的周期、频率或对输入的脉冲数进行累加。3. 门控位GATEGATE为1时,定时器的计数受外部引脚输入电平的控制(INT0控制T0的计数,INT1控制T1的计数);GATE为0时定时器计数不受外部引脚输入电平的控制。3.2 电源模块为整个系统提供合适又稳定的电源,主要为单片机、放大整形电路、分频电路和显示电路提供电源。输入的220V电压太大,对元件要求大,决定先降压为9V,再经过整流,滤波,稳压后得到5V稳定电压。稳压电源由电源变压器、整流电路、滤波电路和稳压电路四部分组成,如下图5所示,其整流与稳压过程的电压输出波形如图6所示。图5 稳压电
16、源的组成框图 图6 整流与稳压过程波形图3.2.1 电源变压器电源变压器T的作用是将220V的交流电压变换成整流滤波电路所需要的交流电压Ui。变压器副边与原边的功率比为P2/P1=n,式中n是变压器的效率。3.2.2 整流电路 单相桥式整流电路使用的整流器件较多,但其实现了全波整流电路,它与半波整流电路相比,在相同的变压器副边电压下,对二极管的参数要求一样,还具有输出电压高、变压器利用率高、脉动小等优点。整流电路工作原理:单相桥式整流电路由四只二极管组成,接成电桥形式,利用二极管的单向导电性,将正负交替的正弦交流电压整流成为单方向的脉动电压。当u2为正半周时,电流由A点流出,经D1、RL、D3
17、流入B点,即D1、D3导通,D2、D4截止;当u2为负半周时,电流由B点流出,经D2、RL、D4流入B点,即D2、D4 导通,D2、D4截止。电路及输出波形如图7,图8所示:图7 整流电路图 图8 整流输出波形3.2.3 滤波电路在本文利用电容进行滤波。 利用电容元件储能的特性,将整流后输出的电压的能量储存起来,然后缓慢的释放给负载。尽可能地将脉动电压中的脉动成分过滤掉,使输出电压成为比较平滑的直流电压。采用电容滤波时,整流二极管中将流过较大的冲击电流。必须选用较大容量的整流二极管。电容滤波电路及输出波形如图7,图8所示:图9 电容滤波电路图10 电容滤波输出波形3.2.4 稳压电路使输出的直
18、流电压稳定,不随交流电网电压和负载的变化而变化。在这里我们决定用集成稳压器7805。3.2.5 电源模块原理图此模块原理图:图11 电源模块原理图3.3 放大整形模块放大电路是对待测信号的放大,降低对待测信号幅度的要求;整形电路是对不是矩形波的待测信号转化成矩形波信号,便于测量。由于输入的信号可以是正弦波、三角波、矩形波等,而后面的闸门或计数电路要求被测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。在整形之前由于不清楚被测信号的强弱的情况。所以在通过整形之前通过放大衰减处理。本文采用单管共射极放大电路对信号进行放大和再由非门74LS00构
19、成施密特触发器对输出的信号进行整形成矩形波后再次输出。3.3.1 与非门74LS0000 为四组2 输入端与非门(正逻辑),共有 54/7400、54/74H00、54/74S00、54/74LS00Y=(AB)非 表3 74LS00功能表InputInputOutputABYLLHLHHHLHHHL3.3.2 放大整形模块原理图此模块原理图:图12 放大整形电路原理图3.4 分频模块本文采用12MHZ的时钟,最大计数速率为500 kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。为了测量提高精
20、度,当被测信号频率值较低时,直接使用单片机计数器计数测得频率值;当被测信号频率值较高时采用外部十分频后再计数测得频率值。这两种情况使用74LS151进行通道选择,由单片机先简单测得被测信号是高频信号还是低频信号,然后根据信号频率值的高低进行通道的相应导通,继而测得相应频率值。因此此模块主要包括分频器74LS161、多路选择器74LS151、与非门74LS00。3.4.1 分频器74LS161芯片74LS161是常用的四位二进制可预置的同步加法计数器。表4 74161的功能表从表中可以知道,当清零端RD=“0”,计数器输出Q3、Q2、Q1、Q0立即为全“0”,这个时候为异步复位功能。当RD=“1
21、”且LD=“0”时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。而只有当RD=LD=EP=ET=“1”、CP脉冲上升沿作用后,计数器加1。74LS161还有一个进位输出端CO,其逻辑关系是CO= Q0Q1Q2Q3CET。合理应用计数器的异步清零功能和同步计数功能,一片74LS161可以组成16进制以下的任意进制分频器。本文组成了十进制的分频器。3.4.2 多路选择器74LS151芯片数据选择端(ABC)按二进制译码,以从8个数据(D0-D7)中选取1个所需的数据。只有在选通端STROBE为低电平时
22、才可选择数据。74LS151有互补输出端(Y、W),Y输出原码,W输出反码。74LS151的功能如下表:表5 74151功能表其中A、B、C为选择输入端,D0-D7为数据输入端,STROBE为选通输入端(低电平有效),W为反码数据输出端,Y为数据输出端。3.4.3 分频模块原理图分频模块设计原理图:图13 分频模块原理图3.5 显示电路显示模块由频率值显示电路和量程转换指示电路组成。频率值显示电路采用四位共阳极数码管动态显示频率计被测数值,量程转换指示电路由红、黄、绿三个LED分别指示Hz、KHz及MHz频率单位,使读数简单可观。数码管是一种半导体发光器件,其基本单元是发光二极管。常见的数码管
23、由七个条状和一个点状发光二极管管芯制成,叫七段数码管,根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。根据管脚资料,可以判断使用的是何种接口类型。图14 两种数码管内部原理图因为这里用的是共阳极数码管,它的公共端为高电平,因此要让其中各段(DP,A,B,C,D,E,F,G)的发光二极管发光,只要使它另一端置为低电平,即置0。3.5.1 频率数值显示电路图15 共阳极数码管显示电路图3.5.2 频率数值单位显示电路图16 LED档位指示电路四、系统软件设计本文中系统软件设计采用模块化设计,整个系统分为初始化模块、频率测量模块、量程自动切换模块和显示模块等。整个系统软件设计的程序由C语言编
24、写,通俗易懂。系统软件设计模块框图:图17 系统软件设计模块框图4.1 开始程序预处理,先声明头文件,定义一些变量。程序入口,main()函数框图:图18 主函数框图4.2 初始化模块初始化模块初始化分频器、量程档位、LED显示、工作寄存器、中断控制和定时计数器的工作方式等。4.3 频率测量模块和量程自动切换模块经过初始化计数器1,每一次下降沿触发一次计数器1中断,每次中断执行中断处理程序则fCnt加1,因此fCnt为信号下降沿次数;经过初始化定时器0,每50ms触发一次定时器0中断,每次中断执行中断处理程序则对数据下降沿次数fCnt进行处理,通过对数据的大小判断实现量程自动切换等,从而计算出
25、信号的频率,然后调用显示模块把频率值显示出来。其中,16位定时计数器的最高计数值为65535,因此,还需要先由硬件十分频后,再有定时计数器对被测信号计数,加大测量的精度和范围。计数器1和定时器0的中断处理框图:图19 计数器1中断处理图20 定时器0中断处理量程自动切换模块框图:图21 量程自动切换程序流程图4.4 显示模块显示程序将频率值和量程档位在数码管和LED管显示出来。由于所有4位数码管的8 根段选线由单片机的P2口控制,因此,在每一瞬间4位数码管会显示相同的字符,要想每位显示不同的字符就必须采用扫描方法轮流点亮各位数码管,即在每一瞬间只点亮某一位显示字符,由P0.0-P0.3逐位轮流
26、点亮各个数码管,在此瞬间,段选控制口P2输出相应字符。P1.4-P1.6控制三个发光二极管,通过光颜色的不同表示量程档位的不同。P0.0-P0.3对应共阳极数码管的1,2,3,4;P2.0-P2.7对应共阳极数码管的A,B,C,D,E,F,G,DP;P1.4-P1.6对应发光二极管的颜色:绿色(MHZ档),黄色(KHZ),红色(HZ)。发光二极管全亮表示所测信号频率超出测量范围。显示模块框图:图22 显示子程序流程图4.5 延时模块延时模块框图:图23 延时程序流程图五、数字频率计仿真5.1 电源模块仿真此模块用仿真软件 MULTISIM 10.0仿真图24 电源模块仿真图其中9/220=0.
27、0409,因此变压器耦合系数设置为0.0409。此电路运行后输出电压(即万用表读数):图25 输出电源电压图此电压与我需求的5V电压相差不大,符合后面元件和电路需要的电压,因此用此模块电路产生的电压供养后续的电路。5.2 放大整形电路仿真5.2.1 仿真软件 MULTISIM 10.0仿真整形电路图26 整形电路仿真图设置输入信号,点击运行按钮后,观看示波器上输入输出信号波形:图27 整形电路仿真结果图5.2.2 仿真放大整形电路仿真原理图:图28 放大整形电路仿真图示波器波形:图29 放大整形电路仿真结果图信号经过放大整形电路,能够输出需要的波形和幅度的信号,再将它输入到分频电路,再到单片机
28、进行频率的测量。5.3 频率计仿真5.3.1 用KEIL软件先创建工程,后导入bs.c文件,其中bs.c文件就是软件设计中的源代码:图30 keil软件应用图设置一些软件目标选项:由此打开选项:图31 软件设置选项图点击后,弹出对话框并设置相关属性。点击按钮后,编译连接,若代码无问题,之后会生成bs.hex文件,如下图:图32 (.hex)文件图5.3.2 使用软件Proteus仿真频率计因为电源模块和放大整形模块都用仿真软件 MULTISIM 10.0仿真过,所以这里不再对其进行仿真,信号直接输入,稳压直流电源也直接输入。分频模块机和显示模块都要与单片机模块相连才能达到所需的要求,因此,这三
29、个模块就一起仿真,用Proteus软件仿真如下图:图33 频率计仿真图其中需要注意是一些设置:单片机设置:图34 单片机属性设置图其中是需要导入由KEIL软件生成的*.hex文件,再是时钟频率为12MHZ。电源的设置:图35 电源大小设置图设置电源为5V。5.3.3 频率计仿真运行调试因为信号是经过放大和整形的后的信号波是矩形波,因此放置元件时要选择发送矩形波的信号源。在运行之前,要设置信号源和大小,因为设计要求测量范围10HZ2MHZ,所以将信号源的大小设置在10HZ2MHZ的范围内。设置如下:1.给定10HZ的信号波图36 10HZ信号设置图点击确定后,点击运行按钮,之后看频率计仿真运行情
30、况:图37 频率计测量10HZ信号运行图其中红色LED亮,是表示数码管显示的频率值是HZ档,也就是频率的单位是HZ,也就表明运行结果读数是10HZ。2.给定600HZ的信号波图38 600HZ信号设置图运行结果如下:图39 频率计测量600HZ信号运行结果图数码管显示600,红色LED亮,因此读数为600HZ。3.给定63.3HZ的信号波图40 63.3HZ信号设置图运行结果如下:图41 频率计测量43.3信号运行结果图数码管显示63.4和63.2,黄色LED亮,有些误差,误差在0.1KHZ,读数为63.3KHZ。4.给定1.324MHZ的信号波图42 1.32MHZ信号设置图运行结果如下:图43 频率计测量1.325MHZ信号运行结果图数码管显示1.325,绿色LED亮,表示数码管显示值的单位是MHZ,误差为0.001MHZ因此读数为1.325MHZ。5.给定1.998MHZ的信号波图44 1.998MHZ信号设置图运行结果如下:图45 频率计测量1.998MHZ信号运行结果图数码管显示2.000,绿色LED亮,误差为0.002MHZ,因此读数2.000MHZ。6.复位功能:点击复位按钮图46 复位按钮图运行结果:图47 按下复位按钮运行结果图按下复位按钮后,系统重新初始化。7.给定3MHZ的信号波图48 3MHZ信号设置图运行结果如下:图49 频率计测量3MHZ信号运行结果图