基于AT89S52单片机的简易频率计设计说明_第1页
基于AT89S52单片机的简易频率计设计说明_第2页
基于AT89S52单片机的简易频率计设计说明_第3页
基于AT89S52单片机的简易频率计设计说明_第4页
基于AT89S52单片机的简易频率计设计说明_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

.PAGE.简易频率计的设计中文摘要频率测量是电子学测量中最为基本的测量之一。频率计主要是由信号输入和放大电路、单片机模块、分频模块及显示电路模块组成。AT89S52单片机是频率计的控制核心,来完成它待测信号的计数,译码,显示以及对分频比的控制。利用它内部的定时/计数器完成待测信号频率的测量。在整个设计过程中,所制作的频率计采用外部分频,实现10Hz~2MHz的频率测量,而且可以实现量程自动切换流程。以AT89S52单片机为核心,通过单片机内部定时/计数器的门控时间,方便对频率计的测量。其待测频率值使用四位共阳极数码管显示,并可以自动切换量程,单位分别由红、黄、绿3个LED指示。本次采用单片机技术设计一种数字显示的频率计,具有测量准确度高,响应速度快,体积小等优点。关键词:频率计;单片机;计数器;量程自动切换ThedesignofsimpleFrequencyMeasurementABSTRACTFrequencymeasurementisthemostbasicmeasurementinElectronicfield.Asimplefrequencymetermainlybythesignalinputandamplifyingcircuit,microcontrollermodule,sub-frequencycircuitmoduleanddisplaymodule.AT89S52MCUisthecontrolcorefrequencyofdollarstocompleteitscountofthesignalundertest,decoding,displayandcontrolofthefrequencydivisionratio.Usingitsinternaltimerorcountertocompletethesignaloftheundertestcycle/frequencyofmeasurement.Throughoutthedesignprocess,periodicmeasurementofthefrequencymeterapplicationandthecorrespondingmathematicaltreatmenttoachieve10Hz~2MHzfrequencymeasurements,andcanautomaticallyswitchtheflowtoachievescale.TothecoreofAT89S52microcontroller,withtheMCUinternaltimer/countergatetime,itcanbeeasierforfrequencymeasurement.Theuseofmicrocomputertechnologytodesignadigitaldisplayoffrequencymeter,haveameasurementofhighaccuracy,fastresponse,smallsizeandsoon.KEYWORD:Frequencymeter;singlechip;counter;rangeautomaticallyswitch目录第一章前言11.1频率计概述11.2频率计发展与应用11.3频率计设计内容1第二章系统总体方案设计22.1测频的原理22.2总体思路32.3具体模块3第三章硬件电路具体设计53.1AT89S52主控制器模块53.1.1AT89S52的介绍53.1.2复位电路及时钟电路63.1.3引脚功能73.1.4单片机引脚分配83.2电源模块93.2.1直流稳压电源的基本原理93.2.2电源电路设计103.3放大整形模块113.4分频设计模块113.4.1分频电路分析113.4.274LS161芯片介绍123.4.374LS151芯片介绍133.4.4分频电路143.5显示模块143.5.1数码管介绍153.5.2频率值显示电路153.5.3档位转换指示电路16第四章系统的软件设计174.1软件模块设计174.2中断服务子程序184.3显示子程序194.4量程档自动转换子程序204.5应用软件简介204.5.1Keil简介214.5.2protues简介22第五章频率计的系统调试235.1硬件调试235.1.1电源模块调试23整形模块调试245.1.3分频模块调试255.2软件调试255.2.1Pouteus软件调试255.2.2功能调试265.3系统调试275.3.1系统软件调试275.3.2系统软硬件调试275.4误差分析28第六章总结23参考文献24致谢25附录1..第一章前言频率测量是电子学测量中最为基本的测量之一。由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。1.1频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点[1]。1.2频率计发展与应用在我国,单片机已不是一个陌生的名词,它的出现是近代计算机技术的里程碑事件。单片机作为最为典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。单片机已成为电子系统的中最普遍的应用。单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。其中以AT89S52为内核的单片机系列目前在世界上生产量最大,派生产品最多,基本可以满足大多数用户的需要[2]。1.3频率计设计内容利用电源、单片机、分频电路及数码管显示等模块,设计一个简易的频率计能够粗略的测量出被测信号的频率。参数要求如下:1.测量范围10HZ—2MHZ;2.用四位数码管显示测量值;3.能根据输入信号自动切换量程;4.可以测量方波、三角波及正弦波等多种波形;第二章系统总体方案设计2.1测频的原理测频的原理归结成一句话,就是"在单位时间内对被测信号进行计数"。被测信号,通过输入通道的放大器放大后,进入整形器加以整形变为矩形波,并送入主门的输入端[3]。由晶体振荡器产生的基频,按十进制分频得出的分频脉冲,经过基选通门去触发主控电路,再通过主控电路以适当的编码逻辑便得到相应的控制指令,用以控制主门电路选通被测信号所产生的矩形波,至十进制计数电路进行直接计数和显示。若在一定的时间间隔T内累计周期性的重复变化次数N,则频率的表达式为式:〔1图1说明了测频的原理及误差产生的原因。时基信号待测信号丢失〔少计一个脉冲计到N个脉冲多余〔比实际多出了0.x个脉冲图1测频原理在图1中,假设时基信号为1KHZ,则用此法测得的待测信号为1KHZ×5=5KHZ。但从图中可以看出,待测信号应该在5.5KHZ左右,误差约有0.5/5.5≈9.1%。这个误差是比较大的,实际上,测量的脉冲个数的误差会在±1之间。假设所测得的脉冲个数为N,则所测频率的误差最大为δ=1/〔N-1*100%。显然,减小误差的方法,就是增大N。本频率计要求测频误差在1‰以下,则N应大于1000。通过计算,对1KHZ以下的信号用测频法,反应的时间长于或等于10S,。由此可以得出一个初步结论:测频法适合于测高频信号。频率计数器严格地按照公式进行测频[4]。由于数字测量的离散性,被测频率在计数器中所记进的脉冲数可有正一个或负一个脉冲的量化误差,在不计其他误差影响的情况下,测量精度将为:应当指出,测量频率时所产生的误差是由N和T俩个参数所决定的,一方面是单位时间内计数脉冲个数越多时,精度越高,另一方面T越稳定时,精度越高。为了增加单位时间内计数脉冲的个数,一方面可在输入端将被测信号倍频,另一方面可增加T来满足,为了增加T的稳定度,只需提高晶体振荡器的稳定度和分频电路的可靠性就能达到。上述表明,在频率测量时,被测信号频率越高,测量精度越高。2.2总体思路频率计是我们经常会用到的实验仪器之一,频率的测量实际上就是在单位时间内对信号进行计数,计数值就是信号频率。本文介绍了一种基于单片机AT89S52制作的频率计的设计方法,所制作的频率计测量比较高的频率采用外部十分频,测量较低频率值时采用单片机直接计数,不进行外部分频。该频率计实现10HZ~2MHZ的频率测量,而且可以实现量程自动切换功能,四位共阳极动态显示测量结果,可以测量正弦波、三角波及方波等各种波形的频率值。2.3具体模块根据上述系统分析,频率计系统设计共包括五大模块:单片机控制模块、电源模块、放大整形模块、分频模块及显示模块。各模块作用如下:1、单片机控制模块:以AT89S52单片机为控制核心,来完成它待测信号的计数,译码,和显示以及对分频比的控制。利用其内部的定时/计数器完成待测信号周期/频率的测量。单片机AT89S52内部具有2个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。<因为AT89C51所需外围元件少,扩展性强,测试准确度高。>2、电源模块:为整个系统提供合适又稳定的电源,主要为单片机、信号调理电路以及分频电路提供电源,电压要求稳定、噪声小及性价高的电源。3、放大整形模块:放大电路是对待测信号的放大,降低对待测信号幅度的要求。整形电路是对一些不是方波的待测信号转化成方波信号,便于测量。4、分频模块:考虑单片机外部计数,使用12MHz时钟时,最大计数速率为500kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。可用74161进行外部十分频。5、显示模块:显示电路采用四位共阳极数码管动态显示,为了加大数码管的亮度,使用4个PNP三极管进行驱动,便于观测。综合以上频率计系统设计有单片机控制模块、电源模块、放大整形模块、分频模块及显示模块等组成,频率计的总体设计框图如图2所示。图2频率计总体设计框图第三章硬件电路具体设计根据系统设计的要求,频率计实际需要设计的硬件系统主要包括以下几个部分:AT89S52单片机最小系统模块、电源模块、放大整形模块、分频模块及显示模块,下面将分别给予介绍。3.1AT89S52主控制器模块3.1.1AT89S52的介绍8位单片机是MSC-51系列产品升级版[5],有世界著名半导体公司ATMEL在购买MSC-51设计结构后,利用自身优势技术——〔掉电不丢数据闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产品。与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产,推广一批如51F020等高性能单片机。AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。AT89S52引脚如下图3所示。图3AT89S52引脚图3.1.2复位电路及时钟电路复位电路和时钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位〔图4和手动复位〔图5。图4上电复位图5手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能[6]。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12.000M无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。AT89S52单片机最小系统如图6所示。图6单片机最小系统原理图3.1.3引脚功能VCC:电源电压;GND:地;P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写"1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻[7]P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写"1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入和定时器/计数器2的触发输入,P1口功能表1P1口的第二种功能说明表引脚号第二功能P1.0T2<定时器/计数器T2的外部计数输入>,时钟输出P1.1T2EX<定时器/计数器T2的捕捉/重载触发信号和方向控制>P1.5MOSI<在系统编程用>P1.6MISO<在系统编程用>P1.7SCK<在系统编程用>P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写"1”P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写"1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为AT89C51特殊功能〔第二功能使用,P3口功能表2P3口的第二种功能说明表引脚号第二功能P3.0RXD〔串行输入P3.1TXD<串行输出>P3.2〔外部中断0P3.3〔外部中断1P3.4T0<定时器0外部输入>P3.5T1<定时器1外部输入>P3.6<外部数据存储器写选通>P3.7<外部数据存储器写选通>RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR<地址8EH>上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.1.4单片机引脚分配根据系统设计及各模块的分析得出,单片机的引脚分配如表3所示。表3单片机端口分配表模块端口功能显示模块数码管频率值显示LED单位显示分频模块通道选择P1.3清零3.2电源模块3.2.1直流稳压电源的基本原理直流稳压电源一般由电源变压器T、整流、滤波及稳压电路所组成[8],基本框图如图7所示。图7直流稳压电源框图及波形<1>电源变压器T的作用是将220V的交流电压变换成整流滤波电路所需要的交流电压Ui。变压器副边与原边的功率比为P2/P1=n,式中n是变压器的效率。<2>整流电路:整流电路将交流电压Ui变换成脉动的直流电压。再经滤波电路滤除较大的波纹成分,输出波纹较小的直流电压U1。常用的整流滤波电路有全波整流滤波、桥式整流滤波等。图8整流电路〔3滤波电路:各滤波电路C满足 RL-C=〔3~5T/2,式中T为输入交流信号周期,RL为整流滤波电路的等效负载电阻。图9滤波电路<4>稳压电路:常用的稳压电路有两种形式:一是稳压管稳压电路,二是串联型稳压电路。二者的工作原理有所不同。稳压管稳压电路其工作原理是利用稳压管两端的电压稍有变化,会引起其电流有较大变化这一特点,通过调节与稳压管串联的限流电阻上的压降来达到稳定输出电压的目的。它一般适用于负载电流变化较小的场合。串联型稳压电路是利用电压串联负反馈的原理来调节输出电压的。集成稳压电源事实上是串联稳压电源的集成化。3.2.2电源电路设计根据上述介绍设计,电源电路包括变压器、整流电路、滤波电路、稳压电路等模块组成,使用LED进行电源工作状态指示。LM78XX系列三端稳压IC来组成稳压电源所需的外围元件极少[9],电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜,因此使用LM7805稳压芯片进行5V的电源电路设计。具体的5V电源电路如下图10所示。图105V直流电源电路3.3放大整形模块由于输入的信号可以是正弦波,三角波。而后面的闸门或计数电路要求被测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。在整形之前由于不清楚被测信号的强弱的情况。所以在通过整形之前通过放大衰减处理。当输入信号电压幅度较大时,通过输入衰减电路将电压幅度降低。当输入信号电压幅度较小时,前级输入衰减为零时若不能驱动后面的整形电路,则调节输入放大的增益,时被测信号得以放大[10]。根据上述分析,放大电路放大整形电路采用高频晶体管3DG100与74LS00等组成。其中3DG100为NPN型高频小功率三极管,组成放大器将输入频率为fx的周期信号如正弦波、三角波及方波等波形进行放大。与非门74LS00构成施密特触发器,它对放大器的输出波形信号进行整形,使之成为矩形脉冲[11]。具体放大整形电路如图11所示。图11放大整形电路3.4分频设计模块分频电路用于扩展单片机频率测量范围,并实现单片机频率和周期测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。可用74161进行分频。3.4.1分频电路分析本频率计的设计以AT89S51单片机为核心,利用他内部的定时/计数器完成待测信号周期/频率的测量。单片机AT89S51内部具有2个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1〔使用12MHz时钟时,每1μs加1,这样以机器周期为基准可以用来测量时间间隔。在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期〔24个振荡周期,所以最大计数速率为时钟频率的1/24〔使用12MHz时钟时,最大计数速率为500kHz,因此采用74LS161进行外部十分频使测频范围达到2MHz。为了测量提高精度,当被测信号频率值较低时,直接使用单片机计数器计数测得频率值;当被测信号频率值较高时采用外部十分频后再计数测得频率值。这两种情况使用74LS151进行通道选择,由单片机先简单测得被测信号是高频信号还是低频信号,然后根据信号频率值的高低进行通道的相应导通,继而测得相应频率值。3.4.274LS161芯片介绍74LS161是常用的四位二进制可预置的同步加法计数器[12],可以灵活的运用在各种数字电路,以及单片机系统种实现分频器等很多重要的功能。74LS161引脚如图12所示。图1274LS161引脚图时钟CP和四个数据输入端P0~P3,清零/MR,使能CEP,CET,置数PE,数据输出端Q0~Q3,以及进位输出TC<TC=Q0·Q1·Q2·Q3·CET>。表4为74161的功能表。表474161的功能表清零RD预置LD使能EPET时钟CP预置数据输入ABCD输出Q0Q1Q2Q3L××××××××LLLLHL××上升沿ABCDABCDHHL××××××保持HH×L×××××保持HHHH上升沿××××计数其中RD是异步清零端,LD是预置数控制端,A、B、C、D是预置数据输入端,EP和ET是计数使能端,RCO<=ET.QA.QB.QC.QD>是进位输出端,它的设置为多片集成计数器的级联提供了方便。计数过程中,首先加入一清零信号RD=0,使各触发器的状态为0,即计数器清零。RD变为1后,加入一置数信号LD=0,即信号需要维持到下一个时钟脉冲的正跳变到来后。在这个置数信号和时钟脉冲上升的共同作用下,各触发器的输出状态与预置的输入数据相同,这就是预置操作。接着EP=ET=1,在此期间74161一直处于计数状态。一直到EP=0,ET=1,计数器计数状态结束。从74LS161功能表功能表中可以知道,当清零端CR="0",计数器输出Q3、Q2、Q1、Q0立即为全"0",这个时候为异步复位功能。当CR="1"且LD="0"时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。而只有当CR=LD=EP=ET="1"、CP脉冲上升沿作用后,计数器加1。74LS161还有一个进位输出端CO,其逻辑关系是CO=Q0·Q1·Q2·Q3·CET。合理应用计数器的清零功能和置数功能,一片74LS161可以组成16进制以下的任意进制分频器。3.4.374LS151芯片介绍数据选择端〔ABC按二进制译码,以从8个数据〔D0-D7中选取1个所需的数据。只有在选通端STROBE为低电平时才可选择数据。74LS151有互补输出端〔Y、W,Y输出原码,W输出反码[13]。74LS151引脚如图13所示。图1374151管脚图74LS151的功能如下表所示。其中A、B、C

为选择输入端,D0-D7为

数据输入端,STROBE

为选通输入端〔低电平有效,W为反码数据输出端,Y为数据输出端。表574151功能表3.4.4分频电路根据以上分析,采用74LS161和74LS151设计分频电路如图14所示。图15分频电路原理图3.5显示模块显示模块由频率值显示电路和量程转换指示电路组成。频率值显示电路采用四位共阳极数码管动态显示频率计被测数值,使用三极管8550进行驱动,使数码管亮度变亮,便于观察测量。量程转换指示电路由红、黄、绿三个LED分别指示Hz、KHz及MHz档,使读数简单可观。3.5.1数码管介绍常见的数码管由七个条状和一个点状发光二极管管芯制成,叫七段数码管,根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。根据管脚资料,可以判断使用的是何种接口类型[14].两种数码管内部原理如图16所示。图16两种数码管内部原理图LED数码管中各段发光二极管的伏安特性和普通二极管类似,只是正向压降较大,正向电阻也较大。在一定范围内,其正向电流与发光亮度成正比。由于常规的数码管起辉电流只有1~2mA,最大极限电流也只有10~30mA,所以它的输入端在5V电源或高于TTL高电平<3.5V>的电路信号相接时,一定要串加限流电阻,以免损坏器件。3.5.2频率值显示电路数码管电路设计不加三极管驱动时,数码管显示数值看不清,不便于频率值的测量与调试。因此加入三极管8550进行驱动数码管。使用4位数码管进行频率值显示,如果选择共阴极数码管显示,则需要8个三极管进行驱动,而采用共阳极数码管则需要4个三极管驱动,为了节约成本,因此选用共阳极数码管进行动态显示,具体数码管设计电路如图17所示。图17数码管显示电路3.5.3档位转换指示电路根据设计要求,采用红、黄、绿三个LED分别指示Hz、KHz及MHz档,根据被测信号的频率值大小,可以自动切换量程单位,无需手动切换,便于测量和读数,简单方便。具体设计的档位转换LED指示电路如图18所示。图18LED档位指示电路第四章系统的软件设计系统软件设计主要采用模块化设计,叙述了各个模块的程序流程图,并介绍了软件Keil和Proteus的使用方法和调试仿真。4.1软件模块设计系统软件设计采用模块化设计方法。整个系统由初始化模块,信号频率测量模块,自动量程转换和显示模块等模块组成。系统软件流程如图19所示。频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针〔SP、工作寄存器、中断控制和定时/计数器的工作方式。定时/计数器的工作首先被设置为计数器方式,即用来测量信号频率[15]。图19系统软件流程总图首先定时/计数器的计数寄存器清0,运行控制位TR置1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值〔即测量频率的高量程开始测量,计数闸门结束时TR清0,停止计数。计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。判断该数的最高位,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。定时/计数器的工作被设置为定时器方式,定时/计数器的计数寄存器清0,在判断待测信号的上跳沿到来后,运行控制位TR置为1,以单片机工作周期为单位进行计数,直至信号的下跳沿到来,运行控制位TR清0,停止计数。16位定时/计数器的最高计数值为65535,当待测信号的频率较低时,定时/计数器可以对被测信号直接计数,当被测信号的频率较高时,先由硬件十分频后再有定时/计数器对被测信号计数,加大测量的精度和范围。4.2中断服务子程序T0中断服务子程序流程如图20所示。测频时,定时器T0工作在定时方式,每次定时50mS,则T0中断20次正好为1秒,即T0用来产生标准秒信号,定时器T0用作计数器,对待测信号计数,每秒钟的开始启动T0,每秒钟的结束关闭T0,则定时器T0之值乘以分频系数就为待测信号的频率。图20T0中断服务子程序定时/计数器T1工作在计数方式,对信号进行计数,计数器1中断流程图如图21所示。图21计数器1中断服务子程序4.3显示子程序显示子程序将存放在显示缓冲区的频率或周期值送往数码管上显示出来,由于所有4位数码管的8根段选线并联在一起由单片机的P2口控制,因此,在每一瞬间4位数码管会显示相同的字符,要想每位显示不同的字符就必须采用扫描方法轮流点亮各位数码管,即在每一瞬间只点亮某一位显示字符,在此瞬间,段选控制口P2输出相应字符。逐位轮流点亮各个数码管,每位保持1mS,在10mS~20mS之内再点亮一次,重复不止,利用人的视角暂留,好像4位数码管同时点亮。数码管显示子程序流程如图22所示。图22显示子程序流程图4.4量程档自动转换子程序使用定时方法实现频率测量时,外部的待测信号通过频率计的预处理电路变成宽度等于待测信号周期的方波,该方波同样加至定时/计数器的输入脚〔P3.5。工作高电平是否加至定时/计数器的输入脚;当判定高电平加至定时/计数器的输入脚,运行控制位TR置1,启动定时/计数器对单片机的机器周期的计数,同时检测方波高电平是否结束;当判定高电平结束时TR清0,停止计数,然后从计数寄存器读出测量数据。由显示电路显示测量结果,根据测量结果判断,进行频率计比较后,进行档位的自动切换,具体档位自动切换流程图如图23所示。图23量程档自动转换子程序4.5应用软件简介此设计需要在Keil软件平台上完成程序的调试,在Proteus软件平台上完成仿真显示。因此介绍如何使用Keil和Proteus进行软件的仿真。4.5.1Keil简介Keil软件是目前最流行开发系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境〔uVision将这些部份组合在一起。而Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象[16]。〔1建立工程文件点击"Project->Newproject"菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字,点击"保存"按钮,出现第二个对话框,按要求选择目标器件片。建立新文件并增加到组。分别设置"target1”中的"T〔2汇编,调试系统程序Keil单片机模拟调试软件内集成了一个文本编辑器,用该文本编辑器可以编辑源程序。在集成开发环境中选择菜单"File→New..."、单击对应的工具按钮或者快捷键Ctrl+N将打开一个新的文本编辑窗口,完成汇编语言源文件的输入,并且完成源程序向当前工程的添加。然后在集成开发环境中选择菜单"File→SaveAs..."可以完成文件的第一次存储。注意,汇编语言源文件的扩展名应该是"ASM",它应该与工程文件存储在同一文件夹之内。在完成文件的第一次存储以后,当对汇编语言源文件又进行了修改,再次存储文件则应该选择菜单"File→Save"、单击对应的工具按钮或者快捷键Ctrl+S实现文件的保存。接着的工作需要把汇编语言源文件加入工程之中。选择工程管理器窗口的子目"SourceGroup1”,再单击鼠标右键打开快捷菜单。在快捷菜单中选择"AddFiletoGroup‘SourceGroup1’",加入文件对话框被打开。在这个对话框的"查找范围〔I"下拉列表框中选择存储汇编语言源文件的文件夹,在"文件类型〔T"下拉列表框选择"AsmSourcefile〔*.a*;*.src",这时存储的汇编语言源文件将显示出来。双击要加入的文件名或者选择要加入的文件名再单击"Add"按钮即可完成把汇编语言源文件加入工程。文件加入以后,加入文件对话框并不消失,更多的文件也可以利用它加入工程。如果不需要加入其它文件,单击"Close"按钮可以关闭加入文件对话框。这时工程管理窗口的文件选项卡中子目录"SourceGroup1”〔3编译源程序,出现错误时,返回上一级对错误更改后重新编译,直到没有错误为止。4.5.2protues简介protues是Labcenter公司出品的电路分析、实物仿真系统,而KEIL是目前世界上最好的51单片机汇编和C语言的集成开发环境。他支持汇编和C的混合编程,同时具备强大的软件仿真和硬件仿真功能[17]。Protues能够很方便的和KEIL、MatlabIDE等编译模拟软件结合。Proteus提供了大量的元件库有RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件,它可以仿真单片机和周边设备,可以仿真51系列、AVR,PIC等常用的MCU,与keil和MPLAB不同的是它还提供了周边设备的仿真,只要给出电路图就可以仿真。这里我将keil和Protues两个软件的快速集成起来使用。〔1首先将keil和Protues两个软件安装好。〔2然后在C:\ProgramFiles\LabcenterEletronics\Protues6Professional\MODELS<我的Protues是安装C盘里面的>目录下的VDM51.DLL动态连接库文件复制到C:KEIL\C51\BIN目录下面〔我的keil也安装在C盘这个文件将在keil的debug设置时用到。〔3打开protues软件,新建一文件将硬件原理图绘入图中。〔4将KEIL生成的HEX文件下载入单片机中,点击"开始"进行仿真。〔5在keil中进行debug,同时在proteus中查看直观的结果〔如LCD显示⋯⋯。这样就可以像使用仿真器一样调试程序。利用Proteus与Keil整合进行实验,具有比较明显的优势,当然其存在的缺点也是有的。利用仿真实验可以做全部的软件实验和极大多数的硬件系统,虚拟仿真实验室,因极少硬件投入、所以经济优势明显,不仅可以弥补实验仪器和元器件缺乏带来的不足,而且排除了原材料消耗和仪器损坏等因素。第五章频率计的系统调试频率计的系统调试包括系统软、硬件联合调试。硬件调试包括电源模块、整形模块、分频模块等模块,软件调试就是通过修改程序,使频率计功能完善,提高频率计的测量精度。使用软件仿真,调试仿真结果,同时使用数字万用表和示波器测试输出电压值和输出波形,调试出正确的软硬件电路。5.1硬件调试5.1.1电源模块调试电源电路包括变压器、整流电路、滤波电路、稳压电路等模块组成,使用LED进行电源工作状态指示。搭建好硬件电路,检查线路连接正确,通电,LED灯亮,LM7805芯片不发烫,并用数字万用表测得电压为5.01V,证明电路基本正常工作。具体实物图如图24所示。图245V电源实物图同时,使用数字示波器测量输出电压波形,看有无较大的纹波,经测量观察,基本上不存在纹波,没有太大的干扰,电压电路工作正常,示波器测的输出波形如图24所示。图245V输出波形5.1.2整形模块调试整形电路采用与非门74LS00构成施密特触发器,它对正弦波、三角波等各种波形信号进行整形,使之成为矩形脉冲。整形电路在Multisim10中进行电路的仿真与调试,在Multisim10绘制的整形电路如图25所示。选择虚拟函数发生器输入不同的信号,同时使用数字示波器测的输出波形,经测试施密特触发器可以把10Hz-2MHz的正弦波等波形整形为方波信号,仿真结果如图26所示。图25整形电路仿真图26整形电路输出波形仿真搭建整形电路模块,测试电路基本正确,使用数字示波器测得输入输出波形如图27所示。图27整形电路实际输出波形5.1.3分频模块调试为了达到10Hz-2MHz的频率范围,使用外部分频,搭建分频电路,测试电路基本正确,选择函数发生器输入2MHz以下不同频率的的方波信号,同时使用数字示波器测的输出波形,经观察分频电路可以把2MHz以下不同频率的方波波形进行十分频,示波器测得输入输出波形如图28所示。图28分频电路实际输出波形5.2软件调试5.2.1Pouteus软件调试根据系统设计要求,进行Keil和Proteus系统仿真,不断调试程序,直到符合功能要求。Proteus总体仿真图29所示。图29频率计整体仿真图5.2.2功能调试当测量频率值小于1KHz以下时,数码管显示频率值,并红色LED灯亮,作为Hz档单位指示。例如输入信号123Hz,仿真显示如图30所示。图30HZ档频率仿真当测量频率值大于且等于1KHz并小于1MHz时,数码管显示频率值,并黄色LED灯亮,作为KHz档单位指示。例如输入信号456KHz,仿真显示如图31所示。图31KHZ档频率仿真当测量频率值大于1MHz时,数码管显示频率值,并绿色LED灯亮,作为MHz档单位指示。例如输入信号1.89MHz,仿真显示如图32所示。图32MHZ档频率仿真经上述测试,基本功能都以实现,可以测出波形频率值,并可以自动切换量程单位,符合要求。5.3系统调试5.3.1系统软件调试经软件的调试—修改—再调试,如此反复,排除各种故障最终基本完成了设计所要求的任务。由单片机内部定时器/计数器构成基本测量电路,外加整形和分频电路,由系统软件设计可以测出1HZ-5MHZ的量程范围,可以实现量程档的自动转换,使用的动态显示测量时会出现闪烁现象,但显示数值准确,稳定时显示不闪烁。软件仿真测量数据如下表6-8所示。表6:HZ档的数据记录表待测值〔Hz1050300450800888999测量值〔Hz10503004508008881000表7:KHZ档的数据记录表待测值〔KHz1500055000125000225000425000825000925000测量值〔KHz1555125225425825925表8:MHZ档的数据记录表待测信〔MHz1.1231.5581.7892.2343.3454.4565.567测量值〔MHz1.1221.5581.7882.2343.3464.4585.5685.3.2系统软硬件调试软件系统测试只能测试方波信号,外加硬件整形电路,可以测试正弦波、三角波等各种波形的频率值,把各模块组合在一起,做成完整的频率计,实物图如图33所示。经过不断的软硬件联合调试,修改程序和硬件,最终符合设计功能要求。图33频率计实物图为了衡量这次设计的频率计的工作情况和测量精度,我们对系统进行了调试。用这次设计的频率计对信号进行了测量,使用函数发生器输出各种波形,由实物频率计测得频率,记录数据。实际测得频率范围没有仿真结果那么高,只能稍微超过2MHz。实际记录数据如下表9-11所示。表9:HZ档的数据记录表待测值〔Hz10.328.9268.7324.8490.6678.3978.8测量值〔Hz1029269325491678979表10:KHZ档的数据记录表待测值〔KHz15.2633.2860.12161.75308.8470.7912.1测量值〔KHz15.333.360.2162.0309.0470.9912.4表11:MHZ档的数据记录表待测信〔MHz1.1231.3181.7271.8051.9562.0122.889测量值〔MHz1.1231.3181.7281.8061.9572.013测不出5.4误差分析从记录的数据可以看出,系统软件仿真误差很小,在10Hz-2MHz范围内测量出来的频率基本上就是输入信号的频率,在超出这个范围后,才出现很小的误差。但是在硬件调试中,可能是由于标准元器件本身误差,如随着时间的延长,其值相比出厂时产生误差;造成测量结果没有软件仿真精确。同时手工焊接单片机最小系统、分频整形电路等也会带来一定的干扰,造成信号的失真,从而导致测量精度下降,测量范围有所缩小,但是可以看出,误差在允许范围内,所设计的电路基本符合要求。..第六章总结毕业设计已经结束,通过这次设计,我受益匪浅。毕业设计是一次综合性的实践,它将各种知识结合到一起综合运用到实践上来扩展、弥补、串联所学的知识。通过本次毕业设计我得到了很多收获。首先,了解了单片机的基本知识和在控制领域的作用和地位。其次掌握了C语言的编写程序,学会了使用PROTUTES和KEIL的仿真来实现,同时掌握了如何收集、查阅、应用文献资料,如何根据实际需要有选择的阅读书籍和正确确定系统所要使用的元器件的类型。再次,在精神方面锻炼了思想、磨练了意志。面对存在的困难首先分析问题根据目的要求确定可实现的部分,定出那不准的方面找同学和老师讨论研究,再完善、再修改、再发现问题、再解决培养了自己的耐心、恒心及遇事不乱的精神。总之,我明白了理论和实践之间存在的距离只有靠不断的思考不断的动手才能将所学的知识真正运用到实践上来。在毕业设计中我的很多方面的能力都得到了提高,尤其在单片机软件编程方面让我感触颇深。我个人认为软件设计是个即灵活又细腻的工作,它要求耐心和细心去不断完善,同时还需要有良好的逻辑思维能力。通过这次毕业设计,我分析问题和解决问题的能力有所提高,也巩固了所学的知识,加深了对理论知识的理解,更重要的是锻炼自己的独立性,为我今后的工作和学习打下坚实的基础。..参考文献[1]邹大挺.频率计的设计[J].《电子产品世界》出版社.2006.第193期.4-7.[2]雷玉堂.光电检测技术[M].中国计量出版社.1995.[3]季建华.智能仪表原理[M].XX教育出版社.2004.[4]王永生.电子测量学[M].西北工业大学出版社.2003.[5]李华.单片机实用接口技术[M].航空航天大学出版社.2006.[6]张鹏.王雪梅.单片机原理与应用实例教程[M].海军出版社.2007.[7]赫建国等.单片机在电子电路设计中的应用[M].清华大学出版社.2005.[8]康华光.电子技术基础〔模拟部分[M].高等教育出版社.1998.[9]LM7805.html.LM7805英文参考手册[Z][10]谢自美.电子线路设计与实验[M].华中科技大学出版社.2006.[11]74LS00.html.74LS00英文参考手册[Z].[12]74LS161.html.74LS161英文参考手册[Z].[13]74LS151.html.74LS151英文参考手册[Z].[14]康华光.电子技术基础〔数字部分[M].高等教育出版社.1998.[15]赖麒文.8051单片机C语言软件设计的艺术[M].科学出版社.2004.[16]徐波.Keil的使用技巧[J].《电子产品世界》出版社.2006.第224期.6-9.[17]吴清平.单片机原理与应用实例教程[M].海军出版社.2008.致谢在论文完成之际,我的心情万分激动。从论文的选题、资料的收集到论文的撰写编排整个过程中,我得到了许多的热情帮助。我首先要感XX老师,本课题在选题及研究过程中得到老师的悉心指导。XX老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。姚老师花费大量了的时间和心血在我的论文上,才有我今天的定稿。还有在我大学四悉心教导我的老师们,是你们教会我很多有用的知识,特别是教会了我解决问题思考问题的方式和习惯,我在做论文的时候才能有自己的思想和规划,论文工作才有了目标和方向。在此我代表大家向所有老师表示最诚挚的谢意。最后,感谢各位评审老师在百忙中抽出时间对论文进行审稿、参加答辩,并对加答辩会的老师和同学表示谢意。XX20XX5月于XX学院Z如遇到技术难题,请联系我!!..附录附件1:频率计系统总体原理图附件2:电源实物图附件3:频率计实物图附件3:频率计源程序#include<reg52.h>#define Segment P2#defineslP0sbitaddr0=P1^0;//定义数据端口地址,000时16分频,100不分频sbitaddr1=P1^1;sbitaddr2=P1^2;sbitclear=P1^3;//计数器清零sbitledM=P1^4;//档位led显示sbitledK=P1^5;sbitledB=P1^6;unsignedcharcnt;//定时1s计数unsignedchard[4];//对应数码管的各位unsignedcharlevel;//档位unsignedinttN;//不同档位计时值unsignedintfCnt;//脉冲下降沿次数unsignedintregCnt;//脉冲次数暂存unsignedintpCnt;//频率显示unsignedcharNum[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voidDelay<unsigned int DelayTime>{ while<DelayTime-->;}voiddisp<>{ if<level==0>//B位档 { d[3]=0; d[2]=pCnt/100; d[1]=<pCnt%100>/10; d[0]=pCnt%10; sl=0xfe;Delay<1>;Segment=Num[d[3]];Delay<300>; sl=0xfd;Delay<1>;Segment=Num[d[2]];Delay<300>; sl=0xfb;Delay<1>;Segment=Num[d[1]];Delay<300>; sl=0xf7;Delay<1>;Segment=Num[d[0]];Delay<300>; } elseif<level==1> { d[3]=pCnt/1000; d[2]=<pCnt%1000>/100; d[1]=<pCnt%100>/10; d[0]=pCnt%10; sl=0xfe;Delay<1>;Segment=Num[d[3]];Delay<300>; sl=0xfd;Delay<1>;Segment=Num[d[2]];Delay<300>; sl=0xfb;Delay<1>;Segment=Num[d[1]]+0x80;Delay<300>;//带小数点 sl=0xf7;Delay<1>;Segment=Num[d[0]];Delay<300>; } elseif<level==2> { d[3]=pCnt/1000; d[2]=<pCnt%1000>/100; d[1]=<pCnt%100>/10; d[0]=pCnt%10; sl=0xfe;Delay<1>;Segment=Num[d[3]]+0x80;Delay<300>; sl=0xfd;Delay<1>;Segment=Num[d[2]];Delay<300>;//带小数点 sl=0xfb;Delay<1>;Segment=Num[d[1]];Delay<300>; sl=0xf7;Delay<1>;Segment=Num[d[0]];Delay<300>; } else { d[3]=0; d[2]=0; d[1]=0; d[0]=0; }}voidintial<>{ clear=1;//分频器初始化 addr0=0; addr1=0; addr2=1; tN=20;

温馨提示

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

评论

0/150

提交评论