1、 微机原理课程设计微机原理课程设计 频率计 学学 院:院: 电电 气气 工工 程程 学学 院院 班班 级:级: 电气电气 09090909 班班 姓姓 名:名: 学学 号:号: 指导教师指导教师: 老师老师 2011 年年 12 月月 10 日日 2 一实验内容一实验内容 用 89C52 单片机实现频率计 二二实验实验器材器材 89C52 一片, 74HC573 一片,74HC245 两片,74LS74 一片,555 芯片一片,300电阻两 个,导线若干。 三三实验要求实验要求 信号的频率变化在 50Hz50KHz 范围,能够较精确测量,在数码管显示五位数字。 拓展要求:能够测量大于 6553
2、6Hz 以上的频率。 四四实验实验内容内容 1、硬件电路硬件电路 555 构成多谐振荡器, 产生频率可调的方波信号; 74LS74 里的一个 D 触发器连成计数器, 用来对 555 产生的方波分频;74HC14 非门做驱动,防止产生的信号不能驱动单片机的 I/O 口; 方波信号连接在单片机的 INT0 和 T0 外部计数口上。 单片机的 P1 口做字位, 连接 74HC245 驱动数码管的共阳端;P2 口做字型,连接 74HC573 锁存器和 74HC245 驱动数码管的 ag 端。 2、思路设计、思路设计 频率计原理频率计原理 频率的测量实际上就是在 1s 时间内对信号进行计数,计数值就是信
3、号频率。用单片机 设计频率计通常采用两种办法,第一种方法是使用单片机自带的计数器对输入脉冲进行计 数;第二种方法是单片机外部使用计数器对脉冲信号进行计数,计数值再由单片机读取。第 一种方法的好处是设计出的频率计系统结构和程序编写简单, 成本低廉, 不需要外部计数器, 直接利用所给的单片机最小系统就可以实现。 这种方法的缺陷是受限于单片机计数的晶振频 率, 输入的时钟频率通常是单片机晶振频率的几分之一甚至是几十分之一, 在本次设计使用 的 98C51 单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期 测出“1” ,后一个周期测出“0” 。故输入时钟信号的最高频率不得超过
4、单片机晶振频率的二 十四分之一。 第二种方法的好处是输入的时钟信号频率可以不受单片机晶振频率的限制, 可 以对相对较高频率进行测量, 但缺点是成本比第一种方法高, 设计出来的系统结构和程序也 比较复杂。由于成本有限,本次设计中采用第一种方法,因此输入的时钟信号最高频率不得 高于 11.0592MHz/24=460.8KHz。对外部脉冲的占空比无特殊要求。 根据频率检测的原理,很容易想到利用 51 单片机的 T0、T1 两个定时/计数器,一个用来定 时,另一个用来计数,两者均应该工作在中断方式,一个中断用于 1s 时间的中断处理,一 个中断用于对频率脉冲的计数溢出处理, (对另一个计数单元加一)
5、, 此方法可以弥补计数器 最多只能计数 65536 的不足。 程序设计原理程序设计原理 定时器 T1 作为定时器、定时器 T0 作为计数器。T1 定时 50ms,循环 20 次,实现定时 1s,在 1s 用定时器 T0 计数,即计得脉冲的次数。由于 T0 计数到 65536 溢出,开 T0 中断, 3 将溢出次数存入 R4。将溢出次数与 T0 计数值(TH0,TL0)综合处理数据,经 BCD 转换,得 到 6 位数码管显示的频率。设计框图如图 1 所示,T1 定时流程如图 2。 计数器 T0 采用计数功能,需要注意的一个问题是,输入的待测时钟信号的频率最高可 以达到 460800Hz,但计数器
6、最多只能计数 65536 次,显然需要对计数单元进行扩展,扩展 的思路是除了计数器 T0 的 TH0 和 TL0 用于计数外,再选用一个计数单元 23H,每当计数器 T1 溢出回零时产生中断,中断程序执行 23H 单元自增 1,这样,当一秒到时时采集的计数数 据,23H 单元存放的是数据的最高位,TH1 存放的是数据的次高位,TL1 存放的是数据的最 低位。当然,这里所说的“最高位” “次高位”以及“最低位”都是针对十六进制而言的。 T0 计数程序的流程图如图 3 所示。 1s定 时 开 始 同 时 开 始 计 数 定 时 到 读 取 数 据 十 六 进 制 向 十 进 制 转 换 数 码 管 显 示 图表 1 图表 3 4 开始 T 1 初始化 定时 50 ms 20 H = 20 启动定时器 T 1 定