《等精度频率计毕业设计说明书.doc》由会员分享,可在线阅读,更多相关《等精度频率计毕业设计说明书.doc(47页珍藏版)》请在三一办公上搜索。
1、目录前言3第一章 概论411课题研究的目的和意义41.2 测量原理41.3 等精度频率计计数测量误差51.4 设计思路及技术指标6第2章 STC89C52单片机系统结构和原理82.1 STC89C52单片机的简介82.2单片机的一般结构92.3 STC89C52存储器配置112.4 引脚功能说明122.5中断系统152.5.1中断源162.5.2 中断控制17第三章 硬件设计183.1 硬件电路设计183.2 电源电路183.3 单片机控制部分193.4 同步门控制电路193.5计数电路213.6 显示电路233.6.1 1602的功能简介233.6.2 1602与STC89C52的连接24第
2、四章 软件设计254.1 程序流程254.1.1 系统主程序流程图254.1.2 初始化液晶274.1.3 初始化定时器274.1.4定时器1溢出中断流程274.1.5主循环284.1.6 显示子程序29第5章 系统调试315.1 硬件调试315.2调试软件的介绍315.2.1 Keil uvision3软件介绍315.3调试345.3.1 测频精度分析345.3.2实验测试数据35附录一 完整的C语言源程序40附录二 系统设计原理图47附录三 系统设计PCB图48附录四 实物照片49附录五 元器件清单表50前言随着微电子技术和计算机技术的迅速发展,特别是单片微机的出现和发展,使传统的电子测量
3、仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化,形成一种完全突破传统概念的新一代测量仪器。频率计广泛采用了高速集成电路和大规模集成电路,使仪器在小型化、耗电、可靠性等方面都发生了重大的变化。传统的频率计测量误差较大,等精度频率计以其测量准确、精度高、方便等优势将得到广泛的应用。传统的测频方法有直接测频法和测周法,在一定的闸门时间内计数,门控信号和被测信号不同步,计数值会产生一个脉冲的误差。等精度测频法采用门控信号和被测信号同步,消除对被测信号计数产生的一个脉冲的误差。等精度频率测量方法消除了量化误差,可以在整个测试频段内保持高精度不变,其精度不会因被测信号频率的高低而发生变化。采用
4、单片机作为控制核心的等精度频率计,可以充分利用单片机软件编程技术实现等精度测频。通过单片机对同步门的控制,使被测信号和标准信号在闸门时间内同步测量,为了提高精度,将电子计数功能转为测周期,采用多周期同步测量技术,实现等精度测量。第一章 概论本次设计的等精度频率计是一种用液晶显示被测信号频率的测量仪器.它的基本功能是测量方波信号。本文讲述了等精度频率计的工作原理以及其各个组成部分,记述了整个设计过程中对各个部分的设计思路、对各部分电路设计方案的选择、以及对它们的调试、对调试结果的分析,最终得到实验结果。11课题研究的目的和意义测频一直以来都是电子和通讯系统工作的重要手段之一。高精度的测频仪有着广
5、泛的市场前景。以往的测频仪都是在低频段利用测周期的方法、高频段用测频率的方法,其精度往往会随着被测频率的下降而下降。基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。所以等精度频率计有研究的价值。1.2 测量原理图1-1 等精度频率计测量原理图基于传统测频原理的频率计的测量精度将随被测信号频率的变化而变化。传统的直接测频法其测量精度将随被测信号频率的降低而降低,测周法的测量精度将随被测信号频率的升高而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个频
6、率区域能保持恒定的测试精度。等精度频率的测量原理图1-1 所示。频率为fx 的被测信号经通道滤波、放大、整形后输入到同步门控制电路和主门1(闸门),晶体振荡器的输出信号作为标准信号(时基信号)输入到主门2。被测信号在同步控制门的作用下,产生一个与被测信号同步的闸门信号,被测信号与标准信号(时基信号)在同步门控制信号的控制下。在同步门打开时通过同步门分别输入到事件计数器和时间计数器的信号输入端,计数器开始计数。同步门关闭时信号不能通过主门,计数器停止计数,单片机发出命令读入计数器的数值,并进行数据处理,将处理后的结果送显示。等精度频率测量方法是采用多周期同步测量。如图1的测量原理图所示由单片机发
7、出预置门控信号GATE,GATE的时间宽度对测频精度影响较少,可以在较大的范围内选择,即在高频段时,闸门时间较短;低频时闸门时间较长。实现了全范围等精度测量,减少了低频测量的误差。在同步门的控制下,一方面保证了被测信号和时基信号的同步测量;另一方面在同步门打开后计数器并不是马上计数,而是在被测信号的下一个上升沿开始计数,同步门关闭后计数器也不是马上停止计数,而是在被测信号的下一个上升沿停止计数。即在实际闸门时间计数,从而提高了测量精度。由于采用D 触发器实现的同步门的同步作用,事件计数器所记录的Nx 值已不存在误差的影响,但由于时钟信号与闸门的开和关无确定的相位关系,时间计数器所记录的N0 的
8、值仍存在1 误差的影响,只是由于时钟频率很高,误差的影响很小。所以在全频段的测量精度是均衡的,从而实现等精度频率测量。1.3 等精度频率计计数测量误差由上述测量原理可知,公式 fx=f0Nx/N0 成立。设所测频率的准确值为f x0。在一次测量中,由于fx 计数的起停时间是由该信号的上升沿控制的,因此,在T 时间内对fx 的计数NX无误差。在此时间内f0 的计数N0 最多相差一个脉冲,即N0 l,则下式成立:fx/Nx = f0/N0 (1)fx0/NX = f0/(N0+N0) (2)由此可分别推得: fx= (f0/N0)Nx (3)fx0=f0/(N0+N0)Nx (4)根据相对误差公式
9、有: f x0/f x0=f x0-fx/f x0 (5)将式(3)和式(4)代人式(5)整理后可得:f x0/f x0=N0/N0 (6)因为 N0l (7)所以 N0/N01/N0 (8)即相对误差: f=f x0/f x01/N0 (9)其中: N0 = Tf0 (10)由此可知, 增大Tp 或提高fx,可以增大Nx,减少测量误差,提高测量精度;相对测量误差与被测信号频率的大小无关,仅与取样时间及时基信号(标准信号)频率有关,可以实现被测频带内的等精度测量;取样时间越长,时基信号频率越高,分辨率越高。1.4 设计思路及技术指标一 设计方案以89C51型单片机为核心,结合其它的一些芯片一起
10、设计一个等精度频率计。根据本设计的要求和方案的设想,总结一下本设计要做的具体的工作主要有以下几个方面:第一 ,分析与论证本设计所采用的方案,包括主控系统、显示系统等的分析以及这些模块的功能等。在对设计要求充分分析的基础上,划分功能模块,选择需要的硬件设备。第二 ,收集大量等精度频率计方面的资料 包括文字资料和试验数据,总结规律。可以有两种方法实现软件部分。(一)定时1s测信号脉冲次数:用一个定时计数器做定时中断,定时1s,另一定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1s中断,产生1s中断后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器内的值就是1s内
11、待测信号的下跳沿次数即待测信号的频率。用相关函数显示完毕后再开启T0和T1这样即可进入下一轮测量。(二)测信号正半周期。对于1:1占空比的方波,仅用一个定时计数器做计数器,外部中断引脚作待测信号输入口,置计数器为外部中断引脚控制(外部中断引脚为“1”切TRx=1计数器开始计数)。单片机初始化完毕后程序等待半个正半周期(以便准确打开TRx)打开TRx,这时只要INTx(外部中断引脚)为高电平计数器即不断计数,低电平则不计数,待信号从高电平后计数器终止计数,关闭TRx保护计数器寄存器的值,该值即为待测信号一个正半周期的单片机机器周期数,即可求出待测信号的周期:待测信号周期T=2*cnt/(12/f
12、soc) cnt为测得待测信号的一个正半周期机器周期数;fsoc为单片机的晶振。所以待测信号的频率f=1/T。第二种方法只适用于1:1占空比的方波信号,要测非1:1占空比的方波信号误差有点大,所以本设计优先使用第一种方法进行设计。第三 ,根据划分的功能模块,编写操作程序。这也是本设计中很重要的一个工作,确定编程时要尽量做到界面美观,操作简便。第四,进行程序调试,继续完善各功能模块的程序。二 技术指标1.设计一个4位的频率计,其频率范围在19999Hz;2.送入信号应该符合电路要求的脉冲或正统波;3完成硬件电路的原理设计; 4制作印刷电路板,要求电路布局合理,焊点合格。第2章 STC89C52单
13、片机系统结构和原理2.1 STC89C52单片机的简介在本设计中采用了STC89C52单片机作为中心处理系统进行研究。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。它与以前的程序存储器相比具有以下优点2:用户可自己写入,并根据需要灵活修改程序;用电擦除而不是用紫外线擦
14、除,不需要特殊的擦除设备;写入与擦除的速度非常快。所有的MCS-51系列单片机拥有一个相同的8位微处理器CPU,它由算术逻辑运算部件ALU、布尔处理器、控制器和工作寄存器组成。算术逻辑运算部件主要功能是实现数据的传送、数据的算术逻辑运算和布尔量处理,它们包括:加、减、乘、除算术运算;增量(加1)、减量(减1)运算;十进制数调整;位置“1”、位置“0”和取反;与、或、异或等逻辑操作;数据传送操作。控制器是控制整个单片机系统各种操作的部件,它包括时钟发生器、定时控制逻辑、指令寄存器译码器、程序存储器和数据存储器的地址/数据传送控制等。从编程的角度看,MCS-51CPU对用户开放的寄存器主要有以下几
15、个:累加器ACC、寄存器B、程序计数器PC、数据指针DPTR(由DPH和DPL两个8位寄存器组成),程序状态寄存器PSW、堆栈指针SP。2.2单片机的一般结构一、STC89C52单片机内部主要性能:(1)与MCS-51单片机产品兼容(2)8K字节在系统可编程Flash存储器(3)1000次擦写周期(4)全静态操作:0Hz33Hz(5)三级加密程序存储器(6)32个可编程I/O口线(7)个16位定时器/计数器(8)八个中断源(9)全双工UART串行通道(10)低功耗空闲和掉电模式(11)电后中断可唤醒(12)看门狗定时器(13)双数据指针 (14)掉电标识符二、STC89C52单片机结构框图ST
16、C89C52单片机采用模块式的结构,有多个存储空间,每一个存储空间都留有一定的余量,这种结构为单片机的发展留有充分的余地,其结构框图如图2-13。图2-1 STC89C52 结构框图三、引脚图和逻辑符号图STC89C52一般为DIP40双列直插封装形式的器件,其引脚图和逻辑符号如图2-2所示。STC89C52的引脚P00P07、P10P17、P20P27、P30P37为四个8位并行输入/输出口,其中P3口、P0口和P2口为双功能口,可以作为普通输入/输出口(第一功能),也可以作为特殊输入/输出口。RST为复位输入线,ALE、为系统扩展控制线,XTAL1和XTAL2为时钟电路输入/输出线,Vcc
17、、GND为电源输入线,一般接+5V和地4。 图2-2 STC89C52 引脚图、逻辑符号图2.3 STC89C52存储器配置STC89C52单片机独立的存储空间5:64K字节程序存储器空间(00FFFFH);256字节内部RAM空间(00FFH);128字节内部特殊功能寄存器空间(80H0FFH);位寻址空间(00FFH);64K字节外部数据存储器(RAM/IO)空间(00FFFFH)。一、 程序存储器MCS-51的程序存储器空间为64K字节,地址范围为0000HFFFFH,其地址指针为16位的程序计数器PC。0开始的部分程序存储器(4K,8K,16K,)可以在单片机的内部也可以在单片机的外部
18、,这取决于单片机的类型,并由输入到引脚的电平控制。STC89C52内部有4KB的程序存储器,用于存放程序、原始数据或表格。若接Vcc(+5v),则程序计数器PC的值在0至0FFFH之间时,CPU取指令时访问内部的程序存储器;PC 值大于0FFFH时,则访问外部的程序存储器。如果接Vss(地),则内部的程序存储器被忽略,CPU总是从外部的程序存储器中取指令。单片机外部扩展的程序存储器一般为EPROM电路(紫外线可擦除电可编程的只读存储器)。MCS-51的引脚输出外部程序存储器的读选通信号,仅当CPU访问外部程序存储器时,才有效(输出负脉冲)。MCS-51复位后,程序计数器PC为0,CPU从地址0
19、开始执行程序,即复位入口地址为0。另外,MCS-51的中断入口也是固定的,程序存储器地址3、0BH、13H、1BH、23H单元为中断入口,MCS-51的中断源数目是因型号而异的,中断入口也有多有少,但总是从地址3开始,每隔8个字节安排一个中断入口。表2-1 程序存储器中的特殊单元单元地址特殊用途0000H启动地址0003H外部中断0中断服务程序入口地址000BH定时/计数器T0溢出中断服务程序入口地址0013H外部中断1中断服务程序入口地址001BH定时/计数器T1溢出中断服务程序入口地址0023H串行口接收和发送中断服务程序入口地址二、数据存储器STC89C52芯片共有256个RAM单元,其
20、中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00HFFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。2.4 引脚功能说明STC89C52单片机采用40个引脚双列直插式封装,其中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复位的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4个部分叙述各个引脚的功能6。一、电源引脚Vcc和Vss1、Vcc(40脚):芯片工作电源输入端接+5V电源;2、Vss(20脚
21、):芯片工作接地端。二、外接晶振引脚XTAL1和XTAL21、XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。2、XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。 图2-3 内部振荡电路 外部振荡电路三、控制信号引脚控制信号或与其它电源复位引脚有RST、ALE、和等4种形式。1、RST(9脚):
22、RST即为RESET,为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。2、ALE(30脚):为地址锁存允许输出信号/编程脉冲信号输入端;此信号为外部的扩展大陆低位字节地址提供一个允许锁存信号对芯片内的EPROM/EEPROM空间固化程序时提供一个编程脉冲信号。当访问外部存储器时,ALE信号用来所存地址的低位字节。在不访问外部存储器时,ALE端总是以振荡频率的6分
23、频来周期性地输出正脉冲信号,故可作为对外的时钟输出。在访问外部数据存储器时,要跳过一个ALE脉冲。在对内部具有EPROM的8751单片机进行编程时,此引脚用于输入编程脉冲。3、 (29脚):片外程序存储器读选通输出端,低电平有效。在CPU取指令或常数时,用于选通外部程序存储器。当从外部程序存储器读取指令或常数期间,每个机器周期两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,信号将不出现。4、(31脚):为访问外部程序储器控制信号/编程电压输入端,低电平有效。当端保持高电平时,片内存储器有效,单片机访问片内程序存储器4KB(MCS52子系列为8KB)。若超出该范围时,自动转去
24、执行外部程序存储器的程序。当端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。四、输入/输出(I/O)引脚1、P0口(39脚22脚):P0口是开漏双向口可以写为1使其状态为悬浮用作高阻输入。P0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。2、P1口(1脚8脚):P1.0P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P1口接
25、收输入的低8位地址。3、P2口(21脚28脚):P2口是带内部上拉的双向I/O,口向P2口写入1时,P2口被内部上拉为高电平,可用作输入口当作为输入脚时,被外部拉低的P2 口会因为内部上拉而输出电流(见DC 电气特性)。在访问外部程序存储器和外部数据时分别作为地址高位字节和16 位地址(MOVX DPTR),此时通过内部强上拉传送1。当使用8位寻址方式(MOVRi)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。4、P3口(10脚17脚):P3口是带内部上拉的双向I/O口,向P3口写入1时,P3口被内部上拉为高电平,可用作输入口,当作为输入脚时,被外部拉低的P3 口会因为内部上拉而输
26、出电流(见DC 电气特性)。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见表2-2:表2-2 单片机P3口管脚含义引脚第2功能P3.0RXD(串行口输入端0)P3.1TXD(串行口输出端)P3.2INT0(外部中断0请求输入端,低电平有效)P3.3INT1(外部中断1请求输入端,低电平有效)P3.4T0(时器/计数器0计数脉冲输入端)P3.5T1(时器/计数器1数脉冲输入端)P3.6WR(外部数据存储器空间写通信号输出端,低电平有效)P3.7RD(外部数据存储器空间读信号输出端,低电
27、平有效)综上所述,STC89C52系列单片机纳为以下两点:1) 单片机功能多,引脚数少,因而许多引脚具有第2功能;2) 单片机对外呈3总线形式,由P0、P2口组成16位地址总线;由P0口分时复用作为数据总线。2.5中断系统现代的计算机都具有实时处理功能,能对外界异步发生的事件作出及时的处理,这是依靠它们的中断来实现的。所谓中断是指中央处理器CPU在处理某件事情的时候,外部发生了某一事件(如定时器计数溢出),请求CPU迅速去处理,CPU暂时中断当前的工作,转入处理所发生的事件,处理完以后,再回到原来中断的地方,继续原来的工作。这样的过程就称为中断。实现这种功能的部件成为中断系统。产生中断的请求源
28、就成为中断源。最典型的单片机有五个中断源,分别是外部中断0、定时器T0、外部中断1、定时器T1、和串行口中断。在这次的编程中就用到了这些中断。这五个中断的入口地址各不相同,列表如表2-37:表2-3 中断的入口地址中断源入口地址外部中断00003H定时器T0000BH外部中断10013H定时器T1001BH串行口中断0023H典型的单片机可以实现二级中断服务程序嵌套,每个中断源可以编程为高级中断,或低优先级中断,允许或禁止向CPU请求中断。与中断系统有关的特殊功能寄存器有中断允许寄存器IE、中断优先级控制寄存器IP、中断源寄存器(TCON,SCON中的有关位)。2.5.1中断源 89C52单片
29、机的八个中断源其中的五个是:2个INT0、INT1(P3.2,P3.3)上输入的外部中断源;3个内部中断源,它们是定时器/计数器T0、T1的溢出中断源和串行口的发送接受中断。这些中断源分别锁在TCON、SCON的相应位中8。一、外部中断源INT0、INT1上输入的两个外部中断源和它们的触发方式控制位所存在特殊寄存器TCON的低四位,TCON的高四位为T1、T0的运行控制位和溢出标志位: 表2-4 外部中断源D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0IE1 外部中断1请求源(INT1,P3.3)标志。IE1=1,外部中断1正向CPU请求中断,当CPU响应该中
30、断时由硬件“0”IE1(边沿触发方式)。IT1 外部中断1触发方式控制位。IT1=0,外部中断1位电平触IT1=1,外部中断1位边沿触发方式。IE0 外部中断0请求源(INT0,P3.2)标志。IE0=1外部中断0向CPU请求中断,当CPU响应中断时,由硬件清“0”IE0(边沿触发方式)。IT0 外部中断0触发方式控制位。IT0=0,外部中断0为电平触发方式,IT0=1,外部中断0为边沿触发方式。其功能和IT1相同。 二、内部中断源定时器/计数器T0的溢出中断TF0(TCON.5):T0被允许计数以后,从初值开始加1计数,当产生溢出时置“1”IF0,向CPU请求中断,一直保护到CPU响应该中断
31、时才由硬件清零(也可以由查询程序清零)。定时器/计数器T1的溢出中断TF1(TCON.7):其功能与TF0相同。串行口中断:串行口的接收中断RI(SCON.0)和发送中断TI(SCON.1)逻辑或以后作为内部的一个中断源。2.5.2 中断控制 单片机对中断源的开放或屏蔽,每个中断源是否允许中断,89C51是由内部的中断允许寄存器IE控制的(IE为特殊功能寄存器,它的字节地址为A8H),其格式如表2-59:表2-5中断控制格式D7D6D5D4D3D2D1D0EA-ESET1EX1ET0EX0EA CPU的中断开放标志.EA=1,CPU 开放中断;EA=0,CPU屏蔽所有的中断申请。ES 串行口中
32、断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。ET1 定时器/计数器T1的溢出中断允许位。 ET1=1,允许T1中断;ET1=0,禁止T1中断。EX1 外部中断1中断允许位。EX1=1允许外部中断1中断;EX1=0,禁止外部中断1中断。ET0 定时器/计数器T0溢出中断允许位。 ET0=1,允许T0中断;ET0=0,禁止T0中断。EX0 外部中断1中断允许位。EX0=1,允许外部中断0中断;EX1=0,禁止外部中断0中断。第三章 硬件设计3.1 硬件电路设计硬件电路主要分为电源电路、单片机控制部分、同步门控制电路、计数和液晶显示电路。电路采用Protell 99 se 是电路设
33、计中功能比较强大软件,本设计用其原理图和PCB图。3.2 电源电路此次设计的电源需求,共需要用到+5V,+15V,-15V三种电压,其中+15V,-15V直接由外部电源直接产生提供,而+5V电源自行设计,主要提供给AT89C52单片机使用,直接设计在电路当中,原理见图3-1:图 3-1 +5V电源电路在图3-1中,首先电源电压220V经过变压器变压产生一个18V左右的交流电压,再经过桥式整流电路和2200uF滤波电容C4的滤波产生一个20V左右的直流电压,再经7805三端稳压块产生一个+5V的电压,再次经过1000uF滤波电容C5再次滤波,+5V电压就很稳定。此外,在图3-1中使用的LM780
34、5是正电压稳压集成电路,为固定输出+5V输出稳压集成电路(采取特殊方法也可使输出高于5 V),最大输出电流为1 A。具有体积小、集成度高、线性调整率和负载调整率高,在线性电源时代占领了很大市场。3.3 单片机控制部分STC89C52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片机的最小系统如下图2-11所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡
35、器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。如图3-2所示:图3-2 单片机控制部分3.4 同步门控制电路同步门控制电路主要由D 触发器74LS74(同步门控制)、六反相器74LS04 和二输入或非门74LS02 组成(主门1、主门2)。主门1 控制被测信号fx 的通过,主门2 控制时钟信号f0 的通过,两门的启闭都由同步门控制电路控制。被测信号在同步控制门的作用下,产生一个与被测信号同步的闸门信号,被测信号与标准信号(时基信号)在同步门控制信号的控制下。在同步门打开时通过同步门分别输入到事件计数器和时间计数器的信号输入端
36、,计数器开始计数。同步门关闭时信号不能通过主门,计数器停止计数,单片机发出命令读入计数器的数值,并进行数据处理,将处理后的结果送显示。 在同步门的控制下,一方面保证了被测信号和时基信号的同步测量;另一方面在同步门打开后计数器并不是马上计数,而是在被测信号的下一个上升沿开始计数,同步门关闭后计数器也不是马上停止计数,而是在被测信号的下一个上升沿停止计数。即在实际闸门时间计数,从而提高了测量精度。具体电路图如图3-3所示:图3-3(a) 同步门74ls74电路图图3-3(b)同步门74ls02、74ls04电路图74LS74 简要说明74LS74 为带预置和清除端的两组 D 型触发器引出端符号1C
37、P、2CP 时钟输入端1D、2D 数据输入端、1Q、2Q 输出端CLR1、CLR2 直接复位端(低电频有效)PR1、PR2 直接置位端(低电平有效)图3-4(a) 外接管脚图 图3-4(b) 逻辑图3.5计数电路单片机选用STC89C52,其中P1.0 用于控制同步门D 触发器74LS74 产生同步的闸门信号,P1.2 用于对74LS393 组成的计数器清零,一次计数完成后单片机通过控制两片74LS244 读取被测信号与标准信号的低8 位计数值,高位计数值在单片机的T0、T1 中。然后单片机对计数值进行运算处理,并送出显示。计数器包括事件计数器和时间计数器两部分,它们是两组完全相同的计数电路。
38、分别由前后两级组成。前级由双4 位异步计数器74LS393 级联构成八位二进制计数器;后级由STC89C52 单片机内的定时/计数器构成十六位二进制计数器。标准信号部分采用10MHz 石英晶体振荡器来提供测量所需要的标准脉冲信号。由于采用D 触发器实现的同步门的同步作用,事件计数器所记录的Nx 值已不存在误差的影响,但由于时钟信号与闸门的开和关无确定的相位关系,时间计数器所记录的N0 的值仍存在1 误差的影响,只是由于时钟频率很高,误差的影响很小。所以在全频段的测量精度是均衡的,从而实现等精度频率测量。具体电路图如图3-5所示:图3-5 计数电路74LS393 简要说明:74LS393为两个4
39、位二进制计数器,异步清零端(1clear,2clear)为高电平。不管时钟端1A,2A状态如何,即可以完成清除功能。当1clear,2clear为低电平时,1A,2A脉冲下降沿作用下进行计数操作。引出端符号:1A、2A 时钟输入端(下降沿有效)1clear,2clear 异步清零端1Qa1Qd、2Qa2Qb 输出端图3-6(a)74LS393外接管腿图 图3-6(b)74LS393逻辑图3.6 显示电路显示器是最常用的输出设备,其种类繁多,但在单片机系统设计中最常用的是发光二极管显示器(LED)和液晶显示器(LCD)两种。由于这两种显示器结构简单,价格便宜,接口容易实现,因而得到广泛的应用,本
40、次方案采用了1602液晶显示器。3.6.1 1602的功能简介1.40通道点阵LCD 驱动;2.可选择当作行驱动或列驱动;3.输入/输出信号:输出,能产生202个LCD驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1V6);4.通过单片机控制将所测的频率信号读数显示出来;具体引脚功能见表3-13-1 1602引脚和指令功能引脚符号名称功能1Vss接地0V2VDD电路电源5V(正负10%)3VEE液晶驱动电压V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。4RS寄存器选择信号高电平时选择数据寄存器、低电平时选择指令寄存器。5R/W读/写信号高电平时进行读操
41、作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。6E片选信号当E端由高电平跳变成低电平时,液晶模块执行命令。7-14DB0-DB7数据线D0D7为8位双向数据线。3.6.2 1602与STC89C52的连接图3-7显示电路图3-7中为单片机与1602的连接图。其中,D0-D7为1602数据口,分别接单片机的P0.0-P0.7口;单片机的P2.0口接1602的复位脚RS;单片机的P2.1口接1602的读/写控制脚RW;单片机的P2.2口接1602的使能端E;通过一个10K的电位器调整V
42、EE电压改变液晶对比度,对比度调节不当时会产生“鬼影”。通过这种连接方式,就可以实现单片机对1602控制显示测得频率数值。第四章 软件设计本章节主要介绍了电路的软件设计,整个系统由主程序,中断服务程序模块、循环和显示子程序模块组成,本文将对这几个子模块的设计做介绍。4.1 程序流程4.1.1 系统主程序流程图系统软件的设计主要是和硬件电路相结合,正确地实现等精度测量。整个系统软件的设计采用了自顶向下的模块化的结构方式,将各个功能分成独立模块,由系统的程序统一管理执行。它主要完成各种功能,如测量、 数据运算、显示等。如图4-1所示为频率测量主程序流程图,在计数前对计数器清零。然后,发出命令打开闸
43、门进入闸门时间,计数器在闸门时间内计数。延时子程序结束后,发出命令关闭闸门使计数器停止计数;单片机再依照程序读取计数器的值,并与单片机内部计数器所计的值合并在一起。由公式可知,即被测频率fx=f0Nx/N0 来进行运算,由于精度要求,Nx 和N0 都由24 位二进制数来计数。 图4-1 主程序流程图4.1.2 初始化液晶图4-2 液晶初始化流程图4.1.3 初始化定时器图4-3初始化定时器4.1.4定时器1溢出中断流程本设计中通过定时器1来定时1s,用于标准信号和待测信号的计数。通过设定初始值来使定时器T1一次溢出中断为50ms。在此通过一个全局变量flag,来判断是否达到1s,每到50msf
44、lag加1,当flag=20时,所定时时间为20*50ms=1s。图4-2 中断子程序流程图4.1.5主循环主循环中,先对标准信号计数,判断flag是否满20,如果满20则代表计数满1s,此时计算计数器T0中数值,然后再加上P1口的数据,则为此次计数值。下次计数为对待测信号的计数,与标准信号计数原理相同。最后将两次信号比较,得到待测信号的频率值。图4-3 主循环流程图4.1.6 显示子程序显示子程序将存放在显示缓冲区的频率或周期值送往液晶上显示出来。由于1602液晶可以显示32各个字符,所以只显示频率的话有点浪费。在本设计中,将液晶的第一行分别显示了TH0、TL0、P1的值,用于调试。第二行全
45、部用于显示频率,可以最低显示到个位,精度较高。在编程应用1602液晶驱动时,只需要根据图4-4的流程图调用相关函数既可完成显示模块的所有功能,对于本课题所用的1602驱动函数,其中的液晶初始化函数已经包括了初始化和清屏两大功能,此外,在指定位置显示一串字符的函数也已经包括了设置显示位置和显示字符串的两大功能,因为在本课题的实际编程中对于液晶显示模块的设计相对来说比较简单。图4-4 1602液晶显示基本流程第5章 系统调试5.1 硬件调试硬件电路主要包括模拟电路部分,单片机外围电路及显示电路,在联调之前必须要验证这几个部分能正常工作。把仿真机的仿真头插到电路板单片机的插槽中,接通仿真机和电路板的电源,然后打开界面输入显示子程序进行编译、加载调试。如果能在液晶上显示正确的数字,则单片机与显示部分能够正常工作。经过反复的调试与修改,单片机部分验证完毕。模拟电路部分分低频和高频两部分,分别进行调试。低频部分通过输入一个0到10MHz的信号,幅度为