基于单片机的数字频率计课程设计样本.doc





《基于单片机的数字频率计课程设计样本.doc》由会员分享,可在线阅读,更多相关《基于单片机的数字频率计课程设计样本.doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。第一章 前言频率测量是电子学测量中最为基本的测量之一。由于频率信号抗干扰性强, 易于传输, 因此能够获得较高的测量精度。随着数字电子技术的发展, 频率测量成为一项越来越普遍的工作, 测频原理和测频方法的研究正受到越来越多的关注。1.1频率计概述数字频率计是计算机、 通讯设备、 音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号、 方波信号及其它各种单位时间内变化的物理量。在进行模拟、 数字电路的设计、 安装、 调试过程中, 由于其使用十进制数显示, 测量迅速, 精确度
2、高, 显示直观, 经常要用到频率计。传统的频率计采用测频法测量频率, 一般由组合电路和时序电路等大量的硬件电路组成, 产品不但体积大, 运行速度慢而且测量低频信号不准确。本次采用单片机技术设计一种数字显示的频率计, 测量准确度高, 响应速度快, 体积小等优点1。1.2频率计发展与应用在中国, 单片机已不是一个陌生的名词, 它的出现是近代计算机技术的里程碑事件。单片机作为最为典型的嵌入式系统, 它的成功应用推动了嵌入式系统的发展。单片机已成为电子系统的中最普遍的应用。单片机作为微型计算机的一个重要分支, 其应用范围很广, 发展也很快, 它已成为在现代电子技术、 计算机应用、 网络、 通信、 自动
3、控制与计量测试、 数据采集与信号处理等技术中日益普及的一项新兴技术, 应用范围十分广泛。其中以AT89S52为内核的单片机系列当前在世界上生产量最大, 派生产品最多, 基本能够满足大多数用户的需要2。1.3频率计设计内容利用电源、 单片机、 分频电路及数码管显示等模块, 设计一个简易的频率计能够粗略的测量出被测信号的频率。 参数要求如下: 1测量范围10HZ2MHZ; 2用四位数码管显示测量值; 第二章 系统总体方案设计2.1测频的原理测频的原理归结成一句话, 就是”在单位时间内对被测信号进行计数”。被测信号, 经过输入通道的放大器放大后, 进入整形器加以整形变为矩形波, 并送入主门的输入端3
4、。由晶体振荡器产生的基频, 按十进制分频得出的分频脉冲, 经过基选通门去触发主控电路, 再经过主控电路以适当的编码逻辑便得到相应的控制指令, 用以控制主门电路选通被测信号所产生的矩形波, 至十进制计数电路进行直接计数和显示。若在一定的时间间隔T内累计周期性的重复变化次数N, 则频率的表示式为式: ( 1) 图1说明了测频的原理及误差产生的原因。时基信号 待测信号 丢失( 少计一个脉冲) 计到N个脉冲 多余( 比实际多出了0.x个脉冲) 图1 测频原理在图1中, 假设时基信号为1KHZ, 则用此法测得的待测信号为1KHZ5=5KHZ。但从图中能够看出, 待测信号应该在5.5KHZ左右, 误差约有
5、0.5/5.59.1%。这个误差是比较大的, 实际上, 测量的脉冲个数的误差会在1之间。假设所测得的脉冲个数为N, 则所测频率的误差最大为=1( N-1) *100%。显然, 减小误差的方法, 就是增大N。本频率计要求测频误差在1以下, 则N应大于1000。经过计算, 对1KHZ以下的信号用测频法, 反应的时间长于或等于10S, 。由此能够得出一个初步结论: 测频法适合于测高频信号。频率计数器严格地按照公式进行测频4。由于数字测量的离散性, 被测频率在计数器中所记进的脉冲数可有正一个或负一个脉冲的量化误差, 在不计其它误差影响的情况下, 测量精度将为: 应当指出, 测量频率时所产生的误差是由N
6、和T俩个参数所决定的, 一方面是单位时间内计数脉冲个数越多时, 精度越高, 另一方面T越稳定时, 精度越高。为了增加单位时间内计数脉冲的个数, 一方面可在输入端将被测信号倍频, 另一方面可增加T来满足, 为了增加T的稳定度, 只需提高晶体振荡器的稳定度和分频电路的可靠性就能达到。上述表明, 在频率测量时, 被测信号频率越高, 测量精度越高。2.2总体思路频率计是我们经常会用到的实验仪器之一, 频率的测量实际上就是在单位时间内对信号进行计数,计数值就是信号频率。本文介绍了一种基于单片机AT89S52 制作的频率计的设计方法,所制作的频率计测量比较高的频率采用外部十分频, 测量较低频率值时采用单片
7、机直接计数, 不进行外部分频。该频率计实现10HZ2MHZ的频率测量,而且能够实现量程自动切换功能, 四位共阳极动态显示测量结果, 能够测量正弦波、 三角波及方波等各种波形的频率值。第三章 硬件电路具体设计根据系统设计的要求, 频率计实际需要设计的硬件系统主要包括以下几个部分: AT89S52单片机最小系统模块、 电源模块、 放大整形模块、 分频模块及显示模块, 下面将分别给予介绍。3.1 AT89S52主控制器模块3.1.1 AT89S52的介绍8位单片机是MSC-51系列产品升级版5, 有世界著名半导体公司ATMEL在购买MSC-51设计结构后, 利用自身优势技术( 掉电不丢数据) 闪存生
8、产技术对旧技术进行改进和扩展, 同时使用新的半导体生产工艺, 最终得到成型产品。AT89S52片内集成256字节程序运行空间、 8K字节Flash存储空间, 支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求, 时钟频率能够设置在0-33M之间。片内资源有4组I/O控制端口、 3个定时器、 8个中断、 软件设置低能耗模式、 看门狗和断电保护。能够在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。使用双列直插DIP-40的封装。AT89S52引脚如下图3所示。3.2 引脚功能VCC:电源电压; GND:地; P0口: P0口是一个8位漏极开路的双向I/
9、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分别作定时
10、器/计数器2的外部计数输入和定时器/计数器2的触发输入, P1口功能具体如表1所示。在flash编程和校验时, P1口接收低8位地址字节。表1 P1口的第二种功能说明表引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入), 时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口: P2口是一个具有内部上拉电阻的8位双向I/O口, P2输出缓冲器能驱动4 个TTL逻辑电平。对P2端口写”1”时, 内部上拉电阻把端口拉高, 此时能够作为输入口使用。作为输入使用时, 被
11、外部拉低的引脚由于内部电阻的原因, 将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器时, P2口送出高八位地址。在这种应用中, P2口使用很强的内部上拉发送1。第四章 系统的软件设计系统软件设计主要采用模块化设计, 叙述了各个模块的程序流程图, 并介绍了软件Keil和Proteus的使用方法和调试仿真。4.1 软件模块设计系统软件设计采用模块化设计方法。整个系统由初始化模块, 信号频率测量模块, 自动量程转换和显示模块等模块组成。系统软件流程如图19所示。频率计开始工作或者完成一次频率测量, 系统软件都进行测量初始化。测量初始化模块设置堆栈指针( SP) 、 工作寄存器、 中断
12、控制和定时计数器的工作方式。定时计数器的工作首先被设置为计数器方式, 即用来测量信号频率15。图19 系统软件流程总图首先定时计数器的计数寄存器清0, 运行控制位TR置1, 启动对待测信号的计数。计数闸门由软件延时程序实现, 从计数闸门的最小值( 即测量频率的高量程) 开始测量, 计数闸门结束时TR清0, 停止计数。计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。判断该数的最高位, 若该位不为0, 满足测量数据有效位数的要求, 测量值和量程信息一起送到显示模块; 若该位为0, 将计数闸门的宽度扩大10倍。4.2 应用软件简介此设计需要在Keil软件平台上完成程序的调试,在Prot
13、eus软件平台上完成仿真显示。因此介绍如何使用Keil和Proteus进行软件的仿真。Keil简介Keil软件是当前最流行开发系列单片机的软件, Keil提供了包括C编译器、 宏汇编、 连接器、 库管理和一个功能强大的仿真调试器等在内的完整开发方案, 经过一个集成开发环境( uVision) 将这些部份组合在一起。而Proteus与其它单片机仿真软件不同的是, 它不但能仿真单片机CPU的工作情况, 也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时, 关心的不再是某些语句执行时单片机寄存器和存储器内容的改变, 而是从工程的角度直接看程序运行和电路工作的过程和结果
14、。对于这样的仿真实验, 从某种意义上讲, 是弥补了实验和工程应用间脱节的矛盾和现象16。( 1) 建立工程文件点击”Project-New project”菜单, 出现一个对话框, 要求给将要建立的工程起一个名字, 你能够在编缉框中输入一个名字,点击”保存”按钮, 出现第二个对话框, 按要求选择目标器件片。建立新文件并增加到组。分别设置”target1”中的”Target,output,debug”各项, 使程序汇编后产生HEX文件。( 2) 汇编, 调试系统程序Keil 单片机模拟调试软件内集成了一个文本编辑器, 用该文本编辑器能够编辑源程序。在集成开发环境中选择菜单”File New.”、
15、 单击对应的工具按钮或者快捷键Ctrl +N 将打开一个新的文本编辑窗口, 完成汇编语言源文件的输入, 而且完成源程序向当前工程的添加。然后在集成开发环境中选择菜单”FileSave As.”能够完成文件的第一次存储。注意, 汇编语言源文件的扩展名应该是”ASM”, 它应该与工程文件存储在同一文件夹之内。在完成文件的第一次存储以后, 当对汇编语言源文件又进行了修改, 再次存储文件则应该选择菜单”FileSave”、 单击对应的工具按钮或者快捷键Ctrl +S 实现文件的保存。接着的工作需要把汇编语言源文件加入工程之中。选择工程管理器窗口的子目”Source Group 1”, 再单击鼠标右键打
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字频率计 课程设计 样本

限制150内