数字式频率计的设计

上传人:沈*** 文档编号:79803247 上传时间:2022-04-24 格式:DOC 页数:37 大小:356.50KB
返回 下载 相关 举报
数字式频率计的设计_第1页
第1页 / 共37页
数字式频率计的设计_第2页
第2页 / 共37页
数字式频率计的设计_第3页
第3页 / 共37页
点击查看更多>>
资源描述
数字式频率计的设计学 院:专 业 班:姓 名:学 号:指导教师: 年 月数字式频率计的设计A Design of Digital Frequency Meter摘 要频率是电子技术领域中最基本的参数之一,在许多测量方案以及测量结果中都会涉及到频率测量的相关问题,频率精确测量的重要性显而易见。在本设计中就介绍了频率测量的原理以及一种简易频率计的制作方法。它的主要原理是将待测的信号用一个过零比较器进行整形,由于待测信号未知,它有可能是正弦波,有可能是三角波,也有可能是方波。过零比较器的作用就是将这些未知的信号整形成方波,方波信号单片机是可以测量的,但是如果整形出来的方波信号频率很大,此时单片机就无法测量了,因此还需要将频率过于高的整形出来的方波信号分频,直到它能被单片机测量为止。能够实现简单的分频功能还是不够的,还需要知道具体是几分频,这一步就要用到选择器了,它的主要功能就是选择单片机所要的分好频的信号,这一步是可以通过单片机控制选择部分来实现的,最后可由单片机将处理好的数据以符合显示部分的要求发往显示部分显示。本系统以80C51单片机作为系统的主要控制单元,通过80C51单片机对系统各个部件的控制来实现整个电路的信号频率采集、测量、转换数据、以及显示最终结果的功能。关键词:80C51单片机 数字频率计 频率测量AbstractFrequency is the most basic electronic technology one of the parameters, in many measurement programs as well as measurement results to the frequency measurement will be involved in issues related to the importance of accurate measurement of the frequency clear.In this design, to introduce the principle of frequency measurements and a simple method of making the frequency meter. Its main principle is that the signal under test with a zero-crossing comparator for shaping, the signal being measured is unknown, it may be sine wave, triangle wave may be, there may be a square wave. The role of zero-crossing comparator is shaping these unknown signal square wave, square wave signal microcontroller can be measured, but if the plastic out of the square wave signal frequency of large, single chip can not be measured at this time, it is also necessary to Frequency is too high the plastic out of the square wave signal frequency, until it can be measured until the microcontroller. To achieve a simple function of frequency is not enough, you also need to know is the sort of specific frequency, this step is necessary to use the selector, and its main function is to select the MCU to be a good sub-frequency signal, this step can be achieved through SCM control to select some to achieve, the final deal by the MCU will display some good data to conform to the requirements sent to the display part of the display.The 80C51 microcontroller system as the systems main control unit, through the 80C51 microcontroller control system to implement the various components of the circuits signal frequency acquisition, measurement, conversion data, and displays the final result of the function.Key words: 80C51 microcontroller digital frequency meter frequency measurement目 录摘 要3Abstract4绪 论61 频率计的设计与方案论证101.1 设计任务101.2 设计方案及其论证101.2.1 设计方案101.2.2 方案论证及选用依据122 硬件部分设计132.1 信号预处理电路132.1.1 放大电路132.1.2 波形变换和整形电路142.1.3 闸门时基电路142.1.4 分频电路152.2 单片机80C51162.3 测量数据显示电路173 软件部分设计193.1 软件设计193.2 各个功能模块的作用193.2.1 直接频率测量模块193.2.2 信号周期测量模块203.2.3 定时器中断服务模块213.2.4 多进制二进制数转换为BCD码模块223.2.5 LED动态显示模块23结 论25致 谢26参考文献27附录1硬件设计原理图28附录2数字频率计测量频率程序29绪 论 频率计又称为频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器。其最基本的工作原理为:当被测信号在特定时间段T内的周期个数为N时,则被测信号的频率f=N/T。电子计数器是一种基础测量仪器,到目前为止已有30多年的发展史。早期,设计师们追求的目标主要是扩展测量范围,再加上提高测量精度、稳定度等,这些也是人们衡量电子计算器的技术水平,决定电子计数器价格高低的主要依据。目前这些基本技术日臻完善,成熟。应用现代技术可以轻松地将电子计数器的测频上限扩展到微波频段。 随着科学技术的发展,用户对电子计数器也提出了新的要求。对于低档产品要求使用操作方便,量程(足够)宽,可靠性高,价格低。而对于中高档产品, 则要求有高分辨率,高精度,高稳定度,高测量速率;除通常通用计数器所具有的功能外,还要有数据处理功能,统计分析功能,时域分析功能等等,或者包含电压测量等其他功能。这些要求有的已经实现或者部分实现,但要真正完美的实现这些目标,对于生产厂家来说,还有许多工作要做,而不是表面看来似乎发展到头了。由于微电子技术和计算机技术的发展,频率计都在不断地进步着,灵敏度不断提高,频率范围不断扩大,功能不断地增加。在测试通讯、微波器件或产品时,通常都是较复杂的信号,如含有复杂频率成分、调制的或含有未知频率分量的、频率固定的或变化的、纯净的或叠加有干扰的等等。为了能正确地测量不同类型的信号,必须了解待测信号特性和各种频率测量仪器的性能。微波计数器一般使用类型频谱分析仪的分频或混频电路,另外还包含多个时间基准、合成器、中频放大器等。虽然所有的微波计数器都是用来完成计数任务的,但制造厂家都有各自的一套复杂的计数器的设计、使得不同型号的 计数器性能和价格会有所差别,比如说一些计数器可以测量脉冲参数,并提供类似于频率分析仪的屏幕显示,对这些功能具有不同功能不同规格的众多仪器,我们应该视测试需要正确地选择,以达到最经济和最佳的应用效果。毫无疑问,无论是在科技研究中还是在实际应用中,频率测量的作用都显得尤为重要。然而传统的频率计通常采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。随着科技的进步,为了较好的解决这一问题人们开始运用单片机测量频率,它是一种基于时间或频率的模数转换原理,并依赖于数字电路技术发展起来的一种显示被测信号频率的数字测量仪器。与传统的测量方式相比,运用了单片机频率计有着体积更小,运算速度更快,测量范围更宽的优点,更重要的是它能大大的降低制作成本。由于传统的频率计中有许多功能是依靠硬件来实现的,而采用单片机测量频率之后,有许多以前需要用硬件才能实现的功能现在仅仅依靠软件编程就能实现,而且不同的软件编程能够实现不同的功能,这一巨大优势无疑使得制作成本大大降低。由于当今科技的日新月异,人们对电子产品的要求随之增高,经济、高效、精准成为人们的目标,就频率计来说,如果现如今还是像传统的方式来设计并制造,那显然不能满足人们的要求。那么基于单片机的数字频率计必将取代传统的频率计。而它的优势也显而易见,小巧轻便、集成度高、操作简单、易于维护和修改。这些优点无不满足着人们追求经济、高效、精准的目标。试想一下,改变程序中的几行命令显然要比改变电路板上的几条连线要快的多,方便的多。也正是由于基于单片机的数字频率计与传统的频率计有着那么明显的优势,因此,我将数字频率计的设计与实现作为我的研究课题。通过设计频率计系统,实现信号频率的检测功能。在检测系统的设计中,要熟悉以单片机为核心的控制单元,以检测电路为依托的功能单元,以人机界面为媒介的交互单元。了解频率检测的算法及软硬件的实现方式。灵活应用电子相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。在此过程中,加深对信号检测和信号处理的理解和认识。这对我以后的工作和学习都是有很大帮助的。电子计数器是其他数字化仪器的基础,在它的输入通道接入各种模-数变换器,再利用相应的换能器便可制成各种数字化仪器。电子计数器的优点是测量精度高、量程宽、功能多、操作简单、测量速度快、直接显示数字,而且易于实现测量过程自动化,在工业生产和科学实验中得到广泛应用。它的主要实现方法有直接式、锁相式、直接数字式和混合式四种。直接式的优点是速度快、相位噪声低,但结构复杂、杂散多,一般只应用在地面雷达中。锁相式和直接数字式都同时具有容易实现产品系列化、小型化、模块化和工程化的特点,其中,锁相式更是以其容易实现相位同步的自动控制且低功耗的特点成为众多业内人士的首选,应用最为广泛。电国际上数字频率计的分类很多。按功能分类,电子计数器有通用和专用之分。(1) 通用型计数器:是一种具有多种测量功能、多种用途的万能计数器。它可测量频率、周期、多周期平均值、时间间隔、累加计数、计时等;若配上相应插件,就可测相位、电压、电流、功率、电阻等电量;配上适当的传感器,还可进行长度、重量、压力、温度、速度等非电量的测量。(2) 专用计数器:指专门用来测量某种单一功能的计数器。如频率计数器、时间计数器、特种计数器、可逆计数器、予置计数器、差值计数器、倒数计数器等。数字频率计按频段分类:(1)低速计数器:最高计数频率10MHz;(2)中速计数器:最高计数频率10100MHz;(3)高速计数器:最高计数频率100MHz;(4)微波频率计数器:测频范围180GHz或更高。 值得一提的是微波计数器,它是以通用计数器和频率计数器为主配以测频扩展器而组成的微波频率计。它的测频上限已进入毫米波段,有手动、半自动 、全自动3类。系列化微波计数器是电子计数器发展的一个重要方面。数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功能,从而提高系统可靠性和速度。现如今,数字频率计已经不仅仅是测量信号频率的装置了,用它还可以测量方波脉冲的脉宽。在人们的生产生活中数字频率计也发挥着越来越重要的作用,比如用数字频率计来监控生产过程,这样可以及时发现系统运行中的异常情况,以便给人们争取时间处理。除此之外,它还可以应用于工业控制等其它领域。在传统的电子测量仪器中,示波器在进行频率测量时测量精度较低,误差较大。频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速的跟踪捕捉到被测信号的频率变化。正是由于频率计能够快速准确的捕捉到被测信号频率的变化,因此频率计拥有非常广泛的应用范围。在传统的生产制造企业中,频率计被广泛的应用在产线的生产测试中。频率计能够快速的捕捉到晶体振荡器输出的频率变化,用户通过使用频率计能够迅速的发现有故障的晶振产品,确保产品质量。在计量实验室中,频率计被用来对各种电子测量设备的本地振荡器进行校准。在无线通讯测试中,频率计既可以被用来对无线通讯基站的主时钟进行校准,还可以用来对无线电台的跳帧信号进行分析。对于频率计的设计目前也有专用芯片可以实现,如利用MAXIM公司的ICM7240来设计频率计。但由于这种芯片的计数频率比较低,远不能达到在一些场合需要测量很高的频率要求,而且测量精度也受到芯片本身的限制。提出的用80C51单片机设计频率计的方法可以解决这些问题,实现精度较高、等精度和宽范围频率计的设计。1 频率计的设计与方案论证1.1 设计任务利用80C51单片机测量0-2KHZ脉冲频率,并将测量的结果显示在七段码显示器上,在课题中要完成基于80C51单片机脉冲频率测量系统的硬件电路的设计,在硬件电路的基础上,利用汇编语言完成频率测量、显示程序。1.2 设计方案及其论证1.2.1 设计方案方案一:系统测频部分采用中小规模数字集成电路,完成频率计测量功能。原理框图如图1-1所示。该方案的特点是中小规模集成电路应用技术成熟,能可靠的完成频率计的基本功能,但由于系统功能要求较高,所以电路过于复杂。通道放大主门计数、锁存、显示电源门控晶体振荡源分频图1-1 方案一的原理框图方案二:采用专用频率计模块实现频率测量。由频率计专用模块(如ICM7216)构成,它的特点是结构简单,量程可以自动切换。原理框图如图1-2所示。ICM7216内部带有放大整形电路,可以直接输入模拟信号。外部振荡部分选用一块高精度晶振体和两个低温系数电容构成10MHz并联振荡电路。用转换开关选10ms、0.1s、1s和10s四种闸门时间,同时量程自动切换。缓冲电路是为了让频率计采用记忆方式,即计数过程中不显示数据,待计数过程结束后,显示测频结果,并将此显示结果保持到下一次计数结果,显示时间不小于1s,小数点位置随量程自动移动。芯片驱动电路输出15mA35mA的峰值电流,所以在5V电源下可直接点亮LED。ICM7216显示晶 振模拟信号图1-2 方案二的原理框图方案三:系统采用可编程逻辑器件(PLD,如ATV2500)作为信号处理及系统控制核心,完成包括计数、门控、显示等一系列工作。该方案利用了PLD的可编程和大规模集成的特点,使电路大为简化,但测量精度不够高,导致系统性价比降低,系统功能扩展受到限制。原理框图如图1-3所示。晶体产生的高频信号由PLD进行的多级分频通道PLD计数及BCD译码显 示图1-3 方案三的原理框图方案四:系统采用单片机80C51作为控制核心,门控信号由80C51内部的计数/定时器产生。由于单片机的计数频率上限较低(24MHZ晶振时约为500KHZ),所以需对高频被测信号进行硬件预分频处理,80C51则完成运算、控制功能。由于使用了单片机,使整个系统具有极为灵活的可编程性,能方便地对系统进行功能扩展与改进。原理框图如图1-4所示。脉冲形成电路分频电路74LS393主 控80C51单片机LED显示闸门开关74LS08门控信号图1-4 方案四的原理框图 以上方案均需使用小信号放大、整形通道电路来提高系统的测量精度和灵敏度。1.2.2 方案论证及选用依据 方案二的设计思路是非常简单的,电路也不复杂,但由于它采用的是专用频率计模块设计,不符合我们的设计要求,所以就不予考虑了。方案一采用的是中小规模数字集成电路,虽然能够实现频率的测量,但其功能扩展不易实现,智能化程度也不高,不符合目前数字频率计的发展要求。方案三在设计方法、硬件电路的实现上都要比方案一和方案二简洁、新颖,而且采用可编程逻辑器件(PLD)的EDA技术也是现代电子产品开发的方向,应用这种技术来实现数字频率计的设计是可行的。但从系统设计的要求上看,要能实现测量频率是2HZ50MHZ的范围,以频率下限2HZ为例,要达到误差小于0.1的目的,必须显示3位的有效数字,而使用直接测频的方法,要达到达个测量精度,需要主门连续开启100秒。由此可见,采用方案三,用直接测频方法对低频测量是不现实的,而采用带有运算器的单片机则可以很容易地解决这个问题,实现设计要求。也就是采用先测信号的周期,然后再通过单片机求周期的倒数的方法,从而得到我们所需要的低频信号的测量精度。另外由于使用了功能较强的80C51芯片,使本系统可以通过对软件改进而扩展功能,提高测量精度,因此我们选用方案四,采用单片机作为核心控制系统的具体实施方案。2 硬件部分设计频率计由单片机80C51 、信号预处理电路、测量数据显示电路所组成,其中信号预处理电路包括待测信号放大、波形变换、波形整形和分频电路。系统硬件实现框图如图4-1所示。待测信号放大电路波形变换、整形闸门控制分频电路单片机显示电路图2-1 系统硬件实现框图2.1 信号预处理电路2.1.1 放大电路采用两个NPN三极管(9018)级联方式实现对待测信号的放大,降低对待测信号的幅度要求。如图2-2所示。前一个三极管采用共集电极方式,主要是为了获得比较宽的频带,并不具有实质性的放大作用。后一个三极管采用共发射极方式,主要作用是放大非常弱的输入脉冲信号,一般通过它的放大后,其电压可以达到3伏以上。为了消除不必要的噪声信号干扰,在两级放大电路中都可以加入滤波电容,保证待测信号的稳定。图2-2 放大电路2.1.2 波形变换和整形电路采用数字芯片(74HC00)实现把正弦波、三角波、方波等各种波形的正负交替的信号波形变换成可被单片机接受的TTL/ CMOS 兼容信号。74HC00是两输入四与非门芯片,利用它在转换过程中的正反馈作用,可以将边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。在数字系统中,矩形脉冲经传输后往往会发生波形畸变,例如:当传输线上电容较大时,波形的上升沿和下降沿将明显变坏;当传输线较长,而且接收端的阻抗与传输线上的阻抗不匹配时,在波形的上升沿和下降沿将产生振荡现象;当其他脉冲信号通过导线间的分布电容或公共电源线叠加到矩形脉冲信号上时,信号上将出现附加的噪声。诸如这些情况,如果不加以解决,都将严重影响到矩形脉冲的实际效果9。使用74HC00芯片可以很好地解决这些困难,得到比较理想的矩形脉冲波形。其引脚如图2-3所示。在实际应用中,仅仅用到一个与非门,它的一脚接高电平,二脚接通过放大作用放大的输入信号,三脚输出高低电平的数字信号。除了可用74HC00芯片外,74HC14(六反相施密特触发器)也能实现波形的变换和整形。图2-3 波形变换和整形电路2.1.3 闸门时基电路采用数字芯片(74LS08)实现对数字信号的控制。74LSO8是两输入端四与门,引脚如图2-4所示。同样,在实际应用中,仅仅用到一个与门,它的1脚接74HC00的输出信号,2脚接到单片机的P3.1,通过单片机控制2脚是高电平还是低电平。当2脚是高电平时,从74HC00的3脚出来的信号就通过74LS08的1脚传送到3脚,然后进入下一个控制电路;当2脚是低电平时,无论74HC00输出的是高电平,还是低电平,在74LS08的3脚都没有信号输出。所以74LS08就等同于一个开关电路,只有在高电平有效时,才能进行信号的传输,起到了控制的作用。图2-4 闸门时基电路2.1.4 分频电路采用数字芯片(74LS393)用于扩展单片机的频率测量范围并为实现单片机频率测量和周期测量使用统一的输入信号。如图2-5所示。74LS393是双4位二进制计数器,在这里接成级联方式,组成一个8位二进制计数器,同时也是分频比为256的分频器,然后将它们接入单片机的P1口。采用74LS393的理由是:52内有2个l6位的二进制加法计数器,一个用作定时器,另一个用作脉冲计数。l6位二进制的最大计数值为2-1=65535,不能满足精确测量的需要,虽然可以通过软件计数的方法来提高分辨率,但是80C51内置计数器的计数速率受500KHZ(24M时钟)的限制,所以意义并不大。74LS393的最大计数速率可达50MHz,与80C51内的T0组成24位的计数器,其最大计数值为-1=16777215,分辨率将大大提高10。另外,采用74LS393的好处还在于它的清零端口可以与单片机的一个引脚相连,通过对单片机软件编程实现分频器74LS393的自动清零和重新计数,就不再需要硬件电路来实现,简化了电路的设计。图2-5 分频电路2.2 单片机80C51频率测量电路选用80C51 作为频率计的信号处理核心。80C51 包含2 个16 位定时/计数器、1个具有同步移位寄存器方式的串行输入/输出口和8K8位片内FLASH 程序存储器。16位定时/计数器用于实现待测信号的频率测量或者待测信号的周期测量。同步移位寄存器方式的串行输入/输出口用于把测量结果送到显示电路。8K8位片内FLASH 程序存储器用于放置系统软件。32个I/O口线使单片机外围能最大可能的扩展。另外引脚在程序控制下有第二功能,可供设计者灵活选择。如当需要系统扩展时,则数据线和地址线低8位分时复用通道P0口,地址高8位和其他信号可合用通道P2口,功能变换和选择由相应的指令完成。单片机I/O引脚一线多功能的特点方便了用户的设计,在组成系统时可自行选择11。在实际的设计中,将80C51的P1口设置为接收数据端口,通过分频器74LS393分频后依次接到P1口的8个引脚。将P3口设置为第二功能。P3.1控制闸门时间的开启;P3.3用于周期测量时的时基控制端;P3.4用于直接测频率时脉冲信号的计数端;P3.5用于定时。将P0口和P2口设置为发送数据端口。P0口的各引脚接到74LS245的输入端,用于段驱动;P2口的各引脚接到74LS06的输入端,用于位驱动。单片机复位端(RST)可采用内部软件复位,也可采用外部手动复位,实际操作也很方便。这里采用外部手动复位,如图2-6所示。 图2-6 单片机复位电路2.3 测量数据显示电路 如图2-7所示。一般而言,数据显示有静态显示和动态显示两种。所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定地导通和截止。它的优点是显示稳定,显示亮度大;缺点是使用的数码管数量少。正是因为它的这个缺点和本设计的要求,数字频率计的显示电路选择了采用动态扫描显示。所谓动态显示,就是LED显示器一位一位地轮流电亮(扫描)。对于每一位LED显示器来说,每隔一段时间点亮一次。LED 显示器的亮度既与导通电流有关,也与LED显示器点亮时间和间隔时间的比例有关。通过调整LED显示器的导通电流和时间比例参数,可以实现较高亮度且稳定的显示11。具体工作过程是:LED显示器采用共阴极动态显示形式,8位LED用两块四位集成的数码管连接组成。频率计数结果以BCD码的形式存放在80C51的存储单元中,通过P0口接到74LS245上,控制8位LED的段选码;通过P2口接到74LS06上,控制8位LED的位选码。74LS245是8位总线驱动器,由芯片上的T/引脚(1脚)控制数据的传输方向。当T/=1时,数据从A端传送到B端;当T/=0时,数据从B端传送到A端。根据本设计的原理图知,数据是从A端传送到B端,因此设T/=1,即是高电平有效。另外,由于51单片机的P0口没有上拉电阻,在将P0口设置为输出端时,必须考虑在段驱动的每一段位上接入上拉电阻,使LED显示管能够工作。我们知道,单片机的P1口扫描输出时总有一位为高电平,如果没有反相驱动器将这一位的高电平变成低电平,那在LED上显示出来的将是乱码。74LS06是六与非门反相驱动器,正好符合我们的设计要求。由于是8位LED显示管,所以采用两个74LS06来控制。图2-7 测量数据显示电路3 软件部分设计3.1 软件设计软件编程部分是设计的电路能否成功的关键。因为单片机具有编程和自动运算的功能,所以产品中有很多的功能都是通过软件的形式实现的。数字频率计的系统软件设计采用模块化设计方法。如图3-1所示。整个系统由初始化模块、信号频率测量模块、信号周期测量模块、定时器中断服务模块、浮点数格式化模块、浮点数算术运算模块、浮点数到BCD 码转换模块和测量数据显示模块等各种功能模块组成。系统初始化频率测量周期测量中断服务程序浮点数到BCD码测量数据显示浮点数格式化YN二进制转BCD码开始图3-1 系统软件流程图3.2 各个功能模块的作用3.2.1 直接频率测量模块这是整个软件设计模块中最重要的一部分。首先对定时器/计数器T0、T1进行初始化,T0设置为计数器方式1,T1设置为定时器方式1;然后打开闸门P3.1,软件设置EA=1,运行控制位TR=1,启动定时/计数器开始工作;再运行软件延时程序,同时定时/计数器对外部的待测信号进行计数,延时结束时TR 清0,停止计数;最后从计数寄存器读出测量数据,在完成数据处理后,由显示电路显示测量结果。其流程框图如图3-2所示。T0/TI初始化启动定时器T1打开计数闸门P3.1关闭计数闸门P3.1关闭计数器读入计数值计数值修正结果转换成BCD码送动态显示辅助计数器加1定时时间到?YYNN计数器T0溢出?延时100s开始图3-2 直接测频法流程框图3.2.2 信号周期测量模块 在低频率段,为了保证比较高的测量精度和较小的测量误差,在数字频率计低频段的设计中,往往不是直接测量输入脉冲信号的频率,而是去转测它的周期。利用测周期法实现频率测量时,外部的待测信号通过频率计的预处理电路变成宽度等于待测信号周期的方波,该方波同样加至定时/计数器的输入脚12。首先定时/计数器的计数寄存器清0,然后检测方波高电平是否加至定时/计数器的输入脚;当判定高电平加至定时/计数器的输入脚,运行控制位TR 置1,启动定时/计数器对单片机的机器周期的计数,同时检测方波高电平是否结束;当判定高电平结束时TR 清0,停止计数,然后从计数寄存器读出测量数据,在完成数据处理后,由显示电路显示测量结果。其流程框图如图3-3所示。T1初始化P3.3下降沿?T1计数并将值保存到TL1寄存单元P3.3上升沿?T1计数并将值保存到TH1寄存单元等待等待YYNN结 束图3-3 测周期法流程框图3.2.3 定时器中断服务模块 定时器中断应用在软件中实现某功能时显得非常方便和简单。它解决了快速的CPU和慢速的外设之间的矛盾,使它们能够同步工作,大大提高了CPU资源的利用率。首先找到INT1的中断入口地址,并初始化,当闸门时间到时,响应中断,单片机的定时/计数器对计数脉冲进行计数,然后调BCD码程序,送LED数码管显示。其中断流程框图如图3-4所示。INT1中断入口初始化保存计数值TR0,TH0,TL0清零BCD转换软件译码调显示子程序返回图3-4 INT1中断程序流程图3.2.4 多进制二进制数转换为BCD码模块 这是针对于直接测频法时计数脉冲而言的。因为单片机80C51内置计数器只能进行二进制计数,而显示部分不能识别二进制数,所以计数的结果必须先进行二进制转十进制运算,变成输出显示能够识别的BCD码,然后再将结果送到显示缓冲区进行显示。其流程框图如图3-5所示。清BCD单元设二进制计数器二进制左移BCD数2进位十进制调整BCD码字节数到二进制位数到NYYN开 始结 束图3-5 多进制二进制数转换为BCD码流程图3.2.5 LED动态显示模块其流程框图如图3-6所示。置段码、位选码初值位选码送P2口段选码送P0口段选码转字型码延时1ms指向下一个显示单元位选码左移1位显示完?YN开 始返 回图3-6 LED动态显示流程图要显示的数据以BCD码的方式存放在单片机RAM的存储单元中。首先将位选码、段选码初始化赋值,分别送单片机端口,通过查表将存储单元的数据送LED显示;调延时程序,指向下一个显示单元,直到所有位显示完退出。在通过软件实现动态显示的时候,需要用到字型码查表图,现将表3-1列出下:表3-1 七段LED显示器共阴极字型码显示字符gfedcbadp字型码(共阴极)0011111103FH10000110006H2101101105BH3100111104FH41100110066H5110110106DH6111110107DH70000111007H8111111107FH9110111106FHA1110111077HB111110007CHC0111001039HD101111005EHE1111001079HF1110001071H.0000000180H全亮11111111FFH全灭0000000000H结 论本文介绍了一种基于单片机80C51制作数字频率计的设计方法。其测量原理非常简单,硬件电路制作方便,软件编程易于实现,所测得的频率范围较宽,精度较高,平均相对误差在0.34%左右,是在允许的测量误差范围内。此次设计的数字频率计达到了测量频率的目的,但在实际制作和测试过程中,由于自己知识有限,时间短和经验不足等原因,还是出现了一些问题和需要继续改进、完善的地方。比如:在编写程序时,闸门时间没能准确地微调至1秒,致使测量的误差比理想的要大。由于单片机内部具有丰富的存储资源和强大的数据处理能力,因此采用单片机设计的数字频率计只需要改动很少的硬件部分就可以和其他的自动化仪表组成多功能控制系统,测量速度得到提高,用于连续测量的控制系统是非常有价值和意义的。致 谢本课题的设计和制作是在我的论文导师的精心指导下完成的。两位老师对我的毕业设计给予了极大的关注,在硬件原理电路的分析、以及软件编程实现中都给予了我莫大的支持、鼓励和帮助,特别是当我在遇到困难时,两位老师耐心地给我分析原因,解决问题。两位老师兢兢业业的工作精神、严谨的治学态度、踏实真诚的处事态度,使我深受感动,是我在现在和今后的学习、工作中学习的楷模。衷心地感谢姚老师和胡老师!是你们的辛勤劳动,才能使我能够顺利地完成论文的撰写! 感谢全体老师在我大学四年里给我的帮助,不仅教给我专业上的知识,而且还教给了我做人的道理! 同时,也向我的父母致以真心的谢意!他们在我的大学阶段以及整个人生中给予了我无私的关怀,使我能够安心的在学校里完成学业。 还要感谢与我同窗四年的兄弟姐妹!他们在我的毕业设计过程中也给予了我帮助和支持。 最后,衷心感谢各位评阅老师!感谢您们在百忙之中参与我的论文评阅工作。谢谢!参考文献1 刘大茂.智能仪器.北京:机械工业出版社,1998.52 徐建军.MCS-51系列单片机应用及接口技术.北京:人民邮电出版社,2003.63 谢淑如.Protel PCB 99 SE电路板设计.北京:清华大学出版社,2001.74 刘文涛.单片机语言程序设计.北京:原子能出版社,2004.75 何立民.MCS-51系列单片机应用系统设计北京:北京航空航天大学出版社,1995.6 陈明荧.8051单片机课程设计实训教材北京:清华大学出版社,2003.7 何立民.单片机应用技术选编北京:北京航空航天大学出版社,1998.8 彭容修,刘泉,马建国.数字电子技术基础湖北:武汉理工大学出版社,2007.9 李全利.单片机原理及应用技术北京:高等教育出版社,2004.10 万福君.单片微机原理系统设计与应用合肥:中国科学技术大学出版社,2004.11 张毅坤,陈善久,裘雪红.单片微型计算机原理及应用西安:西安电子科技大学出版 社,1998.12 Michael D.ciletti. Advanced digital design with the verilogHDL .PEARSON, 2004.13 阎石.数字电子技术基础第四版M.北京:高等教育出版社,1998.31714 徐煜明,韩雁.单片机原理及接口技术M.北京:电子工业出版社,2005.5-6,202-206附录1硬件设计原理图附录2数字频率计测量频率程序DBUF EQU 30H ;显示地址存储TEMP EQU 40H ;显示缓存TIME EQU 50H ;定时次数FREQC EQU 20H ;保存分频计数值FREQL EQU 21H ;保存TL0FREQH EQU 22H ;保存TH0ORG 00HJMP STARTORG 0BHJMP TIM1START:MOV SP,#70H MOV 30H,#00H ;显示寄存器清零 MOV 31H,#01H MOV 32H,#02H MOV 33H,#03H MOV 34H,#04H MOV 35H,#05H MOV 36H,#06H MOV 37H,#07HMOV TMOD,#51H SETB IT0 MOV TH1,#HIGH(65536-10000) ;定时5ms MOV TL1,#LOW(65536-10000) MOV TH0,#00H ;置计数初值 MOV TL0,#00H MOV IE,#82H ;开中断允许控制寄存器 MOV TIME,#200 ;定时200次,1秒 SETB TR0 SETB TR1 CLR P3.0 NOP ;时间微调 NOP NOP NOP NOP NOP SETB P3.1 ;打开闸门控制;LEE:CALL DISP ;JMP LEE LOOP : CALL DISP JMP LOOPTIM1: MOV TH1,#HIGH(65536-10000) ;T1中断 MOV TL1,#LOW(65536-10000) PUSH ACC PUSH PSW ;保护断点 DJNZ TIME,X2 ;定时时间到执行计数,否则继续 CLR TR0 CLR TR1 CLR P3.1 ;关闭闸门 MOV TIME,#200 MOV FREQC,P1 ;将P1口值送寄存器20H MOV FREQL,TL0 ;将T0计数值低8位送21H MOV FREQH,TH0 ;将T0计数值高8位送22H SETB P3.0 ;LS393清零 ACALL BCD ;调用二进制转BCD码程序 MOV TH0,#00H ;重置计数初值 MOV TL0,#00H SETB TR0 SETB TR1X2: ;CALL DISPPOP PSW POP ACC RETIBCD: ;二进制转换成BCDL1:CLR C MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV R1,#24NEXT: MOV A,FREQC RLC A MOV FREQC,A MOV A,FREQL RLC A MOV FREQL,A MOV A,FREQH RLC A MOV FREQH,A MOV A,R5 ADDC A,R5 DA A MOV R5,AMOV A,R4 ADDC A,R4 DA A MOV R4,AMOV A,R3 ADDC A,R3 DA A MOV R3,AMOV A,R2 ADDC A,R2 DA A MOV R2,ADJNZ R1,NEXTMOV A,R5 ;将转换后的BCD码从小到大依次存入寄存器30H37H ANL A,#0FH MOV 30H,A MOV A,R5 ANL A,#0F0H SWAP A MOV 31H,AMOV A,R4 ANL A,#0FH MOV 32H,A MOV A,R4 ANL A,#0F0H SWAP A MOV 33H,AMOV A,R3ANL A,#0FH MOV 34H,A MOV A,R3 ANL A,#0F0H SWAP A MOV 35H,AMOV A,R2 ANL A,#0FH MOV 36H,A MOV A,R2 ANL A,#0F0H SWAP A MOV 37H,A RET DISP: ;数据显示程序 MOV R0,#DBUF ;初始化暂储单元 MOV R1,#TEMP MOV R2,#8 ;8位显示 MOV DPTR,#SEGTAB ;字型码的入口地址DP00:MOV A,R0 ;取最低位的待显示数据 MOVC A,A+DPTR ;查表获取字型码 MOV R1,A ;保存字型码到缓冲区首址 INC R1 ;指针下移一位,等待下一个待显示数 INC R0 DJNZ R2,DP00MOV A,43H ;第三位显示小数点 ORL A,#80H MOV 43H,ADISP0:MOV R0,#TEMP ;显示程序 MOV R1,#8 ;8位显示 MOV R2,#FEHDP01:MOV A,R0 ;从缓存地址区取出字型码,即段码 MOV P0,A ;段选码送P0口 MOV A,R2 ;取出位选码 ;CPL A ;共阳数码管显示 MOV P2,A ;送位选码到P2口CALL DELAY1 INC R0 ;指向下一个显示单元 MOV A,R2 JNB ACC.0,OUT ;8位显示完,退出 RL A ;未显示完,左移显示下一位 MOV R2,A DJNZ R1,DP01 ;循环显示直至所有位显示完OUT: RETSEGTAB: ;共阴数码管显示 DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,00H,0F3H,76H,80H,40H ;0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,空格,P,H,点,-, RETDELAY1:MOV 70H,#10H ;调延时1ms显示程序 AA1:MOV 71H,#99H AA:DJNZ 71H,AA DJNZ 70H,AA1 RETEND
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


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

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


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