基于AT89S52单片机的4位数字频率计设计.doc

上传人:laozhun 文档编号:4148012 上传时间:2023-04-07 格式:DOC 页数:46 大小:358.50KB
返回 下载 相关 举报
基于AT89S52单片机的4位数字频率计设计.doc_第1页
第1页 / 共46页
基于AT89S52单片机的4位数字频率计设计.doc_第2页
第2页 / 共46页
基于AT89S52单片机的4位数字频率计设计.doc_第3页
第3页 / 共46页
基于AT89S52单片机的4位数字频率计设计.doc_第4页
第4页 / 共46页
基于AT89S52单片机的4位数字频率计设计.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《基于AT89S52单片机的4位数字频率计设计.doc》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的4位数字频率计设计.doc(46页珍藏版)》请在三一办公上搜索。

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. 电源:220VAC10%,50Hz10%3. 频率显示:四

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

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

10、时计数器加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字节闪烁可编程可擦除只读存储器(F

13、PEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路,AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种

14、高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2.2所示 图2.2 AT89C51芯片1.2主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 1.3管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚

15、第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TT

16、L门电流。P1口管脚写入1后,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用,当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。并因此作为输入时,因为内部存在上拉电阻,P2口的管脚被外部拉低,某个引脚被外部信号拉低时会输出电流(IIL)。这是由于内部上拉的缘故

17、。P2口当用于外部程序存储器或16位地址外部数据存储器(例如MOVX DPTR)进行存取时,P2口输出地址的高八位。P2口使用强大的内部上拉电阻功能当输出1时,当利用8位地址线访问外部数据存储器时(例MOVX R1),当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容,它利用内部上拉优势。P2口在EPROM编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,P3口的输出缓冲能驱动4个TTL逻辑门电路。当P3口写入“1”后,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL

18、)这是由于上拉的缘故。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口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间将使单片机复位。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在F

19、LASH编程期间,此引脚用于输入编程脉冲,用以锁存地址的低8位字节。一般情况下,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由AT89C51执行外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PS

20、EN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),必须同GND相连接。需要主要的是,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,复位时EA端会自动内部锁存。当执行内部编程指令时, 应该接到VCC端。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2、数字频率计的硬件系统设计2.1数字频率计的硬件系统框架数字频率计是一个将被测频率显示出来的计数装置,它主要由单片机89C51控制、

21、7407、LED显示器、电源等组成。该系统的功能是将信号输入P3.4口,通过单片机程序控制,对LED显示器进行段控和位控,实现动态显示。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。在进行有关电子技术的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。如图2.3为数字频率计方案框图。7407缓冲器信号处理输入AT89C51单片机7407缓冲器LED数码显示图2.3数字频率计方框图2.2数字频率计的主机电路设计 ATC89C51可以完成ISP在线编程功能,ATC89C51内部有EEPROM,可以在程序中修改,断电不丢失。还增加

22、了两级中断优先级,STC推出的系列51单片机芯片是全面兼容其它51单片机的,而且51单片机是主流大军。1芯片引脚功能:主电源引脚Vcc和VssVcc(40脚):接5V电压;Vss(20脚):接地。89C51晶振接法如图2.4。 图2.4 89C51晶振接法图选用6MHz频率的晶体,允许输入的脉冲频率为250kHz。电容的大小范围为20pF40pF,本设计选用30pF电容。2单片机复位状态单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟震荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使

23、RST引脚保持10ms以上的高电平。只要保持高电平,则MCS-51单片机就循环复位;当RST从高电平变为低电平以后,MCS-51单片机从0000H地址开始执行程序。在复位有效期间,ALE、 引脚输出高电平。89C51上电复位电路如图2.5。图2.5 89C51上电复位电路图单片机复位状态表2.1。 表单片机复位状态表专用寄存器复位状态专用寄存器复位状态PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0P3FFHSCON00HIPXXX0 0000BSBUFXXXX XXXXBIE0XX0 0

24、000BPCON0XXX XXXXB 注:XXX不定复位后,P0口P3口输出高电平,且使这些准双向口皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为07H),同时,将程序计数器PC和其余的特殊2.3数字频率计的信号输入电路设计7414是六反相施密特触发器集成电路,其基本作用就是反相器,一般用于信号输入电路,用施密特触发器对输入信号进行波形整形。其功能作用如图2.6所示。图2.6 输入-输出波形图本设计为满足设计要求,被测信号是要进行波形的变换。由第一级的零偏置放大器把正弦波样的正负交替波形变换成单向脉冲,再经过7414将放大器产生的单向脉冲变换成与TTL/CMOS电平相兼容的方波。这

25、样处理以后信号变成方波信号,以便后续的电路进行计数。功能寄存器清为0(不定的位除外)。但复位不影响单片机内部的RAM状态2.4数字频率计显示电路的设计图2.7在单片机系统中,常用的显示器有:发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光管显示器。而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等。LED段显示器结构与原理LED显示器是由发光二极管显示字段组成的显示块,有7段和“米”字段之分。这种显示块有共阳极和共阴极两种。此外,显示块中还有一个圆点型发光二极管(在图中以dP表示)用于显示小数点。通过发光二极管亮、暗的不同组,可以显示多中数字、字母

26、以及其他符号。LED显示块中的发光二极管共有两种连接方法:(1)共阳极接法发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段则不点亮。(2)共阴极接法发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。数码管引脚如图2.8。图2.8 数码管引脚图共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段dP、g、f、e、d、c、b、a对

27、应于一个字节(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”字符的字形代码应为10001100(8CH)。用LED显示器显示十进制转换成十六进制数的字形代码在表中列出。表LED十六进制的数字代码表2.2字形共阳极代码共阴极代码字形共阳极代码共阴极代码 0C0H3FH990H6FH1F9H06HA8

28、8H77H2A4H5BHB83H7CH3BOH4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭FFH00H880H7FH表2.22.5数字频率计的计数电路的设计74LS290是异步十进制计数器。它由一个二进制计数器和一个异步五进制计数器组成。74LS290引脚图如图所示。74LS290引脚图当复位输入R0(1)=R0(2)=1,且置位输入S9(1)S9(2)=0时,74LS290的输出被直接置零;只要置位输入S9(1)S9(2)=1,则74LS290的输出将被直接置9,即 =1001;只有当S9(1)和S9(2)不全为1,

29、并且R0(1)和R0(2)不全为1时,输入计数脉冲CP,计数器开始计数。计数脉冲由CP0输入,从Q0输出时,则构成二进制计数器;计数脉冲由CP1输入,输出为Q2Q1Q0时,则构成五进制计数器;若将Q0和CP1相连,计数脉冲由CP0输入,输出为Q3Q2Q1Q0时,则构成十进制(8421码)计数器;若将Q3和CP0相连,计数脉冲由CP1输入,输出为Q3Q2Q1Q0时,则构成十进制(5421码)计数器。因此,74LS290又称为“二五十进制型集成计数器”。异步清零端 MR1,MR2 为高电平时,只要置9端 MS1,MS2有一个为低电平,就可以完成清零功能。当 MS1,MS2 均为高电平时,不管其他输

30、入端状态如何,就可以完成置 9的功能。当 MR1,MR2 中有一个以及 MS1,MS2 中有一个同时为低电平时,在时钟端/CP0,/CP1脉冲下降沿作用下进行计数操作。a) 十进制计数。应将/CP1 与 Q0 连接,计数脉冲由/CP0 输入。b) 二、五混合进制计数。应将/CP0 与 Q1 连接,计数脉冲由/CP1 输入。c) 二分频、五分频计数。Q0 为二分频输出,Q1Q3 为五分频输出。 引出端符号功能如下。 CP0 二分频时钟输入端(下降沿有效) CP1 五分频时钟输入端(下降沿有效)QAQD 输出端MR1,MR2 异步复位端MS1,MS2 异步置9端74LS290如图所示74LS290

31、 级联扩展说明CP输入端输出端进制输出状态分频端CP0Q0二0、1Q0为二分频端CP1Q3Q2Q1五000100Q3为五分频端CP0且Q0与CP1相连Q3Q2Q1Q0十00001001Q3为十分频端74LS290十进制的电路连接如图所示2.10。图2.1074LS290十进制计数器两片接成十进制的74LS290级联组成210=20进制异步加法计数器如图所示图2.11。图2.11二十进制异步加法计数器本设计中因为要对信号进行20分频,所以要使用两块74LS290进行级联。一块74LS290用作2分频,一块74LS290用作10分频。信号由第一块74LS290的CP0输入从Q0输出,这样信号就经过

32、了2分频,再把信号输入第二块74LS290的CP0并且第二块74LS290的CP1与Q0相连,这时从第二块74LS290的Q3输出的信号就已经完成了20分频。2.6数字频率计电源模块的设计使用变压器提供到AC桥堆的输入脚为9V交流电压,通过AC整流输出为9V直流电,经过电解电容滤波、7805稳压,提供给89C51单片机为5V电压。5V电源电路如图所示2.12。图2.12 5V电源电路图第三章 系统软件设计1、数据处理过程在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP) 、工作寄存器、中断控制和定时/ 计数器的工作方式。定时/ 计数器的工作首先

33、被设置为计数器方式,即用来测量信号频率。在对定时/ 计数器的计数寄存器清0 后,置运行控制位TR 为1 ,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时TR 清0 ,停止计数。计数寄存器中的值通过16 进制数到10 进制数转换程序转换为10 进制数。对10 进制数的最高位进行判别,若该位不为0 ,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0 ,将计数闸门的宽度扩大10 倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。当上述测量判断过程直到计数闸门宽度达到1s ,这时对应的频率测量范围为

34、100Hz - 999Hz ,如果测量结果仍不具有3 位有效数字,频率计则使用定时方法测量待测信号的周期。定时/ 计数器的工作这时被设置为定时器方式,在对定时/ 计数器的计数寄存器清0 后,判断待测信号的上跳沿是否到来。待测信号的上跳沿到来后,置运行控制位TR 为1 ,以单片机工作周期为单位,启动对待测信号的周期测量。然后判断待测信号的下跳沿是否到来,待测信号的下跳沿到来后,运行控制位TR 清0 ,停止计数。16 位定时/ 计数器的最高计数值为65535 ,这样在待测信号的频率较低时,定时/ 计数器将发生溢出。当产生定时/ 计数器将溢出,程序进入定时器中断服务程序,中断服务程序对溢出次数进行计

35、数。待测信号的周期由3 个字节组成:定时/ 计数器溢出次数、定时/ 计数器的高8 位和低8 位。信号的频率f 与信号的周期T 之间的关系为:f = 1/ T完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。为提高运算精度,这里采用浮点数算术运算。浮点数用3 个字节组成,第一字节最高位为数符,其余7 位为阶码;第二字节为尾数的高字节;第三字节为尾数的低字节。待测信号周期的3 个字节定点数首先通过截取高16 位、设置数符和计算阶码转换为上述格式的浮点数。然后浮点数算术运算对其进行处理,获得用浮点数格式表达的信号频率值。浮点数到BCD 码转换模块把用浮点数格式表达的信号频率值变换成本频率计

36、的显示格式,送到显示模块显示待测信号的频率值。无论从哪一种方式进入显示模块,完成显示后,频率计都开始下一次信号的频率测量。2、系统软件框图系统软件设计采用模块化设计方法。整个系统由初始化模块、显示模块和信号频率测量模块等各种功能模块组成(见图3.1) 。上电后,进入系统初始化模块,系统件开始运行。在执行过程中,根据运行流程分别调用各个功能模块完成频率测量、量程自动切换、周期测量和测量结果显示。图3.1 系统软件流程图3、软件处理方法 本频率计的设计以 AT89S52 单片机为核心 ,利用它内部的定时/ 计数器完成待测信号频率的测量 。单片机 AT89S52 内部具有 2 个 16 位定时/计数

37、器 ,定时/ 计数器的工作可以由编程来实现定时 、计数和产生计数溢出中断要求的功能 。在构成为定时器时 ,每个机器周期加 1 (使用 12M Hz 时钟时 ,每 1us 加 1) ,这样以机器周期为基准可以用来准确定时1S。在构成为计数器时 ,在相应的外部引脚发生从 1 到 0 的跳变时计数器加 1 ,这样在计数闸门的控制下可以用来测量待测信号的频率 。外部输入每个机器周期被采样一次 ,这样检测一次从1 到 0 的跳变至少需要 2 个机器周期 (24 个振荡周期) ,所以最大计数速率为时钟频率的 1/ 24 ( 使用12M Hz 时钟时 ,最大计数速率为 500 KHz) 。定时/计数器的工作

38、由相应的运行控制位 TR 控制 ,当 TR置 1 ,定时/ 计数器开始计数 ;当 TR 清 0 ,停止计数 。设计综合考虑了频率测量精度和测量反应时间的要求 。4、实测结果和误差分析为了衡量这次设计的频率计的工作情况和测量精度,我们对系统进行了试验。以南京电讯仪器厂制造的E312B 型通用计数器为基准,用这次设计的频率计对信号源进行了测量,测量数据如表所示。表频率测量对比表表3.1如图信号予处理电路所示,待测信号在进入单片机之前经过了10 2 次分频。频率计以进入单片机时的信号频率等于100Hz 为基准,既待测信号频率等于2 KHz 为基准,大于此频率采用频率测量,小于此频率采用周期测量。由表

39、1 频率测量对比表可以看出,频率测量的测量精度大于周期测量的测量精度。采用计数法实现频率测量,误差来源主要有计数误差和闸门误差两部分。误差表达式为d f / f = | dN/ N| + | dt/ t|这里N 为计数值,t 为闸门时间。闸门时间相对误差dt/ t 主要取决于晶振的频率稳定度,选择合适的石英晶体和振荡电路,误差一般可小于10 - 6 。当仅显示3 位有效数字时,该项误差可以忽略。对于dN/ N 部分,无论闸门时间长短,计数法测频总存在1 个单位的量化误差。在表1 中,待测信号频率大于2 KHz 时的误差就来源于计数误差。增加显示的有效数字位数可降低该项误差的影响。当待测信号频率

40、小于2 KHz 时,直接测量的是信号的周期。周期测量的误差表达式为:dT/ T = | dN/ N| + | d0/0|这里dN/ N 为量化误差,d0/0 为晶振的频率稳定度。在进行周期测量时进入单片机的信号频率小于100Hz ,使用12MHz 时钟这时的最小计数值为10000 。当仅显示3 位有效数字时,该项误差现在也可以忽略。待测信号的周期测量值通过浮点数数学运算变换成频率值,这时的误差来源于浮点数数学运算和数制之间的转换所带来的误差。5、数字频率计软件系统设计5.1软件设计规划信号处理在频率计开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP)、

41、工作寄存器、中断控制和定时/计数器的工作方式。定时/计数器的工作首先被设置为计数器的计数寄存器清0后,置运行控制位TR为1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时TR清0,停止计数。计数寄存器中的值通过16进制数道10进制数转换程序转换为10进制数。对10进制数的最高位进行判别,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的技术,直到满足测量数据有效位数的要求。待测信号经预处理电路分频后变成较宽的方波信号,并加至单片机的P3.4引

42、脚,为单片机测信号频率提供有效的输入信号。单片机通过检测P3.4引脚来判断是否启动测周期程序。当该引脚为高电平时则等待,知道该引脚出现低电平时才开始测周期。首先将零赋给TH0、TL0两个寄存器,将定时器T0的运行控制位TR0置位,同时也将ET0置位以允许定时器T0终端,然后再判断P3.4引脚是否还为低电平,当不是低电平时则等待。一旦出现低电平则使TR0复位以终止定时器,测周期程序结束。在测周期过程中,会发生定时器T0的中断,每发生一次中断则将R0寄存器加一,因此R0实际上是周期值的高字节。测出的周期值存储在R0、TH0、TL0三个寄存器中,然后将其转换成频率。由于所测周期的单位是s,再相除转换

43、时要将被除数扩大10倍,这样才能保证得出正确的频率。得出的频率放到R1、R2、R3三个寄存器后调用转换BCD代码模块。调用显示消除多余零和显示数据存储模块,将要显示的频率值通过查表转换成相应数据8段码放到现实缓冲区以备显示。5.2中断控制由于在程序设计中用到中断9方式,所以我们在此对单片机中断系统中的中断控制作一下介绍。中断是工业过程控制及智能化仪器用微型机或单片机应用最多的一种数据传送方式。在通常情况下,单片机执行主程序,只有当正常状态出现故障,或发出中断请求时,单片机才暂停执行主程序,转去执行或处理中断服务程序,执行完中断服务程序后,再返回到主程序继续运行。单片机的这一种工作过程称为中断方

44、式。基于资源共享原理上的中断技术,在计算机中得到了广泛的应用。中断技术能实现CPU与外部设备的并行工作,提高CPU的利用率以及数据的输入/输出效率;中断技术也能对计算机运行过程中突然发生的故障及时发现并进行自动处理如:硬件故障、运算错误及程序故障等;中断技术还能使我们通过键盘发出请求,随时对运行中的计算机进行干预,而不用先停机处理,然后再重新开机等。在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,

45、对此,只有靠中断技术才能实现。5.3定时器/计数器(1)定时器控制寄存器(TCON)10TCON寄存器既参与中断控制又参与定时控制。现对其定时功能加以介绍。其中有关定时的控制位共有4位:F0和TF1计数溢出标志位当计数器计数溢出(计满)时,该位置“1”;使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清“0”;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清“0”。R0和TR1定时器运行控制位TRO(TR1)=0停止定时器/计数器工作TRO(TR1)=1启动定时器/计数器工作(2)工作方式控制寄存器(TMOD)11TMOD寄存器是一个专用寄存器,用

46、于设定两个定时器/计数器的工作方式。但TMOD寄存器不能位寻址,只能用字节传送指令设置其内容。(3)中断允许控制寄存器(IE)12EA中断允许总控制位待添加的隐藏文字内容1ET0和ET1定时/计数中断定时器/计数器提供给用户使用的有:8位计数器TH和TL,以及有关的控制位。这些内容只能以软件方法使用。能够产生中断申请的部件被称为中断源。8051型单片机提供了五个中断源:两个外部中断源和三个内部中断源。每一个中断源都有一个中断申请标志位,但是串行口占有两个中断标志位。一共有六个中断标志位。(4)定时器/计数器对输入信号的要求定时器/计数器的两个作用是用来精确的确定某一段时间间隔13(作定时器用)或累计外部输入的脉冲个数(作计数器用)。当用作定时器时,在其输入端输入周期固定的脉冲,根据定时器/计

展开阅读全文
相关资源
猜你喜欢
相关搜索

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号