单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图4所示:
图3-3 复位电路
在方案中使用到了硬件复位和软件复位两种功能,由上面的硬件复位可使寄存器及存储器的值都恢复到初始值,而前面的功能提到了倒计时间需要有记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。 3.1.4 显示电路的设计
显示电路使用了七段数码管7SEG-MPX4-CC,它是共阴极的,由高电平点亮。
图3-4 阴极七段数码管
4.1.5 按钮输入电路的设计
抢答器的输入按钮使用常开开关,
图3-5 抢答按键
- 4 -
这些常开开关组成了抢答按键,硬件电路简单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺”现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。 3.1.6 发声
这里能利用程序来控制单片机P3.6口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的声音。
- 5 -
第四章 系统软件设计
4.1 程序系统结构图
硬件电路确定后,软件的编程要与硬件相匹配,软硬件才能结合完成所要实现的功能。由功能分析得到以下的软件结构图:
图4-1 软件系统结构图
4.2 程序流程图
整个程序主要由定时器T0、定时器T1、外部中断0和主程序构成。 定时器T0用于使扬声器发声,当需要响铃时,把响铃标志位置一,每次中断都对P3.7取反,扬声器发声,改变定时器初值,可改变扬声器频率。定时器程流程图如下:
返回主函数 响铃标志为1? 定时器重新赋值 非 法 抢答模块 正确抢答模块 调整时间按键模块 系统初始化模块 模块 显示模块 N Y P3.7取反 图4-2 响铃程序流程图
- 6 -
定时器T1用于倒计时,每次中断为50ms,当计数标志为20时即为一秒,显示数字减一。其流程图如下:
返回主函数 计时标志加一 计数器重新赋值
图4-3 倒计时中断流程图
外部中断0用于调整倒计时时间,流程图如下: R1增1 N N R1到99? 显示时间R1 Y 加1键按下? N Y R1置0 减1键按下? Y N R1到0? Y N 返回键按下? Y R1减1 R1置99
图4-4 调整抢答时间流程图
- 7 -
返回主函数