基于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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)
blank

相关推荐

  • Pycharm教程–断点调试「建议收藏」

    Pycharm教程–断点调试「建议收藏」pycharm怎么debug单步调试?首先,打开一个的pycharm的界面当中,需要选中编辑器中的左侧。 然后pycharm的菜单中的run的菜单。点击了run的菜单之后,选中debug的选项。 就可以看到是在编辑器当中的选中一个断点。然后就可以对于当前中的点击下一步中按钮。可以看到是代码就会移动到下一行的代码上了。或者使用快捷键的方式来移动下一步….

  • js循环精灵图

    js循环精灵图js循环精灵图循环精灵图可以不用在给每一个小块一一的修改位置。左侧是一大张背景图右侧是成品是预览图这个背景图的位置其实是有规律的,每两张之间间隔一个固定长度,这个固定长度刚好等于一个小图标的长度,我们使用的这个图间隔44px。 <scripttype=”text/javascript”> varlis=document.querySelectorAll…

  • java怎么测试_java中如何使用Junit测试[通俗易懂]

    java怎么测试_java中如何使用Junit测试[通俗易懂]java中如何使用Junit测试一、总结一句话总结:a、单元测试的测试代码在test文件夹下,和源码不在同一个文件夹下b、测试的类方法都以test开头,后面接要测试的类或者方法的名字1、JUnit中什么时候使用assertTrue,assertFalse语句?true通过false通过assertTrue(booleancondition);condition:如果condition结果为t…

  • Pycharm超好用的插件推荐,小新必备,快来收藏吧。(二)[通俗易懂]

    Pycharm超好用的插件推荐,小新必备,快来收藏吧。(二)[通俗易懂]Pcharm超好用的插件

  • Linux查看日志三种命令

    Linux查看日志三种命令第一种:查看实时变化的日志(比较吃内存)最常用的:tail-ffilename(默认最后10行,相当于增加参数-n10)Ctrl+c是退出tail命令 其他情况:tail-n20filename(显示filename最后20行)tail-n+5 filename(从第5行开始显示文件)  第二种:搜索关键字附近的日志最常用的:…

  • mac goland2022永久激活码_最新在线免费激活[通俗易懂]

    (mac goland2022永久激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html1T…

发表回复

您的电子邮箱地址不会被公开。

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