中北大学单片机数字频率计课程设计.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 绪论 1.1 数字频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。 1.2 任务分析与设计思路 频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。在本次设计使用的AT89C51单片机,本身自带有定时器和计数器,单片机的T0、T1两个定时/计数器,一个用来定时,另一个用来计数,定时/计数器的工作由相应的运行控制位TR控制,当TR置1,定时/计数器开始计数;当TR清0,停止计数。在定时1s里,计数器计的脉冲数就是频率数,但是由于1s超过了AT89C51的最大定时,因此我们采用50ms定时,在50ms内的脉冲数乘以14就得到频率数,再转换为十进制数出即可。 1.3 基本设计原理 本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对方波的频率进行自动的测量。 单片机在采用了12MHz的晶体振荡器,采用定时和计数相结合的方法,选用定时/计数器TO作定时器,工作方式1产生50ms的定时,再用软件计数方式对它计数20次,就可得到一秒的定时,然后通过74HC4511译码器将显示管驱动以显示初测量结果。 2. 硬件系统设计 2.1 系统硬件的构成 本频率计的数据采集系统主要元器件是单片机AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有分频器、显示器等器件。可分为以下五个模块:晶振电路、复位电路、译码转换、单片机系统、数码显示模块。各模块关系图如图1所示。 图1 系统组成框图 2.2 系统硬件各模块简介 2.2.1 晶振电路和复位电路 XTAL1与XTAL2管脚接两个22pF电容和12MHz晶振构成时钟电路。RST管脚接10kΩ电阻,20μF电容上电复位电路。 2.2.2 AT89C51单片机 本设计采用的是AT89C51单片机,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。 设计中主要用到P2端口与74HC4511译码器连接输出待显示的个位与十位的数据,P1端口与74HC4511译码器连接输出频率计的百位和千位,P3端口连接信号输入电路。P3是一带有内部上拉电阻的8位双向的I/O端口,它的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。 2.2.3 译码显示 74HC4511译码器是4线七段译码驱动器,在设计中用它来译码并且驱动数码显示管来显示数值,共需要4个74HC4511和4个七段显示数码管。89C51单片机P2端口与74HC4511译码器连接输出待显示的个位与十位的值,P1端口与74HC4511译码器连接输出频率计的百位和千位的值。 2.2.4 系统硬件电路图 图2 系统硬件电路图 3 设计过程 3.1 程序流程图 图3 程序流程图 3.2 初始化程序部分 采用12MHz的晶体振荡器的情况下,一秒的定时已超过了定时器可提供的最大定时值。为了实现一秒的定时,采用定时和计数相结合的方法实现。选用定时/计数器TO作定时器,工作于方式1产生50ms的定时,再用软件计数方式对它计数20次,就可得到一秒的定时。 将定时器/计数器的方式寄存器TMOD,用软件赋初值51H,。这时定时器/计数器1采用工作方式1,方式选择位C/T设为1,即设T1为16位计数器。定时器/计数器O采用工作方式1,C/T设为0,即设TO为16位定时器。,所以T0的初始值为3CB0H。以下为程序代码。 ORG 0000H AJMP START ORG 0600H START: MOV TMOD ,#51H MOV TH0 ,#3CH MOV TL0 ,#0B0H MOV IE ,#82H MOV TH1 , #00H MOV TL1 , #00H SETB TR0 SETB TR1 3.3 频率计算 由于定时50ms,采用4位显示,最大显示频率是9999,因此50ms里最大计数为500,否则显示不准确,500的十六进制为01F4H,当计数器的高八位大于01时,计数值大于500超过最大显示,

文档评论(0)

追风少年 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档