基于51单片机的数字频率计_第1页
基于51单片机的数字频率计_第2页
基于51单片机的数字频率计_第3页
基于51单片机的数字频率计_第4页
基于51单片机的数字频率计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 湖南工业职业技术学院毕业设计基于51单片机的数字频率计目 录第1节 引言 21.1 数字频率计概述21.2 频率测量仪的设计思路与频率的计算21.3 基本设计原理3第2节 数字频率计(低频)的硬件结构设计4 2.1系统硬件的构成42.2系统工作原理图42.3AT89C51单片机及其引脚说明 52.4信号调理及放大整形模块72.5时基信号产生电路72.6显示模块8第3节 软件设计123.1 定时计数 123.2 量程转换 123.3 BCD转换123.4 LCD显示12第4节 结束语 13参考文献 14附录 整机原理图15 基于51单片机的数字频率计湖南工业职业技术学院 电气S07-3班 廖琼

2、伟指导老师 刘德玉第1节 引言本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。1.1数字频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率

3、的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量范围从1Hz20MHz的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。用单片机实现自动测量功能。基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。1.2频率测量仪的设计思路与频率的计算图1 频率测量原

4、理图 频率测量仪的设计思路主要是:对信号分频,测量一个或几个被测量信号周期中已知标准频率信号的周期个数,进而测量出该信号频率的大小,其原理如右图1所示。若被测量信号的周期为Tx,分频数m1,分频后信号的周期为T,则:T=m1Tx 。由图可知: T=NTo (注:To为标准信号的周期,所以T为分频后信号的周期,则可以算出被测量信号的频率f。)由于单片机系统的标准频率比较稳定,而是系统标准信号频率的误差,通常情况下很小;而系统的量化误差小于1,所以由式T=NTo可知,频率测量的误差主要取决于N值的大小,N值越大,误差越小,测量的精度越高。1.3 基本设计原理基本设计原理是直接用十进制数字显示被测信

5、号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测

6、频率fx=NHz。第2节 数字频率计的硬件结构设计2.1 系统硬件的构成 本频率计的数据采集系统主要元器件是宏晶公司最新的单周期指令单片机STC11F16XE,由它完成对待测信号频率的计数和结果显示等功能,外部还要有分频器、显示器等器件。可分为以下几个模块:放大整形模块、秒脉冲产生模块、换档模拟转换模块、单片机系统、LCD显示模块。各模块关系图如图2所示: 图2 数字频率计功能模块2.2 系统工作原理图 该系统工作的总原理图如图3所示:图3 数字频率计系统工作原理图2.3 STC11F16XE单片机及其引脚说明STC11F16XE是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下

7、列标准特征:16K字节的程序存储器,1280字节的RAM,32条I/O线,3个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。引脚说明:·VCC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接

8、上拉电阻。·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。·P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的

9、外部数据存储器(例如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的多种特殊功能,具体如下

10、表1所示:端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD(串行输出口)P3.2 (外部中断0)P3.3(外部中断1)P3.4T0(定时器0)P3.5T1(定时器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器都选通)表1 P3口的第二功能·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。·ALE/:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出()。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数

11、据存储器时将跳过一个ALE脉冲。·:程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。·/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。当执行内部编程指令时,应该接到VCC端。·XTAL1:振荡器反相放大器以及内部时钟电路的输入端。·XTAL2:振荡器反相放大器的输出端。在本次设计中,采用89C51作为CPU处理器,充分利用

12、其硬件资源,结合D触发器CD4013,分频器CD4060,模拟转换开关CD4051,计数器74LS90等数字处理芯片,主要控制两大硬件模块,量程切换以及显示模块。下面还将详细说明。2.4 信号调理及放大整形模块 放大整形系统包括衰减器、跟随器、放大器、施密特触发器。它将正弦输入信号Vx整形成同频率方波Vo,幅值过大的被测信号经过分压器分压送入后级放大器,以避免波形失真。由运算放大器构成的射级跟随器起阻抗变换作用,使输入阻抗提高。同相输入的运算放大器的放大倍数为(R1+R2)/R1,改变R1的大小可以改变放大倍数。系统的整形电路由施密特触发器组成,整形后的方波送到闸门以便计数。由于输入的信号幅度

13、是不确定、可能很大也有可能很小,这样对于输入信号的测量就不方便了,过大可能会把器件烧毁,过小可能器件检测不到,所以在设计中采用了这个信号调理电路对输入的波形进行阻抗变换、放大限幅和整形,信号调理部分电路具体实现电路原理图和参数如下图4所示: 图42.6 显示模块1602基本技术:1)、主要功能A、 40通道点阵LCD 驱动;B、 可选择当作行驱动或列驱动;C、 输入/输出信号:输出,能产生20×2个LCD驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1V6);D、 通过单片机控制将所测的频率信号读数显示出来。2)、技术参数2.1)极限参数表名 称符 号标 准 值单 位M

14、INTYPEMAX电路电源VDD - VSS-0.37.0VLCD驱动电压VDD - VEEVDD - 13.5VDD + 0.3V输入电压VIN-0.3VDD + 0.3V静电电压-100V工作温度-20+70°C储存温度-30+80°C2.2) 电参数表名 称符 号测 试 条 件标 准 值单位MINTYPEMAX输入高电平VIH-2.2VDDV输入低电平VIL-0.30.6V输出高电平VOHIOH = 0.2mA2.4-V输出低电平VOLIOL = 1.2mA-0.4V工作电流IDDVDD = 5.0V2.0mA液晶驱动电压VDD- VEETa = 0°C4.

15、9VTa = 25°C4.7Ta = 50°C4.53)、时序特性表项 目符 号测试条件标 准 值单位MINTYPEMAX允许时间周期TCYCE5.1a 5.1b1000ns允许脉冲宽度,高电平PWEH450-ns允许上升和下降时间tEr tEf-25ns地址建立时间tAS140-ns数据延迟时间tDDR-320ns数据建立时间tDSW195-ns数据保持时间tH10-nsDATA HOLD TIMEtDHR20-ns地址保持时间tAH10-ns4)、引脚和指令功能4.1)模块引脚功能表引 线 号符 号名 称功 能1Vss接地0V2VDD电路电源5V±10%3VE

16、E液晶驱动电压保证VDD-VEE=4.55V电压差4RS寄存器选择信号H:数据寄存器 L:指令寄存器5R/W读/写信号H:读 L:写6E片选信号下降沿触发,锁存数据7|14DB0|DB7数据线数据传输4.2)寄存器选择功能表RSR/W操 作00指令寄存器(IR)写入01忙标志和地址计数器读出10数据寄存器(DR)写入11数据寄存器读出(注:忙标志为"1"时,表明正在进行内部操作,此时不能输入指令或数据,要等内部操作结束,即忙标志为"0"时。)4.3) 指令功能 格式:RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0共11种指令

17、:清除,返回,输入方式设置,显示开关,控制,移位,功能设置,CGRAM地址设置,DDRAM地址设置,读忙标志,写数据到CG/DDRAM,读数据由CG/DDRAM。5)、显示位与DD RAM 地址的对应关系 显 示 位 序 号1 2 3 4 5 40 DD RAM 地 址(HEX)第 一 行00 01 02 03 04 . 27第 二 行40 41 42 43 44 . 676)、初始化方法用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,下面介绍两种初始化方法;6.1利用内部复位电路进行初始化下面指令是在初始化过程中执行的。(1) 清屏(DISPLAY CLEAR);(2) 功能设

18、置(FUNCTION SET);DL = 1: 8Bit 接口数据;N = 0: 1行显示; F = 0:5×7dot字形;(3) 显示开/关控制(DISPLAY ON/OFF CONTROL)D = 0: 显示关; C = 0: 光标关; B = 0: 消隐关(4) 输入方式设置(ENTRY MODE SET )I/D = 1:(增量): S = 0: 无移位:6.2) 软件复位 如果电路电源不能满足复位电路的要求的话,那么初始化就要用软件来实现,过程如下: 八位接口初始化流程图 VDD 上升到4.5V后等待>15 电 源 开 RS R/W DB7 DB6 DB5 DB4 D

19、B3 DB2 DB1 DB0 0 0 0 0 1 1 × × × × 等待>4.1ms RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 × × × × RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 × × × × 等待>100us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 N F × &

20、#215; 检查忙标志或延时40us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 0 × × 检查忙标志或延时40us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 0 1检查忙标志或延时40 us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 1 I/D S检查忙标志或延时1.64 初 始 化 结 束检查忙标志或延时40第3节 等误差计数电路的设计等误差测量电路的硬件电路如下图所示,其主要

21、由单片机控制部分、同步门控部分、计数部分组成。单片机控制部分主要完成测量过程的控制、测量结果的处理和显示。单片机选用STC89C52,其中P1.0用于控制同步门D触发器74LS74产生同步的闸门信号,P1.2用于对74LS393组成的计数器清零。74LS393产生的溢出位送单片机的T0与T1口,由单片机进行运算处理,并送出显示。在图中OUT1为经整形和放大的被测信号,U4、U5为两个可控计数器,标准频率信号从U5的时钟输入端CLK1输入,其频率为;经整形后的被测信号从U4的时钟输入端CLK1输入,其频率为,测得。P1.0为门控信号,它是一个宽度为的脉冲。当门控信号为低电平时,经整形后的被测信号

22、的上升沿通过D触发器的CP端口则端的信号同时启动计数器U4、U5。U4、U5分别对被测信号(频率为)和标准信号(频率为)同时计数;当门控信号为高电平时,经整形后的被测信号的一个上升沿将使这两个计数器同时关闭。设在一次预置门时间中对被测信号计数值,对标准信号的计数值为,即。对其两边微分得:。其测频相对误差为:由上式可知,测频误差取决于标准频率和预置闸门宽度,与被测信号频率无关。这是因为计数器U4和U5的计数闸门宽度恰好相等的原故。第4节 抗干扰设计 在电子系统设计中,为了少走弯路和节省时间,应充分考虑并满足抗干扰性的要求,避免在设计完成后再去进行抗干扰的补救措施。形成干扰的基本要素有三个:(1)

23、干扰源,指产生干扰的元件、设备或信号,用数学语言描述如下:du/dt, di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可 能成为干扰源。(2)传播路径,指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传 播路径是通过导线的传导和空间的辐射。(3)敏感器件,指容易被干扰的对象。如:A/D、D/A变换器,单片机,数字IC, 弱信号放大器等。抗干扰设计的基本原则是:抑制干扰源,切断干扰传播路径,提高敏感器件的 抗干扰性能。(类似于传染病的预防)4.1 抑制干扰源抑制干扰源就是尽可能的减小干扰源的du/dt,di/dt。这是抗干扰设计中最优 先考虑和最重要的原则,常常会

24、起到事半功倍的效果。减小干扰源的du/dt主要是通过在干扰源两端并联电容来实现。减小干扰源的 di/dt则是在干扰源回路串联电感或电阻以及增加续流二极管来实现。抑制干扰源的常用措施如下:(1)继电器线圈增加续流二极管,消除断开线圈时产生的反电动势干扰。仅加续流二极管会使继电器的断开时间滞后,增加稳压二极管后继电器在单位时间内可动作更多的次数。(2)在继电器接点两端并接火花抑制电路(一般是RC串联电路,电阻一般选几K 到几十K,电容选0.01uF),减小电火花影响。(3)给电机加滤波电路,注意电容、电感引线要尽量短。(4)电路板上每个IC要并接一个0.01F0.1F高频电容,以减小IC对电源的影

25、响。注意高频电容的布线,连线应靠近电源端并尽量粗短,否则,等于增大了电 容的等效串联电阻,会影响滤波效果。(5)布线时避免90度折线,减少高频噪声发射。(6)可控硅两端并接RC抑制电路,减小可控硅产生的噪声(这个噪声严重时可能 会把可控硅击穿的)。按干扰的传播路径可分为传导干扰和辐射干扰两类。所谓传导干扰是指通过导线传播到敏感器件的干扰。高频干扰噪声和 有用信号的频带不同,可以通过在导线上增加滤波器的方法切断高频干扰噪声的传播,有时也可加隔离光耦来解决。电源噪声的危害最大, 要特别注意处理。 所谓辐射干扰是指通过空间辐射传播到敏感器件的干扰。一般的解决方法是增加干扰源与敏感器件的距离,用地线把

26、它们隔离和在敏感器件上加蔽罩。4.2 切断干扰传播路径的常用措施如下:(1)充分考虑电源对单片机的影响。电源做得好,整个电路的抗干扰就解决了一大半。许多单片机对电源噪声很敏感, 要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。比如,可以利用磁珠和电容组成形滤波电路,当然条件要求不高时也可用100电阻代替磁珠。(2)如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加形滤波电路)。控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加形滤波电路)。(3)注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。此措施可解决许

27、多疑难问题。(4)电路板合理分区,如强、弱信号,数字、模拟信号。尽可能把干扰源 (如电机,继电器)与敏感元件(如单片机)远离。(5)用地线把数字区与模拟区隔离,数字地与模拟地要分离,最后在一点接于电源地。A/D、D/A芯片布线也以此为原则,厂家分配A/D、D/A芯片引脚排列时已考虑此要求。(6)单片机和大功率器件的地线要单独接地,以减小相互干扰。 大功率器件尽可能放在电路板边缘。(7)在单片机I/O口,电源线,电路板连接线等关键地方使用抗干扰元件如磁珠、磁环、电源滤波器,屏蔽罩,可显著提高电路的抗干扰性能。4.3 提高敏感器件的抗干扰性能提高敏感器件的抗干扰性能是指从敏感器件这边考虑尽量减少对

28、干扰噪声 的拾取,以及从不正常状态尽快恢复的方法。提高敏感器件抗干扰性能的常用措施如下:(1)布线时尽量减少回路环的面积,以降低感应噪声。(2)布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦 合噪声。(3)对于单片机闲置的I/O口,不要悬空,要接地或接电源。其它IC的闲置 端在不改变系统逻辑的情况下接地或接电源。(4)对单片机使用电源监控及看门狗电路,如:IMP809,IMP706,IMP813,X25043,X25045等,可大幅度提高整个电路的抗干扰性能。(5)在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字 电路。(6)IC器件尽量直接焊在电路板上,少用IC座。

29、为了达到很好的抗干扰,于是我们常看到PCB板上有地分割的布线方式。但是也不是所有的数字电路和模拟电路混合都一定要进行地平面分割。因为这样分割是为了降低噪声的干扰。理论:在数字电路中一般的频率会比模拟电路中的频率要高,而且它们本身的信号会跟地平面形成一个回流(因为在信号传输中,铜线与铜线之间存在着各种各样的电感和分布电容),如果我们把地线混合在一起,那么这个回流就会在数字和模拟电路中相互串扰。而我们分开就是让它们只在自己本身内部形成一个回流。它们之间只用一个零欧电阻或是磁珠连接起来就是因为原来它们就是同一个物理意义的地,现在布线把它们分开了,最后还应该把它们连接起来。如何分析它们是属于数字部分呢

30、还是模拟部分?这个问题常常是我们在具体画PCB时得考滤的。我个人的看法是要判断一个元件是属于模拟的,还是数字的关键是看与它相关的主要芯片是数字的还是模拟的。比如:电源它可能给模拟电路供电,那它就是模拟部分的,如果它是给单片机或是数据类芯片供电,那它就是数字的。当它们是同一个电源时就需要用一个桥的方法把一个电源从另一个部分引过来。最典形的就是D/A了,它应该是一个一半是数字,一半是模拟的芯片。我认为如果能把数字输入处理好后,剩下的就可以画到模拟部分去了。第5节 软件设计主要能过编写软件来控制硬件完成以下各模块的功能:5.1定时读数单片机当C/T=1时为计数方式,多路开关与定时器的外部引脚连通,外

31、部计数脉冲由引脚输入。当外部信号由1至0跳变时,计数器加1,此时T0成为外部事件的计数器。由于确认一次由1至0的跳变要用24个振荡器周期,所以计数器的计数频率为单片机内部计数器频率的1/24。当CT=0时为定时方式,对单片机内部计数器进行m2分频后,计数器的实际计数频率为单片机内部频率凡的1/m2,当GATE=0时,反相器输出为1,或门输出为1,打开与门,使定时器的启动仅受TRO端信号电平的控制。在此种情况下,INT0引脚的电平变化对或门不起作用。TRO=1时接通控制开关,计数脉冲加到计数器上,每来一个计数脉冲,计数器加1,只有当TRO=0时,控制开关断开,计数器停止计数。当GATA=0时,若

32、TRO=1,或门、与门全部打开,外部信号电平通过INTO引脚直接控制定时器的启动和关闭。输人高电平时允许计数,否则停止计数。根据定时器的结构原理,若我们将GATE位、TR0均设为1,INT0端输人被测频率信号,当被测信号的高电平到来时,开始计数;当被测信号的低电平到来时,计数器停止计数,此时TL0、TH0的数据就是相应的N值。5.2量程转换在使用计数方法实现频率测量时,这时外部的待测信号为定时/ 计数器的计数源,利用软件延时程序实现计数闸门。频率计的工作过程为:首先定时/计数器的计数寄存器清0 ,运行控制位TR 置1 ,启动定时/ 计数器;然后运行软件延时程序,同时定时/计数器对外部的待测信号

33、进行计数,延时结束时TR 清0 ,停止计数;最后从计数寄存器读出测量数据,在完成数据处理后,由显示电路显示测量结果。在使用定时方法实现频率测量时,这时外部的待测信号通过频率计的予处理电路变成宽度等于待测信号周期的方波,该方波同样加至定时/ 计数器的输入脚。这时频率计的工作过程为:首先定时/ 计数器的计数寄存器清0 ,然后检测方波高电平是否加至定时/ 计数器的输入脚;当判定高电平加至定时/计数器的输入脚,运行控制位TR 置1 ,启动定时/计数器对单片机的机器周期的计数,同时检测方波高电平是否结束;当判定高电平结束时TR 清0 ,停止计数,然后从计数寄存器读出测量数据,在完成数据处理后,由显示电路

34、显示测量结果。测量结果的显示格式采用科学计数法,即有效数字乘以10 为底的幂。这里设计的频率计用5 位数码管显示测量结果:前3 位为测量结果的有效数字;第4 位为指数的符号;第5 位为指数的值。采用这种显示格式既保证了测量结果的显示精度,又保证了测量结果的显示范围(0. 100Hz - 9. 99MHz) 。量程自动转换的过程由频率计测量量程的高端开始。由于只显示3 位有效数字,在测量量程的高端计数闸门不需要太宽, 例如在10. 0 KHz -9919 KHz 频率范围,计数闸门宽度为10mS 即可。频率计每个工作循环开始时使用计数方法实现频率测量,并使计数闸门宽度为最窄,完成测量后判断测量结

35、果是否具有3 位有效数字,如果成立,将结果送去显示,本工作循环结束;否则将计数闸门宽度扩大10 倍,继续进行测量判断,直到计数闸门宽度达到1s ,这时对应的频率测量范围为100Hz - 999Hz。如果测量结果仍不具有3 位有效数字,频率计则使用定时方法实现频率测量。定时方法测量的是待测信号的周期,这种方法只设一种量程,测量结果通过浮点数运算模块将信号周期转换成对应的频率值,再将结果送去显示。这样无论采用何种方式,只要完成一次测量即可,频率计自动开始下一个测量循环,因此该频率计具有连续测量的功能,同时实现量程的自动转换。5.3 源程序#include<reg52.h>#includ

36、e <intrins.h>#define uchar unsigned char#define uint unsigned intuchar temp8=0,0,0,0,0,0,0,0;uchar temp18=0,0,0,0,0,0,0,0;uchar T1count,timecount,T1count1,timer,yushu,yushu1;long fre,frx;float zhou;bit flag;bit flag1;void delay(uchar);bit result;sbit ird=P11;sbit id=P10;sbit clr=P12;sbit en=P1

37、5;sbit rw=P16;sbit rs=P17;sbit rd=P37;sbit kb=P13;sbit kx=P14;sbit A0=P36;sbit A1=P37;bit start;uchar code tab1="fre: "uchar code tab2="frx: "void delay(uchar z)uchar x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);panduan_bz() rs = 0; rw = 1; en = 1; result = (bit)(P2&0x80); en =

38、 0; return(result); void write_com(uchar com) while(panduan_bz();rs = 0;rw = 0;en = 0;P2=com;delay(5);en = 1;delay(5);en = 0;void write_dat(uchar dat) while(panduan_bz();rs = 1;rw = 0;en = 0;P2=dat;delay(5);en = 1;delay(5);en = 0;void init()uchar num;en = 0;write_com(0x38);write_com(0x0c);write_com(

39、0x06);write_com(0x01);write_com(0x80);for(num=0;num<16;num+)write_dat(tab1num);delay(5); write_com(0x80+0x40);for(num=0;num<16;num+)write_dat(tab2num);delay(5); void init1() ird=1; id=1; TMOD=0x55; TH1=0; TL1=0;/初值为0 TH0=0; TL0=0; TR0=1; TR1=1; IE=0x8a; RCAP2H=(65536-47850)/256; /重装载计数器赋初值RCAP

40、2L=(65536-47850)%256;ET2=1; /开定时器2中断EA=1; /开总中断TR2=1; void display()uchar i; fre=(T1count*65536+TH1*256+TL1); /频率计算 temp0=fre/10000000; temp1=fre%10000000/1000000; temp2=fre%10000000%1000000%1000000/100000; temp3=fre%10000000%1000000%1000000%100000/10000; temp4=fre%10000000%1000000%1000000%100000%10

41、000/1000; temp5=fre%10000000%1000000%1000000%100000%10000%1000/100; temp6=fre%10000000%1000000%1000000%100000%10000%1000%100/10; temp7=fre%10000000%1000000%1000000%100000%10000%1000%100%10; if(fre<=999) write_com(0x80+4); for(i=0;i<8;i+) write_dat(0x30+tempi);/保存要显示的数到显示缓冲区 write_dat('H

42、9;); write_dat('z'); write_dat(' '); write_dat(' ');else if(fre>=1000) write_com(0x80+4); for(i=0;i<8;i+) write_dat(0x30+tempi);/保存要显示的数到显示缓冲区 if(i=4) write_dat('.'); write_dat('K'); write_dat('H'); write_dat('z');T1count=0;timecount=0; T

43、H1=0;TL1=0; TH0=0; TL0=0; /定时器0重新装值,保证精确(不加的话只是最多差0.001s,0.1%)void display1() uchar j;float zhou;zhou=(T1count1*65536+TH0*256+TL0)*1.0549);frx=(long)(zhou)*256);temp10=frx/10000000;temp11=frx%10000000/1000000;temp12=frx%10000000%1000000%1000000/100000;temp13=frx%10000000%1000000%1000000%100000/10000;temp14=frx%10000000%1000000%1000000%100000%10000/1000;temp15=frx%10000000%1000000%1000000%100000%10000%1000/100;temp16=frx%10000000%1000000%1000000%100000%10000%1000%100/10;temp17=frx%10000000%1000000%1000000%100000%10000%1000%100%10;if(frx<=999) write_com(0x80+0x40+4); for(j=0;j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论