基于51单片机八路抢答器课程设计(含proteus仿真图及代码)

2022-11-01 15:28:15 浏览数 (1)

一、设计要求: 1、可满足8个选手的抢答 2、具有主持者控制开关,用来控制系统清零和抢答开始 3、抢答器具有数据锁存功能、显示功能和声音提示功能 4、抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数5、码管上显示选手的编号,同时灯亮且伴随声音提示,还要禁止其后的抢答输入 二、实验设计和分析 1 总体设计方案 方案一:采用数字电路控制。 采用数字显示电路的好处就是设计简单。用以在P0口外接电阻做输出口并接数码管来显示时间 ,共设了8个用户输入键,当抢答的时候,其中只有1个是有效按键,其它的都是干扰按键,若按下干扰键,将无反应只显示第一位抢答编号,如果用户抢答的时间剩下5秒(一般情况下,用户不会超过5秒,若用户觉得不便,还可以修改)电路将报警。 电路由两大部分组成:显示器电路和主电源电源(UPS),其中设置时间调整是为了可以合理的调节时间更加的人性化和用于不同的场合。 方案二:采用一种是用以AT89C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的抢答器功能,还能添加调节功能等等。 通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,故本次设计采用方案二。 1.1 系统设计方案 本方案采用一种是用以AT89C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的抢答显示功能。 初步设计思路如下: 抢答器用按钮为了更加方便直观的使用。 LED数码管显示第一位抢答号以及抢答时间以及限时时间。 用发光二极管代替报警的电路,发光表示倒计时已经进入5秒计时。 到计时间到,系统报警。 打开电源后,显示器显示“F FF”,只要第一个按下抢答器的就会显示抢答号。这样可预防抢答的时候出现不必要的麻烦。 按“复位”键,清除显示器为“F FF”。 按开始键开始抢答倒计时,当有人抢到第一个诞生那么主持人开始问问题,并且按下限时按钮开始倒计时,一共为二十秒,抢答人必须要在20秒内讲出答案如果进入最后5秒那么开始报警闪光提示,当闪光介绍那么就说明答题介绍并且蜂鸣器鸣叫以提示。然后进入第二轮的抢答要按下复位按钮,来更好的完成接下来的任务。

1.2 系统总体结构框图

本次设计主控制器为AT89C51单片。 1.3 功能实现显示区 在本次设计中,基于节省材料的原则,暂时用发光二极管代替提示系统,发光管亮,表示5秒倒计时;灭,表示倒计时介绍。当P口输出低电平时,二极管发光,提示答题即将结束。 硬件设计

2.软件设计 主要过程是LED数码管提示开始倒计时和限时抢答号,通过按键抢答,同时LED显示倒计时情况,按下抢答键后判断第一位抢答号,作出倒计时和抢答号已经报警提示处理。 由于采用多个按键来完成抢答,那么其中一个第一个完成按键的会在数码管上显示抢答号。在抢答过程中,首先要进入开始抢答的步骤,接着根据抢答号由显示的抢答人来答题,直到回答出或者倒计时结束,才能完成抢答过程。进入抢答号的判断比较处理状态并给出相应的处理过程。

2.1程序流程图

3 仿真和调试 采用Keil 和Protues软件相结合进行仿真。 数码管初始化显示“F FF”:

按下开始按钮后,进入抢答倒计时:

选手在20秒内抢答,如8号选手:

进入倒计时(5s):

非正规抢答,如6号选手:

4 附录(源代码:) 由于篇幅有限相应的代码和仿真图已经上传(包括程序和课程设计报告),有需要的自取: https://download.csdn.net/download/qq_44699923/12230569

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179803.html原文链接:https://javaforall.cn

0 人点赞