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

下载本文档

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

文档简介

多功能数字频率计的设计摘要:随着电子信息产业的不断发展,信号频率等的测量在科学研究和实际应用中的作用日益重要。数字频率计是直接用十进制数字显示被测信号频率的一种测量装置,此设计应用单片机AT89C52的数学运算和控制功能,首先通过整形放大模块对待测信号进行预处理,以满足单片机输入要求,然后送入单片机的定时器进行软件计数,获得频率值,最终通过LCD显示模块显示出频率。同时还利用ADC0804进行对源信号模数转换,得到信号的最大值。此设计通过在keil[1]环境中用c语言[2]编程,并在proteus中对电路进行了仿真测试,仿真测试通过后进行电路焊接调试,电路结构较简单,成本低,测量精度高,适合用于多种场合。关键词:单片机;频率计;模数转换DesignofTheMultifunctionalDigitalFrequencyMeterAbstract:Withtheunceasingdevelopmentofelectronicinformationindustry,themeasurementofthesignalfrequencyisplayinganincreasinglyimportantroleinscientificresearchandpracticalapplications.Digitalfrequencymeterisameasuringdevicewhichdirectlyusedecimaldigitaltodisplaysignalfrequency,thisdesignappliesthearithmeticandcontrolfunctionsofSCMAT89C52,atfirst,throughtheshapingandamplificationmoduletopreprocessingthetestsignalsothatitcanmeettheSCMinputrequirements,andtheninputtheMCUtimertodothesoftwarecountingandobtainfrequencyvalue,finally,throughtheLCDdisplaymoduleshowsthefrequency.Atthesametime,theanalogsourcesignalsareconvertedintodigitalsignalsusingADC0804toobtainthemaximumvalueofthesignal.ThisdesignisprogrammedthroughtheKeilenvironmentusingClanguage,andinProteusforcircuitsimulationtest,thenweldinganddebuggingcircuit,thisdesignhastheadvantagesofsimplestructure,lowcost,highmeasurementaccuracy,soitissuitableforavarietyofoccasions.Keywords:singlechipmicrocomputer;frequencymeter;ADC1引言数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能是测量正弦信号、方波信号等物理量的频率,在进行模拟、数字电路的设计、安装、调试过程中、由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率计在教学、科研、测量仪器、工业控制等方面都有较广泛的应用,频率的测量也就显得更为重要,传统的数字频率计多采用组合电路和时序电路等硬件电路组成,产品体积大,运行速度慢,测量精度低。因此,随着对测量精度要求的提高,传统的设计方法已不能满足要求,随着单片机技术的发展与成熟,以单片机为控制核心,设计一个多功能数字频率计,逐渐显示出其优越性。本论文以单片机为核心,设计的多功能数字频率计,电路结构简单,成本低,测量精度高,测量范围也得到极大的提高。频率计的设计原理实际上是测量单位时间内的脉冲数。这种方法免去了实测以前的预测,同时节省了划分频率的时间,克服了原来高频率采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于1秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的时间隔就越长。闸门时间越短,测得频率值刷新据越快,但测得的频率精度就受影响。本论文的任务就是设计一个基于单片机技术的多功能数字频率计,主要介绍了放大整形电路,模数转换电路,控制电路,显示电路等模块的设计原理[3,12],以及测频的基本方法,测量对象可以使方波,三角波正弦波等,通过proteus软件[4]进行仿真后,最终制作为成品。2系统总体设计方案设计2.1频率测量方法概述频率的测量方法很多,比较常用的有直读法、比较法、电容充放电式计数法、电子计数法[5]。其中,电子计数式测量频率具有精度高、测量范围宽、显示醒目直观、测量迅速,以及便于实现测量过程自动化等一系列优点。常用的有以下几种方法:脉冲数定时测频法(M法)此法是记录在确定时间TC内待测信号的脉冲个数M0,则待测频率为:(1)显然,时间TC为准确值,测量的精度主要取决于计数MX的误差。其特点在于:测量方法简单,测量精度与待测信号频率和闸门时间有关。所以在本设计中测频率采用这种方法。2.脉冲周期测频法(T法)此法是在待测信号的一个周期内,TX记录标准频率信号变化次数M0。这种方法测出的频率是:(2)此法的特点是低频检测时精度高,所以在周期测量中采用了这种方法。3.脉冲数倍频测频法(AM法)(3)此法是为克服M法在低频测量时精度不高的缺陷发展起来的。通过A倍频,把待测信号频率放大A倍,以提高测量精度。其待测频率为:其特点是待测信号脉冲间隔减小,间隔误差降低;精度较高,但控制电路较复杂。4.脉冲数分频测频法(A/T法)此法是为了提高T法高频测量时的精度形成的。由于T法测量时要求待测信号的周期不能太短,所以可通过A分频使待测信号的周期扩大A倍,所测频率为:(4)其特点是高频测量精度比T法高A倍;但控制电路也较复杂,而且课题要求所测的频率较低,所以无需用该法。5.脉冲平均周期测频法(M/T法)此法是在闸门时间TC内,同时用两个计数器分别记录待测信号的脉冲数MX和标准信号的脉冲数M0。若标准信号的频率为F0,则待测信号频率为:(5)M/T法在测高频时精度较高;但在测低频时精度较低,因为课题要求所测频率较低,所以没有选择M/T法来完成测量任务。6.多周期同步测频法此法是由闸门时间TC与同步门控时间TD共同控制计数器计数的一种测量方法,待测信号频率与M/T法相同。此法的优点是,闸门时间与被测信号同步,消除了对被测信号计数产生的个字误差,测量精度大大提高,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。因为所要求频率较低所以也无需用该法。2.2整体方案比较方案一:本方案主要以数字器件为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分。其原理框图如图1所示。方案二:本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描法把测出的数据送到数字显示电路显示。其原理框图如2所示。逻辑控制逻辑控制时基电路放大整形电路闸门电路计数器锁存器译码显示器图1方案一原理图信号放信号放大信号整形单片机AT89C52电路LCD显示电路图2方案二原理图2.2方案论证方案一:本方案使用大量的数字器件,被测量信号放大整形电路变成计数器所要求的脉冲信号,其频率于被测信号的频率相同。同时时基电路提供标准时间基准信号,其高电平持续时间1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号结束闸门关闭,停止计数。若在闸门时间1s内计数器计得的脉冲个数为N,则被测信号频率FX=NHZ。逻辑控制电路的作用有两个:一是产生锁存脉冲,是显示器上的数字稳定;二是产生清零脉冲,使计数器每次测量从零开始计数。方案二:本方案主要以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测得正弦波或者三角波为方波。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动测量频率,并把测出的频率数据送到显示电路显示。2.3方案选择比较以上两种方案可以知道,方案二的核心是单片机,使用的元器件少,原理电路简单,调试简单只要改变程序就能实现不同的功能。与方案二相比较方案一则使用了大量的数字元器件,原理电路复杂,硬件调试麻烦。如要测量高频的信号还需要加上分频电路,价格相对高了点。基于上述,所以选择了方案二。3系统硬件设计本设计主要元器件为AT89C52,由它完成对待测信号频率的计数和结果显示等功能,外部还要有信号预处理电路,显示电路等。可以分为以下几个模块:放大整形模块,模数转换模块,单片机系统,LCD显示模块。3.1单片机控制模块3.1.1AT89C52介绍AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。其引脚说明如下(引脚分布如图3):VCC:电源电压。GND:接地。P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数图3AT89C52引脚分布图据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可以分作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),见表1。表1P1.0和P1.1的第二功能引脚号功能特性P1.0T2(时钟输出)P1.1T2EX(定时/计数器2)FLASH编程和程序校验期间,P1接收低8位地址。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。FLASH编程或校验时,P2亦接收高位地址和一些控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高,并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2。表2P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT2(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器/计数器0)P3.5T1(定时器/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器都选通)P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反向放大器及内部时钟发生器的输入端。XTAL2:振荡器反向放大器的输出端。3.1.2单片机晶振时序电路XLAT1CC晶振30PFXLAT1CC晶振30PF30PFXLAT2XLAT1AT89C52和XTAL2引脚上跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,构成单片机的时钟电路。晶振可以在1.2MHz~12MHz之间选用,电容C1、C2可以在20pF~100pF之间选择,它的主要作用是帮助振荡器起振。其值的大小对振荡器频率有微调作用,典型值为C1=C2=30PF。外部时钟方式使用外部振荡脉冲信号由XTAL2端输入,对外部振荡脉冲信号没有特殊要求,其主要在整个单片机系统已有时钟源和多片单片机同时工作取得时钟上的同步时应用。因此,本系统用了内部方式的时钟电路,晶振选择12MHz,电容值为30PF。3.1.3单片机复位电路AT89C52的复位输入引脚RST(即RESET)为它提供了初始化的手段。有了它可以使程序从指定处开始执行,即从程序存储器中的0000H地址单元开始执行程序。在89C52的时钟电路工作后,只要在RET引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。只要RET保持高电平,89C52循环复位。只有当RET由高电平变成低电平以后,89C52才从0000H地址开始执行程序。单片机的复位电路通常采用上电复位和开关复位的两种方式[10]。本设计采用开关复位电路,如图5所示。RSTRSTAT89C52+5VCR7R8S图5单片机复位电路3.2信号预处理模块信号预处理电路如图6所示,它由反相比例放大电路[5]和整形电路构成。R2R2——+LM32474LS14uiR1R3A1A2uouo1VccR4图6信号预处理电路图第一级反相比例放大电路,放大器的放大能力实现了对小信号的测量,运算放大器采用的是LM324[6],单电源5V供电。其中,R1=100,R2=300,R3=100,R4=1K,Vcc=5V。其输入输出关系为:+(6)第二级采用带施密特触发器的反相器74LS14[7],它可以用于把放大器的输出信号变换成TTL电平的矩形波,还可以将任意周期性脉冲信号整形为矩形波,从而便于单片机计数。在第二级电路中,输入与输出的关系如图7所示。ttVT+VT-tuo1uo00图7用74LS14实现的波形变换3.3模数转换模块3.3.1ADC0804基本技术所谓A/D转换器就是模拟/数字转换器(ADC),是将输入的模拟信号转换成数字信号,信号输入端可以是传感器或转换器的输出,而ADC的数字信号也可能提高给微处理器,以便广泛应用。1)ADC0804的规格:8位COMS依次逼近型的A/D转换器.三态锁定输出存取时间:135US分辨率:8位转换时间:100US图8ADC0804引脚分布总误差:正负1LSB工作温度:ADC0804LCN---0~70度2)ADC0804引脚说明(引脚分布如图8):/CS:片选信号。低电平有效,高电平时芯片不工作。/RD:外部读取转换结果的控制输出信号。/RD为HI时,DB0~DB7处理高阻抗;/RD为LO时,数字数据才会输出。/WR:用来启动转换的控制输入,相当于ADC的转换开始(/CS=0时),当/WR由HI变为LO时,转换器被清除;当/WR回到HI时,转换正式开始。CLKIN,CLKR:时钟输入或接振荡无件(R,C)频率约限制在100KHZ~1460KHZ,如果使用RC电路则其振荡频率为1/(1.1RC)/INTR:转换结束输出信号。ADC0804完成一次A/D转换后,此引脚输出一个低脉冲,对单片机可以称为中断触发信号。VIN(+)VIN(-):差动模拟电压输入.输入单端正电压时,VIN(-)接地:而差动输入时,直接加入VIN(+)VIN(-).AGND,DGND:模拟信号以及数字信号的接地.VREF:辅助参考电压.DB0~DB7:8位的数字输出.VCC:电源供应以及作为电路的参考电压3)ADC0804工作原理模数转换器ADC0804的工作分为三个过程:复位中断触发信号信号中断表明ADC0804转换已经结束,它提示单片机随时可以读取转换结果,是ADC0804的一个输出信号。一般情况下,启动A/D转换前应该复位这个信号,以等待新的转换完成后ADC0804发出新的信号,这样才可以读到新的转换结果。复位信号的时序如图9中的A,在实现片选的前提下,使用一个读信号的下降沿就可以复位信号。图9ADC0804的A/D转换时序启动ADC0804的A/D转换ADC0804中的A/D转换器在满足一定条件时开始一个转换过程,这个条件就是:在实现片选的前提下,INTR引脚上出现的一个上升沿。启动A/D转换的时序如图9中的B,实现片选以后,使用一个写信号就可以启动一个转换过程。读取转换结果在A/D转换结束以后,ADC0804的INTR引脚将给出一个低脉冲,如果把这个引脚直接连接到单片机的外部中断引脚,这个低脉冲将引起单片机中断,单片机可以在中断处理程序中读取ADC0804的转换结果。3.3.2模数转换模块结构模数转换电路主要器件为ADC0804[14],它与单片机连接方式如图10所示。在该设计中,ADC0804的数据输出线与AT89C52的数据总线直接相连,AT89C52的RD,WR,INTR直接连到ADC0804,由于用P3产生片选信号,无需外加地址译码器,当AT89C52向ADC0804发送信号时,只要虚拟一个系统不占用的数据存储器地址即可。图10单片机与ADC0804连接方式3.4显示电路模块3.4.11602基本技术1)、主要功能A、40通道点阵LCD驱动;B、可选择当作行驱动或列驱动;C、输入/输出信号:输出,能产生20×2个LCD驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1∽V6);D、通过单片机控制将所测的频率信号读数显示出来。、引脚和指令功能2.1)模块引脚功能表表4模块引脚功能表引线号符号名称功能1Vss接地0V2VDD电路电源5V±10%3VEE液晶驱动电压保证VDD-VEE=4.5∽5V电压差4RS寄存器选择信号H:数据寄存器L:指令寄存器5R/W读/写信号H:读L:写6E片选信号下降沿触发,锁存数据7-14DB0-DB7数据线数据传输2.2)寄存器选择功能表表5寄存器选择功能表RSR/W操作00指令寄存器(IR)写入01忙标志和地址计数器读出10数据寄存器(DR)写入11数据寄存器读出(注:忙标志为"1"时,表明正在进行内部操作,此时不能输入指令或数据,要等内部操作结束,即忙标志为"0"时。)2.3)指令功能1602液晶模块内部的控制器共有11条控制指令,功能如下:格式:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据、显示位与DDRAM地址的对应关系表6显示位与DDRAM地址的对应关系显示位序号12345………………40DDRAM地址(HEX)第一行0001020304..…………..27第二行4041424344……………..673.1.2显示电路结构显示电路主要器件为1602ALCD[15],单片机与1602ALCD的连接方法如下图11所示。1602ALCD采用标准的16脚接口,本设计具体接法如下:第1脚:VSS为地电源(图中未画出)。第2脚:VDD接5V正电源(图中未画出)。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,本设计使用时通过一个10K的电位器调整其对比度(图中未画出)。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15~16脚:空脚(图中未画出)。图11单片机与1602ALCD连接方式4系统软件设计系统软件方面主要采用模块化设计,整个系统由初始化模块,信号频率测量模块,电压测量模块,显示模块等组成,并叙述了各个模块的程序流程图,最后通过软件Keil和Proteus对电路进行了仿真。4.1初始化设置基于测量频率的任务,程序包括定时器T0、T1初始化,主要是对特殊功能寄存器TMOD和TCON的相应位进行控制字设置,并将计数初值送入定时器中。工作方式寄存器TMOD工作方式寄存器TMOD用于选择定时器/计数器的工作模式和工作方式,它的字节地址为89H,不能进行位寻址,其格式如表7所示。表7TMOD寄存器格式D7——D6——D6—D5D4D3——D2——D2D1D0GATEC/TM1M0GATEC/TM1M08位分为两组,高4位控制T1,低4位控制T0。M1、M0位:定时器的工作方式的选择位,对应关系如表8所示。表8定时器的工作方式M1M0功能说明00方式0,为13位的定时器/计数器01方式1,为16位的定时器/计数器10方式2为常数自动重新装入的8位定时器/计数器11仅适用于T0,分三个8位计数器,对T1停止计数C/位:C/=0为定时器方式,采用晶振脉冲的12分频信号作为计数器的计数信号,亦即对机器周期进行计数。GATE位:GATE位为1时,定时器/计数器的计数受到外部引脚输入电平的控制;GATE位为0时,定时器/计数器的运行不受外部输入引脚的控制。方式1为16位的定时器/计数器,其定时或计数范围较大,所以采用方式1。定时器/计数器控制寄存器TCON字节地址为88H,位地址为88H-8FH,TCON的格式如表9所示:表9TCON寄存器格式D7D6D5D4D3D2D1D0TF1TR1TF0IR0IE1IT1IE0IT0低4位与外部中断有关,高4位的功能如下:TF1和TF0分别为T1、T0计数溢出标志位,当计数器计数溢出时,该位置“1”。使用查询方式时,此位作为状态位供CPU查询,但应当注意的是在查询该位有效后应以软件方法及时将该位清零。使用中断方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清零。TR1、TR0:计数运行控制位,TR1(或TR0)=1,是启动定时器/计数器工作的必要条件,还与GATE位的状态有关。TR1(或TR0)=0,停止定时器/计数器工作,该位可由软件置1或清0。本系统中,T1工作于定时模式,T0工作于计数模式。所以TMOD控制字为15H。4.2测频子程序首先,系统置P1.3、P1.4为00,即选通测量频率时的输入信号,再对定时器/计数器的TMOD、TCON,以及定时器T1、计数器T0初值进行设置。在T1定时的1S内,T0连续计数,直到1S时间到,关定时/计数器,读出TH0、TL0的值。该程序流程图如图13所示。选通输入选通输入置定时器控制方式定时时间到NY关定时,、计数器读TH0、TL0的值开始返回图13频率测量程序流程图4.3电压测量子程序本试验的软件需要实现一下几个步骤:首先,控制ADC0804芯片进行正确采样,读取采样结果。然后对采样值进行运算变换,换算出实际的滑动变阻器输入电压值。最后将该电压值通过八段数码管显示出来,从而实现一个简易的数字电压测量表功能。电压子程序的流程图如图14所示。4.4显示子程序显示子程序将存放在显示缓冲区的频率值送往LCD1602A上显示出来,显示子程序流程如图15所示。用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,需利用内部复位电路进行初始化,下面指令是在初始化过程中执行的。清屏(DISPLAYCLEAR);功能设置(FUNCTIONSET);DL=1:8Bit接口数据;N=0:1行显示;F=0:5×7dot字形;显示开/关控制(DISPLAYON/OFFCONTROL)D=0:显示关;C=0:光标关;B=0:消隐关输入方式设置(ENTRYMODESET)I/D=1:(增量):S=0:无移位开始开始初始化启动启动ADC0804开始延时LCD延时LCD初始化读取数据读取数据延时数据显示数据显示运算变换数据显示图14电压测量流程图15显示子程序流程5总结数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。本设计所设计的频率计有有较高的精度,扩展功能还可实现对信号的幅度测量,使用方便,有较强的实用价值。经过不断的修改调试,最终也仿真实现了测频和测幅度功能。当然这只是基于各种理想的实验条件下得出的结论,设计当中不可避免的存在一些问题。、在信号预处理电路中只是粗略的将正弦信号转换成方波信号,而没有对输出信号进行进一步的处理。、该设计测量频率范围较小,加上分频电路后就会大大提高测量范围。、该设计采用脉冲数定时测频法,并不是精度最高的,如果采用多周期同步测频法,测量精度会大大提高,测量范围也会增大,但由于个人能力有限,选择了第一种方法,此法原理简单,更容易实现功能。 、在软件编程过程中,由于对C语言不是很熟悉,测量占空比,脉宽等预期目标并没有实现,最终只实现了对频率及幅度的测量,编程能力有待提高。参考文献[1]王为青、程国刚.KeilCx51应用开发技术[M].北京:人民邮电出版社,2006.[2]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.[3]曲云霞、郭兰申、李向东.基于单片机的频率计数器的设计[J].河北工业大学学报,1999,28(6).[4]李学礼.基于Proteus的8051单片机实例教程(第四版)[M].北京:电子工业出版社,2008,6.[5]谭文秀.数字频率计电路的设计与分析[J].郑州电子工程学校校报,2008.[6]深圳市中源单片机发展有限公司AT89C52Datasheets.[7]马场清太郎译者:何希才.运算放大器应用电路设计[M].北京:科学出版社,2007,4.[8]阎石.数字电子技术基础(第四版)[M].北京:高等教育出版社,1989,5-9.[9]史军、雷正红.数字频率计的设计[J].河西学院学报,2005,05.[10]王金凤.单片机实用系统设计技术[M].北京:国防工业出版社,1996,6.[11]赫建国、刘立新、党剑华.基于单片机的频率计设计[J].西安邮电学院学报,2003,8(3).[12]谢自美.电子线路设计·实验·测试[M].武汉:华中科技大学出版社,2006,08:242-249.[13]邹道生、李铭、杨汉祥.多功能数字频率计的设计[J].赣南师范学院学报,2004,06.[14]JosephD.Greenfild.PracticalDigitalDesignUsing.IesRegent/Drentice-hall.Inc,1994.[15]LatticeCo.Ltd.LatticeHandbook.LatticeCo.Ltd.,1994.谢辞经过一个多月的辛苦和努力,多功能数字频率计的设计已基本完成。本次设计完成的同时,我们的知识和能力也得到了一定的扩展和提高。对于我们而言,这只是电子设计方面的一次小小的尝试,但其过程所运用的一些理论、方法都使我们获益非浅。在这次设计中,我们力争设计的各个环节尽量合理完善这一原则,综合考虑经济性和可行性。本次设计过程,使我们在电子设计、方案选择、资料查阅、数据收集及团体协作方面均获得了锻炼,这必将为我们日后的实际工作奠基良好的基础。对于本次设计,虽然我们做了很多工作,但是其中一定会存在缺陷和不足之处,希望各位老师和同学们批评指正。本设计在老师的细心指导下完成从设计的选题,资料查找,到论文的撰写过程都给予了精心细致的指导,同时也得到了老师的大力帮助。此外,还得到同学们的帮助,在此一并致以最诚挚的谢意!(全文共11000字)附录一整体电路图实物图附录二#include<reg52.h> #include<intrins.h> #include<math.h> #defineucharunsignedchar #defineuintunsignedint #defineulongunsignedlong uchari,j,k; unsignedlongnum,num3,num1,num2; sbitE=P2^7; sbitRW=P2^6; sbitRS=P2^5; sbitint1=P3^3;//定义管脚功能sbitcs=P3^2;//使能端sbitwr=P3^6;//写端口sbitrd=P3^7;//读端口ucharfreq[10],vol[7]; //分别存放频率和电压ucharcodetabe[]="frequency:"; ucharcodetabe1[]="V_MAX:"; ucharcodetabe2[]="beintesting"; //延迟 voiddelay() { inti,j; for(i=0;i<=10;i++) for(j=0;j<=10;j++) ; } //延迟2 voiddelay2(uchardit) {for(i=dit;i>0;i--) for(j=0;j<100;j++); } //lcd写命令 voidwrite_com(uchardel) { P1=del; RS=0; RW=0; E=0; delay(); E=1; delay(); } //写数据 voidwrite_date(uchardel) { P1=del; RS=1; RW=0; E=0; delay(); E=1; delay(); } //lcd初始化 voidL1602_init() { write_com(0x01); write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0xd0); } //定时器初始化 voidtime_init() { ET0=1; TL0=0XB0; TH0=0X3C; TR0=0; } //定时器0中断 voidtime_int0()interrupt1 { k+=1; TL0=0XB0; TH0=0X3C; } //计数器1初始化 voidtime_init1() { ET1=1; TH1=0X00; TL1=0X00; TR1=0; } //计数器只能中断入口 voidtime_int1()interrupt3 { num3+=1; } //LCD显示部分 voiddisplay(ucharadd,uchar*p) { write_com(add); //先写地址 while(1) { if(*p=='\0') break; write_date(*p); p++; } } //AD转换采样并输出结果 unsignedcharadc0804(void)//读AD0804子程序{unsignedcharaddata,i;rd=1;wr=1;int1=1;//读ADC0804前准备P0=0xff;//P1全部置一准备cs=0;wr=0

温馨提示

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

评论

0/150

提交评论