智能电子计数器的毕业论文

上传人:1777****777 文档编号:38755645 上传时间:2021-11-08 格式:DOC 页数:42 大小:1,013.03KB
返回 下载 相关 举报
智能电子计数器的毕业论文_第1页
第1页 / 共42页
智能电子计数器的毕业论文_第2页
第2页 / 共42页
智能电子计数器的毕业论文_第3页
第3页 / 共42页
点击查看更多>>
资源描述
兰州交通大学博文学院 毕业设计(论文)题 目: 基于单片机的智能 电子计数器的设计 学 校: 兰州交通大学博文学院 专 业: 电子信息工程 学生姓名: 杨林娜 指导教师: 孙春霞 毕业设计(论文)时间:二 0 一 一年 3 月 日 5 月 日 共 周兰州交通大学博文学院毕业设计(论文)摘 要数字频率计是电子测量领域中最常见的测量仪器之一。它可以测量方波和正弦波的频率、周期和脉冲宽度等时间参数。本设计是由单片机控制的数字频率计设计。本文在讨论频率测量的常用方法与原理的基础上,阐述了等精度测频系统的设计。系统包括稳压电源电路、信号放大整形电路、测频电路、单片机电路模块、标准频率信号源、键盘模块、数码显示模块等。采用软硬件结合的方法,频率、周期、脉宽和占空比的计算由单片机89C51完成,外围电路其数字电路部分使用了CPLD,并采用VHDL语言进行设计描述,其输入通道由模拟电路来实现。系统将单片机AT89C51的控制灵活性及CPLD芯片的现场可编程性相结合,不但大大缩短了开发研制周期,而且使本系统具有结构紧凑、体积小、可靠性高、测频范围宽、精度高等优点。关键词: 频率计 单片机 CPLD 等精度I兰州交通大学博文学院毕业设计(论文)AbstractDigital cymometer is one of the most common instruments of electronic measurement. It can measure time parameters such as the square wave and the sine wave frequency, cycle and pulse width, and so on.The design is the digital cymometer based on the signal chip computer control. Based on the discussion of the commonly used method of measuring frequency and on the basis of principle, it describes the design of frequency measurement system with the same accuracy including the power supply system circuit, signal amplification plastic circuit, measuring frequency circuits, MCU circuit module, the standard frequency signal source, keyboard module, the digital display module, and so on. It takes the method of combination of hardware and software: frequency, period, pulse width and room-occupying ratio of calculation completed by the MCU 89C51, the external circuit part of its digital circuits used with the CPLD, input channels from analog circuits to achieve, and use of VHDL design Description. The system combines the control flexibility of 89C51 with programmable performance of CPLD, so not only can it shorten the period of the development and research but also has the advantages of compact structure little volume, high reliability, wide scope and high precision. Key Words: cymometer; signal chip computer; CPLD; equal precisionIII目录III兰州交通大学博文学院毕业设计(论文)目录第一章 引言1.1 课题研究的现状与发展趋势1.2 课题研究的意义与作用1.3 数字频率计的基本原理1.4 系统设计技术指标1.4.1 基本指标1.4.2 发挥部分第二章 系统硬件设计2.1 频率测量的方法的研究2.1.1 数字化直接测量频率的原理2.1.2 数字化直接测量周期的原理2.1.3 多周期同步等精度测量的原理2.2 实验方案的确定2.2.1 测量方法的确定2.2.2 频率测量模块的方法2.2.3 周期测量模块的方法2.2.4 脉冲宽度测量模块的方法2.3 系统硬件设计2.3.1 稳压电源电路2.3.2 信号放大整形电路2.3.3 单片机控制电路2.3.4 标准频率信号源2.3.5 数码管显示模块第三章 系统软件设计3.1 CPLD测频专用模块的设计3.1.1 频率计CPLD部分的VHDL程序3.1.2 频率计CPLD部分的仿真 3.2 单片机控制与运算程序的设计3.2.1 单片机主程序的设计3.2.2 频率、周期计数子程序的设计2V3.2.3 脉宽、占空比子程序的设计3.2.4 键盘扫描及数码管显示子程序的设计总结参考文献致谢兰州交通大学博文学院毕业设计(论文)第一章 引言1.1 课题研究的现状与发展趋势随着大规模集成电路技术的发展及电子产品市场运作节奏的进一步加快,涉及诸如计算机应用、通信、智能仪表、医用设备、军事、民用电器等领域的现代电子设计技术已迈入一个全新的阶段。在电子测量中,频率的测量精确度是非常高的。利用计数法测量频率具有精度高、使用方便、容易实现测量过程自动化等一系列突出优点,已成为目前频率测量的重要方法。人们将许多参数的测量转换为频率量来测量和处理。传统的频率计通常采用组合电路和时序电路等大量的硬件电路构成,在使用过程中存在电路结构复杂,测量精度低、故障率高、维护不易等问题,其产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。频率测量在科技研究和实际应用中的作用日益重要。测量的数字化、智能化是当前测量技术发展的趋势。1.2 课题研究的意义与作用数字频率计数器又称通用计数器,是电子测量领域中最常见的测量仪器之一。它可以测量正弦波的频率(周期),脉冲波的频率(周期),脉冲宽度等时间参数。随着单片机技术的不断发展,用单片机通过软件设计,采用适当的算法取代这部分电路不仅能弥补上述不足,而且性能也将大有提高。针对普通频率计存在读数难、测量精度不高等问题, 目前采用单片机控制的数字频率计, 用于测量方波、正弦波或其它脉冲信号的频率, 并用数字显示, 具有精度高、测量迅速、读数方便等优点, 已经在电子测量领域里得到了广泛应用。MCS51系列单片机具有体积小,功能强,性能价格比较高等特点,因此被广泛应用于工业控制和智能化仪器,仪表等领域。本次设计的数字频率计以AT89C51单片机为核心,具有性能优良,精度高,可靠性好等特点。21.3 数字频率计的基本原理频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号。1.4 系统设计技术指标基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。课题要求运用单片机或者CPLD技术,结合传统直接测量频率方法和等精度测量频率的方法,实现高频和低频的测量,本系统设计的基本指标如下。1.4.1 基本指标(1) 频率:10Hz30MHz (2) 闸门时间为0.1秒、1秒 (3)实现对频率、周期和时间间隔的测量功能1.4.2 发挥部分(1) 信号:方波、正弦波(2) 幅度:0.02V0.5V(3) 周期脉冲宽度幅度(0.5V5V、频率1Hz1KHz)的占空比,占空比变化范围为10%90%,测试误差1%。第二章 系统硬件设计2.1频率测量的方法的研究2.1.1 数字化直接测量频率的原理无论频率、周期还是时间间隔的数字化测量,均是基于主门(闸门)加计数器的结构而实现的,图2.1(a)示出了这种计数式直接测频的原理框图。其中主门(闸门)具有“与门”的逻辑功能。主门(闸门)的一个输入端送入的是频率为的窄脉冲,它是由被测信号经A通道放大整形后得到的。主门(闸门)的另一个输入端送来的是来自门控双稳的闸门时间信号Ts。因为门控双稳是受时基(标准频率)信号控制的,所以Ts即准确又稳定。设计时通过晶体震荡器和分频器的配合,可以获得10S、1S、0.1S等闸门时间。由于主门(闸门)的“与”功能,它的输出端只有在闸门信号Ts有效时间才有频率的窄脉冲输出,并送到计数器去计数。设计数器的值为N,由频率定义式可以计算得到被测信号频率为=N/Ts (2-1)其原理框图和时序图如图2.1所示。3(a) 直接测频法原理框图时基脉冲被测信号实际检出信号Ts(b) 直接测频法时序图图2.1 (a)直接测频法原理框图; (b)直接测频法时序图由式(2-1)可知,当闸门时间T为1S时,N值即为被测量信号的频率。该测量方法由于主门的开启时间与被测信号之间不同步,而使计数值N带有1量化误差;且当被测信号频率越低时,该量化误差的影响越大。若再考虑由晶体振荡器引起的闸门时间误差,对式(2-1)进行误差的累积与合成运算后,可以得到直接测量测频率误差的计算公式如下: (2-2)上式右边第一项为量化误差的相对值,其中=1;第二项为闸门时间的相对误差,数值上等于晶体振荡器基准频率的相对不确定度。在一定时,闸门时间T越长,测量准确度越高。而当T选定后,越高,由于1误差对测量结果的影响减小,测量准确度越高。但是随着1误差的影响的减小,闸门时间(也即基准频率)自身的准确度对测量结果的影响不可忽略,这时可以认为是计数式直接测频率准确度的极限。542.1.2 数字化直接测量周期的原理虽然直接测频法可以测出单位时间内脉冲的个数即频率,但是对于较低频率的信号其检测误差会大大增大,解决办法就是改直接测频法为直接测周期法。图2.2(a)为计数式直接测周期的原理框图。与测频原理框图相比,其中门控双稳改由输入信号放大、整形和分频后的脉冲控制,所以闸门时间的宽度就等于k倍被测信号的周期k;而主门的另一个输入端,送入由晶体震荡器和分频器产生的周期为T0的时标脉冲信号。由于主门的“与”功能,它的输出端只有在闸门信号k期间有时标脉冲输出,并送到计数器去计数,计数器的值为N。不难看出,被测信号的周期为: (2-3) 其原理框图和时序图如图2.2所示:(a) 测周期法原理框图被测闸门信号高频基准信号实际检出已知信号Tx5(b)测周期法时序图图2.2 (a)测周期法原理框图; (b)测周期法时序图6与计数式测频率相似,由于和T0之间也不是同步的,所以计数值N也带有1量化误差;此外由于晶振的不确定度,时标的周期T0也存在误差;最后,由于被测输入信号噪声的影响,使经B通道放大整形后的脉冲周期中还引入了一种触发误差。对式(2-3)进行误差的积累和合成运算,可以得到测周期误差的计算公式如下: (2-4) 上式右边第一项为量化误差的相对值,其中计数误差=1;第二项为时标的相对误差;第三项为触发误差,其中R为被测信号与噪声比,可由公式R=20计算(单位为dB)。要降低触发误差就必须增大信噪比R,并采用多周期测量,还可以在整形电路中采用具有滞回特性电路来减小噪声的影响。 在倍率k和时标T0固定时,与测频率相反,测量周期的误差随被测信号的频率升高而增大,此外由于有限的信噪比,使触发误差成为影响测量周期准确度的主要因素。采用多周期测量可以有效的降低触发误差的影响。 2.1.3 多周期同步等精度测量的原理无论是直接测频法还是测周期法,都无法保证闸门信号和另一信号的首尾实现同步,这就难以保证获得较高的测量精度,其误差在一个脉冲之内。由此,当引入多周期同步等精度测量法时,可以较好的解决这个问题。多周期同步等精度测量法的原理是:电路需引入一个比被测信号频率高若干倍的内部时基信号,测量结果的误差范围便在这一个时基信号范围内。首先由相应的控制电路给出闸门开启信号,此时计数器并不开始计数,而是等到被测信号的上升沿到来时才真正开始计数。然后,两组计数器分别对被测信号和时基信号脉冲计数,当控制电路给出闸门关闭信号,此时计数器并不停止计数,而是等到被测信号的上升沿到来时才真正停止计数。图2.3中为输入信号频率,为时钟脉冲的频率。A、B两个计数器在同一闸门时间T内分别对和进行计数,计数器A的计数值,计数器B的计数值为。由于NAfx=Nfc=T,则被测频率和周期分别为:6 (2-7)式(2-6)中=1/,为时钟的周期。图2.3中同步电路(D触发器)的作用在于使计数闸门信号与被测信号同步,实现同步开门,并且开门时间T准确地等于被测信号周期的整数倍,故式(2-6)、(2-7)中的计数没有1量化误差。计数器虽然有量化误差,但由于很高,远大于1,所以的1量化误差的相对值(1/)很小,且该误差与被测频率无关,因此在整个测频范围内,多周期同步等精度测量法能够实现等精度的测量。该测试方法需要的除法功能运算,对于使用微处理器的仪器来说,是不难实现的。考虑计数值的1量化误差、时钟的不确定度和同步门的触发误差时,根据式(2-6)和式(2-7)可以推导出倒数计数器的测频、测周期误差的计算公式: (2-8)上式中R=20,为被测信号与噪声比,k为多周期倍率。与式(2-2)、(2-4)相比较,式(2-8)中没有对被测信号计数引起的1量化误差,只有计数器在同步门T周期的1计数误差/,而且与被测量信号的频率无关,即在整个测量频段上是等精度的。这时多周期同步等精度测量法的测频、测周期的精度在整个测量频段上均可达到量级。7其原理框图和时序图如图2.3所示。(a)多周期同步等精度测量法原理框7 (b)多周期同步等精度测量法时序图9图2.3 (a)多周期同步等精度测量法原理框图; (b) 多周期同步等精度测量法时序图2.2 实验方案的确定2.2.1 测量方法的确定 经过2.1节对频率测量和周期测量方法的分析,得知直接测量法不可能满足该任务所要求的测量精度,只要采用多周期同步等精度测量法就可以直接读出被测信号的周期值或者频率值,在中界频率附近能达到较高的测量精度。基于以上讨论,决定选用多周期同步测量法来实现该数字频率计。2.2.2 频率测量模块的方法频率测量模块我们选择等精度测频法,其实现方式可用图2.4来说明。 图2.4 等精度测频原理图8 当方波预置门控信号由底变为高电平时,经整形后的别测信号上升沿启动D触发器,由D触发器的R段同时启动可控计数器 CNTI和CNT2同时计数,当预置门为低电平时,随后而至的被测信号使可控计数器同时关闭。设Fx为整形后的被测信号,Fs为基准频率信号,若在一次预置门高电平脉宽时间内被测信号计数值为NX,基准频率计数值NS,则有:Fx=(FsNS)NX2.2.3 周期测量模块的方法周期测量与频率测量完全相同,只是在进行计算时公式不同,用周期T代换等精度频率测量公式中的频率因数即可。计算公式为 (2-15)式中,为被测信号周期的测量值,、分别与(12)式中的Ns、含义相同。2.2.4 脉冲宽度测量模块的方法 在进行脉冲宽度测量时,首先经信号处理电路进行处理,限制只有信号的50%幅度及其以上部分才能输入数字测量部分。脉冲边沿被处理得非常陡峭,然后送入测量计数器进行测量。测量电路在检测到脉冲信号的上升沿时打开计数器,在下降沿是关闭计数器,设脉冲宽度为Twx,计算公式为:Twx=Nx/fs。2.2.5 周期脉冲信号占空比测量模块测一个脉冲信号的脉宽,记其值为Twx1;信号反相后,再测一次脉宽并记录其值Twx2,通过以下公式汁算:占空比T wx1/(Twx1+Twx2)100% (2-17)92.3 系统硬件设计根据频率计的设计要求,我们可将整个电路系统划分为几个基本模块,组成模块框图如图2.5所示。13图2.5 频率计组成模块框图其主要由以下几个部分构成:(1) 信号整形电路。用于对待测信号进行放大和整形,以便作为CPLD的输入信号。(2) 测频电路。是测频的核心电路模块,由CPLD器件担任。(3) 单片机电路模块。用于控制CPLD的测频操作和读取测频数据,并作出相应数据处理。(4) 50MHz的标准频率信号源。本模块采用高频率稳定度和高精度的晶振作为标准频率发生器,产生50MHz的标准频率信号直接进入CPLD。(5) 键盘模块。可以用5个键执行测试控制,一个是复位键,其余是命令键。(6) 数码显示模块。可以用7个数码管显示测试结果,最高可表示百万分之一的精度。102.3.1 稳压电源电路 本项设计要求的电源均为5V的直流稳压电源。7905空载时测量输出在6V左右加上负载,输出正常。7805驱动电流可达1A,运行时电流200300mA,7805温度有50度左右。14频率计稳压电源电路图如图2.6所示。图2.6 频率计稳压电源电路2.3.2 信号放大整形电路信号放大整形电路包括放大级和整形级两部分。放大级的设计主要考虑增益和带宽的指标。因为后面的整形级采用了电压比较器,所以放大级的增益应根据频率计指标提出的最小输入信号幅度(0.02V)和电压比较器所要求的输入电压的最小压摆率来决定。在本通道中,电压比较器整形级是设计过零触发方式的,因此必须对输入信号过零处的压摆率予以审查。,从输入级到第二放大级其带宽大于10MHz的指标要求完全可以达到的。14因为模拟通道部分所用的器件都是带宽高速器件,为了防止寄生振荡,在每个器件的电源引脚附近到地之间均需要加上去耦电容,每组去耦电容由两种电容并联起来,以取得良好的宽频带宽去耦效果。其中容量小的(0.1F)用陶瓷电容,对高频分量有良好的去耦作用;容量大的(6.8F)用钽电解电容,对低频分量有良好的去耦作用。整形级选用输出为TTL电平的高速集成双压比较器MAX902来构成,它比TTL电路有触发灵敏度高、因而可降低放大级增益的优点;上面已讨论过,根据手册提示,使用高速电压比较器时必须保证输入信号的压摆率大于手册上所给的最小容许值,以免在比较器输出信号的前后沿部位产生振荡。此外电源引脚附近也需要加接良好的去耦电容,布线短,数字电源和模拟电源的接地要分开,以免比较器输出端的数字信号干扰模拟电路部分的工作。为了防止输入信号过大而损坏后面的元器件,在输入端加上由一个470电阻和两个二极管组成的限幅保护电路。限幅二极管应选用结电容小,开关时间短,容许的正向电流大且正向压降小的管子,2DK17A开关二极管是符合上述要求的一种。有时被测信号中含有较高的直流分量,为了保证通道放大器正常工作,输入信号应通过隔直流电容耦合到输入级的输入端,为此还要加上交、直流耦合切换开关S1。图2.7 信号放大整形电路112.3.3 单片机控制电路对单片机这部分的主要指标考虑如下:由+5V电源供电,I/O口与TTL电平兼容,并有足够数目的I/O口;要有丰富的四则算术运算和逻辑运算指令,指令执行速度要快;片内除RAM外还要有EPROM;至少有两个16位的定时器/计数器;有外部中断输入引脚;具有串行通信口;价格要低廉。根据以上条件,查阅相关资料,发现8位单片机AT89C51的指标已经能够满足要求。而对于实验环境的限制,能选择的CPLD有限,所以根据实验室的情况选用了XILINX公司的XC9572。由于等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大。因此,我们选择单片机和CPLD的结合来实现。单片机控制电路如图2.8所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;CPLD完成各种测试功能;键盘信号由89C51单片机进行处理,它从CPLD读回计数器数据并进行运算,然后向显示电路输出测量结果。等精度数字频率计电路系统原理框图如图2.8所示。系统的基本工作方式如下:(1) P2口是单片机与CPLD的数据传送通信口,P0口为双向控制口。P3口利用键盘显示管理芯片ZLG7289作为数码管显示,实现数据显示。系统的P1口设置5个功能键:占空比、脉宽、周期、频率、自检,进行各测试功能的转换。(2) 7个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。(3) Fs为测频标准频率50MHz信号输入端,由晶体振荡源电路提供。(4) Fx为被测信号输入,此待测信号是经放大整形后输入CPLD的。12图2.8 等精度数字频率计电路系统原理框图2.3.4 标准频率信号源本设计采用50MHZ的晶体振荡器产生标准频率方波信号(频标)供数字测量电路使用。由公式(2-8)及其讨论可知,多周期同步等精度测量法所达到的测量精度和系统时钟源的精度量级相近。晶体振荡器采用恒温晶振,稳定度可以达到为:2.010724小时。132.3.5 数码管显示模块从实验条件等实际出发考虑,数码管显示模块采用了ZLG7289。ZLG7289是一片具有串行接口的,可同时驱动8位共阴式数码管的显示驱动芯片,同时还可连接多达64键的键盘矩阵,单片即可完成LED显示的全部功能。ZLG7289具有的特点和丰富的指令系统,使得由其组成的LED显示和键盘电路具有外围电路简单,功能强大,使用方便,可靠性高,与MCU接口简单等特点,是LED显示和键盘电路的首选器件。ZLG7289与单片机的连接如下图2.9所示。 图2.9 ZLG7289与单片机的连接因为本设计用等精度测频的方法,预置门时间为1s,在标准频率信号为50MHz的情况下,可以算出测量精度为电路中采用了8位LED显示器.其中7个LED数码管组成测量数据显示器,另一个独立的数码管用于状态显示。当测频率时,有显示指示,为了保证频率计有足够的显示时间,并且在打开门控信号之前,要先清零,以使测量数字计数器每次从零开始计数。14177兰州交通大学博文学院毕业设计(论文)第三章 系统软件设计设计包括频率计的测频模块和利用对单片机的编程。单片机的编程又由三部分构成:对CPLD的数据读取及控制信号输出,键盘电路的扫描以及数码管显示输出。153.1 CPLD测频专用模块的设计利用VHDL设计的测频模块主逻辑结构如图3.1所示, 5 8图3.1 等精度频率计主逻辑结构图图3.1中,预置门控信号CL可由单片机发出,可以证明,在1秒至0.1秒间选择的范围内,CL的时间宽度对测频精度几乎没有影响,在此设其宽度为Tpr。BZH和TF模块是两个可控的32位高速计数器,BENA和ENA分别是他们的允许信号端,高电平有效。标准频率信号从BZH的时钟输入端BLCK输入,设其频率为Fs;经整形后的被测信号从与BZH相似的32位计数器TF的时钟输入端TCLK输入,设其真实频率值为,被测量频率为。测频原理说明如下:测频开始前,首先发出一个清零信号CLR,使两个计数器和D的触发器置零,同时通过信号ENA,禁止两个计数器计数。这是一个初始化的操作。然后由单片机发出允许测频命令,即令预置门控信号CL为高电平,这时D触发器要一直等到被测信号的上升沿通过时Q端才被置1(即令START为高电平),与此同时,将同时启动计数器BZH和TF,进入计数允许周期。在此期间,BZH和TF分别对被测信号(频率为)和标准频率信号(频率为Fs)同时计数。当Tpr秒后,预置门信号被单片机置为低电平,但此时17两个计数器并没有停止计数,一直等到被测信号的上升沿到来时,才通过D触发器将这两个计数器同时关闭。 被测频率值为,标准频率值为Fs,设在一次预置门时间Tpr中对被测信号计数值为Nx,对标准频率信号的计数值为Ns,则下式成立: (3-1)不难得到测得的频率为: FX=FSNXNS (3-2)最后通过控制SEL选择信号和64位至8位的多路选择器MUX,将计数器BHZ和TF中的两个32位数据按照SEL2.0的编码次序,分8次依次读入单片机,并按照各个模块的计算公式进行计算和显示。3.1.1 频率计CPLD部分的VHDL程序根据图3.1的主逻辑结构图和图3.2的测控时序,以及测频原理,可以写出相应的VHDL功能描述。相应的RTL电路图如图3.3。频率计CPLD部分的VHDL程序设计如下:LIBRARY IEEE; -等精度频率计CPLD设计部分USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY etester IS PORT(BCLK:IN STD_LOGIC; -标准频率时钟信号clock2,50MHZTCLK:IN STD_LOGIC; -待测频率时钟信号CLR:IN STD_LOGIC; -清零和初始化信号CL:IN STD_LOGIC; -当SPUL为高电平时,CL为预置门控信号,用于测频计数 -时间控制当SPUL为低电平时,CL为测脉宽控制信号 -CL高电平时测高电平脉宽而当CL为低电平时,测低电平脉宽SPUL:IN STD_LOGIC; -测频或测脉宽控制17START:OUT STD_LOGIC; -起始计数标志信号EEND:OUT STD_LOGIC; -由低电平变到高电平时指示脉宽计数结束SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0); -数据读出选同控制DATA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据读出END etester; ARCHITECTURE behav OF etester IS SIGNAL BZQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -标准计数器SIGNAL TSQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -测频计数器SIGNAL ENA : STD_LOGIC; -计数使能SIGNAL MA, CLK1, CLK2, CLK3: STD_LOGIC; SIGNAL Q1, Q2, Q3, BENA, PUL: STD_LOGIC;SIGNAL SS: STD_LOGIC_VECTOR (1 DOWNTO 0); BEGIN START = ENA; DATA = BZQ(7 DOWNTO 0) WHEN SEL=000 ELSE -标准频率计数低8位输出BZQ (15 DOWNTO 8) WHEN SEL=001 ELSE BZQ (23 DOWNTO 16) WHEN SEL=010 ELSE BZQ(31 DOWNTO 24) WHEN SEL=011 ELSE -标准频率计数值最高8位输出TSQ(7 DOWNTO 0) WHEN SEL=100 ELSE -待测频率计数值最低8位输出SQ (15 DOWNTO 8) WHEN SEL=101 ELSE TSQ (23 DOWNTO 16) WHEN SEL=110 ELSE TSQ(31 DOWNTO 24) WHEN SEL=111 ELSE -待测频率计数值最高8位输出TSQ (31 DOWNTO 24); BZH : PROCESS(BCLK, CLR) -标准频率测试计数器,标准计数器17BEGIN IF CLR = 1 THEN BZQ 0);ELSIF BCLKEVENT AND BCLK = 1 THENIF BENA = 1 THEN BZQ = BZQ + 1; END IF;END IF; END PROCESS; 23TF : PROCESS(TCLK, CLR, ENA) -待测频率计数器,测频计数器BEGIN IF CLR = 1 THEN TSQ 0); ELSIF TCLKEVENT AND TCLK = 1 THEN IF ENA = 1 THEN TSQ = TSQ + 1; END IF; END IF; END PROCESS; PROCESS (TCLK, CLR) BEGIN IF CLR = 1 THEN ENA = 0; ELSIF TCLKEVENT AND TCLK=1 THEN ENA = CL; END IF; END PROCESS; MA=(TCLK AND CL) OR NOT(TCLK OR CL) ; -测脉宽逻辑CLK1=NOT MA ; CLK2=MA AND Q1 ; CLK3=NOT CLK2; SS=Q2 & Q3;DD1: PROCESS (CLK1, CLR) BEGINIF CLR = 1 THEN Q1 = 0;18ELSIF CLK1EVENT AND CLK1 = 1 THEN Q1 = 1; END IF; END PROCESS; DD2: PROCESS (CLK2, CLR) BEGIN IF CLR = 1 THEN Q2 = 0; ELSIF CLK2EVENT AND CLK2 = 1 THEN Q2 = 1; END IF; END PROCESS; DD3: PROCESS (CLK3, CLR) BEGIN IF CLR = 1 THEN Q3 = 0; ELSIF CLK3EVENT AND CLK3 = 1 THEN Q3 = 1; END IF; END PROCESS; 19PUL=1 WHEN SS=10 ELSE-当SS=“10”时,PUL高电平,允许标准计数器计数0 ; -禁止计数EEND=1 WHEN SS=11 ELSE-EEND为低电平时,表示正在计数,由低电平变到高电平 0; -时,表示计数结束,可以从标准计数器中读数据了BENA=ENA WHEN SPUL=1 ELSE -标准计数器时钟使能控制信号,当SPUL为1时,测频率19PUL WHEN SPUL=0 ELSE -当SPUL为0时,测脉宽和占空比PUL; END behav;利用VHDL设计的测频模块其中有关的接口信号规定如下:1、BCLK:标准频率输入信号,50MHz。 2、TCLK:待测频率输入信号,0.1Hz10MHz。最高可以为50MHZ。 3、CLR:全局清0和初始化输入,高电平有效,由单片机向CPLD发出。 4、CL:预置门控制输入,时间为1s,高电平有效,由单片机向CPLD发出。 5、SPUL:高电平测频率,低电平测脉宽,由单片机向CPLD发出。 6、START:此信号由单片机读取。在测频时,高电平时表示进入计数周期,低电平时表示计数结束,单片计可以读取CPLD中的计数。 7、EEND:在测脉宽期间(SPUL=0),由低电平变为高电平,表示脉宽计数结束,EEND信号由单片机读取。 8、DATA:计数数据输出,8位,由单片机根据SEL选择信号分别读取。 9、SEL:计数数据读出控制,3位,由单片机输出控制。 当SEL分别等于:“000”、“001”、“010”、“011”;可由DATA分别读出:BZQ7.0、15.8、23.16、31.24共32位。 当SEL分别等于:“100”、“101”、“110”、“111”;可由DATA分别读出:TSQ7.0、15.8、23.16、31.24共32位。203.1.2 频率计CPLD部分的仿真图3.4和图3.5分别是频率测试仿真波形和脉宽测试仿真波形。从图3.4可以看出,SPUL=1时,系统进行等精度测频。这时,CLR一个正脉冲后,系统被初始化。然后CL被置为高电平,但这时两个计数器并未开始计数(START=0),直到此后被测信号TCLK出现一个上升沿,START=1时2个计数器同时启动分别对被测信号和标准信号开始计数,其中BZQ和TSQ分别为标准频率计数器和被测频率计数器的计数值。由图可见,在CL变为低电平后,计数仍未停止,直到TCLK出现一个上升沿为止,这时START=0,可作为单片机了解计数结束的标志信号。仿真波形中TCLK和BCLK的周期分别设置为10s和500ns。由图可见,计数结果是,对TCLK的计数值是5,对BCLK的计数值是64(十六进制)。通过控制SEL就能按照8个8位将两个计数器中的32位数读入单片机中进行计算。从图中的波形可以看出,VHDL部分描述的测频的功能完全正确。2025图3.4 频率/周期测量仿真图图3.5 脉宽/占空比测量仿真图图3.5中,取SPUL=0时,则系统进行脉宽测试。为了便于观察,图中仿真波形中的TCLK和BCLK的周期分别设置为75s和500ns。由VHDL程序和RTL电路图可以分析,CL和CLR的功能都发生了变化,前者为1时测信号高电平的脉宽,为0时测低电平的脉宽;而后者CLR变为1时作系统初始化,由1变为0后启动电路系统的标准信号计数器BZQ准备对标准频率进行计数。而允许计数的条件是此后出现的第一个脉宽的宽度。由图3.5可见,当CL=1,TCLK的高电平脉冲到来时,即启动了BZQ进行计数,而在TCLK的低电平到来时停止计数,状态信号EEND则由低电平变为高电平,告诉单片机计数结束。计数值可以通过SEL读出,这里是4BH。21由此不难算出,TCLK的高电平脉宽应该等于4BH乘以BCLK的周期。改变CL为0,又能测出TCLK的低电平脉宽,从而可以获得TCLK的周期和占空比。223.2 单片机控制与运算程序的设计完成VHDL硬件语言编程,系统内CPLD芯片中的逻辑资源尚缺一点即可大功告成,系统需要单片机为它实现控制,运算,显示等功能。所以,采用89C51单片机控制模块对各种信号进行处理并显示。与单片机可以按照如下方式接口:(1) 单片机的P0口接八位数据DATA7.0,负责读取测频数据。(2) 单片机可以通过信号START(P2.7),指示计数是否结束,以确定何时可以读取数据。(3) P2.0、P2.1、P2.2与SEL2.0相接,用于控制多路通道的数据选择。当SEL分别为“000”、“001”、“010”、“011”时,由低八位到高八位读出标准频率计数值;当SEL分别为“100”、“101”、“110”、“111”;由低八位到高八位读出待测频率计数值。(4) EEND(P2.3)与START功能基本相同,当其由低电平变到高电平使指示脉冲宽度计数结束。(5) P2.5和P2.6分别接控制信号CL和SPUL。CL和SPUL协同控制测试操作。即当为1时,CL作为测脉宽控制信号。这时,CL若为1,测TCLK的高电平脉宽,而当CL为0,则测TCLK的低电平脉宽。然后分别从DATA数据口读出BZH对标准频率的计数,即只需令SEL的取值分别为 “000”、 “001”、 “010”、 “011” 即可。(6) P0.0接清零信号CLR,高电平有效。每一测频周期开始时,都应该首先清零。3.2.1 单片机主程序的设计当系统通过5V电源供电时,自动进入自检状态,由单片机发出按键扫描信号对各个按键进行扫描。系统进行初始化后,此时当某键按下时,程序跳转到相应的子程序执行功能,然后返回继续执行键盘扫描主程序。单片机控制主程序流程图如图3.6。2330图3.6 单片机主程序流程图3.2.2 频率、周期计数子程序的设计如果按下测频键,则开始测量过程:首先,由单片机的P2.4发出一个清零信号P2.4=1,把计数使能信号START的预置门控信号CL置成0。然后P2.5(CL控制端)给出一个高电平的脉冲,长度控制在0.1秒至1秒之间。在此过程中,CPLD部分已经完成测频的任务。P2.5(CL控制端)下跳成0后,要有一个延迟时间单片机再开始读取CPLD信息,这个延迟由单片机控制,长度要大于等于待测量信号的一个周期。然后就是读取待测频率的过程了,P0口负责读取数据。 P2.0、P2.1、P2.2与SEL2.0相接,用于控制多路通道的数据选择。当SEL分别为“000”、“001”、“010”、“011”时,由低八位到高八位读出标准频率计数值;当SEL分别为“100”、“101”、“110”、“111”;由低八位到高八位读出待测频率计数值。然后单片机计算(Fs/Ns)Nx值,通过ZLG7289传给LED显示。22在测量周期时只要将计算结果由频率值取倒数转换为周期值即可。图3.7 频率、周期计数子程序流程图23图3. 8 测周期子程序流程图24图 3.9 测频率子程序流程图3.2.3 脉宽、占空比子程序的设计脉宽测量子程序与周期测量子程序基本一致,脉宽测量是将被测量信号的脉宽作为闸门信号对标准频率计数。占空比子程序是分别测量出高低电平的脉宽计数值N1,N2,由公式占空比=N1/(N1+N2)*100%算出。25图3.10 脉宽、占空比计数子程序流程图26图3.11 测脉宽子程序流程图3.2.4 键盘扫描及数码管显示子程序的设计键盘采用的是循环扫描的工作方式,当有键输入时,将读到的键值存入预存单元,用软件延时10ms消除抖动,再读键值,和原键值进行比较,若不相同,则继续进入扫描,如相同,则跳转到相应的入口执行子程序。单片机读入测量结果后,还要根据等精度测频原理进行计算,才能得到最终的测量结果。图3.12为键盘扫描子程序的流程图。数码管显示部分采用的是ZLG7289。ZLG7289是一片具有串行接口的,可同时驱动8位共阴式数码管的显示驱动芯片,单片即可完成LED显示。显示子程序的流程图如图3.13所示。27图3.12 扫描子程序流程图28图3.13 显示子程序流程图 29兰州交通大学博文学院毕业设计(论文)总结1. 在系统总体设计方面,充分利用单片机和CPLD各自的优势,将测控的主体分配给CPLD,既可满足频测对速度方面的要求和多I/O口的要求,同时利用单片机具有良好的人机接口和控制运算的功能,可以较简单地实现键盘和显示控制以及数据处理运算。2. 在频率测量方面,由于采用了等精度测频法,使该系统具有以下特点: 相对测量误差与被测频率的高低无关; 增大或可以增大Ns,减少测量误差,提高测量精度; 测量精度与预置门宽度和标准频率有关,与被测信号的频率无关,预置门和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变。3. 在显示方面,采用串行接口8 位LED 数码管及64键键盘智能控制芯片ZLG7289,节约了I/O口,简化了驱动电路的设计。30致谢三个月的时间很快过去了,在这里首先要感谢院、系领导给予的大力支持,为我们提供了良好的设计条件,特别要感谢指导老师孙春霞老师给予的悉心指导和不厌其烦的热情帮助。在此谨向导师表示最衷心的感谢、并致以崇高的敬意。同时要感谢参加论文评审和答辩委员会的各位老师,感谢他们对我的论文提出了宝贵的建议。在过去的这段时间中,我得到了来自各方面的热情帮助,在此向在我学业生涯中所有帮助过我的朋友表示深深的谢意. 致谢人:杨林娜31参考文献1 张杰,杨艳丽,马莉莉等. 基于单片机C语言的数字频率计设计J. 内蒙古农业大学学报,2007,28(2):191192.2 邹道生,李铭,杨汉祥. 多功能数字频率计的设计J. 赣南师范学院学报,2004,3:1618. 3 李春树. 基于AT89C51单片机的等精度数显频率计J. 零陵学院学报, 2003,24(2):5054.4 王保强,窦文,白红. 高精度测频方案设计J. 成都信息工程学院学报,2002,2:7781.5 洛家华. 用MCS51系列单片机测量频率的方法研究J. 辽宁工学院学报, 2000(5)3233.6 孙笑雨. 用单片机实现高精度数字频率计J沈阳高等专科学校学报,1999,1(3):2022 7 刘永强. 8031单片机测频方法及其应用J. 自动化与仪器仪表,1997,(4).8 徐淑华,程退安,姚万生. 单片机微型机原理及应用M.哈尔滨:哈尔滨工业大学出版社,1994. 9公茂法. 单片机人机接口实例集M. 北京航天航空大学出版社,1997.10马宏杰,张思东等. 微机通信原理与实用技术M. 北京:清华大学出版社,1994.11 张德贞. 基于单片机的数字频率计D. 黄河科技大学,200212 张永艳. 基于复杂可编程逻辑器件及用VHDL语言编程的数字频率计的设计D. 内蒙古大学,2004. 13 张永安. 基于CPLD的多功能等精度数字频率计的设计D. 内蒙古大学,2004.14 刘夫江. 基于单片机和CPLD的等精度数字频率计设计D. 山东科技大学,2007.3236外文翻译AT89C51The AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash programmable and erasable read only memory (PEROM) and 128 bytes of data random-access memory(RAM). The device is manufactured using
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!