基于51单片机的复杂功能八路抢答器的设计

2023-06-25 01:04严成骏钱庄王晓菲黄维王定洋万美琳
电脑知识与技术 2023年13期
关键词:报警

严成骏 钱庄 王晓菲 黄维 王定洋 万美琳

摘要:随着各类知识竞赛的兴起,结合51单片机开发的抢答器引起大量研究者的兴趣。通过对近年来相关文献的研究,发现当前市面上所提出的抢答器大多功能简单,实用价值较低。文章提出了一种基于51单片机的复杂功能八路抢答器,功能包括抢、作答两部分倒计时,时间均可调、自由对选手进行加减分操作的评价系统,对分数进行锁存、复位查分显示所有选手得分情况,并使程序回到初始状态以重复使用、报警提示电路。电路通过proteus仿真并焊接了实物图,软件仿真和硬件调试均验证了设计的可行性。

关键词:STC89C51单片机;多功能抢答器;定时;报警;proteus仿真;C51语言

中图分类号:TP368.1    文献标识码:A

文章编号:1009-3044(2023)13-0102-03

开放科学(资源服务)标识码(OSID)

0 引言

近年来,随着各类答题竞赛的兴起,抢答器被广泛使用。传统以数字、模拟电路为基础实现的抢答器方式简答,但布局布线复杂、可靠性和稳定性较差、成本较高[1]。故结合51单片机进行开发的抢答器引起大量研究者的兴趣。通过对近10年来相关文献的调研,发现市面上所提出的基于51单片机的抢答器,大多停留在简单功能的实现,难以运用在实际复杂的生活场景。文献[2-3]分别提出三路、四路抢答系统的设计,仅具有教学实践意义;文献[1]提出一种基于51单片机的智能抢答器实现了八路抢答,但不具备计分功能故仅能单次使用;文献[4]提出的八路抢答器具备抢答、作答两阶段的倒计时功能和相应报警电路,但不能通过硬件直接修改抢、作答时间;文献[5]设计的抢答器具备对答题者进行评价的计分系统,但不能手动设置选手分数,在出现误操作时必须重启电路,且缺少实物验证。

文章提出一种基于51单片机的复杂功能八路抢答器:具备抢、作答两阶段且时间均可调;增加设置按钮,可根据选手答题情况进行分数修改并锁存;具备复位查分功能,能够随时回到初始状态并显示选手得分;添加报警电路,能够在答题开始以及作答时间结束时,进行指示灯和蜂鸣器的双重报警;电路通过proteus仿真并焊接了实物。

1 整体设计要求

本设计的核心控制是51单片机,CPU的型号为STC89C51;可同时支持8名选手参与比赛,对应8个抢答按键K1 ~ K8;主持人控制电路按键有5个。分别是:开始/暂停键、设置键、加键、减键、复位/查分键;抢答器具有定时抢答功能,系统默认的抢答时间为30秒(抢答时间可以修改)。当主持人启动“开始”键后,定时器进行倒计时,进入抢答环节。抢答器对抢答选手号码具有锁存显示功能。系统进入抢答环节后,第一个抢答的选手编号将被锁存显示。即选手按抢答键后,抢答器锁存选手编号,蜂鸣器发出声响提示,LED指示灯亮,并在显示屏上显示选手编号与答题时间;抢答器具有答题限时功能。选手抢答成功后,进入答题限时环节。此时主持人按開始键,进入答题限时环节。系统默认时间是60秒(可通过设置,修改答题时间);抢答器具有给选手成绩加分、减分等操作的功能。参赛选手在规定的时间内进行抢答,在答题限时内进行答题,最后,主持人根据答题情况对选手进行加分或者减分操作;抢答器具有对选手查分的功能。在默认状态下,按查分键,系统进入逐屏显示每路选手的得分情况;抢答器具有抢答时间、答题时间和加减分分值修改功能。在系统默认状态下,按设置键,再按加键或者减键,能修改当前状态下的数据;通过电池盒供电。

2 硬件电路设计

2.1 总体电路

总体电路包括主持人控制电路、选手抢答电路、报警电路、显示电路、晶振电路、复位电路。采用内部时钟信号,在时钟电路中通过外接石英晶振和电容组成并联谐振回路[6]。为兼顾单片机运行速度和功耗,两电容值均选取30pF,可获得约12M的晶振频率。复位电路采用上电复位方式,已知复位条件为在RST引脚出现满足复位时间的高电平状态。通过阻容充电电路,在上电瞬间,RST电位与VCC相同,随后逐步衰减。衰减时间由RC时间常数决定,只需大于复位时间即可。

2.2 选手抢答电路

采用独立式键盘,即每个按键对应一条I/O口[5]。电路由8个抢答按键组成,对应连接P1.0-P1.7,分别代表8位抢答选手。当抢答开始后,P1口均处于高电平状态。此时若有选手按下按键,P1对应口将会下拉至地,单片机接收信号后在显示器上输出选手编号。键盘扫描采用查询方式,在第一位选手抢答后,其他选手的按键将被屏蔽。

2.3 主持人控制电路

由五个独立按键组成,加、减键分别连接P3.1、P3.0,开始/暂停键连接P3.2,设置键连接P3.7,复位/查分键连接P3.6。按键的触发方式均为查询方式,当单片机接收到相应I/O口由电平的变化时,执行相关程序。

2.4 报警电路

报警电路由指示灯报警和蜂鸣器报警两部分组成[7],前者通过P3.4输出低电平,利用LED单向导通即可点亮。后者的蜂鸣器需大电流驱动,采用共射极BJT,当P3.3为低电平时,进入放大状态,驱动蜂鸣器。

2.5 显示电路

显示屏采用LCD1602,RS端(数据/命令选择)接P2.0,RW端(读写选择)接P2.1,E端(使能)接P2.2,数据口D0-D7接P0端,由于P0口输出MOS管漏极开路,需外接上拉电阻,此处选择10k排阻。RS为低时,可对LCD进行初始化设置,如光标是否闪烁、写入字符后地址指针+1、显示清零等;RS为高时,即输入显示的具体内容。本电路中,RW大多处于低电平状态,即进行“写”操作。当按钮触发后,单片机内的程序计算出相应二进制代码,通过P0双向I/O口将数据传输到LCD中,并通过对应其内部的ASCII码显示出相应字符。

3 软件程序设计

3.1 流程图

整个程序运行的流程如图2所示,能够发现程序中涉及数量较多的按键操作。传统通过硬件消抖需额外添加电路,操作复杂且成本提升。本设计进行软件消抖,在代码中添加延时函数,当按键按下时,产生约15ms延时以消除抖动。

3.2 程序初始化

在单片机上电后,软件端主要涉及的初始化程序设置为LCD1602、抢答时间定时器T0、作答时间定时器T1。上电后,LCD设置为光标显示且闪烁,以表示通电成功。在复位显示选手得分时,进行16×2的显示(上下两排),光标不显示不闪烁,第一行字符输入完毕后指针清零以进行第二行的输入。T0、T1中断函数均选择工作方式1,即16位定时/计数器。结合外挂晶振的频率,通过设置相应初值,每次产生1s的时间,定时时间一到,倒计时将会减1,通过循环运行和设置运行次数,可获得所需要的抢答、作答时间。

4 仿真与实物验证

电路通过在Visual Studio Code进行C51代码的编译与调试,较之传统Keil的编译模式,Visual具备更加强大的代码纠错和扩展能力,通过添加C51扩展程序生成.hex文件。在proteus 8中绘制出相应原理图,并进行仿真,电路所有功能均正常运行。购置相应电子元器件后焊接出实物,并将程序烧录至51单片机中并成功运行,进一步验证了设计的可行性。图3为部分仿真结果。

5 结束语

本文所提出的基于51单片机的复杂功能八路抢答器,经过实际电路焊接后的调试,功能均达到预期设计目标,适用于灵活多变的应用场景。除了传统抢答器具有的限时抢、作答功能,额外增加了报警电路、设置电路(可修改限时时间,选手得分)、复位查分电路(可重复使用,锁存显示所有选手得分[8]) 。较之当前市面的大多数抢答器,本设计具有硬件电路简单、实用价值高、功能完整等特点。

参考文献:

[1] 王晓侃,苏全卫.基于AT89C51的智能抢答与表决计时器的设计与实现[J].电子设计工程,2012,20(8):7-9.

[2] 黄永东.基于51单片机的简易三路抢答系统设计[J].电脑知识与技术,2020,16(33):232-233.

[3] 陈娟,顾吴华.基于单片机的四路抢答器的设计[J].电脑知识与技术,2021,17(26):168-170.

[4] 王法杰.基于单片机八路抢答器的仿真与设计[J].微型电脑应用,2019,35(8):155-157.

[5] 马巍.基于51单片机智能抢答器的设计[J].科技视界,2019(5):67-68.

[6] 周航,陈艳玲,龚浩,等.基于8051单片机的电子抢答器硬件電路设计研究[J].电子制作,2021(7):85-86.

[7] 赵卫星.基于AT89C51单片机八位抢答器的设计[J].黄河科技学院学报,2019(5):39-42.

[8] 郑辰瑛.基于单片机的多功能抢答器的设计与实现[J].中小企业管理与科技,2021(31):191-193.

【通联编辑:梁书】

猜你喜欢
报警
LKD2-HS型列控中心驱采不一致报警处理
基于AT89S52寝室防火报警系统
2015款奔驰E180车安全气囊报警
降低TDCS/CTC系统列车占用丢失误报警率探讨
2014款奥迪Q5车发动机OBD灯报警
死于密室的租住者
核电厂报警抑制设计浅析
奔驰E260车安全气囊报警
2014款奔驰S65AMG车辅助蓄电池报警
一种无线遥控报警与手动报警相集成方法的实现