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

基于51单片机八路抢答器课程设计(含proteus仿真图及代码)一、设计要求:1、可满足8个选手的抢答2、具有主持者控制开关,用来控制系统清零和抢答开始3、抢答器具有数据锁存功能、显示功能和声音提示功能4、抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数5、码管上显示选手的编号,同时灯亮且伴随声音提示,还要禁止其后的抢答输入二、实验设计和分析1 总体设计方案方案一:采用数字电路控制。采用数字显示电路的好处就是设计简单。用以在P0口…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、设计要求:
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.net/179803.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c+ explicit_staticint与int的区别

    c+ explicit_staticint与int的区别C++ explicit关键字详解首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用…

    2022年8月18日
    5
  • Maven相关配置

    Maven相关配置

    2021年7月11日
    95
  • Makefile教程(绝对经典,所有问题看这一篇足够了)「建议收藏」

    Makefile教程(绝对经典,所有问题看这一篇足够了)「建议收藏」该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要   什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefil…

    2022年5月14日
    33
  • Java并发编程高级篇(十一):执行器之处理被拒绝的任务

    Java并发编程高级篇(十一):执行器之处理被拒绝的任务

    2022年3月1日
    40
  • 细节、MYSQL_DATE_FORMAT()_函数_详解(记得收藏)

    细节、MYSQL_DATE_FORMAT()_函数_详解(记得收藏)实用请点赞和关注,后期有更多内容分享,携手同行!mysql中DATE_FORMAT(date,format)函数可根据format字符串格式化日期或日期和时间值date,返回结果串。也可用DATE_FORMAT()来格式化DATE或DATETIME值,以便得到所希望的格式。根据format字符串格式化date值:下面是函数的参数说明:%S,%s两位数字形式的…

    2022年7月27日
    14
  • Redis学习——redis.conf 配置文件介绍

    学以致用 学在用前参看文章: redis.conf配置详细解析 redis.conf 配置详解 Redis配置文件详解(redis.conf)-云栖社区在Redis的使用过程,除了知道对Redis五种数据类型的操作方法之外,最主要额就是对redis.conf进行配置了,下面整理出redis.conf中常见的一些配置介绍。 参数说明 redis.conf 配置项说…

    2022年2月26日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号