用单片机产生频率可调的方波信号。输出方波的频率范围为 1Hz-200Hz,频率误差比小
于 0.5%。 要求用“增加”、“减小”2 个按钮改变方波给定频率,按钮每按下一次,给定频率改
变的步进步长为 1Hz,当按钮持续按下的时间超过 2 秒后,给定频率以 10 次/秒的速度连
续增加(减少),输出方波的频率要求在数码管上显示。用输出方波控制一个发光二极管
的显示,用示波器观察方波波形。开机默认输出频率为 5Hz。
3.5.1 模块 1:系统设计
(1)分析任务要求,写出系统整体设计思路
任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出
I/O 管脚的状态取反。由于频率范围最高为 200Hz,即每个周期为 5ms(占空比 1:1,即
高电平 2.5ms,低电平 2.5 ms),因此,定时器可以工作在 8 位自动装载的工作模式。
涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描
显示等。 问题的难点在按键连续按下超过 2S 的计时问题,如何实现计时功能。
系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行
相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。中
断程序负责方波的产生、按键连续按下超过 2S 后频率值以 10Hz/s 递增(递减)。
(2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图
采用 MCS51 系列单片机 At89S51 作为主控制器,外围电路器件包括数码管驱动、独立
式键盘、方波脉冲输出以及发光二极管的显示等。
数码管驱动采用 2 个四联共阴极数码管显示,由于单片机驱动能力有限,采用 74HC244
作为数码管的驱动。在 74HC244 的 7 段码输出线上串联 100 欧姆电阻起限流作用。
独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。发光二极管串联
500 欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。
图 3-14 方波信号发生器的硬件电路原理图
(3)分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图
软件任务要求包括按键扫描、定时器的控制、按键连续按下的判断和计时、数码管的动
态显示。
程 序 设 计 思 路 : 根 据 定 时 器 溢 出 的 时 间 , 将 频 率 值 换 算 为 定 时 器 溢 出 的 次 数