1、 设计题目:竞赛抢答器设计题目:竞赛抢答器 题目要求:题目要求: 开关 K0-K7 代表竞赛抢答按钮 0-7 号,当某个逻辑电平开关置“1”时,相当 于某组抢答按钮按下,在七段数码管上将其组号(0-7)显示出来,并使喇叭响一 下。发一个脉冲开始下一轮抢答,按其他键程序退出。同时考虑抢答允许时间, 10 秒内有效,10 秒之后无人抢答,本次抢答作废。 设计思路:设计思路: 抢答器设计可分为以下几部分:开始抢答信号的接收;计时器的倒计时; 检查抢答按钮并显示在数码管上;任意键退出程序。 对此, 我们选用可编程并行接口芯片 8255A, 采用方式 0, PA 接口做输入, 接收抢答信号,并用 PB
2、接口做输出通过编程将抢答组号输出到数码管显示。 PC 接口用 PC0 接扬声器通过芯片控制其发声, PC7 接口接收开始的脉冲信号, 当接收到高电平时开始一轮抢答。 定时器我们选用可编程定时/计数器 8254.,采用方式 0 在计数结束时产 生正跃变信号。我们使用计数器 0,其中 GATE0 接 8255 的 PC1 端口,高电平 时开始计数, OUT0 接 8255 的 PC6, CLK0 接试验箱上的频率为 1HZ 的脉冲发生 器,当做 1 秒计时信号。 编程对 8255A 初始化后,开始时由脉冲发生器产生一个正脉冲被 8255A 的 PC7 接收,8255A 则通过 PC1 输出高电平使
3、定时器 8254 工作;这之前通过 编程使 8254 实现 10 秒倒计时。 当 8254 开始计时时,8255 循环检查 PA 端口和 PC6 端口,若有人抢答, 则 PA 端口有高电平输入,此时若 PC6 仍然低电平,则抢答有效,通过编好的 程序判断是第几组抢答, 并通过 PB 端口输出一段 01 代码使数码管显示组号, 1 同时 PC0 端口产生高电平使扬声器发声;若循环时 PA 端口一直低电平而 PC6 产生高电平,说明时间已到,PC0 端口产生高电平使扬声器发声。 扬声器发声后,编程使 8254 定时 2 秒,并在时间到时 OUT0 发出高电平 通知 8255A 使之将 PC0 输出
4、变为低电平,扬声器停止发声。 至此,一轮抢答结束,插入一个任意键退出子程序,并等待脉冲信号开 始下一辆抢答。 设计电路原理图设计电路原理图 2 程序流程图程序流程图 开始 8255 初始化 接收脉冲信号 3 是 否 否 是 否 是 程序清单程序清单 MY82540 EQU 9840H MY82541 EQU 9841H MY82542 EQU 9842H MY8254M EQU 9843H MY8255A EQU 9860H MY8255B EQU 9861H MY8255C EQU 9862H 对 8254 初始化 10 秒计时 判断时间是否超过十 有人抢答 判断是第几组抢答并 由数码管显示组号 8254 控制扬声器发声 2 秒 按下任意键 结束程序 4 MY8255M EQU 9863H ; 8254,8255 宏定义 DATA SEGMENT TAB DB 60H,0CAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH ; 控制七个数码管 DATA ENDS CODE SEGMENT ASS