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

下载本文档

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

文档简介

1、摘 要频率测量是电子学测量中最为基本的测量之一。频率计主要是由信号输入和放大电路、单片机模块、分频模块及显示电路模块组成。at89s52单片机是频率计的控制核心,来完成它待测信号的计数,译码,显示以及对分频比的控制。利用它内部的定时/计数器完成待测信号频率的测量。在整个设计过程中,所制作的频率计采用外部分频,实现10hz2mhz的频率测量,而且可以实现量程自动切换流程。以at89s52单片机为核心,通过单片机内部定时/计数器的门控时间,方便对频率计的测量。其待测频率值使用四位共阳极数码管显示,并可以自动切换量程,单位分别由红、黄、绿3个led指示。本次采用单片机技术设计一种数字显示的频率计,具

2、有测量准确度高,响应速度快,体积小等优点本设计以at89s52单片机为核心充分利用硬件资源设计的一种频率计,该频率计首先将被测信号放大整形处理,变成满足单片机i/o口接受的ttl/ cmos 兼容信号从单片机的t1输入口输入直接累加脉冲数,将单片机内部定时器定时为1s,这时累加的脉冲数即为被测信号的频率。最后经单片机处理送至lcd液晶显示屏显示。关键词:频率计、单片机、计数器、单片机(at89s52) 目 录第一章 系统概述61、系统组成62、信号处理方法73、数字频率计概述8第二章、系统硬件设计91、主控制器at89c5191.1at89c51简介91.2主要特性:101.3管脚说明:112

3、、数字频率计的硬件系统设计142.1数字频率计的硬件系统框架142.2数字频率计的主机电路设计152.3数字频率计的信号输入电路设计172.4数字频率计显示电路的设计182.5数字频率计的计数电路的设计202.6数字频率计电源模块的设计23第三章 系统软件设计241、数据处理过程242、系统软件框图263、软件处理方法265、数字频率计软件系统设计285.1软件设计规划285.2中断控制295.3定时器/计数器305.4定时工作方式032第四章 程序流程图设计321、主程序流程322、中断流程33总 结35参考文献36致 谢37附录38附录一:源程序38附录二:原理图:42前 言在电子测量领域

4、中,频率测量的精确度是最高的,可达1010e-13数量级。因此,在生产过程中许多物理量,例如温度、压力、流量、液位、ph值、振动、位移、速度、加速度,乃至各种气体的百分比成分等均用传感器转换成信号频率,然后用数字频率计来测量,以提高精确度。 国际上数字频率计的分类很多。按功能分类,测量某种单一功能的计数器。如频率计数器,只能专门用来测量高频和微波频率;时间计数器,是以测量时间为基础的计数器,其测时分辨力和准确度很高,可达ns数量级;特种计数器,它具有特种功能,如可逆计数器、予置计数器、差值计数器、倒数计数器等,用于工业和白控技术等方面。数字频率计按频段分类 (1)低速计数器:最高计数频率10m

5、hz; (2)中速计数器:最高计数频率10100mhz; (3)高速计数器:最高计数频率100mhz; (4)微波频率计数器:测频范围180ghz或更高。单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用cmos工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加

6、扩大了单片机的应用范围,也进一步促使单片机性能的发展。绪 论课题背景在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。数字频率计是用数字显示被测信号频率的仪器,被测信号可以是正弦波,方波或其它周期性变化的信号

7、。如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。课题研究的目的和意义单片机数字频率计以其可靠性高、体积小、价格低、功能全等优点,广泛地应用于各种智能仪器中,这些智能仪器的操作在进行仪器校核以及测量过程的控制中,达到了自动化,传统仪器面板上的开关和旋钮被键盘所代替,测试人员在测量时只需按需要的键,省掉很多烦琐的人工调节,智能仪器通常能自动选择量程,自动校准。有的还能自动调整测试点,这样不仅方便了操作,也提高了测试精度。数字频率计设计的任务与要求1. 测频范围:1hz-1mhz。2. 电源:220vac±10%,50hz±

8、10%3. 频率显示:四位数码管4. 测量误差:1。5. 测时范围:20ms10s第一章 系统概述1、系统组成频率计由单片机89c51 、信号予处理电路、串行通信电路、测量数据显示电路和系统软件所组成,其中信号予处理电路包含待测信号放大、波形变换、波形整形和分频电路。系统硬件框图如图1 所示。信号予处理电路中的放大器实现对待测信号的放大,降低对待测信号的幅度要求;波形变换和波形整形电路实现把正弦波样的正负交替的信号波形变换成可被单片机接受的ttl/ cmos 兼容信号;分频电路用于扩展单片机的频率测量范围并实现单片机频率测量和周期测量使用统一的输入信号。如图1.1图1.1 系统硬件框图系统软件

9、包括测量初始化模块、显示模块、信号频率测量模块、量程自动转换模块、信号周期测量模块、定时器中断服务模块、浮点数格式化模块、浮点数算术运算模块、浮点数到bcd码转换模块。系统软件框图如图所示。2、信号处理方法本频率计的设计以at89c51 单片机为核心,利用它内部的定时/ 计数器完成待测信号周期/ 频率的测量。单片机at89c51 内部具有2 个16 位定时/计数器,定时/ 计数器的工作可以由编程来实现定时、计数和产生计数溢出中断要求的功能。在构成为定时器时,每个机器周期加1 (使用12mhz 时钟时,每1us 加1) ,这样以机器周期为基准可以用来测量时间间隔。在构成为计数器时,在相应的外部引

10、脚发生从1 到0 的跳变时计数器加1 ,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入每个机器周期被采样一次,这样检测一次从1 到0 的跳变至少需要2 个机器周期(24 个振荡周期) ,所以最大计数速率为时钟频率的1/ 24 (使用12mhz 时钟时,最大计数速率为500 khz) 。定时/计数器的工作由相应的运行控制位tr 控制,当tr置1 ,定时/ 计数器开始计数;当tr 清0 ,停止计数。设计综合考虑了频率测量精度和测量反应时间的要求。例如当要求频率测量结果为3 位有效数字,这时如果待测信号的频率为1hz ,则计数闸门宽度必须大于1000s。为了兼顾频率测量精度和测量反应时间

11、的要求,把测量工作分为两种方法。当待测信号的频率大于100hz 时,定时/ 计数器构成为计数器,以机器周期为基准,由软件产生计数闸门,这时要满足频率测量结果为3 位有效数字,则计数闸门宽度大于1s 即可。当待测信号的频率小于100hz 时,定时/ 计数器构成为定时器,由频率计的予处理电路把待测信号变成方波,方波宽度等于待测信号的周期。用方波作计数闸门,当待测信号的频率等于100hz ,使用12mhz 时钟时的最小计数值为10000 ,完全满足测量精度的要求。如图1.2图1.2 系统软件框图3、数字频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进

12、制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个1602a lcd显示器动态显示6位数。测量范围从0hz65535hz(此测量范围为计数器的最大计数,可根据实际需要进行扩展,在1.3小节方案选择有介绍如何扩展)的正弦波、方波、三角波。用单片机实现自动测量功能。第二章、系统硬件设计1、主控制器at89c51 1.1at89c51简介at89c51是一种带4k字节闪烁可

13、编程可擦除只读存储器(fperomflash programmable and erasable read only memory)的低电压,高性能cmos 8位微处理器,俗称单片机。128字节的ram,32条i/o线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路,at89c2051是一种带2k字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atme

14、l的at89c51是一种高效微控制器,at89c51是它的一种精简版本。at89c51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2.2所示 图2.2 at89c51芯片1.2主要特性:·与mcs-51 兼容 ·4k字节可编程闪烁存储器 ·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0hz-24mhz·三级程序存储器锁定·128×8位内部ram·32可编程i/o线·两个16位定时器/计数器·5个中断源 ·可编程串行通道·

15、;低功耗的闲置和掉电模式·片内振荡器和时钟电路 1.3管脚说明:vcc:供电电压。gnd:接地。p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。作为输出口用时,每个引脚能驱动8个ttl逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当p0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,p0口具有内部

16、上拉电阻。在eprom编程时,p0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用,当作为输入端使用时,p1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(iil)。p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1

17、”时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。并因此作为输入时,因为内部存在上拉电阻,p2口的管脚被外部拉低,某个引脚被外部信号拉低时会输出电流(iil)。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器(例如movx dptr)进行存取时,p2口输出地址的高八位。p2口使用强大的内部上拉电阻功能当输出1时,当利用8位地址线访问外部数据存储器时(例movx r1),当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容,它利用内部上拉优势。p2口在eprom编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻

18、的双向i/o口,p3口的输出缓冲能驱动4个ttl逻辑门电路。当p3口写入“1”后,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下表所示:口管脚 备选功能p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一

19、些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间将使单片机复位。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲,用以锁存地址的低8位字节。一般情况下,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外

20、部执行状态ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由at89c51执行外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),必须同gnd相连接。需要主要的是,不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,复位时ea端会自动内部锁存。当执行内部编程指令时, 应该接到vcc端。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及

21、内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。2、数字频率计的硬件系统设计2.1数字频率计的硬件系统框架数字频率计是一个将被测频率显示出来的计数装置,它主要由单片机89c51控制、7407、led显示器、电源等组成。该系统的功能是将信号输入p3.4口,通过单片机程序控制,对led显示器进行段控和位控,实现动态显示。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。在进行有关电子技术的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。如图2.3为数字频率计方案框图。7407缓冲器信号处理输入at89c51单片机7407

22、缓冲器led数码显示图2.3数字频率计方框图2.2数字频率计的主机电路设计 atc89c51可以完成isp在线编程功能,atc89c51内部有eeprom,可以在程序中修改,断电不丢失。还增加了两级中断优先级,stc推出的系列51单片机芯片是全面兼容其它51单片机的,而且51单片机是主流大军。1芯片引脚功能:主电源引脚vcc和vssvcc(40脚):接5v电压;vss(20脚):接地。89c51晶振接法如图2.4。 图2.4 89c51晶振接法图选用6mhz频率的晶体,允许输入的脉冲频率为250khz。电容的大小范围为20pf40pf,本设计选用30pf电容。2单片机复位状态单片机的复位都是靠

23、外部电路实现的,在时钟电路工作后,只要在单片机的rst引脚上出现24个时钟震荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使rst引脚保持10ms以上的高电平。只要保持高电平,则mcs-51单片机就循环复位;当rst从高电平变为低电平以后,mcs-51单片机从0000h地址开始执行程序。在复位有效期间,ale、 引脚输出高电平。89c51上电复位电路如图2.5。图2.5 89c51上电复位电路图单片机复位状态表2.1。 表单片机复位状态表专用寄存器复位状态专用寄存器复位状态pc0000htmod00hacc00htcon00h

24、b00hth000hpsw00htl000hsp07hth100hdptr0000htl100hp0p3ffhscon00hipxxx0 0000bsbufxxxx xxxxbie0xx0 0000bpcon0xxx xxxxb 注:xxx不定复位后,p0口p3口输出高电平,且使这些准双向口皆处于输入状态,并且将07h写入栈指针sp(即设定堆栈底为07h),同时,将程序计数器pc和其余的特殊2.3数字频率计的信号输入电路设计7414是六反相施密特触发器集成电路,其基本作用就是反相器,一般用于信号输入电路,用施密特触发器对输入信号进行波形整形。其功能作用如图2.6所示。图2.6 输入-输出波形图

25、本设计为满足设计要求,被测信号是要进行波形的变换。由第一级的零偏置放大器把正弦波样的正负交替波形变换成单向脉冲,再经过7414将放大器产生的单向脉冲变换成与ttl/cmos电平相兼容的方波。这样处理以后信号变成方波信号,以便后续的电路进行计数。功能寄存器清为0(不定的位除外)。但复位不影响单片机内部的ram状态2.4数字频率计显示电路的设计图2.7在单片机系统中,常用的显示器有:发光二极管显示器,简称led;液晶显示器,简称lcd;荧光管显示器。而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等。led段显示器结构与原理led显示器是由发光二极管显示字段组成

26、的显示块,有7段和“米”字段之分。这种显示块有共阳极和共阴极两种。此外,显示块中还有一个圆点型发光二极管(在图中以dp表示)用于显示小数点。通过发光二极管亮、暗的不同组,可以显示多中数字、字母以及其他符号。led显示块中的发光二极管共有两种连接方法:(1)共阳极接法发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5v,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段则不点亮。(2)共阴极接法发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。数码管引脚如图2.8。图

27、2.8 数码管引脚图共阴和共阳结构的led显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段dp、g、f、e、d、c、b、a对应于一个字节(8位)的d7、d6、d5、d4、d3、d2、d1、d0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴led显示器,当公共阴极接地(为零电平),而阳极dp、g、f、e、d、c、b、a各段为0111011时,显示器显示"p"字符,即对于共阴极led显示器,“p”字符的字形码是73h。如果是共阳led显示器,公共阳极接高电平,显示“p”字符的字形代码应为10

28、001100(8ch)。用led显示器显示十进制转换成十六进制数的字形代码在表中列出。表led十六进制的数字代码表2.2字形共阳极代码共阴极代码字形共阳极代码共阴极代码 0c0h3fh990h6fh1f9h06ha88h77h2a4h5bhb83h7ch3boh4fhcc6h39h499h66hda1h5eh592h6dhe86h79h682h7dhf8eh71h7f8h07h灭ffh00h880h7fh表2.22.5数字频率计的计数电路的设计74ls290是异步十进制计数器。它由一个二进制计数器和一个异步五进制计数器组成。74ls290引脚图如图所示。74ls290引脚图当复位输入r0(1)

29、=r0(2)=1,且置位输入s9(1)s9(2)=0时,74ls290的输出被直接置零;只要置位输入s9(1)s9(2)=1,则74ls290的输出将被直接置9,即 =1001;只有当s9(1)和s9(2)不全为1,并且r0(1)和r0(2)不全为1时,输入计数脉冲cp,计数器开始计数。计数脉冲由cp0输入,从q0输出时,则构成二进制计数器;计数脉冲由cp1输入,输出为q2q1q0时,则构成五进制计数器;若将q0和cp1相连,计数脉冲由cp0输入,输出为q3q2q1q0时,则构成十进制(8421码)计数器;若将q3和cp0相连,计数脉冲由cp1输入,输出为q3q2q1q0时,则构成十进制(54

30、21码)计数器。因此,74ls290又称为“二五十进制型集成计数器”。异步清零端 mr1,mr2 为高电平时,只要置9端 ms1,ms2有一个为低电平,就可以完成清零功能。当 ms1,ms2 均为高电平时,不管其他输入端状态如何,就可以完成置 9的功能。当 mr1,mr2 中有一个以及 ms1,ms2 中有一个同时为低电平时,在时钟端/cp0,/cp1脉冲下降沿作用下进行计数操作。a) 十进制计数。应将/cp1 与 q0 连接,计数脉冲由/cp0 输入。b) 二、五混合进制计数。应将/cp0 与 q1 连接,计数脉冲由/cp1 输入。c) 二分频、五分频计数。q0 为二分频输出,q1q3 为五

31、分频输出。 引出端符号功能如下。 cp0 二分频时钟输入端(下降沿有效) cp1 五分频时钟输入端(下降沿有效)qaqd 输出端mr1,mr2 异步复位端ms1,ms2 异步置9端74ls290如图所示74ls290 级联扩展说明cp输入端输出端进制输出状态分频端cp0q0二0、1q0为二分频端cp1q3q2q1五000100q3为五分频端cp0且q0与cp1相连q3q2q1q0十00001001q3为十分频端74ls290十进制的电路连接如图所示2.10。图2.1074ls290十进制计数器两片接成十进制的74ls290级联组成2×10=20进制异步加法计数器如图所示图2.11。图

32、2.11二十进制异步加法计数器本设计中因为要对信号进行20分频,所以要使用两块74ls290进行级联。一块74ls290用作2分频,一块74ls290用作10分频。信号由第一块74ls290的cp0输入从q0输出,这样信号就经过了2分频,再把信号输入第二块74ls290的cp0并且第二块74ls290的cp1与q0相连,这时从第二块74ls290的q3输出的信号就已经完成了20分频。2.6数字频率计电源模块的设计使用变压器提供到ac桥堆的输入脚为9v交流电压,通过ac整流输出为9v直流电,经过电解电容滤波、7805稳压,提供给89c51单片机为5v电压。5v电源电路如图所示2.12。图2.12

33、 5v电源电路图第三章 系统软件设计1、数据处理过程在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(sp) 、工作寄存器、中断控制和定时/ 计数器的工作方式。定时/ 计数器的工作首先被设置为计数器方式,即用来测量信号频率。在对定时/ 计数器的计数寄存器清0 后,置运行控制位tr 为1 ,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时tr 清0 ,停止计数。计数寄存器中的值通过16 进制数到10 进制数转换程序转换为10 进制数。对10 进制数的最高位进行判别,若该位不为0 ,满

34、足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0 ,将计数闸门的宽度扩大10 倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。当上述测量判断过程直到计数闸门宽度达到1s ,这时对应的频率测量范围为100hz - 999hz ,如果测量结果仍不具有3 位有效数字,频率计则使用定时方法测量待测信号的周期。定时/ 计数器的工作这时被设置为定时器方式,在对定时/ 计数器的计数寄存器清0 后,判断待测信号的上跳沿是否到来。待测信号的上跳沿到来后,置运行控制位tr 为1 ,以单片机工作周期为单位,启动对待测信号的周期测量。然后判断待测信号的下跳沿是否到来,待测信号的下跳沿到

35、来后,运行控制位tr 清0 ,停止计数。16 位定时/ 计数器的最高计数值为65535 ,这样在待测信号的频率较低时,定时/ 计数器将发生溢出。当产生定时/ 计数器将溢出,程序进入定时器中断服务程序,中断服务程序对溢出次数进行计数。待测信号的周期由3 个字节组成:定时/ 计数器溢出次数、定时/ 计数器的高8 位和低8 位。信号的频率f 与信号的周期t 之间的关系为:f = 1/ t完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。为提高运算精度,这里采用浮点数算术运算。浮点数用3 个字节组成,第一字节最高位为数符,其余7 位为阶码;第二字节为尾数的高字节;第三字节为尾数的低字节。待测

36、信号周期的3 个字节定点数首先通过截取高16 位、设置数符和计算阶码转换为上述格式的浮点数。然后浮点数算术运算对其进行处理,获得用浮点数格式表达的信号频率值。浮点数到bcd 码转换模块把用浮点数格式表达的信号频率值变换成本频率计的显示格式,送到显示模块显示待测信号的频率值。无论从哪一种方式进入显示模块,完成显示后,频率计都开始下一次信号的频率测量。2、系统软件框图系统软件设计采用模块化设计方法。整个系统由初始化模块、显示模块和信号频率测量模块等各种功能模块组成(见图3.1) 。上电后,进入系统初始化模块,系统件开始运行。在执行过程中,根据运行流程分别调用各个功能模块完成频率测量、量程自动切换、

37、周期测量和测量结果显示。图3.1 系统软件流程图3、软件处理方法 本频率计的设计以 at89s52 单片机为核心 ,利用它内部的定时/ 计数器完成待测信号频率的测量 。单片机 at89s52 内部具有 2 个 16 位定时/计数器 ,定时/ 计数器的工作可以由编程来实现定时 、计数和产生计数溢出中断要求的功能 。在构成为定时器时 ,每个机器周期加 1 (使用 12m hz 时钟时 ,每 1us 加 1) ,这样以机器周期为基准可以用来准确定时1s。在构成为计数器时 ,在相应的外部引脚发生从 1 到 0 的跳变时计数器加 1 ,这样在计数闸门的控制下可以用来测量待测信号的频率 。外部输入每个机器

38、周期被采样一次 ,这样检测一次从1 到 0 的跳变至少需要 2 个机器周期 (24 个振荡周期) ,所以最大计数速率为时钟频率的 1/ 24 ( 使用12m hz 时钟时 ,最大计数速率为 500 khz) 。定时/计数器的工作由相应的运行控制位 tr 控制 ,当 tr置 1 ,定时/ 计数器开始计数 ;当 tr 清 0 ,停止计数 。设计综合考虑了频率测量精度和测量反应时间的要求 。4、实测结果和误差分析为了衡量这次设计的频率计的工作情况和测量精度,我们对系统进行了试验。以南京电讯仪器厂制造的e312b 型通用计数器为基准,用这次设计的频率计对信号源进行了测量,测量数据如表所示。表频率测量对

39、比表表3.1如图信号予处理电路所示,待测信号在进入单片机之前经过了10 ×2 次分频。频率计以进入单片机时的信号频率等于100hz 为基准,既待测信号频率等于2 khz 为基准,大于此频率采用频率测量,小于此频率采用周期测量。由表1 频率测量对比表可以看出,频率测量的测量精度大于周期测量的测量精度。采用计数法实现频率测量,误差来源主要有计数误差和闸门误差两部分。误差表达式为d f / f = | dn/ n| + | dt/ t|这里n 为计数值,t 为闸门时间。闸门时间相对误差dt/ t 主要取决于晶振的频率稳定度,选择合适的石英晶体和振荡电路,误差一般可小于10 - 6 。当仅显

40、示3 位有效数字时,该项误差可以忽略。对于dn/ n 部分,无论闸门时间长短,计数法测频总存在1 个单位的量化误差。在表1 中,待测信号频率大于2 khz 时的误差就来源于计数误差。增加显示的有效数字位数可降低该项误差的影响。当待测信号频率小于2 khz 时,直接测量的是信号的周期。周期测量的误差表达式为:dt/ t = | dn/ n| + | d0/0|这里dn/ n 为量化误差,d0/0 为晶振的频率稳定度。在进行周期测量时进入单片机的信号频率小于100hz ,使用12mhz 时钟这时的最小计数值为10000 。当仅显示3 位有效数字时,该项误差现在也可以忽略。待测信号的周期测量值通过浮

41、点数数学运算变换成频率值,这时的误差来源于浮点数数学运算和数制之间的转换所带来的误差。5、数字频率计软件系统设计5.1软件设计规划信号处理在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(sp)、工作寄存器、中断控制和定时/计数器的工作方式。定时/计数器的工作首先被设置为计数器的计数寄存器清0后,置运行控制位tr为1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时tr清0,停止计数。计数寄存器中的值通过16进制数道10进制数转换程序转换为10进制数。对10进制数的最高位进行判别,

42、若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的技术,直到满足测量数据有效位数的要求。待测信号经预处理电路分频后变成较宽的方波信号,并加至单片机的p3.4引脚,为单片机测信号频率提供有效的输入信号。单片机通过检测p3.4引脚来判断是否启动测周期程序。当该引脚为高电平时则等待,知道该引脚出现低电平时才开始测周期。首先将零赋给th0、tl0两个寄存器,将定时器t0的运行控制位tr0置位,同时也将et0置位以允许定时器t0终端,然后再判断p3.4引脚是否还为低电平,当不是低电平时则等待。一旦出现低电平则使tr0复位以

43、终止定时器,测周期程序结束。在测周期过程中,会发生定时器t0的中断,每发生一次中断则将r0寄存器加一,因此r0实际上是周期值的高字节。测出的周期值存储在r0、th0、tl0三个寄存器中,然后将其转换成频率。由于所测周期的单位是µs,再相除转换时要将被除数扩大10倍,这样才能保证得出正确的频率。得出的频率放到r1、r2、r3三个寄存器后调用转换bcd代码模块。调用显示消除多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据8段码放到现实缓冲区以备显示。5.2中断控制由于在程序设计中用到中断9方式,所以我们在此对单片机中断系统中的中断控制作一下介绍。中断是工业过程控制及智能化

44、仪器用微型机或单片机应用最多的一种数据传送方式。在通常情况下,单片机执行主程序,只有当正常状态出现故障,或发出中断请求时,单片机才暂停执行主程序,转去执行或处理中断服务程序,执行完中断服务程序后,再返回到主程序继续运行。单片机的这一种工作过程称为中断方式。基于资源共享原理上的中断技术,在计算机中得到了广泛的应用。中断技术能实现cpu与外部设备的并行工作,提高cpu的利用率以及数据的输入/输出效率;中断技术也能对计算机运行过程中突然发生的故障及时发现并进行自动处理如:硬件故障、运算错误及程序故障等;中断技术还能使我们通过键盘发出请求,随时对运行中的计算机进行干预,而不用先停机处理,然后再重新开机

45、等。在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。5.3定时器/计数器(1)定时器控制寄存器(tcon)10tcon寄存器既参与中断控制又参与定时控制。现对其定时功能加以介绍。其中有关定时的控制位共有4位:f0和tf1计数溢出标志位当计数器计数溢出(计满)时,该位置“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0”;使用中断

46、方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。r0和tr1定时器运行控制位tro(tr1)=0停止定时器/计数器工作tro(tr1)=1启动定时器/计数器工作(2)工作方式控制寄存器(tmod)11tmod寄存器是一个专用寄存器,用于设定两个定时器/计数器的工作方式。但tmod寄存器不能位寻址,只能用字节传送指令设置其内容。(3)中断允许控制寄存器(ie)12ea中断允许总控制位待添加的隐藏文字内容1et0和et1定时/计数中断定时器/计数器提供给用户使用的有:8位计数器th和tl,以及有关的控制位。这些内容只能以软件方法使用。能够产生中断申请的部件被称为中断源。8051型

47、单片机提供了五个中断源:两个外部中断源和三个内部中断源。每一个中断源都有一个中断申请标志位,但是串行口占有两个中断标志位。一共有六个中断标志位。(4)定时器/计数器对输入信号的要求定时器/计数器的两个作用是用来精确的确定某一段时间间隔13(作定时器用)或累计外部输入的脉冲个数(作计数器用)。当用作定时器时,在其输入端输入周期固定的脉冲,根据定时器/计数器中累计(或事先设置)的脉冲个数,即可计算出所定时间的长度。当89c51内部的定时器/计数器被选择为定时器工作方式时,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。因此,定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的

48、1/12。当采用12mhz频率的晶体时,计数频率为1mhz,输入脉冲的周期间隔为1s14。由于定时的精度决定于脉冲的周期,因此,当需要高精度的定时器时,应尽量选择频率较高的晶体。5.4定时工作方式0方式0是13位计数结构的工作方式15,其计数器由th0高8位和tl0的低五位构成。tl0的高3位弃之不用。当c/=0时,多中开关接通振荡脉冲的12分频输出,13位计数器以此进行计数,这就是所谓定时器工作方式。当c/=116时,多路开关接通计数引脚(t0),外部计数脉冲由引脚t0输入。当计数脉冲发生负跳变时,这就是所谓计数工作方式。不管是哪种工作方式,当tl0的低五位计数溢出时,向th0进位,而全部1

49、3位计数溢出时,则向计数溢出标志位tf0进位。第四章 程序流程图设计1、主程序流程主程序流程图4.1频率放大读取当前计数值重新启动t0、t1中断,重新进行测量结果显示ynkey=1开始图4.1主程序流程图2、中断流程t1中断流程图如图所示4.2。图4.2 t1中断流程图t0中断流程图如图所示4.3。图4.3t0中断流程图中断程序实现定时与计数的功能。t1进行定时,定时时间为1s。t0进行计数,to中断溢出一次,t0count加1。当定时达到1s时,停止t0,t1。最后计算相应的频率值。总 结通过此次4位数字频率计的分析和设计,我深深感到学好单片机的重要性。这一次设计对我来说,感触最深的就是要想

50、做好一个设计课题首先要对每一部分所涉及的知识点掌握好,只有这样才能对设计做的得心应手。通过此次毕业论文设计使我对单片机程序弄得一清二楚,动手能力也有了进一步的提高,它锻炼了我的分析、设计动手的能力,培养我思考问题的全面性。在整个毕业论文设计的过程中我学到了做任何事情所要有的态度和心态,首先我明白了做学问要一丝不苟,对于出现的任何问题和偏差都不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就打退堂鼓,只要坚持下去就可以找到思路去解决问题的。在工作中要学会与人合作的态度,认真听取别人的意见,这样做起事情来就可以事倍功半。参考文献1邹大挺频率计的设计j. 电子产品世界

51、出版社. 2006. 第193期. 2李华单片机实用接口技术m. 航空航天大学出版社. 2006.3张鹏王雪梅. 单片机原理与应用实例教程m. 海军出版社. 2007.4赫建国等. 单片机在电子电路设计中的应用m. 清华大学出版社. 2005.5赖麒文. 8051单片机c语言软件设计的艺术m. 科学出版社. 2004.6吴清平. 单片机原理与应用实例教程m. 海军出版社. 20087周航慈著. 单片机应用程序设计技术m . 北京:北京航空航天大学出版社,1991.8李华等编著. mcs - 51 系列单片机实用接口技术m . 北京:北京航空航天大学出版社,1993.9夏路易等. 电路原理图与电

52、路板设计 北京希望电子出版社10马忠梅. c语言应用程序设计 北京航空航天大学出版社致 谢在论文完成之际,我的心情万分激动。从论文的选题、资料的收集到论文的撰写编排整个过程中,我得到了许多的热情帮助。通过此次4位数字频率计的分析和设计,我深深感到学好单片机的重要性。这一次设计对我来说,感触最深的就是要想做好一个设计课题首先要对每一部分所涉及的知识点掌握好,只有这样才能对设计做的得心应手,在整个毕业论文设计的过程中我学到了做任何事情所要有的态度和心态,在做事情的过程中要有耐心和毅力,不要一遇到困难就打退堂鼓,只要坚持下去就可以找到思路去解决问题的。在工作中要学会与人合作的态度,认真听取别人的意见

53、,这样做起事情来就可以事倍功半。 最后,感谢各位评审老师在百忙中抽出时间对论文进行审稿、参加答辩,并对加答辩会的老师和同学表示谢意。附录附录一:源程序#include <89c51.h>/*数码管位代码表(p2口)*/unsigned char code dispbit=0x01,0x02,0x04,0x08;/*数码管段代码表(p0口,共阴且高位接dp,低位接a笔段)*/ unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f;/*6位数据缓冲器*/ unsigned char dispbuf8; unsigned char temp8; unsigned char dispcount; unsigned char t0count;unsigned char timecount;void initial();void delay();void datadisplay();bit flag; sbit fin=p34; sbit key=p37; unsigned long x,fre

温馨提示

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

评论

0/150

提交评论