1、摘要:电子信息产业的日新月异,使得信号频率的测量在科研和日常生活中扮演着越来越重要的角色。传统的频率计大多以逻辑电路和时序电路来实现,运行速度较慢,且测量频率的范围较小。为了避免上述弊端,本论文设计以AT89S52单片机为控制核心的数字频率计,采用直接测频法,用放大电路、整形电路、单片机和数字显示线路组成的硬件部分来实现。该方案测频范围满足设计要求。可测方波、正弦波、三角波,频率范围为1HZ9999HZ。关键词:数字频率计 AT89S52单片机 测量Abstract:Electronic information industry with each passing day, make the
2、signal frequency measurement playing a more and more important role in scientific research and daily life.Most of traditional frequency meter with logic circuits and sequential circuits to realize, so it run slower and measure the range of measuring frequency is less .In order to avoid these problem
3、s, this paper designs the AT89S52 single chip microcomputer as the core of digital frequency meter, the direct frequency measurement method is adopted, with amplifying circuit, shaping circuit and digital display circuit, single-chip computer hardware parts.The scheme frequency measuring range meet
4、the design requirements.Measurable square wave, sine wave, triangle wave, 1 HZ 9999 HZ frequency range.Key words: digital frequency meter AT89S52 single chip microcomputer measurement目 录第一章 绪论11.1 频率计的研究背景11.2 本课题数字频率计的研究内容1第二章 直接测频法与间接周期测频法12.1 数字频率计的原理12.2 方案比较与论证22.3设计思路4第三章 系统硬件设计43.1系统设计概述43.2主
5、芯片模块53.3放大整形模块63.4数字显示模块73.5系统总体原理图103.6 系统复位电路11第四章 系统软件设计114.1 系统软件框图11第五章 系统调试135.1 硬件调试135.2 软件介绍135.3 软件仿真结果14第六章 结束语16参考文献17致 谢18附录19第一章 绪论1.1 频率计的研究背景频率是电子信息领域的一个基本且重要的参数。因此,频率的测量已经成为电子测量领域最重要最基本的测量之一。数字频率计具有很多优点,如体积小、方便携带;高测量精度、强大的功能,广泛的应用于科学研究、教育教学、家庭生活等领域。未来的社会,数字频率计必将得到更广泛的应用和发展。例如,将之改进一些
6、,即可做成多用途的数字测量仪器,它不仅可以测频率,还可以测周期、脉宽等参数。早期的频率计更多的是采用TTL数字电路,其结构电路复杂、功耗大、成本昂贵、体积大。之后,由于大规模专用集成电路的出现和发展,频率计的制作容易了很多,但是其价格昂贵,所以利用集成电路设计的数字频率计很少。如今,单片机的高速发展,使得采用单片机实现的数字频率计的测量精度高、误差小。因而,接下来,我将介绍这种高精度、简单、可靠地基于单片机的数字频率计。1.2 本课题数字频率计的研究内容本次研究将设计出一种用十进制数字直接显示被测信号频率的数字频率计.该频率计可以测量正弦波,方波,三角波的频率,且测量频率范围从1HZ到10KH
7、Z,并将测量结果直接用十进制计数显示.技术指标如下:频率测量范围:09999Hz;输入信号波形:正弦波、方波、三角波;第二章 直接测频法与间接周期测频法2.1 数字频率计的原理数字频率计的主要功能是测量周期信号的频率。频率是单位时间( 1S )内信号发生周期变化的次数。如果我们能在给定的 1S 时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算后显示出来。这就是数字频率计的基本原理。数字频率计由四部分组成:时基电路、闸门
8、电路、逻辑控制电路以及可控制的计数、译码、显示电路。由555 定时器,分级分频系统及门控制电路得到具有固定宽度T 的方波脉冲做门控制信号,时间基准T 称为闸门时间。宽度为T 的方波脉冲控制闸门的一个输入端 .被测信号频率为 fx,周期 Tx,到闸门另一输入端 。当门控制电路的信号到来后,闸门开启,周期为Tx 的信号脉冲和周期为T 的门控制信号通过闸门,于输出端 产生脉冲信号到计数器,计数器开始工作,直到门控信号结束,闸门关闭,单稳1 的暂态送入锁存器的使能端,锁存器将计数结果锁存,计数器停止计数并被单稳态清零,在整个电路中,时基电路是关键,闸门信号脉冲宽度是否精确直接决定了测量结果是否精确。
9、因此,可得出数字频率计的原理框图2-1如下:图2-1 数字频率计的原理框图2.2 方案比较与论证测量频率的方法有很多,按照其工作原理分为无源测频法、比较法、示波器法和计数器法等。而计数法实质上属于比较法,其中最常用的方法是电子计数器法,它是一种最常见、最基本的数字化测量仪器。因此这里着重介绍两种方法,一种是频率测量法,另一种是周期测量法。方案一:该方案采用频率测量法,它以单片机为内核,通过单片机的计数定时功能来完成频率的计数然后通过动态扫描将测出的数据发送到数字显示电路进行显示。本方案将待测信号进行放大整形后直接作为计数器的计数时钟,在闸门时间t内利用计数器对这些脉冲进行计数所得脉冲N,即得待
10、测信号频率fx=N/t.其原理框图如图2-2所示。 图2-2频率测量法原理框图方案二:该方案采用周期测频法,它将被测信号加在闸门形成电路的闸门时间t,然后在计数器时钟输入端送上周期T0的计数脉冲,即可计算出被测信号的周期Tx=N*T0。然后周期的倒数就是被测信号的频率了。其原理框图如图2-3所示:2-3周期测频法原理框图方案一:测量误差: (1)其中技术误差为;闸门时间相对误差为。 方案二:测量误差: (2)其中技术误差为;计数时钟的相对误差为;根据(2)式可以看出,待测信号的周期越大,则测量误差越小。若测量多个周期的,则误差会更小。由于本设计要求测量频率为低频,频率范围较小,原理电路简单,调
11、试简单,只要改变程序的设定值就可以实现不同频率范围的测量。因此本设计采用方案一直接测频法。2.3设计思路根据设计任务与要求,设计思路如下:系统的主要功能为能测量正弦波、方波、三角波的频率,且测量频率范围从1HZ到10KHZ,并将测量结果直接用十进制计数显示。系统模块有:主芯片控制模块、放大整形模块以及可控制的数字显示电路。具体实现过程:将信号放大整形后的方波对待测信号通过接口电路直接传送给单片机,然后经过单片机的计数器对其计数,最后由数字显示电路显示所测得信号的数值。第三章 系统硬件设计3.1系统设计概述本频率计的设计以AT89S52单片机作为核心部件。它由主芯片控制模块、放大整形模块以及可控
12、制的数字显示电路组成。主芯片控制模块基于AT89S52单片机来完成对被测信号的计数,译码以及显示控制,利用它内部的定时/计数器来测量待测信号的频率以及周期。放大整形模块:通过放大电路对被测信号放大,增强信号,使得芯片能正常测得信号的频率。整形电路即是将被测信号转化为方波信号,使得单片机更好的测量。显示模块:采用八位数码管显示模块进行显示。系统框图如图3-1。信号放大电路信号整形单片机AT89S52电路数字显示 电路图3-1 系统设计框图3.2主芯片模块3.2.1 AT89S52系列单片机芯片介绍AT89S52是由美国ATMEL公司生产的52单片机的一种型号。这种单片机属于八位单片机,内部采用C
13、MOS门电路。这种电路采用低电压,性能高。拥有32个并行IO口,2个中端口,3个16位的定时/计数器,一个全双工串行口,2个地址口。目前主要的厂商有Atmel、Philips、winbond、SST等等,生产的芯片兼容MCS-51指令。在此设计方案中,AT89S52单片机的P0口和P2作为接收数据端口,将RP1的输入端与P0口的各引脚连接起来,作为段驱动;而P2口与数码管连接作为位驱动。P3口采用第二功能,使P3.4作为直接测量待测信号频率的技术端。3.2.2 AT89S52主要功能特性(1)与MCS51指令系统兼容 (2)具备8K的Flash 闪速存储器 (3)拥有32个准双向的输入/输出接
14、口 (4)256字节的内部RAM (5)3个16位定时/ 计数器 (6)全静态操作可接受频率为0-33MHz (7)8个中断源 (8)拥有全双工UART串行通道 (9)掉电模式和低功耗空闲 (10)看门狗定时器3.2.3引脚功能(1)主电源及地引脚Vcc:电源电压GND:地(2)晶振引脚XTAL1(19脚):内部反相放大器输入端。XTAL2(20脚):内部反相放大器输入端。(3)并行输入/输出引脚P0.0P0.7(3239脚):8位漏极开路的三态双向输入/输入口。P1.0P1.7(18脚):8位带有内部上拉电阻的准双向输入/输出口。具有第二功能。P2.0P2.7(2128脚):8位带有内部上拉
15、电阻的准双向输入/输出口。P3.0P3.7(1017脚):8位带有内部上拉电阻的准双向输入/输入口。具有第二功能。3.3放大整形模块3.3.1 信号放大电路本次信号放大电路选用OP37芯片为核心的反相放大电路,如图3-2所示。OP37是低噪声、精密、高速运算放大器的一款芯片,不仅具有OP07的低失调电压和漂移特,而且速度更高、噪声更低,能够使低电平信号得到精确的高增益放大。它的增益带宽拓宽到63MHZ,远远高于设计要求。本电路的电压增益如公式(3): (3)图3-2 放大电路3.3.2 整形电路在此设计中,选用可重复触发的单稳态电路74HC00实现,脉冲信号直接作为单稳态电路的触发方式。如图3
16、-3所示:图3-3 整形电路通过74HC00和74HC05串联将经过放大电路后的脉冲直流信号整形成矩形脉冲。如图3-4所示:图3-4 整流波形74HC00由四组2输入端与非门组成。74HC05由六组反相器组成。74HC00与74HC05串联构成斯密特触发器。斯密特触发器是一种阀值开关电路,具有突变输入-输出特性。常用于设计成输入电压出现微小变化而引起的输出电压的改变。其工作原理为:当输入电压由低增加,到达正向阀值电压,输出电压发生突变;当输入电压由高减少,到达负向反向阀值电压时,输出电压发生突变。接入74HC05是因为触发器的滞后特性,使波形的上升或下降沿变得陡直。原理为:当输入电压Vi上升到
17、正向阀值电压时,触发器翻转,输出负跳变(低电平);过了一段时间电压降到时,输出电压并不回到初始状态而需输入电压继续降到时,输出电压才翻转至高电平。滞后电压为公式(4): (4)3.4数字显示模块本设计的显示模块是采用LED数码管,将八个数码管串接起来实现显示功能,显示的数据即为测量的频率。如图3-5所示:图3-5 数字显示模块显示的数据以BCD码的方式存放在单片机RAM存储器中。LED动态显示流程:位选码和段选码初始化,分别送入单片机端口,通过查表将存储器中的数据送LED显示;然后通过调用延时程序,指向下一显示单元,最终所有位显示完退出。其LED动态显示流程图如图3-6所示。图3-6 LED动
18、态显示流程图3.4.1 数码管结构单片机应用系统中使用最多的是7段LED,它可以显示十进制数字和一些英文字母。7段LED数码管是由7个条形发光二极管和一个小数点构成的,实物如图3.7所示。从图中可以看出,7个发光二极管构成字形“8”,用来显示电路,另一个发光二极管构成小数点。因此,这种数码管有时也被称8段LED数码管显示器。图3-7 八段数码管实物7段共阳极LED数码管中,发光二极管的阳极为公共端,接高电平+5v。当某个发光二极管的阴极为低电平时,发光二极管导通,该字段导通;反之,发光二极管截止,该字段不发光。引脚结构如图3-8所示。图3-8 数码管引脚结构图7段共阴极LED数码管中,发光二极
19、管的阴极为公共端,接GND。当某个发光二极管的阳极为高电平时,发光二极管导通,该字段导通;反之,发光二极管截止,该字段不发光。内部结构如图3-9所示。3-9 数码管共阴/共阳极内部结构图3.4.2 数码管显示方式在现实的单片机使用中,往往使用多个LED数码管来显示一位以上的数据和字符串。当I/O口不够用的时候,我们就需要设计显示电路来显示数码管的各个段码,然后经程序的控制,显示我们想要的字符。对于多个LED数码管并用的时候,有两种显示方式,即静态显示和动态显示。(1)静态显示静态显示是通过发光二极管恒定不变的导通或截止在数码管上显示想要的字符,它的亮与灭是恒定不变的。静态驱动时每个数码管的各字
20、段要与单片机的I /O连接。该驱动方式接口操作简单,而且较小的驱动电流即可获得很强的显示亮度;但是当数码管多的时候,相应的就需要更多的/O线。(2)动态扫描显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制哪一位数码管有效。点亮数码管采用动态扫描显示,即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人感觉好像各位数码管同时都在显示。动态显示的亮度没有静态显示的好,所以在选择限流电阻时应略小于静态显示电路中的。因此本设计选用动态扫描方法驱动数码管。3.5系统总体原理图本系统包括主芯片控制模块、放大整形模块以及可控制的数字显示模块。整体系统原理如图3
21、-10所示。图3-10 整体系统原理图3.6 系统复位电路单片机的复位电路相当重要,它是促使单片机进入复位状态的硬件结构。它用于初始化以及单片机死机时的重新运行。常见的复位有:上电复位、手动按钮复位、定时监视器(WDT,看门狗)复位等。本设计采用的是上电复位和按键复位电路,如图3-11所示。上电复位是利用RC电路的充放电效应,当单片机上电时,复位电路通过电容加在RST引脚一个短暂的高电平信号,这个信号随着电容的充电而逐渐减低,从而实现复位。图3-11 复位电路第四章 系统软件设计4.1 系统软件框图本系统软件采用模块化设计方法。(1)主程序流程图如图4-1所示:软件主流程:a) 进入main程
22、序b) 对定时/计数器T0、T1进行初始化,选择工作方式、设初值、开中断、启动定时计数器c) 计算频率值d) 显示数值图4-1 主程序流程图 (2) T0中断流程图如图4-3所示图4-3 T0中断流程图中断程序的功能是实现定时与计数。T1作为定时器,定时时间为1s;而T0作为计数器,T0中断每溢出一次,n加1。当定时达到1s时,停止T0,T1。然后计算出频率值。(3) T1中断流程图如图4-2所示T1作为定时器,定时时间为1s=0.25ms *4000;进入中断后num+,直到num达到4000时,关闭定时器T1、计数器T0,然后返回主程序,计算频率值。图4-2 T1中断流程图第五章 系统调试
23、系统调试有硬件调试和软件调试两种,它们在单片机开发与设计中是紧密结合,不可分割的。5.1 硬件调试 硬件方面主要是对电路板焊接技术以及布线的整体把握,电路板做好焊接好后,先查看电路板是否有“虚焊”和“漏焊”的情况,用万用表进行测试。此外用调试程序通过软件下载到单片机中进行调试,看电路板上芯片是否出现发热情况,若是有,则可能是短路造成的。在检查电路板无问题时,即可以用写好的程序进行下载调试,看是否实现预定功能。5.2 软件介绍该设计的软件调试主要使用Keil和Proteus两个软件。在Keil软件上编写程序代码,然后编译、修改等重复步骤得到我们设计要求的源代码;通过Proteus软件,可以画出原
24、理图,然后通过电脑在上面进行仿真测试。5.2.1 Keil C51程序调试:Keil C51的编程及调试步骤为:首先建立一个工程,选择处理器型号Atmel的AT89C51单片机;然后建立一个.c文件用来编写程序,编写完程序后保存即可;然后把保存.c文件加载到之前建立的工程文件中。进行工程配置后,编译程序,Keil会自动生成.hex文件。5.2.2 Proteus仿真环境介绍Proteus软件12是一种低投资的电子设计自动化软件,可以反映电路的电信号高低电平的变化,供我们调试程序,Proteus软件还提供各种各样的测试信号用于仿真电路的测试,使用非常方便,在编译方面也支持和Keil的联调。5.3
25、 软件仿真结果根据电路图和功能要求进行程序编写,编写完之后根据生产的HEX文件加载到Proteus中进行仿真。在调试过程中因为电路界面太小,因此省去了放大部分模块。直接采用输入方波、正弦波以及三角波的信号来检测电路是否正确以及存在的问题。系统仿真电路如图5-1所示。图5-1 系统电路仿真图输入信号为1HZ时,仿真如下:图5-2 系统仿真图输入信号为100HZ时,仿真如下:图5-3 系统仿真图输入信号为1KHZ时,仿真如下:图5-4 系统仿真图输入信号为5KHZ时,仿真如下:图5-5 系统仿真图输入信号为9.9KHZ时,仿真如下:图5-6 系统仿真图从以上的仿真结果可得出:在所测得频率范围,频率
26、越小,仿真结果越精确;频率越大,仿真会出现一定的误差。当输入信号为9.9KHZ时,输出信号多了1HZ,此误差为相对误差(1)。从仿真结果来看 ,该设计满足设计要求。第六章 结束语经过长达两三个月的学习和时间,本次的毕业设计终于结束了,在本次的单片机系统设计中参阅了很多学习过的模电、数电以及单片机知识。在本次毕业设计的过程中,我发现了我个人存在的很多的问题,开始拿到这个题目的时候感觉这个题目很简单,但是将该题目付诸实施的时候,却总显得无从下手,对该系统不能做出任何见解或者具体的实施方案,这个问题就很轻易地显示了我们日常学习中的实践能力不足.所以单纯地追求理论研究是不行的,我们一定得通过不断的科学
27、实验,才能验证我们所学的是不是正确的,同时更加清楚地知道一些运用方案的理论研究的意义。通过毕业设计,我们需要不断学习,不断地整合新知识,这样才能将各个分立的简单的模块应用到一个复杂的系统中去,本次的毕业设计也同样如此,如果说想一次就设计完整个系统,那几乎是不可能的,虽然各个模块的使用我们都会觉得不是那么难,但是一旦整合了多种知识,我们在软件的设计上就不会显得那么的轻松了,所以在今后工作中,也不能仅仅只是做理论分析,我们一定要将理论运用到实际,通过实际表现来衡量我们的水平。同时在这里我要感谢我的指导老师在整个毕业设计过程中对我的精心指导。参考文献1崔瑞雪,张增良.电子技术动手实践.第1版M.北京
28、:北京航空航天大学出版社,2007.62孙肖子.模拟电子技术基础.第1版M.西安:西安电子科技大学出版社,2001.13谢自美.电子线路设计实验测试.第2版M.武昌:华中科技大学出版社,2000.74任中民.数字电子技术M清华大学出版社,2005年 5王玉秀.电工电子基础实验.第1版M.南京:东南大学出版社,2006 6王丽君.基于单片机的数字频率计的设计及仿真研究J.科技风期刊,2009年08期7沈亚钧.基于单片机的数字频率计设计J.山西电子技术报,2012年05期8张晶.数字测频方法的研究J.吉林广播电视大学学报,2005年04期9李育红.基于STC12C5A08S2单片机频率计的设计与实
29、现J.科学之友期刊,2011年16期10吴海明,王伟.基于单片机与FPGA的等精度频率计设计J.兵工自动化期刊,2009年03期致 谢本论文是在xxx老师的指导下完成的,老师知识渊博,工作态度严谨。在老师的带领下,我认真的完成了该论文的攥写。在此,谨向敬爱的金彩虹老师表示诚挚的感谢!在论文的完成中我身边的同学也给与了我帮助,当我对于一些专业问题不懂时,他们帮助我查找资料,翻阅书籍,给我提高帮助,在这里我也要由衷的感谢我热情的同学!最后,感谢各位评委老师,论文有不足之处,还望老师指正!附录系统的源程序代码#include #define uchar unsigned char#define ui
30、nt unsigned int#define ulong unsigned longunsigned char code duan = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; unsigned char code wei=0xfe,0xfd,0xfb,0xf7,0xef,0xdF; void display(uchar,uchar,uchar,uchar,uchar,uchar);void delay(uint);uchar flag,n,a,b,c,d,e,f;ulong m;uint num;void main()TMOD=0x
31、25; TH0=0;TL0=0;TH1=6;TL1=6;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;while(1)if(flag)m=n*65536+256*TH0+TL0;m=256*TH0+TL0;a=m/100000;b=m%100000/10000;c=m%100000%10000/1000;d=m%100000%10000%1000/100;e=m%100000%10000%1000%100/10;f=m%100000%10000%1000%100%10;display(a,b,c,d,e,f);void display(uchar a,uchar b,uchar c
32、,uchar d,uchar e,uchar f) P2=wei0;P0=duana;delay(1);P2=wei1;P0=duanb;delay(1);P2=wei2;P0=duanc;delay(1);P2=wei3;P0=duand;delay(1);P2=wei4;P0=duane;delay(1);P2=wei5;P0=duanf;delay(1);void delay(uint xms) uint i,j;for(i=xms;i0;i-) for(j=110;j0;j-);void t0() interrupt 1 n+;void T1_time()interrupt 3 num+;if(num=4000)TR0=0;TR1=0;flag=1;21