收藏 分销(赏)

基于单片机的数字频率计的的设计.pdf

上传人:曲**** 文档编号:462066 上传时间:2023-10-11 格式:PDF 页数:63 大小:3.28MB
下载 相关 举报
基于单片机的数字频率计的的设计.pdf_第1页
第1页 / 共63页
基于单片机的数字频率计的的设计.pdf_第2页
第2页 / 共63页
基于单片机的数字频率计的的设计.pdf_第3页
第3页 / 共63页
基于单片机的数字频率计的的设计.pdf_第4页
第4页 / 共63页
基于单片机的数字频率计的的设计.pdf_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、摘要随着电子信息产业的不断发展,信号频率的测量在科技研究和实际应用中的 作用日益重要。传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这 种电路一般运行缓慢,而且测量频率的范围比较小。考虑到上述问题,本论文设 计一个基于单片机技术的数字频率计。首先,我们把待测信号经过放大整形;然 后把信号送入单片机的定时计数器里进行计数,获得频率值;最后把测得的频率 数值送入显示电路里进行显示。本文从频率计的原理出发,介绍了基于单片机的 数字频率计的设计方案,选择了实现系统得各种电路元器件,并对硬件电路进行 了仿真。关键字:单片机,频率计,测量I目录第1章引言.1第2章方案论证.22.1 数字频率计设计

2、的几种方案.22.2 儿种方案的优劣讨论.32.3 本次设计采用的方案.3第3章系统硬件设计.43.1 数字频率计工作原理.43.1.1 一般数字式频率计的原理.43.1.2 基于单片机的数字频率计原理.43.2 电路原理图.53.3 放大整形电路.63.3.1 放大整形电路的必要性.63.3.2 放大整形电路的原理.63.4 分频电路.103.4.1 分频电路介绍.103.5 四选一电路.113.6 单片机.133.7 显示电路.143.7.1 显示原理.143.7.2 显示电路图.163.8 电路PCB板.18第4章 系统软件设计.194.1 测频软件实现原理.194.2 软件流程图.19

3、4.3 儿个重要的分程序.20第5章 系统的仿真和调试.335.1 硬件电路的仿真.335.2 误差分析.36结束语.37II参考文献39致谢.40附录.41附录一:系统整体电路图.41附录二:电路PCB图.41附录三:系统整体程序.43外文资料原文错误!未定义书签。翻译文稿错误!未定义书签。III第1章引言随着电子信息产业的发展,信号作为其最基础的元素,其频率的测量在科技 研究和实际应用中的作用日益重要,而且需要测频的范围也越来越宽。传统的频 率计通常采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量范围低,精度低。因此,随着对频率测量的要求的提高,传统的测频

4、的方法在实际应用中已不能满足要求。因此我们需要寻找一种新的测 频的方法。随着单片机技术的发展和成熟,用单片机来做为一个电路系统的控制 电路逐渐显示出其无与伦比的优越性。因此本论文采用单片机来做为电路的控制 系统,设计一个能测量高频率的数字频率计。用单片机来做控制电路的数字频率 计测量频率精度高,测量频率的范围得到很大的提高。本论文的任务是设计一个基于单片机技术的数字频率计。主要介绍了整形电 路、控制电路和显示电路的构成原理,以及其测频的基本方法。进行了相应的硬 软件设计。1第2章方案论证第2章方案论证2.1 数字频率计设计的几种方案测量频率的方法有很多种,主要分为模拟法和数字法两大类,因为本次

5、设计 的要求和环境,现在主要讨论数字法中的电子计数式的几种测频方法。电子计数式的测频方法主要有以下几种:脉冲数定时测频法(M法),脉冲周期 测频法(T法),脉冲数倍频测频法(AM法),脉冲数分频测频法(AT法),脉冲平均 周期测频法(M/T法),多周期同步测频法。下面是几种方案的具体方法介绍。脉冲数定时测频法(M法):此法是记录在确定时间Tc内待测信号的脉冲个数 Mx,则待测频率为:Fx=Mx/Tc(2-1)脉冲周期测频法(T法):此法是在待测信号的一个周期Tx内,记录标准频率 信号变化次数Mo。这种方法测出的频率是:Fx=Mo/Tx(2-2)脉冲数倍频测频法(AM法):此法是为克服M法在低频

6、测量时精度不高的缺陷 发展起来的。通过A倍频,把待测信号频率放大A倍,以提高测量精度。其待测 频率为:Fx=Mx/ATo(2-3)脉冲数分频测频法(AT法):此法是为了提高T法高频测量时的精度形成的。由于T法测量时要求待测信号的周期不能太短,所以可通过A分频使待测信号的 周期扩大人倍,所测频率为:Fx=AMo/Tx(2-4)脉冲平均周期测频法(M/T法):此法是在闸门时间Tc内,同时用两个计数器 分别记录待测信号的脉冲数Mx和标准信号的脉冲数M。若标准信号的频率为Fo,则待测信号频率为:Fx=FoMx/Mo(2-5)2第2章方案论证多周期同步测频法:是由闸门时间Tc与同步门控时间Td共同控制计

7、数器 计数的一种测量方法,待测信号频率与M/T法相同。2.2 几种方案的优劣讨论以上几种方法各有其优缺点:脉冲数定时测频法,时间Tc为准确值,测量的精度主要取决于计数Mx的误 差。其特点在于:测量方法简单,测量精度与待测信号频率和门控时间有关,当 待测信号频率较低时,误差较大。脉冲周期测频法,此法的特点是低频检测时精度高,但当高频检测时误差较 大。脉冲数倍频测频法,其特点是待测信号脉冲间隔减小,间隔误差降低;精度 比M法高A倍,但控制电路较复杂。脉冲数分频测频法,其特点是高频测量精度比T法高A倍,但控制电路也较 复杂。脉冲平均周期测频法,此法在测高频时精度较高,但在测低频信号时精度较 低。多周

8、期同步测频法,此法的优点是,闸门时间与被测信号同步,消除了对被 测信号计数产生的1个字误差,测量精度大大提高,且测量精度与待测信号的频 率无关,达到了在整个测量频段等精度测量。2.3 本次设计采用的方案根据频率的定义,频率是单位时间内信号波的个数,因此采用上述各种方案 都能实现频率的测量。但是本论文设计的是一个用单片机做为电路控制系统的数 字式频率计,采用脉冲定时测频法,则在低频率的测量时误差会大一些。采用脉 冲周期测频法则测高频率时精度无法保证;采用脉冲数倍频测频法和脉冲数分频 测频法则精度有所提高,但控制电路较复杂;采用脉冲平均周期测频法则很难兼 顾低频信号的测量;而采用多周期同步测频法,

9、闸门时间与被测信号同步,消除 了对被测信号计数产生的1误差,测量精度大大提高,且测量精度与待测信号的 频率无关,达到了在整个测量频段等精度测量。本次设计由于个人水平有限,因 此,本次设计根据需要,采用脉冲定时测频法。3第3章系统硬件设计第3章系统硬件设计3.1 数字频率计工作原理3.1.1 一般数字式频率计的原理数字式频率计是测量频率最常用的仪器之一,其基本设计原理是首先把待测 信号通过放大整形,变成一个脉冲信号,然后通过控制电路控制计数器计数,最 后送到译码显示电路里进行显示,其基本构成框图如图3-1所示。1待测 信号图3-1数字式频率计原理框图由上图可以看出,待测信号经过放大整形电路后得到

10、一个待测信号的脉冲信 号,然后通过计数器计数,可得到需要的频率值,最后送入译码显示电路中显示 出来。但是控制部分才是最重要的,它在整个系统的运行中起至关重要的作用。3.1.2 基于单片机的数字频率计原理由上节介绍可知,控制电路在数字频率计中起至关重要的作用。采用什么样 的控制电路,直接决定了数字频率计的性能。由第二章的内容可知,为了得到一 个高性能的数字频率计,本次设计采用单片机来做为数字频率计的核心控制电路,辅之于少数的外部控制电路。因此本此设计的系统包括信号放大整形电路、分频 电路、单片机AT89c51和显示电路等。本系统让被测信号经过放大整形后,进入 单片机开始计数,利用单片机内部定时计

11、数器定时,在把所记得的数经过相关处理 后送到显示电路中显示。其系统原理框图将在下面介绍。根据上述的基于单片机的数字频率计的设计原理,我们可设计一个由放大整4第3章系统硬件设计形电路、分频电路、多路数据选择器、AT89C51以及显示电路来构成的数字式频 率计,其系统框图如图3-2所示。图3-2系统构成框图3.2 电路原理图由上面的内容可看到,本次设计的基于单片机的数字式频率计包括波形整形 电路、分频电路、多路数据选择器、单片机和显示电路等几个模块。所以本次设 计的数字式频率计的电路由以下几块构成:由施密特触发器构成的波形整形放大 电路、由74LS90构成的分频电路、由74LS153四选一电路构成

12、的四选一电路、AT89C51单片机以及由74LS138译码电路、74LS245上拉电路和八段数码管显示 电路构成的数码显示电路构。其原理图如图3-3所示。5第3章系统硬件设计图3-3系统电路原理图3.3 放大整形电路3.3.1 放大整形电路的必要性因为在单片机计数中只能对脉冲波进行计数,而实际中需要测量频率的信号 是多种多样的,有脉冲波、还有可能有正弦波、三角波等,所以需要一个电路。把待测信号转化为可以进行计数的脉冲波。332放大整形电路的原理矩形脉冲波的整形电路有两种:施密特触发器、单稳态触发器。而这两种电 路都可以有门电路或是555定时器构成。由于本次设计的基于单片机的数字频率 计的放大整

13、形电路部分需求比较简单,所以我们选择由555定时器构成的施密特 6第3章系统硬件设计触发器来作为信号波形整形电路,下面我们给出其全面的介绍。施密特触发器是脉冲波形变换中经常使用的一种电路,下面我们对它的特点、输出特性、工作原理等进行简单的介绍。一、特点1、电平触发:触发信号6可以是变化缓慢的模拟信号,6达某一电平值时,输出电压突变。为脉冲信号。2、电压滞后传输:输入信号U/从低电平上升过程中,电路状态转换时对应的 输入电平,U/与从高电平下降过程中电路状态转换时对应的输入电平不同。利用上述两个特点,施密特触发器不仅能将边沿缓慢变化的信号波形整形为 边沿陡峭的矩形波,还可以将叠加在矩形脉冲高、低

14、电平上的噪声有效地清除。二、输出特性1、同向输出:当6=0时,UOI=U0L,为同向输出,此时当。/丁二吟+时,uo U0H,当。/=吟_时,Uo 1=U0L o其同向输出特性图如图3-4所示。%.I-0 V V-Ul、*T+图3-4同向输出特性图2、反向输出:当时,Uo=UOH,为反向输出,此时当。,=吟+,Uo U0L,当64=吟_时,Uoh,其反向输出特性图如图3-5所示。图3-5反向输出特性图正向阈值电平匕+:。/上升时,引起分突变时对应的值。负向阈值电平吟6下降时,引起突变时对应的6值。三、整形原理7第3章系统硬件设计用门电路构成施密特触发器1、构成,用CMOS非门构成的施密特触发器

15、电路图如图3-6所示。图3-6用CMOS非门构成的施密特触发器电路图2、工作原理,其工作原理如表3-1所示。表3-1用CMOS非门构成的施密特触发器工作原理表UiUfUoiUo说明Uj=00010同和施密特触发器UJ升 过程中vT+1H015卜仃 过程中VT.TH01Kt.=7H01Gi、G2门将要翻转=VT.=v、TH10Uo突变VT.VT+时,O/Tn,U;T=,Gl、G2门要翻转前的瞬间,电路中电流流向和电位情况如图3-7所示。图3-7求VT+时电路图从求入手求吟+:由公式(3-1)就可以推导出公式(3-2),就可以得出吟+。8第3章系统硬件设计,R、U-th=Ur2=V;+TH R2&

16、+R,T+(3-1)(3-2)(2)、求吟在U/从最大值开始下降时,U0=Uoh。在U/Jnh,U,JnVm,Gl、G2门要翻转前的瞬间,电路中电流流向和电位情况如图3-8所示。图3-8求VT-是电路图从求U,入手求吟由公式(3-3)可以推导出公式(3-4),再由公式联合公 式(3-5)以及公式(3-6),就可以得到公式(3-7),得到VT-的值。U;=UTH=U0H-(U0H-VT_)-K+R=-I+&VVT-D VTH D u oh/9U0H=VDD=/%)C D yVT=1VrHR(3)、求回差电压吟求出吟+和之后,由下面的公式(3-8)就可求出AV。AV=Vt+Vt-=-VDD(3-3

17、)(3-4)(3-5)(3-6)(3-7)(3-8)9第3章系统硬件设计当VDD 一定时,调RI、R2,可调/,即可调吟十、Vr_,可调U。脉宽。(4)、电压传输特性。当UI=O时,U0=UOL是施密特同相输出,其电压输出 特性如图3-9所示。-th、t+Vdd 图3-9电压传输特性(6)、逻辑符号。施密特触发器常见的逻辑符号如图3-10所示。一口一一图3-10施密特触发器的逻辑符号集成施密特触发器,常用TTL电路集成施密特触发器有7413等。常用CMOS 电路集成施密特触发器有CC40106等。3.4 分频电路3.4.1 分频电路介绍本次设计采用的是脉冲定时测频法,由于考虑到单片机的定时计数

18、器得计数 能力有限,无法对过高频进行测量,所以我们对待测信号进行了分频,这样能提 高测量频率的范围,还能相应的提高频率测量的精度。所以我们需要把待测信号 进行分频。在本次设计中,因为我们要进行的是十分频、一百分频和一千分频,所以我们选用74LS90电路,经过正确的连接后就可以进行十分频,进行三次十分 频就可以得到分频千次的信号。其引脚图和功能表分别如图3-11和表3-2所示。10第3章系统硬件设计6MSI QOMS2 QIQ2MR1 Q3MR2CLK0CLK1127928113图3-11 74LS90引脚图表3-2 74LS90功能表RESET/SET INPUTSOUTPUTSCOUNTOU

19、TPUTMR1mr2MS1ms2Qo Qi Q2 Q3Qo Qi Q2 Q3H H X L X L XI X X X-I X-1L X X L H X LX L H X L L XL L L LL L L LH L L HCount Count Count Count0123456789L L L L H L L L L H L L H H L L L L H L H L H L L H H L H H H L L L L H H L L HH=HIGH Voltage Level L=LOW Voltage Level X=Don i Care信号经过分频电路74LS90,其频率将减小到原信

20、号的十分之一。3.5 四选一电路本次设计需要用到一个四选一电路,用来选择输入单片机进行计数的待测信 号。74LS153就是其中比较好用和常用的一种四选一电路元件。所以这次采用很常 见的74LS153集成电路,其电路图如下图图3-12所示。数据选择器有多个输入,一个输出。其功能类似于单刀多掷开关,故又称为 多路开关(MUX)。在控制端的作用下可从多路并行数据中选择一路送输出端。TTL中规模数据选择器是根据多位数据的编码情况将其中一路数据由输出端11第3章系统硬件设计图3-12 LSI53电路原理图送出的电路,74LS153是双四选一数据选择器,其中有两个四选一数据选择器,它 们各有四个数据输入端

21、:1D3、1D2、IDk 1D0和2D3、2D2、2D1、2D0。一个 输出端1Y、2Y和一个控制许可端S。系统控制端S为低电平有效。当控制许可端 S=1时,传输通道被封锁,芯片被禁止,Y=0,输入的数据不能传送出去;当控制许 可端s=0时,传输通道打开,芯片被选中,处于工作状态,输入的数据被传送出 去Al、A0是地址选择端,两路选择器共用。管脚如图3-12所示。74LS153逻辑功能见表3-3。从功能表可看出,当S端输入为低电平时,四选 一数据选择器处于工作状态,它有4位并行数据输入DOD3,单选择地址输入A1、A0的二进制码依次由00递增至11时,4个通道的并行数据便依次传送到输出端 Wo

22、表3-3 74LS153的功能表12第3章系统硬件设计A1A0/SW10000DO010D1100D2110D33.6 单片机单片机作为控制系统和计数器,是本次设计的最重要的部分,AT89C51是一 种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指 令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,

23、为很多嵌入式控制系统提供了一种灵 活性高且价廉的方案。所以本次设计采用AT89C51单片机。本次设计采用的是89C51单片机,89C51是一种高性能低功耗的采用CMOS 工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字 节的RAM,32条I/O线,2个16位定时器/计数器,,一个5中断源两个优先级的 中断结构,一个双工的串行口,片上震荡器和时钟电路。其引脚说明如下:引脚说明:VCC:电源电压。GND:接地。P0 n:P0 口是一组8位漏极开路型双向I/O 口,作为输出口用时,每个引 脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使 用。当P0

24、口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复 用的形式。在这种模式下,P0 口具有内部上拉电阻。在EPROM编程时,P0 口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。13第3章系统硬件设计P0:P0 口是一带有内部上拉电阻的8位双向I/O 口。POLI的输出缓冲能 接受或输出4个TTL逻辑门电路。当对P0 口写1时,它们被内部的上拉电阻拉升 为高电平,此时可以作为输入端使用。当作为输入端使川时,P0 口因为内部存在 上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)oPl 口:P2是一带有内部上拉电阻的8位双向的I/O端口。P1 口的输出缓冲

25、 能驱动4个TTL逻辑门电路。当向P1 口写1时,通过内部上拉电阻把端口拉到高 电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被 外部信号拉低时会输出电流(IIL)oP2 口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2 口送出高8位地址数据。在这种情况下,P2 口使用强大的内部上 拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX RI),P2 口输出特殊功能寄存器的内容。当EPROM编程或校验时,P2 口同时接收高8位地址和一些控制信号。P3 口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3 口的输出缓冲

26、 能驱动4个TTL逻辑门电路。当向P3 口写1时,通过内部上拉电阻把端口拉到高 电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被 外部信号拉低时会输出电流(IIL)oP3 口同时具有AT89C51的多种特殊功能,P3.0的第二功能是串行输入口 RXD,P3.1的第二功能是串行输出口 TXD,P3.2的第二功能是外部中断0,P3.3 的第二功能是外部中断1,P3.4的第二功能是定时器TO,P3.5的第二功能是定时 器Tl,P3.6的第二功能是外部数据存储器写选通/WR,P3.7的第二功能是外部数 据存储器读选通/RD。3.7显示电路3.7.1 显ZF原理我们测量的频率最终要

27、显示出来。八段LED数码管显示器基本电路如图3-13 所示。14第3章系统硬件设计图3-13八段LED数码管显示器八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排 列成“日”字形,另一个圆点形的发光管在数码管显示器的右下角作为显示小数点 用,它能显示各种数字及部份英文字母。LED数码管显示器有两种形式:一种是 8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种 是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。如下 图所示。共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。当二极管导通时,对应的笔划段发亮,由发亮的笔划段

28、组合而显示的各种字符。8 个笔划段h gfed cba对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、DO,于是用8位二进制码就能表示欲显示字符的字形代码。在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫 描显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能 的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口 电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用 这种办法单片机中CPU的开销小,能供给单独锁存的I/O接口电路很多。在单片机 系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之

29、一。其接口 电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极 COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器 接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由 I/O控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我 们采用分时的办法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在 轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人 的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会

30、有闪烁感。15第3章系统硬件设计综合以上内容,我们在这次设计中采用LED数码管,采用单片机静态显示计 数来显示。采用一个74LS138译码器来控制各个数码管,采用一个74LS245来做 上拉电路,使数码显示管有足够的电压进行显示。3.7.2 显示电路图显示电路由数码管和74LS138组成,数码管已经介绍过了,所以不再多加阐 述,现在介绍显示电路组成的另一重要电路:74LS138。在本次设计中,由74LS138 连接数码管的接地端,由此来控制数码管的亮和灭。其引脚图和功能表分别如图 3-14和表3-4所示。VCC YO Y1 Y2 Y3 Y4 Y5 Y6I I I I I16 15 14 13

31、12 11 10 9J1 2 3 4 5 6 7&I|/G 1 I A B C/G2B G1 Y7 GND图3-14 74LS153引脚图表3-4 74LS138功能表G1G2CBAY0Y1Y2Y3Y4Y5Y6Y711111111101111111116第3章系统硬件设计10000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110由图和功能表可以看出,74LS138译码器有三个地址输入端A、B、C和八个 译码输出端丫0丫7,当输入为000时,Y0输

32、出端为0,其他输出端都为1;同理 可推出其他输出状态,即只有输出变量下标对应的二进制代码与输入代码相等的 输出端为0,其他的输出端都为1。另外,该译码器还有三个使能端:Gl、/G2A、/G2B,只有当Gl=l、/G2A=0、/G2B=0同时满足,才能译码。三个条件中任何一 个不满足就禁止译码。其中译码选通端/G2B也被称作数据输入端,主要指它用于 数据分配时所起的作用。设置多个使能端使得该译码器能被灵活组成各种电路。由于单片机输出的显示数据电压不够高,无法直接送到数码管上直接显示,因此需要用一个上拉电路来提高输出数据的电压值,以便送到数码管显示。在本 次设计中我们选用DM74LS245N。其电

33、路图如图3-15所示。17显示上拉电路图图 3-153.8电路PCB板3.9完成了整体电路图的设计,就要进行电路的PCB的设计,设计后得到的电路PCB板图如图3-16所示。图3-16电路PCB板18第4章系统软件设计第4章系统软件设计4.1 测频软件实现原理测频软件的实现是基于电路系统来进行设计的。本次设计采用的是脉冲定时 测频法,所以在软件实现上基本遵照系统的设计原理,进行测频。本次软件设计 语言采用汇编语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可 实现频率的测量。软件设计的基本思路是:1、把要用到的内部存储器的地址运用伪指令标号,方便后面设计中运用;2、跳转到中断程序进行初步

34、数据采集;3、开始主程序,首先判断是否有待测信号,无信号就等待信号,有信号则进行下一步;4、判断是 否定时到1S,若没有到达1S定时,则执行下面的5和6步得操作,若达到1S,则执行第6步以后的操作;5、判断是否第一次,若是,则判断当前的档位是否设 置合适,若合适则直接跳转到返回主程序,若不合适,则进入第6步;6、调整档 位,重新进入中断开始初步计数;7、判断档位是否合适,合适则把测得的数据转 换为十进制数据,根据当前的档位相应的调整数位,并取表找到相应的显示数据,然后执行第10步操作;8、若上一步中判断出档位不合适,则根据频率进行相应 的档位调整。9、恢复初值,重新开始计数;10、返回主程序。

35、4.2 软件流程图根据上一节所叙述的电路设计的基本思路,我们可画出系统流程图如图4-1 所示。19第4章系统软件设计图4-1系统流程图4.3 几个重要的分程序本次系统由有几个关键的程序,分别是系统主控程序、数码转化程序和数据 显示程序。下面分别介绍这儿个程序。1、控制程序:本文设计的是基于单片机的数字频率计的设计,用单片机 来做为数字频率计的控制部分。因此,单片机的控制程序在本次设计中显得非常 重要。经过设计,我们得到了如下的控制程序。9 *八八 八八、八、八八 八、八 八 八 *八、八、八 八 八、;-MAIN-20第4章系统软件设计MAIN:NOPCALL DISPLAYO;LED动态显示

36、刷新CALL DELAY 100JNB B_T1IF,MAIN;每 50ms 处理一次。CLR B_T1IFMOV A,TIMES_50MSCJNEA,#20,NO_1SJMPYES_1S;满20次即为一秒钟NO_1S:MOVA,TIMES_50MSCJNEA,#1,NOS_END;TIMES_50Ms 不为 1,返回;当TIMES_50Ms为1时,判断当前所选档位是否过高或者过低;若计数器BUF大于100,则说明满1秒时必然大于2000,则提前调高频率衰 减档位,;并清零各计数值,重新在新档位测量MOV A,COUNTER_BUF_HJNZNOS_1;计数器高位不为0,说明超100MOV A

37、,COUNTER_BUF_LCJNEA,#100,NO_1S_0NO_1S_0:JC NOS_LOW;计数器BUF小于100,继续跳转至U NO_1S_LOW判 断是否需要调低档位21第4章系统软件设计NO_1S_1:MOVA,FREQ_LOSS;超量程,判断当前频率衰减档位,若小于3则加 一档CJNE A,#3,NO_1S_2JMP NO_1S_ENDNO_1S_2:JC NO_1S_3MOV A,#3MOV FREQ_LOSS,A;档位大于3,则修正为3NO_1S_3:INC FREQ_LOSS;频率衰减档位力口 1MOVA,FREQ_LOSSCJNEA,#1,NO_1S_4SETB P1

38、53_B;FREQ_LOSS=1CLRP153_AJMP NO_1S_20NO_1S_4:CJNEA,#2,NO_1S_5CLR P153_B;FREQ_LOSS=2SETB P153_AJMP NO_1S_20NO_1S_5:CLR P153_B;FREQ_LOSS=3CLRP153_A22第4章系统软件设计JMPNO_1S_20NO_1S_LOW:MOV A,COUNTER_BUF_LCJNEA,#10,NO_1S_10NO_1S_10:JNC NO_1S_END;偏低,则判断是否需要降低频率衰减档位 MOVA,FREQ_LOSS;JZNOS_END;已经是最低档,无需调整 DEC FRE

39、Q_LOSS;减一档MOVA,FREQ_LOSS CJNEA,#0,NO_1S_11SETB P153_B;FREQ_LOSS=0SETB P153_AJMP NO_1S_20NO_ 1 S_ 11:C JNE A,#1,NO_ 1 S_ 12SETB P153_B;FREQ_LOSS=1CLRP153_AJMP NO_1S_20NO_1S_12:CLR P153_B;FREQ_LOSS=2SETB P153_AJMP NO_1S_2023第4章系统软件设计NOS_20:;调整档位后,重新计数CLRAMOV TIMES_50MS,AMOV COUNTER_BUF_L,AMOV COUNTER_

40、BUF_H,ANO_1S_END:JMP MAINYES_1S:;把计数器的数转换成10进制,并根据当前档位设定好要显示的6个数字,;存放在 DISPLAY_DATA1-DISPLAY_DATA6 中。9MOV A,COUNTER_BUF_HMOV R7,AMOV A,COUNTER_BUF_LMOV R6,ACALLCHANGE16_10;在频率衰减控制下,计数器数据不会超出2000多少,因此只取转换后的 低4位转换成数据显示MOVA,R3ANLA,#0FH24第4章系统软件设计MOV TEMPI,AMOVA,R3ANLA,#0F0HSWAP AMOV TEMP2,AMOVA,R4ANLA,

41、#0FHMOV TEMP3,AMOVA,R4ANLA,#0F0HSWAP AMOV TEMP4,A;根据频率衰减档位调整数位MOV A,FREQ_LOSS CJNEA,#0,LOSS_1CLR AMOV DATA4,AMOV DATA5,AJMP LOSS_ENDLOSS_1:25第4章系统软件设计CJNEA,#1,LOSS_2MOV A,DATA3MOV DATA4,AMOVA,DATA2MOV DATA3,AMOV A,DATA 1MOV DATA2,A MOVA,DATAOMOV DATA1,ACLRAMOV DATA0,AMOV DATA5,AJMPLOSS_ENDLOSS_2:CJN

42、EA,#2,LOSS_3MOVA,DATA3MOV DATA5,AMOVA,DATA2MOV DATA4,AMOV A,DATA 1MOV DATA3,AMOVA,DATAOMOV DATA2,A26第4章系统软件设计CLRAMOV DATA0,AMOV DATA1,AJMPLOSS_ENDLOSS_3:MOV A,DATA2MOV DATA5,AMOV A,DATA 1MOV DATA4,AMOV A,DATA0MOV DATA3,ACLRAMOV DATA0,AMOV DATA1,AMOV DATA2,ALOSS_END:;高位若为0,则置为11,取出显示代码为LED全灭MOV R0,#D

43、ATA5;取最高位数据地址MOV R2,#5LOOP_CLR:MOVA,R()JNZ DISCD27第4章系统软件设计MOV A,#11MOV R0,ADEC RODJNZ R2,LOOP_CLR;取表找相应显示代码DISCD:MOV RO,#DATA_ADDR;MOV R1,#DISPLAY_DATA_ADDR;MOV R2,#6;MOV DPTR,#TABDILP:MOVA,R()MOVC A,A+DPTRMOV R1,AINC ROINC RIDJNZ R2,DILP;重新计数CLR AMOV TIMES_50MS,AMOV COUNTER_BUF_L,AMOV COUNTER_BUF_

44、H,A28第4章系统软件设计JMPMAINTAB:;/显示码码表/DB 3FH,06H,5BH,4FH,66H;DB 6DH,7DH,07H,7FH,6FH,0FFH;2、数码转化程序:在本次设计中,单片机计数器所计得的数是二进制,以十 六进制数的形式存放在寄存器中,而我们需要显示的是十进制数的频率,因此需 要进行转化才能显示。数码转化程序设计的原理:本次设计的单片机数码转换是通过单片机的移位 乘二特性和单片机的十进制调整功能来实现的。先把双字节的十六进制数转换为 8421BCD码,在控制显示的时候通过位调整就可以得到计数所得频率的十进制数 据,供给显示。其具体的转换程序如下。回;-16进制转

45、10进制-9 ;双字节十六进制整数转换成双字节B C D码整数;入口条件:待转换的双字节十六进制整数在R6、R7中。;出口信息:转换后的三字节B C D码整数在R3、R4、R5中。;影响资源:PSW、A、R2R7堆栈需求:2字节CHANGE16_10:CLRA;B C D码初始化MOVR3,AMOVR4,AMOVR5,AMOVR2,#10H;转换双字节十六进制整数29第4章系统软件设计CHANG.l:MOV A,R7;从高端移出待转换数的一位到CY中RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5;B C D码带进位自身相加,相当于乘2ADDC A,R5DA

46、 A;十进制调整MOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,AMOV A,R3ADDC A,R3MOV R3,A;双字节十六进制数的万位数不超过6,不用调整DJNZ R2,(CHANG_1;处理完 1 6 b i tRET3、数码显示程序:单片机控制其内部计数器得到的数据要送到8位数码显示 管中显示出来,才能被我们所看到,直接得到我们所测量的频率。我们本次设计所采用的是数码管静态显示,所以我们要把数据循环的送入数30第4章系统软件设计码管显示。因为我们经过转换程序把所得的数据存储在40H45H中,因此,数码 显示的基本原理就是把40H45H中的数据分时的通过P1 口

47、送到数码管,再通过 74LS138来控制各个数码管的亮和灭。对于控制,我们在控制软件里。其流程图如 图4-3所示。图4-2数码显示流程图由此,可以写出显示程序如下:,*;-显示子程序-DISPLAY0:MOV A,COUNTER_DISPLAY;31第4章系统软件设计CJNE A,#6,DISPLAY 1JMPDISPLAY2;/当前显示位数等于6/DISPLAY 1:JNC DISPLAY2;/当前显示位数大于6/JMP DISPLAY3DISPLAY2:CLRAMOVCOUNTER_DISPLAY,A;/当前显示位数大于等于6,清零/DISPLAYS:MOVA,#OFFHMOV PORT_

48、LED,A;/变换数据前先灭LED,以消除闪动/MOV A,COUNTER_DISPLAYMOV PORT_LED_138,AMOV R1,#DISPLAY_DATA_ADDRADD A,#DISPLAY_DATA_ADDR;/计算当前要显示数据的地址,初 始地址+相应位数/MOVR1,AMOV A,R1;/取出要显示的相应位的数据/MOV PORT_LED,A;/送出显示数据/MOV A,COUNTER_DISPLAYINCAMOV COUNTER_DISPLAY,A;/显示位力口 1/RETI32第5章系统的仿真和调试第5章系统的仿真和调试5.1 硬件电路的仿真为了保证系统能正常工作,我们

49、需要对电路中关键的电路部分进行仿真,下 面我们对波形整形电路和分频电路进行了仿真。Prot eus是一款非常不错的单片机模拟软件。虽然电子模拟软件不少,但是能很好的模拟单片机的只有prot eus软件。该软件能模拟51单片机,avr单片机,pic单片机,以及部分arm芯片。支持的外围器件也很多包括A/d,LCD,LED数码 管,温度,时钟等芯片。本次设计所有的电路都采用prot eus对电路进行仿真。下 面我们对波形整形电路和分频电路进行仿真。具体的操作步骤如下:1、设计仿真原理图。在这部分可以从电路电路原理图中把该部分复制到新的 项目中,然后在添加好电源和地。给电路加上仿真激励源。2、设置仿

50、真环境和仿真参数。在仿真电路图中为个元件的数值添加参数,添 加需要观察的节点处的网络标号,把瞬态特信仿真方式如图5-1所示。Analyses Setup f?|X|Analyses/O pt ions E nabledGener al Set up Oper at ing Point Analysis T r ansient/Four ier Analysis DC Sweep Analysis AC Small Signal Analysis Noise Analysis Pole-Zer o Analysis T r ansfer Funct ion Analysis Temper at

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服