4.实验方法与原理
(1)信号的锁存
本实验的关键是准确判断出*先抢答者的信号并将其锁存,同时对其他抢答者的信号不予考虑,送入并行接口的8位抢答状态数据均为0。为此,可将8个抢答按钮信号通过一个8位并行输入口接至CPU中。当主持人启动抢答过程后,CPU通过该并行输入口对8路抢答信号进行循环采样。当某一组的抢答信号已发出,则立即停止采样,并记录该抢答组的组号。
(2)信号的采集
通过查询口状态确定信息来自哪一路。当8组均未按下抢答按钮时,送入并行接口的8位抢答状态数据均为0。当计算机采样到这8位的数据不为0时,则表示有一组获得了抢答的机会。然后通过逐位查询各位口状态,即可判断出哪一组抢答成功。*后,利用并行输出接口将抢答成功的组号显示出来。在本实验中,可考虑只用1位七段数码管显示抢答选手的组号。
(3)计时
为对抢答后的回答时间进行计时控制,可利用一个可编程定时/计时器。先置计数初值,再计时,当计时时间到后,由并行接口输出一个响铃信号提示抢答选手的回答时间已到。
(4)控制及条件设计
由于本系统要求对犯规的组号亮红灯警告,所以要设置一个启动按键。在主持人按下启动按键之前,若有抢答按钮按下,则该抢答选手犯规。此时可通过并行接口输出一个信号使该组的红色发光二极管亮灯,以示意该组选手犯规。在设计中可采用中断的方式输入启动按键的状态,为此将启动按键信号直接接到计算机的某根中断请求线上。
(5)软件设计
本实验的软件可分为主程序、启动中断服务程序和定时中断服务程序三部分。
在主程序中,当判断有抢答钮被按下时,需要判断启动标志是否为1。若系统尚未启动,则抢答结果为无效,且判断该抢答组犯规。此时,将通过并行接口送出使该组红灯亮的信号,提示有犯规行为。另外在主程序中,还要对抢答者的回答时间进行初始化赋值,当回答开始时,若有回答超时,则要通过并行接口送出响铃报警信息以提示超时。
启动中断服务程序的功能较单一,只需对启动标志进行记录即可。例如,可在主程序中设置一个启动标志并清零,当启动按钮被按下后,系统进入中断服务程序。这时,只需在中断服务程序中设置启动标志即可,系统在返回主程序后将查询该标志,以确定抢答是否开始。
……