等精度的频率计系统
更新时间:2024-05-26 22:18:01 阅读量: 综合文库 文档下载
摘 要
随着电子信息产业的不断发展,信号频率的测量在科技研究和实际应用中的作用日益重要。传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这种电路一般运行缓慢,而且测量频率的范围比较小。考虑到上述问题,本论文设计一个基于单片机技术的数字频率计。首先,我们把待测信号经过放大整形;然后把信号送入单片机的定时计数器里进行计数,获得频率值;最后把测得的频率数值送入显示电路里进行显示。本文从频率计的原理出发,介绍了基于单片机的数字频率计的设计方案,选择了实现系统得各种电路元器件,并对硬件电路进行了仿真。
关键字:单片机,频率计,测量
I
目录
第1章 第2章
引言 ................................................................................................................. 1 方案论证 ......................................................................................................... 2
2.1 数字频率计设计的几种方案 ............................................................................ 2 2.2 几种方案的优劣讨论 ........................................................................................ 3 2.3 本次设计采用的方案 ........................................................................................ 3 第3章
系统硬件设计 ................................................................................................. 4 3.1.1 一般数字式频率计的原理 ...................................................................... 4 3.1.2 基于单片机的数字频率计原理 .............................................................. 4 3.2 电路原理图 ........................................................................................................ 5 3.3 放大整形电路 .................................................................................................... 6
3.3.1 放大整形电路的必要性 .......................................................................... 6 3.3.2 放大整形电路的原理 .............................................................................. 6 3.4 分频电路 .......................................................................................................... 10
3.4.1 分频电路介绍 ........................................................................................ 10 3.5 四选一电路 ....................................................................................................... 11 3.6 单片机 .............................................................................................................. 13 3.7 显示电路 .......................................................................................................... 14
3.7.1 显示原理 ................................................................................................ 14 3.7.2 显示电路图 ............................................................................................ 16 3.8 电路PCB板 ..................................................................................................... 18 第4章
系统软件设计 ............................................................................................... 19 4.1 测频软件实现原理 .......................................................................................... 19 4.2 软件流程图 ...................................................................................................... 19 4.3 几个重要的分程序 .......................................................................................... 20 第5章
系统的仿真和调试 ....................................................................................... 33 5.1 硬件电路的仿真 .............................................................................................. 33 5.2 误差分析 .......................................................................................................... 36 结束语 ............................................................................................................................ 37
3.1 数字频率计工作原理 ........................................................................................ 4
II
参考文献 ........................................................................................................................ 39 致谢 ................................................................................................................................ 40 附录 ................................................................................................................................ 41
附录一:系统整体电路图 ..................................................................................... 41 附录二:电路PCB图 ............................................................................................ 41 附录三:系统整体程序 ......................................................................................... 43 外文资料原文 ................................................................................ 错误!未定义书签。 翻译文稿 ........................................................................................ 错误!未定义书签。
III
第1章 引言
第1章 引言
随着电子信息产业的发展,信号作为其最基础的元素,其频率的测量在科技研究和实际应用中的作用日益重要,而且需要测频的范围也越来越宽。传统的频率计通常采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量范围低,精度低。因此,随着对频率测量的要求的提高,传统的测频的方法在实际应用中已不能满足要求。因此我们需要寻找一种新的测频的方法。随着单片机技术的发展和成熟,用单片机来做为一个电路系统的控制电路逐渐显示出其无与伦比的优越性。因此本论文采用单片机来做为电路的控制系统,设计一个能测量高频率的数字频率计。用单片机来做控制电路的数字频率计测量频率精度高,测量频率的范围得到很大的提高。
本论文的任务是设计一个基于单片机技术的数字频率计。主要介绍了整形电路、控制电路和显示电路的构成原理,以及其测频的基本方法。进行了相应的硬软件设计。
1
第2章 方案论证
第2章 方案论证
2.1 数字频率计设计的几种方案
测量频率的方法有很多种,主要分为模拟法和数字法两大类,因为本次设计的要求和环境,现在主要讨论数字法中的电子计数式的几种测频方法。
电子计数式的测频方法主要有以下几种:脉冲数定时测频法(M法),脉冲周期测频法(T法),脉冲数倍频测频法(AM法),脉冲数分频测频法(AT法),脉冲平均周期测频法(M/T法),多周期同步测频法。下面是几种方案的具体方法介绍。
脉冲数定时测频法(M法):此法是记录在确定时间Tc内待测信号的脉冲个数Mx,则待测频率为:
Fx=Mx/Tc (2-1)
脉冲周期测频法(T法):此法是在待测信号的一个周期Tx内,记录标准频率信号变化次数Mo。这种方法测出的频率是:
Fx=Mo/Tx (2-2)
脉冲数倍频测频法(AM法):此法是为克服M法在低频测量时精度不高的缺陷发展起来的。通过A倍频,把待测信号频率放大A倍,以提高测量精度。其待测频率为:
Fx=Mx/ATo (2-3)
脉冲数分频测频法(AT法):此法是为了提高T法高频测量时的精度形成的。由于T法测量时要求待测信号的周期不能太短,所以可通过A分频使待测信号的周期扩大A倍,所测频率为:
Fx=AMo/Tx (2-4)
脉冲平均周期测频法(M/T法):此法是在闸门时间Tc内,同时用两个计数器分别记录待测信号的脉冲数Mx和标准信号的脉冲数Mo。若标准信号的频率为Fo,则待测信号频率为:
Fx=FoMx/Mo (2-5)
2
第2章 方案论证
多周期同步测频法:是由闸门时间Tc与同步门控时间Td共同控制计数器计数的一种测量方法,待测信号频率与M/T法相同。
2.2 几种方案的优劣讨论
以上几种方法各有其优缺点:
脉冲数定时测频法,时间Tc为准确值,测量的精度主要取决于计数Mx的误差。其特点在于:测量方法简单,测量精度与待测信号频率和门控时间有关,当待测信号频率较低时,误差较大。
脉冲周期测频法,此法的特点是低频检测时精度高,但当高频检测时误差较大。
脉冲数倍频测频法,其特点是待测信号脉冲间隔减小,间隔误差降低;精度比M法高A倍,但控制电路较复杂。
脉冲数分频测频法,其特点是高频测量精度比T法高A倍,但控制电路也较复杂。
脉冲平均周期测频法,此法在测高频时精度较高,但在测低频信号时精度较低。
多周期同步测频法,此法的优点是,闸门时间与被测信号同步,消除了对被测信号计数产生的±1个字误差,测量精度大大提高,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。
2.3 本次设计采用的方案
根据频率的定义,频率是单位时间内信号波的个数,因此采用上述各种方案都能实现频率的测量。但是本论文设计的是一个用单片机做为电路控制系统的数字式频率计,采用脉冲定时测频法,则在低频率的测量时误差会大一些。采用脉冲周期测频法则测高频率时精度无法保证;采用脉冲数倍频测频法和脉冲数分频测频法则精度有所提高,但控制电路较复杂;采用脉冲平均周期测频法则很难兼顾低频信号的测量;而采用多周期同步测频法,闸门时间与被测信号同步,消除了对被测信号计数产生的±1误差,测量精度大大提高,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。本次设计由于个人水平有限,因此,本次设计根据需要,采用脉冲定时测频法。
3
第3章 系统硬件设计
第3章 系统硬件设计
3.1 数字频率计工作原理
3.1.1 一般数字式频率计的原理
数字式频率计是测量频率最常用的仪器之一,其基本设计原理是首先把待测信号通过放大整形,变成一个脉冲信号,然后通过控制电路控制计数器计数,最后送到译码显示电路里进行显示,其基本构成框图如图3-1所示。?1?
待 测信号 放大整形电路 计数器电路 译码显示电路 控制门电路
图3-1 数字式频率计原理框图
由上图可以看出,待测信号经过放大整形电路后得到一个待测信号的脉冲信号,然后通过计数器计数,可得到需要的频率值,最后送入译码显示电路中显示出来。但是控制部分才是最重要的,它在整个系统的运行中起至关重要的作用。 3.1.2 基于单片机的数字频率计原理
由上节介绍可知,控制电路在数字频率计中起至关重要的作用。采用什么样的控制电路,直接决定了数字频率计的性能。由第二章的内容可知,为了得到一个高性能的数字频率计,本次设计采用单片机来做为数字频率计的核心控制电路,辅之于少数的外部控制电路。因此本此设计的系统包括信号放大整形电路、分频电路、单片机AT89C51和显示电路等。本系统让被测信号经过放大整形后,进入单片机开始计数,利用单片机内部定时计数器定时,在把所记得的数经过相关处理后送到显示电路中显示。其系统原理框图将在下面介绍。
根据上述的基于单片机的数字频率计的设计原理,我们可设计一个由放大整
4
第3章 系统硬件设计
形电路、分频电路、多路数据选择器、AT89C51以及显示电路来构成的数字式频率计,其系统框图如图3-2所示。
待测信号 放大整形电路 分频电路 多路数据选择器 单片机 显示电路
图3-2 系统构成框图
3.2 电路原理图
由上面的内容可看到,本次设计的基于单片机的数字式频率计包括波形整形电路、分频电路、多路数据选择器、单片机和显示电路等几个模块。所以本次设计的数字式频率计的电路由以下几块构成:由施密特触发器构成的波形整形放大电路、由74LS90构成的分频电路、由74LS153四选一电路构成的四选一电路、AT89C51单片机以及由74LS138译码电路、74LS245上拉电路和八段数码管显示电路构成的数码显示电路构。其原理图如图3-3所示。
5
第3章 系统硬件设计
图3-3 系统电路原理图
3.3 放大整形电路
3.3.1 放大整形电路的必要性
因为在单片机计数中只能对脉冲波进行计数,而实际中需要测量频率的信号是多种多样的,有脉冲波、还有可能有正弦波、三角波等,所以需要一个电路。把待测信号转化为可以进行计数的脉冲波。 3.3.2 放大整形电路的原理
矩形脉冲波的整形电路有两种:施密特触发器、单稳态触发器。而这两种电路都可以有门电路或是555定时器构成。由于本次设计的基于单片机的数字频率计的放大整形电路部分需求比较简单,所以我们选择由555定时器构成的施密特
6
第3章 系统硬件设计
触发器来作为信号波形整形电路,下面我们给出其全面的介绍。?2?
施密特触发器是脉冲波形变换中经常使用的一种电路,下面我们对它的特点、输出特性、工作原理等进行简单的介绍。
一、特点
1、电平触发:触发信号UI可以是变化缓慢的模拟信号,UI达某一电平值时,输出电压UO突变。UO为脉冲信号。
2、电压滞后传输:输入信号UI从低电平上升过程中,电路状态转换时对应的输入电平,UI与从高电平下降过程中电路状态转换时对应的输入电平不同。
利用上述两个特点,施密特触发器不仅能将边沿缓慢变化的信号波形整形为边沿陡峭的矩形波,还可以将叠加在矩形脉冲高、低电平上的噪声有效地清除。
二、输出特性
1、同向输出:当UI?0时,UOI?UOL,为同向输出,此时当UI??VT?时,
UO??UOH,当UI??VT?时,UO??UOL。其同向输出特性图如图3-4所示。
图3-4 同向输出特性图
2、反向输出:当UI?0时,为反向输出,此时当UI?VT?,UO?UOH,UO??UOL,当UI??VT?时,UO??UOH,其反向输出特性图如图3-5所示。
图3-5 反向输出特性图
正向阈值电平VT?:UI上升时,引起UO突变时对应的UI值。 负向阈值电平VT?:UI下降时,引起UO突变时对应的UI值。 三、整形原理
7
第3章 系统硬件设计
用门电路构成施密特触发器
1、构成,用CMOS非门构成的施密特触发器电路图如图3-6所示。
图3-6 用CMOS非门构成的施密特触发器电路图
2、工作原理,其工作原理如表3-1所示。
表3-1 用CMOS非门构成的施密特触发器工作原理表
3、计算回差电压?VT (1)、求VT?
?UI??VTH,在UI从0开始上升时,在UI↑=>VT+时,UI??VT?,UO?UOL。
G1、G2门要翻转前的瞬间,电路中电流流向和电位情况如图3-7所示。
图3-7 求VT+时电路图
从求UI,入手求VT?:由公式(3-1)就可以推导出公式(3-2),就可以得出VT?。
8
第3章 系统硬件设计
UI??VTH?UR2?R2R1?R2VT? (3-1)
VT???R1?R2R?VTH??1?1?VTHR1?R2? (3-2)
(2)、求VT?
?在UI从最大值开始下降时,UO?UOH。在UI??VT?,UI??VTH,G1、
G2门要翻转前的瞬间,电路中电流流向和电位情况如图3-8所示。
图3-8 求VT-是电路图
从求UI入手求VT?:由公式(3-3)可以推导出公式(3-4),再由公式联合公式(3-5)以及公式(3-6),就可以得到公式(3-7),得到VT-的值。
UI??UTH?UOH???UOH?VT????R2??R1?R2? (3-3)
VT??R1?R2RVTH?1UOHR2R2 (3-4)
UOH?VDDVTH? (3-5)
1VDD2 (3-6) ??R1R2??VTH? (3-7)
VT???1?
(3)、求回差电压?VT
求出VT?和VT?之后,由下面的公式(3-8)就可求出?V。
?V?VT??VT??2R1RVTH?1VDDR2R2 (3-8)
9
第3章 系统硬件设计
当VDD一定时,调R1、R2 ,可调?UT,即可调VT?、VT?,可调UO脉宽。 (4)、电压传输特性。当UI=0时,UO=UOL是施密特同相输出,其电压输出特性如图3-9所示。
图3-9 电压传输特性
(6)、逻辑符号。施密特触发器常见的逻辑符号如图3-10所示。
图3-10 施密特触发器的逻辑符号
集成施密特触发器,常用TTL电路集成施密特触发器有7413等。常用CMOS电路集成施密特触发器有CC40106等。
3.4 分频电路
3.4.1 分频电路介绍
本次设计采用的是脉冲定时测频法,由于考虑到单片机的定时计数器得计数能力有限,无法对过高频进行测量,所以我们对待测信号进行了分频,这样能提高测量频率的范围,还能相应的提高频率测量的精度。所以我们需要把待测信号进行分频。在本次设计中,因为我们要进行的是十分频、一百分频和一千分频,所以我们选用74LS90电路,经过正确的连接后就可以进行十分频,进行三次十分频就可以得到分频一千次的信号。其引脚图和功能表分别如图3-11和表3-2所示。
10
第3章 系统硬件设计
图3-11 74LS90引脚图 表3-2 74LS90功能表
表2 74LS90功能表
信号经过分频电路74LS90,其频率将减小到原信号的十分之一。
3.5 四选一电路
本次设计需要用到一个四选一电路,用来选择输入单片机进行计数的待测信号。74LS153就是其中比较好用和常用的一种四选一电路元件。所以这次采用很常见的74LS153集成电路,其电路图如下图图3-12所示。
数据选择器有多个输入,一个输出。其功能类似于单刀多掷开关,故又称为多路开关(MUX)。在控制端的作用下可从多路并行数据中选择一路送输出端。
TTL中规模数据选择器是根据多位数据的编码情况将其中一路数据由输出端
11
第3章 系统硬件设计
图3-12 LS153电路原理图
送出的电路,74LS153是双四选一数据选择器,其中有两个四选一数据选择器,它们各有四个数据输入端:1D3、1D2、1D1、1D0和2D3、2D2、2D1、2D0。一个输出端1Y、2Y和一个控制许可端S。系统控制端S为低电平有效。当控制许可端S=1时,传输通道被封锁,芯片被禁止,Y=0,输入的数据不能传送出去;当控制许可端S=0时,传输通道打开,芯片被选中,处于工作状态,输入的数据被传送出去A1、A0是地址选择端,两路选择器共用。管脚如图3-12所示。
74LS153逻辑功能见表3-3。从功能表可看出,当S端输入为低电平时,四选一数据选择器处于工作状态,它有4位并行数据输入D0~D3,单选择地址输入A1、A0的二进制码依次由00递增至11时,4个通道的并行数据便依次传送到输出端W。
表3-3 74LS153的功能表
12
第3章 系统硬件设计
A1 A0 /S W ~ 0 0 1 1 ~ 0 1 0 1 1 0 0 D0 0 D1 0 D2 0 D3 3.6 单片机
单片机作为控制系统和计数器,是本次设计的最重要的部分,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。所以本次设计采用AT89C51单片机。
本次设计采用的是89C51单片机, 89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。其引脚说明如下:
引脚说明:
·VCC:电源电压。 ·GND:接地。
·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。
在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。
13
第3章 系统硬件设计
·P0口:P0口是一带有内部上拉电阻的8位双向I/O口。P0口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P0口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P0口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
·P1口:P2是一带有内部上拉电阻的8位双向的I/O端口。P1口的输出缓冲能驱动4个TTL逻辑门电路。当向P1口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX @ DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX @R1),P2口输出特殊功能寄存器的内容。
当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。 ·P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P3口同时具有AT89C51的多种特殊功能,P3.0的第二功能是串行输入口RXD, P3.1的第二功能是串行输出口TXD, P3.2的第二功能是外部中断0,P3.3的第二功能是外部中断1,P3.4的第二功能是定时器T0,P3.5的第二功能是定时器T1,P3.6的第二功能是外部数据存储器写选通/WR,P3.7的第二功能是外部数据存储器读选通/RD。
3.7 显示电路
3.7.1 显示原理
我们测量的频率最终要显示出来。八段LED数码管显示器基本电路如图3-13所示。
14
第3章 系统硬件设计
图3-13 八段LED数码管显示器
八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个圆点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED数码管显示器有两种形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。如下图所示。共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就能表示欲显示字符的字形代码。?3?
在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫描显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的开销小,能供给单独锁存的I/O接口电路很多。在单片机系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的办法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
15
第3章 系统硬件设计
综合以上内容,我们在这次设计中采用LED数码管,采用单片机静态显示计数来显示。采用一个74LS138译码器来控制各个数码管,采用一个74LS245来做上拉电路,使数码显示管有足够的电压进行显示。 3.7.2 显示电路图
显示电路由数码管和74LS138组成,数码管已经介绍过了,所以不再多加阐述,现在介绍显示电路组成的另一重要电路:74LS138。在本次设计中,由74LS138连接数码管的接地端,由此来控制数码管的亮和灭。其引脚图和功能表分别如图3-14和表3-4所示。
图3-14 74LS153引脚图
表3-4 74LS138功能表
G1 G2 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 ~ 0 1 ~ ~ ~ ~ 1 ~ ~ ~ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16
第3章 系统硬件设计
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 由图和功能表可以看出,74LS138译码器有三个地址输入端A、B、C和八个译码输出端Y0~Y7,当输入为000时,Y0输出端为0,其他输出端都为1;同理可推出其他输出状态,即只有输出变量下标对应的二进制代码与输入代码相等的输出端为0,其他的输出端都为1。另外,该译码器还有三个使能端:G1、/G2A、/G2B,只有当G1=1、/G2A=0、/G2B=0同时满足,才能译码。三个条件中任何一个不满足就禁止译码。其中译码选通端/G2B也被称作数据输入端,主要指它用于数据分配时所起的作用。设置多个使能端使得该译码器能被灵活组成各种电路。
由于单片机输出的显示数据电压不够高,无法直接送到数码管上直接显示,因此需要用一个上拉电路来提高输出数据的电压值,以便送到数码管显示。在本次设计中我们选用DM74LS245N。其电路图如图3-15所示。?4?
17
第3章 系统硬件设计
图3-15 显示上拉电路图
3.8 电路PCB板
3.9 完成了整体电路图的设计,就要进行电路的PCB的设计,设计后得到的电路PCB板图如图3-16所示。
图3-16 电路PCB板
18
第4章 系统软件设计
第4章 系统软件设计
4.1 测频软件实现原理
测频软件的实现是基于电路系统来进行设计的。本次设计采用的是脉冲定时测频法,所以在软件实现上基本遵照系统的设计原理,进行测频。本次软件设计语言采用汇编语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可实现频率的测量。
软件设计的基本思路是:1、把要用到的内部存储器的地址运用伪指令标号,方便后面设计中运用;2、跳转到中断程序进行初步数据采集;3、开始主程序,首先判断是否有待测信号,无信号就等待信号,有信号则进行下一步;4、判断是否定时到1S,若没有到达1S定时,则执行下面的5和6步得操作,若达到1S,则执行第6步以后的操作;5、判断是否第一次,若是,则判断当前的档位是否设置合适,若合适则直接跳转到返回主程序,若不合适,则进入第6步;6、调整档位,重新进入中断开始初步计数;7、判断档位是否合适,合适则把测得的数据转换为十进制数据,根据当前的档位相应的调整数位,并取表找到相应的显示数据,然后执行第10步操作;8、若上一步中判断出档位不合适,则根据频率进行相应的档位调整。9、恢复初值,重新开始计数;10、返回主程序。
4.2 软件流程图
根据上一节所叙述的电路设计的基本思路,我们可画出系统流程图如图4-1所示。
19
第4章 系统软件设计
返回 是 数码转换 返回主程序 是 判断是否有信号 是 判断是定时到1s 是否第一次 否 是 开始 否 否 档位是否合适适 否 否 是 判断是否适合显示 调整档位,重新设置计时 次数加1
图4-1 系统流程图
4.3 几个重要的分程序
本次系统由有几个关键的程序,分别是系统主控程序、数码转化程序和数据显示程序。下面分别介绍这几个程序。
1、控制程序:本文设计的是基于单片机的数字频率计的设计,用单片机来做为数字频率计的控制部分。因此,单片机的控制程序在本次设计中显得非常重要。经过设计,我们得到了如下的控制程序。
;********************************************************************** ;------------------------------- MAIN -------------------------------------------------------- ;**********************************************************************
20
第4章 系统软件设计
MAIN: NOP
CALL DISPLAY0;LED动态显示刷新 CALL DELAY100
JNB B_T1IF,MAIN;每50ms处理一次。
;====================================== CLR B_T1IF
MOV A,TIMES_50MS CJNE A,#20,NO_1S
JMP YES_1S; 满20次即为一秒钟 ;===================================== NO_1S:
;当TIMES_50MS为1时,判断当前所选档位是否过高或者过低
;若计数器BUF大于100,则说明满1秒时必然大于2000,则提前调高频率衰减档位,
;并清零各计数值,重新在新档位测量
MOV A,COUNTER_BUF_H
JNZ NO_1S_1;计数器高位不为0,说明超100 MOV A,COUNTER_BUF_L CJNE A,#100,NO_1S_0
MOV A,TIMES_50MS
CJNE A,#1,NO_1S_END ;TIMES_50MS不为1,返回
NO_1S_0:JC NO_1S_LOW;计数器BUF小于100,继续跳转到NO_1S_LOW判断是否需要调低档位
21
第4章 系统软件设计
NO_1S_1: 一档
CJNE A,#3,NO_1S_2 JMP NO_1S_END
MOV A,FREQ_LOSS;超量程,判断当前频率衰减档位,若小于3则加
NO_1S_2:JC NO_1S_3
NO_1S_3:
CJNE A,#1,NO_1S_4 SETB P153_B;FREQ_LOSS=1 CLR P153_A JMP NO_1S_20
INC FREQ_LOSS;频率衰减档位加1 MOV A,FREQ_LOSS
MOV A,#3
MOV FREQ_LOSS,A;档位大于3,则修正为3
NO_1S_4:CJNE A,#2,NO_1S_5
CLR P153_B;FREQ_LOSS=2 SETB P153_A JMP NO_1S_20
NO_1S_5:
CLR P153_B;FREQ_LOSS=3 CLR P153_A
22
第4章 系统软件设计
JMP NO_1S_20
;======================================== NO_1S_LOW:
MOV A,COUNTER_BUF_L CJNE A,#10,NO_1S_10
NO_1S_10:JNC NO_1S_END
MOV A,FREQ_LOSS CJNE A,#0,NO_1S_11 SETB P153_B;FREQ_LOSS=0 SETB P153_A JMP NO_1S_20
;偏低,则判断是否需要降低频率衰减档位 MOV A,FREQ_LOSS;
JZ NO_1S_END;已经是最低档,无需调整 DEC FREQ_LOSS;减一档
NO_1S_11:CJNE A,#1,NO_1S_12
SETB P153_B;FREQ_LOSS=1 CLR P153_A JMP NO_1S_20
NO_1S_12:
CLR P153_B;FREQ_LOSS=2 SETB P153_A JMP NO_1S_20
23
第4章 系统软件设计
NO_1S_20:;调整档位后,重新计数
NO_1S_END:JMP MAIN
;===================================
;=================================== YES_1S:
;把计数器的数转换成10进制,并根据当前档位设定好要显示的6个数字, ;存放在DISPLAY_DATA1-DISPLAY_DATA6中。 ;
MOV A,COUNTER_BUF_H MOV R7,A
MOV A,COUNTER_BUF_L MOV R6,A
CALL CHANGE16_10
CLR A
MOV TIMES_50MS,A MOV COUNTER_BUF_L,A MOV COUNTER_BUF_H,A
;====================================
;在频率衰减控制下,计数器数据不会超出2000多少,因此只取转换后的
低4位转换成数据显示
MOV A,R3 ANL A,#0FH
24
第4章 系统软件设计
MOV TEMP1,A
MOV A,R3 ANL A,#0F0H SWAP A MOV TEMP2,A
MOV A,R4 ANL A,#0FH MOV TEMP3,A
MOV A,R4 ANL A,#0F0H SWAP A MOV TEMP4,A
;==================================== ;根据频率衰减档位调整数位
MOV A,FREQ_LOSS CJNE A,#0,LOSS_1 CLR A MOV DATA4,A MOV DATA5,A JMP LOSS_END
LOSS_1:
25
第4章 系统软件设计
CJNE A,#1,LOSS_2 MOV A,DATA3 MOV DATA4,A MOV A,DATA2 MOV DATA3,A MOV A,DATA1 MOV DATA2,A MOV A,DATA0
MOV DATA1,A
CLR A MOV DATA0,A MOV DATA5,A
JMP LOSS_END
LOSS_2:
CJNE A,#2,LOSS_3
MOV A,DATA3 MOV DATA5,A MOV A,DATA2 MOV DATA4,A MOV A,DATA1 MOV DATA3,A MOV A,DATA0 MOV DATA2,A
26
第4章 系统软件设计
CLR A MOV DATA0,A MOV DATA1,A JMP LOSS_END
LOSS_3:
CLR A MOV DATA0,A MOV DATA1,A MOV DATA2,A
MOV A,DATA2 MOV DATA5,A MOV A,DATA1 MOV DATA4,A MOV A,DATA0 MOV DATA3,A
LOSS_END:
;高位若为0,则置为11,取出显示代码为LED全灭
MOV R0,#DATA5;取最高位数据地址 MOV R2,#5
LOOP_CLR:
MOV A,@R0 JNZ DISCD
27
第4章 系统软件设计
MOV A,#11 MOV @R0,A DEC R0
DJNZ R2,LOOP_CLR
;==================================== ;取表找相应显示代码 DISCD:
MOV R0,#DATA_ADDR;
MOV R1,#DISPLAY_DATA_ADDR; MOV R2,#6; MOV DPTR,#TAB
DILP: MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A INC R0 INC R1 DJNZ R2,DILP
;=======================================
;重新计数 CLR A
MOV TIMES_50MS,A MOV COUNTER_BUF_L,A MOV COUNTER_BUF_H,A
28
第4章 系统软件设计
JMP MAIN
TAB: ;/显示码码表/
DB 3FH,06H,5BH,4FH,66H; DB 6DH,7DH,07H,7FH,6FH,0FFH;
2、数码转化程序:在本次设计中,单片机计数器所计得的数是二进制,以十六进制数的形式存放在寄存器中,而我们需要显示的是十进制数的频率,因此需要进行转化才能显示。
数码转化程序设计的原理:本次设计的单片机数码转换是通过单片机的移位乘二特性和单片机的十进制调整功能来实现的。先把双字节的十六进制数转换为8421BCD码,在控制显示的时候通过位调整就可以得到计数所得频率的十进制数据,供给显示。其具体的转换程序如下。?5?
;****************************************************************** ; ------------------------------- 16进制转10进制 ---------------------------------------- ;****************************************************************** ;双字节十六进制整数转换成双字节BCD码整数 ;入口条件:待转换的双字节十六进制整数在R6、R7中。 ;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。 ;影响资源:PSW、A、R2~R7 堆栈需求: 2字节 CHANGE16_10:
CLR A ;BCD码初始化 MOV R3, A MOV R4, A MOV R5, A
MOV R2, #10H ;转换双字节十六进制整数
29
第4章 系统软件设计
CHANG_1:
MOV A, R7 ;从高端移出待转换数的一位到CY中 RLC A MOV R7, A MOV A, R6 RLC A MOV R6, A
MOV A, R5 ;BCD码带进位自身相加,相当于乘2 ADDC A, R5
DA A ;十进制调整 MOV R5, A MOV A, R4 ADDC A, R4 DA A MOV R4, A MOV A, R3 ADDC A, R3
MOV R3, A ;双字节十六进制数的万位数不超过6,不用调整
DJNZ R2, CHANG_1 ;处理完16bit RET
3、数码显示程序:单片机控制其内部计数器得到的数据要送到8位数码显示管中显示出来,才能被我们所看到,直接得到我们所测量的频率。?6?
我们本次设计所采用的是数码管静态显示,所以我们要把数据循环的送入数
30
第4章 系统软件设计
码管显示。因为我们经过转换程序把所得的数据存储在40H~45H中,因此,数码显示的基本原理就是把40H~45H中的数据分时的通过P1口送到数码管,再通过74LS138来控制各个数码管的亮和灭。对于控制,我们在控制软件里。其流程图如图4-3所示。
返回主程序 否 否 判断显示位数是否大于6 是 把显示位数清零 计算当前要显示的位数,取得地址 灭LED灯 是 判断显示位数是否为6 开始 取数显示
图4-2 数码显示流程图
由此,可以写出显示程序如下:
;****************************************************************** ; ------------------------------- 显示子程序 -------------------------------
;**************************************************************** DISPLAY0:
MOV A,COUNTER_DISPLAY;
31
第4章 系统软件设计
CJNE A,#6,DISPLAY1
JMP DISPLAY2;/当前显示位数等于6/ DISPLAY1:
JNC DISPLAY2;/当前显示位数大于6/ JMP DISPLAY3 DISPLAY2: CLR A
MOV COUNTER_DISPLAY,A;/当前显示位数大于等于6,清零/ DISPLAY3:
MOV A,#0FFH
MOV PORT_LED,A;/变换数据前先灭LED,以消除闪动/
MOV A,COUNTER_DISPLAY MOV PORT_LED_138,A
MOV R1,#DISPLAY_DATA_ADDR
ADD A,#DISPLAY_DATA_ADDR;/计算当前要显示数据的地址,初始地址+相应位数/
MOV R1,A
MOV A,@R1;/取出要显示的相应位的数据/ MOV PORT_LED,A;/送出显示数据/ MOV A,COUNTER_DISPLAY INC A
MOV COUNTER_DISPLAY,A;/显示位加1/ RETI
32
第5章 系统的仿真和调试
第5章 系统的仿真和调试
5.1 硬件电路的仿真
为了保证系统能正常工作,我们需要对电路中关键的电路部分进行仿真,下面我们对波形整形电路和分频电路进行了仿真。
Proteus 是一款非常不错的单片机模拟软件。虽然电子模拟软件不少,但是 能很好的模拟单片机的只有proteus软件。该软件能模拟 51 单片机,avr单片机,pic 单片机,以及部分arm 芯片。支持的外围器件也很多包括A/d,LCD,LED 数码管,温度,时钟等芯片。本次设计所有的电路都采用proteus对电路进行仿真。下面我们对波形整形电路和分频电路进行仿真。
具体的操作步骤如下:
1、设计仿真原理图。在这部分可以从电路电路原理图中把该部分复制到新的项目中,然后在添加好电源和地。给电路加上仿真激励源。
2、设置仿真环境和仿真参数。在仿真电路图中为个元件的数值添加参数,添加需要观察的节点处的网络标号,把瞬态特信仿真方式如图5-1所示。
图5-1 选择瞬态特性分析类
3、设置瞬态分析的参数,如图5-2所示。
33
第5章 系统的仿真和调试
图5-2 瞬态特性分析参数设置
4、经过上述步骤后,设置好参数后,就可以单击OK键进行仿真。系统将进行瞬态特性分析。
我们依照上述步骤,可以分别得出整形电路和分频电路的仿真波形图。图5-3是整形电路的仿真电路图,图5-4是其仿真得到的波形图,图5-5是分频电路的仿真电路图,图5-6是其仿真得到的波形图。
图5-3 整形电路仿真电路图
34
第5章 系统的仿真和调试
图5-4 整形电路仿真波形图
图5-5 分频电路图
图5-6 分频电路仿真波形图
经过对上述电路的仿真,我们可以看出,电路所要完成的功能都能实现,最
35
第5章 系统的仿真和调试
后把编译好得到的hex程序文件载入到单片机里,就可以对整体电路进行仿真了。 图5-7是对电路进行仿真的电路图。其中第一路信号是待测信号,第二路信号是经过整形电路后的信号,第三路信号是经过十分频后的信号。
图5-7 电路仿真图
5.2 误差分析
经过分析,本次设计的频率计的误差来源主要有两部分,分频所带来的误差和单片机定时计数带来的误差。
分频误差:由于采用74LS90来作为分频电路,74LS90通过计数,将会把一部分信号脉冲给省略掉,所以因为分频必然会带来误差和精度降低。因此,在编写程序的,过程中,我尽可能的选择用分频少和没分频的信号来计数,实现频率的测量。
定时计数误差:因为定时和计数都是由单片机本身来完成的,在计数的时候会产生误差。这个误差的大小是用单片机的内部时钟决定的,采用高频率的晶振来为单片机提供内部时钟,则能减少此误差。本次设计我们用的是12MHz的晶振,而测频的范围是1Hz~1MHz。所以定时计数的误差在本系统基本可以忽略不计。
36
结束语
结束语
1.结论
基于单片机的频率计的设计涉及到计算机的硬软件知识,通过对系统的设计和调试,本次设计主要完成了以下工作:
1、提出基于单片机的数字频率计设计的基本方案;
2、完成了整形电路、同步电路、分频电路、主控门电路等相应的硬件电路设计及仿真;
3、编译了数字式频率计的控制程序、数码转化程序、数据显示程序等系统软件程序;
4、对硬件电路进行了仿真,进行了误差分析。 2.系统的改善
当然,本次设计中也还存在很多问题。因为被公司要求去实习两个月和后来在学校遇到地震等原因,时间显得相当紧迫,所以很多应该完成的工作并没有完成。使得系统的性能不能通过硬件电路来实际的显示出来。而且,还有很多好的想法无法实现,所以系统还有很大的改进空间。
本次设计由于作者知识的有限,所以设计的系统并不是最理想的。例如可以采用脉冲数定时测频法和脉冲周期测频法相结合,在高频的时候采用脉冲数定时测频法,在低频率的时候采用周期测频法。此法可保证测频过程中精度一直很高,但实现的电路和程序都将很复杂。还可以用外部计数器和单片机定时计数器共同计数来代替用单片机的定时计数器来进行定时,这样测量的精度可以进一步提高,但相对的端口分配和控制会相对复杂一些。 3.感想和收获
本次设计的过程和结果都给了我很多感触。初次拿到毕业设计的题目时,真的是对数字频率计一无所知。在初次见到朱红老师的时候,只是对频率有一定的理解,至于怎么设计,几乎没有什么想法。在朱红老师的指导和讲解下,对频率计的介绍有了一定的了解。后来通过不断的学习和查阅资料,终于清楚的知道了
37
正在阅读:
等精度的频率计系统05-26
14年国考面试资料08-11
二年级语文(A)教学计划及教案10-20
论国际市场营销中的差别区域的差别市场营销_市场营销的国际化与本土化05-30
隆回县十二五规划纲要04-23
OpenSSL之pkcs7系列06-20
捕蝉鸣作文500字06-18
PC-DIMS_4.3_CMM_Manual(参考手册)05-21
夏曰雷雨作文350字07-13
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 频率计
- 精度
- 系统
- 公务员面试题型的答题技巧与官方解答
- 毕业论文
- C5分离利用调研报告(第一部分:C5分离、C5石油树脂、异戊二烯)
- 浅析“生本课堂”下的语文课堂-精品文档
- 教务管理系统设计(游攀)
- 02分电阻电路的分析方法(1)
- 光伏发电项目报告表 - 图文
- 分布式电源接入配电网运行控制规范
- 六年级英语学情分析
- 生产车间HVAC系统验证报告1
- 关于开发建设项目水土保持方案技术审查审批的要点 - 图文
- 建筑学考研快题讲义
- 卫星基础知识 - 图文
- windowsxp安装版系统安装图文说明
- 苏教版五年科学复习题
- 企业战略管理实验指导书
- 2018年最新餐饮行业员工劳动合同范本(精品)
- 卫星导航GPS典型例题编程报告
- 大学生网上支付安全问卷
- 防电信诈骗知识教育教案五年一班