毕业设计论文基于51单片机的4位数字频率计设计.doc
《毕业设计论文基于51单片机的4位数字频率计设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于51单片机的4位数字频率计设计.doc(27页珍藏版)》请在三一办公上搜索。
1、数字频率计实验报告摘要在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量,本设计中使用的就是直接
2、测频法,即用计数器在计算1S内输入信号周期的个数。 数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程单片机的广泛应用,运用单片机控制,将使整个系统大大简化,提高了系统的整体性能和可靠性。关键词:频率测量;单片机;数据处理目录摘要1目录2一 系统概述31.系统组成32.信号处理方法3二 器件简介61.主控制器AT89S526(1)MSC-51芯片资源简介6(2)单片机的引脚7(3)89S51单机的电源线8(4)89S51单片机的外接晶体引脚8(5)89S51单片机的控制线8(6)89S51单片机复位方
3、式92.数码管显示器简介10(1)数码管的分类10(2)数码管的驱动方式10(3)数码管参数11(4)数码管应用11(5)数码管使用的电流与电压12(6)恒流驱动与非恒流驱动对数码管的影响12(7)怎样测量数码管引脚123.元件设计软件CPLD13(1)CPLD简介13(2)CPLD器件特点13三 系统设计141.硬件设计14(1)信号予处理电路14(2)单片机系统14(3)数据显示电路15(4)VHDL实现74LS160功能152.系统软件设计18(1)数据处理过程18(2)系统软件框图19(3)浮点数学运算程序19(4)实测结果和误差分析20四 参考文献22附件1:程序清单23一 系统概述
4、1.系统组成频率计由单片机89C51 、信号予处理电路、串行通信电路、测量数据显示电路和系统软件所组成,其中信号予处理电路包含待测信号放大、波形变换、波形整形和分频电路。系统硬件框图如图1 所示。信号予处理电路中的放大器实现对待测信号的放大,降低对待测信号的幅度要求;波形变换和波形整形电路实现把正弦波样的正负交替的信号波形变换成可被单片机接受的TTL/ CMOS 兼容信号;分频电路用于扩展单片机的频率测量范围并实现单片机频率测量和周期测量使用统一的输入信号。图1 系统硬件框图系统软件包括测量初始化模块、显示模块、信号频率测量模块、量程自动转换模块、信号周期测量模块、定时器中断服务模块、浮点数格
5、式化模块、浮点数算术运算模块、浮点数到BCD 码转换模块。系统软件框图如图2 所示。2.信号处理方法本频率计的设计以AT89C51 单片机为核心,利用它内部的定时/ 计数器完成待测信号周期/ 频率的测量。单片机AT89C51 内部具有2 个16 位定时/计数器,定时/ 计数器的工作可以由编程来实现定时、计数和产生计数溢出中断要求的功能。在构成为定时器时,每个机器周期加1 (使用12MHz 时钟时,每1us 加1) ,这样以机器周期为基准可以用来测量时间间隔。在构成为计数器时,在相应的外部引脚发生从1 到0 的跳变时计数器加1 ,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入每个机器
6、周期被采样一次,这样检测一次从1 到0 的跳变至少需要2 个机器周期(24 个振荡周期) ,所以最大计数速率为时钟频率的1/ 24 (使用12MHz 时钟时,最大计数速率为500 KHz) 。定时/计数器的工作由相应的运行控制位TR 控制,当TR置1 ,定时/ 计数器开始计数;当TR 清0 ,停止计数。设计综合考虑了频率测量精度和测量反应时间的要求。例如当要求频率测量结果为3 位有效数字,这时如果待测信号的频率为1Hz ,则计数闸门宽度必须大于1000s。为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两种方法。当待测信号的频率大于100Hz 时,定时/ 计数器构成为计数器,以机器周期
7、为基准,由软件产生计数闸门,这时要满足频率测量结果为3 位有效数字,则计数闸门宽度大于1s 即可。当待测信号的频率小于100Hz 时,定时/ 计数器构成为定时器,由频率计的予处理电路把待测信号变成方波,方波宽度等于待测信号的周期。用方波作计数闸门,当待测信号的频率等于100Hz ,使用12MHz 时钟时的最小计数值为10000 ,完全满足测量精度的要求。图2 系统软件框图1. 3 频率计的量程自动切换在使用计数方法实现频率测量时,这时外部的待测信号为定时/ 计数器的计数源,利用软件延时程序实现计数闸门。频率计的工作过程为:首先定时/计数器的计数寄存器清0 ,运行控制位TR 置1 ,启动定时/
8、计数器;然后运行软件延时程序,同时定时/计数器对外部的待测信号进行计数,延时结束时TR 清0 ,停止计数;最后从计数寄存器读出测量数据,在完成数据处理后,由显示电路显示测量结果。在使用定时方法实现频率测量时,这时外部的待测信号通过频率计的予处理电路变成宽度等于待测信号周期的方波,该方波同样加至定时/ 计数器的输入脚。这时频率计的工作过程为:首先定时/ 计数器的计数寄存器清0 ,然后检测方波高电平是否加至定时/ 计数器的输入脚;当判定高电平加至定时/计数器的输入脚,运行控制位TR 置1 ,启动定时/计数器对单片机的机器周期的计数,同时检测方波高电平是否结束;当判定高电平结束时TR 清0 ,停止计
9、数,然后从计数寄存器读出测量数据,在完成数据处理后,由显示电路显示测量结果。测量结果的显示格式采用科学计数法,即有效数字乘以10 为底的幂。这里设计的频率计用5 位数码管显示测量结果:前3 位为测量结果的有效数字;第4 位为指数的符号;第5 位为指数的值。采用这种显示格式既保证了测量结果的显示精度,又保证了测量结果的显示范围(0. 100Hz - 9. 99MHz) 。量程自动转换的过程由频率计测量量程的高端开始。由于只显示3 位有效数字,在测量量程的高端计数闸门不需要太宽, 例如在10. 0 KHz -9919 KHz 频率范围,计数闸门宽度为10mS 即可。频率计每个工作循环开始时使用计数
10、方法实现频率测量,并使计数闸门宽度为最窄,完成测量后判断测量结果是否具有3 位有效数字,如果成立,将结果送去显示,本工作循环结束;否则将计数闸门宽度扩大10 倍,继续进行测量判断,直到计数闸门宽度达到1s ,这时对应的频率测量范围为100Hz - 999Hz。如果测量结果仍不具有3 位有效数字,频率计则使用定时方法实现频率测量。定时方法测量的是待测信号的周期,这种方法只设一种量程,测量结果通过浮点数运算模块将信号周期转换成对应的频率值,再将结果送去显示。这样无论采用何种方式,只要完成一次测量即可,频率计自动开始下一个测量循环,因此该频率计具有连续测量的功能,同时实现量程的自动转换。二 器件简介
11、1.主控制器AT89S52 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是
12、它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示 主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数
13、据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于
14、内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P
15、3.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:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的
16、脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA
17、端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。
18、在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 串口通讯单片机的结构和特殊寄存器,这是你编写软件的关键。至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,各代表什么含义呢?SBUF 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。有朋友这样问
19、起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?而不是收发各用一个寄存器。”实际上SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址99H。CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr
20、SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。SCON 串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON 就是51 芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。它的各个位的具体定义如下:SM0 SM1 SM2 REN TB8 RB8 TI RISM0、SM1 为串行口工作模
21、式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。SM0 SM1 模式 功能 波特率0 0 0 同步移位寄存器 fosc/120 1 1 8位UART 可变1 0 2 9位UART fosc/32 或fosc/641 1 3 9位UART 可变在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。表中的fosc 代表振荡器的频率,也就是晶振的频率。UART 为(Universal Asynchronous Receiver)的英文缩写。SM2 在模式2、模式3 中为多处理机通信使能位。在模式0 中要求该位为0。REM 为允许接收位,REM 置
22、1 时串口允许接收,置0 时禁止接收。REM 是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1 都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0 来禁止接收,在子程序结束处加入REM=1 再次打开串口接收。大家也可以用上面的实际源码加入REM=0 来进行实验。TB8 发送数据位8,在模式2 和3 是要发送的第9 位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。RB8 接收数据位8,在模式2 和3 是已接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 51 单片机 数字频率计 设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4859339.html