一、任务说明

(一)系统总体方案设计与实现

1、系统总体方案设计

本系统由硬件系统和软件系统组成。

硬件系统包括按键控制模块、中央处理AT89C51系统、指示灯显示模块、LED数码管显示模块和扬声器提示模块。

软件系统包括主程序、定时器0中断服务程序、定时器1中断服务程序、延时程序、按键程序和显示程序。

为方便理解,系统框图如下图所示:

图1 系统框图

2、系统总体方案实现

本次单片机课程设计我们的选题是《八路抢答器》。本次课程设计是以八位选手抢答和主持人的控制为出发点,在传统的功能上进行适当的创新,添加新功能和完善要求的功能,从整体把握进行设计。

①只有一个最先抢答有效,其余抢答无效。

②在主持人的控制下,10秒内抢答有效,用数码管显示抢答10秒倒计时,若有抢答直接结束,显示哪个编号抢到,并进入10秒的答题时间。

③若有提前抢答,则犯规,用蜂鸣器响1秒警示。

④有复位按键,用于复位作用,开始新的一轮。

⑤可以设置抢答时间和答题时间,可调范围是0到99秒,超出或低出范围会返回第10秒。

⑥LED警示灯、LED显示屏和蜂鸣器进行倒计时警示,三重的警示,带来极致的紧迫感。

⑦答题时间暂停,可以确定选手最后的答案耗时多长时间,促进选手的公平。

⑧如果选手在规定时间内或违规抢到第一位,不仅屏幕会显示号码,而且对应选手的LED灯会亮起。

(二)硬件电路设计

1、硬件电路图:

时钟电路模块:

图2 时钟电路

复位电路模块:

图3 复位电路

LED显示屏模块:

图4 LED显示屏

选手抢答按键模块:

图5 选手抢答按键

选手点灯模块:

图6 选手点灯

蜂鸣器提示模块:

图7 蜂鸣器提示

LED灯倒计时警示模块:

图8 LED灯倒计时警示

主持人控制按键模块:

图9 主持人控制按键

2、硬件说明:

本次硬件设计简单来说由:AT89C51最小系统、显示模块、按键模块LED灯和蜂鸣器模块组成。

(三)软件设计

当接通电源开始工作后,单片机中的程序开始运行,将对程序进行初始化。完成初始化后,将进行键盘扫描,同时判断开始按键、调节按键是否按下。最后完成倒计时和选手号码的显示等功能。

软件流程图如下图所示:

图10 软件流程图

二、电路原理图与结果

1、选手违规抢答:以第1位选手违规抢答为例,对应选手的LED灯亮起,LED显示屏显示对应违规选手号码,蜂鸣器先响起1秒警示,如果未进行复位操作,则蜂鸣器将再会响起,同时倒计时警示LED灯会闪烁提示。(第1-8位选手都是如此)

2、抢答时间调整:如果按下抢答时间加键或抢答时间减键,LED显示屏显示对应的调整时间,时间调整范围为0-99秒,超过99秒或低出0秒则返回去10秒。本次将抢答时间增加到15秒。

3、答题时间调整:如果按下答题时间加键或答题时间减键,LED显示屏显示对应的调整时间,时间调整范围为0-99秒,超过99秒或低出0秒则返回去10秒。本次将答题时间减少到8秒。

4、主持人按下开始键:抢答时间开始倒计时,最后几秒抢答时间倒计时警示LED灯将闪烁,要是选手没有选择抢答,则蜂鸣器会不断响起,LED显示屏熄屏,除非按下复位键开启新的一轮。

5、主持人按下开始键:抢答时间开始倒计时,最后几秒抢答时间倒计时警示LED灯将闪烁,要是选手选择抢答,则对应选手的LED灯会亮起。

6、要是选手在抢答时间按下抢答键,进入答题时间:答题时间最后几秒倒计时LED灯亮起,蜂鸣器不断响起,提示按下复位键,开始新的一轮。

6、要是选手在抢答时间按下抢答键,进入答题时间:答题时间内主持人可以按下答题时间暂停键,则显示屏时间暂停,按下答题时间暂停键的第一瞬间LED显示屏熄屏,倒计时LED警示灯亮起,松下答题时间暂停键的第一瞬间LED显示屏显示暂停的时间,倒计时LED警示灯熄灭,除非按下复位键,开始新的一轮。

三、代码说明

代码部分主要由四个模块组成,分别为主程序、显示子程序、时间按键调整子程序、选手按键子程序、开始键子程序、延迟子程序、定时器T0初始化子程序和蜂鸣器和LED灯子程序。

1、主程序:

主程序完成定时器0的初始化、74LS138芯片的初始化和扫描主持人按键,进行对应的操作。

2、显示子程序:

此函数大方向分为开始键按下和开始键没有按下的两种情况。同时两个大方向又各自细分两个小方向。当开始键按下,则有选手在抢答时间按下显示选手号码在LED显示屏上,要是没有则不显示号码。同时显示屏上显示抢答和答题的倒计时。当开始键没有按下,如果有人违规抢答,则显示屏显示违规号码。如果按下答题时间或抢答时间调整键,则对应显示屏进行更新数据操作。

3、时间按键调整子程序:

此函数很简单,要是按下抢答时间或答题时间调整键,则对应时间将进行操作,调整范围为0-99秒,超出99秒或低于0秒,则返回到10秒。

4、选手按键子程序:

以K1为例,程序一直判断按键引脚电压,按下按键电压为0。按键会产生抖动,需要进行消抖处理,先进行消抖延迟10ms,如果按键电压还是0,确定没问题K1进行操作,令按键数目num为1,供主函数处理按键消息。同时将74LS138的对应输入口赋值,数码管显示工作,定时器1和0也进行对应工作。K1-K8功能都是一样的操作。

5、开始键子程序:

如果按下开始键,程序一直判断按键引脚电压,按下按键电压为0。按键会产生抖动,需要进行消抖处理,先进行消抖延迟10ms,如果按键电压还是0,确定没问题K0进行操作.将对应的标志位进行开始工作,将清除违规标志位、开始抢答时间调整键标志位和答题计时时间调整键标志位停止运行。

6、延迟子程序:

确定51单片机为12MHz频率,以此确定ms的延迟子函数。

7、定时器T0初始化子程序:

将定时器T0进行初始化,运用方式1,即16位计数器。取高八位和第八位寄存器进行定时操作。

8、蜂鸣器和LED灯子程序:

用定时器0和定时器1确定蜂鸣器响多久和LED灯亮。

四、源代码

需要代码见我的资源里!

八路抢答器(51单片机)相关推荐

  1. 八路抢答器c语言程序,八路抢答器-51单片机(附Proteus仿真、C代码、原理图及PCB、论文和元器件清单)...

    获取全套设计资源,请见后文说明- 设计要求 1)抢答器同时供8名选手或2个代表队比赛,分别用8个按钮S0-S7表示: 2)设置一个系统清除和抢答控制开关S,该开关由主持人控制: 3)抢答器具有锁存与显 ...

  2. c语言写51单片机八路抢答器,51单片机八路抢答器的程序问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 各位大佬,我是一名单片机小白,要求一个选手通过P2按键抢答后其他选手按下时没反应,可是我的程序按了其他按键数字也跟着变,换了几种方式都改变不了,请大家帮我 ...

  3. 单片机8位抢答器实训机电报告_单片机课程设计报告八路抢答器

    单片机课程设计报告八路抢答器 <单片机原理及接口技术 > 课程设计 报告 课题名称 题目 15八路抢答器设计 ★★ 学院 自动控制与机械工程学院 专业 电气工程及其自动化 班级 姓名 学号 ...

  4. 【Proteus仿真】基于51单片机的八路抢答器

    [Proteus仿真]基于51单片机的八路抢答器 Proteus仿真 主要功能和使用介绍 采用4位数码管设计. 下排按键一一对应八位选手. 上排三个按键,从走到右依次为:开始.暂停.复位. 操作流程: ...

  5. 51单片机 八路抢答器+Proteus仿真

    51单片机 八路抢答器+Proteus仿真 Proteus仿真 实例代码1 直观,任意看懂 #include <reg52.h> unsigned char code led[17]={0 ...

  6. 基于51单片机的多功能八路抢答器

    1.功能介绍 多功能八路抢答器是基于51单片机来设计的,除了可以实现最基本功能--8路抢答外,还具有自动处理犯规选手,抢答时间调整,还可以进行答题,计分,并且可以查询或修改分数. 2.硬件设计 该抢答 ...

  7. 基于51单片机的八路抢答器附仿真代码开源

    基于51单片机的八路抢答器代码开源 单片机采用51单片机 一个共阳数码管 需要该源码的可以关注公众号:智慧小巷 回复:八路抢答器 即可!

  8. 八路抢答器系统51单片机设计【附Proteus仿真、C程序、原理图及PCB文件、元器件清单和论文等】

    设计要求 1)抢答器同时供8名选手或2个代表队比赛,分别用8个按钮S0-S7表示: 2)设置一个系统清除和抢答控制开关S,该开关由主持人控制: 3)抢答器具有锁存与显示功能.即选手按动按钮,锁存相应的 ...

  9. 51单片机八位抢答器c语言设计,基于51单片机八路抢答器的设计

    基于51单片机八路抢答器的设计 毕业设计(论文)题 目:基于 51 单片机八路抢答器的设计 系 部: 专 业: 学 号: 学生姓名: 指导教师姓名: 指导教师职称: 2013 年 xx 月 xx 日X ...

最新文章

  1. Mybatis实现多对多关联组合查询
  2. linux putty 标题栏显示ip putty本地设置 服务器设置
  3. pytorch图像和张量的相互转换_[Pytorch]Pytorch的tensor变量类型转换
  4. ubunto安装mysql8.13_ubuntu安装mysql[ubuntu部署]
  5. 创建squashfs.img文件挂载失败
  6. PYTHON * 和**的用法
  7. WCF技术剖析之二十一:WCF基本异常处理模式[中篇]
  8. 深度解读:都是顶薪为什么浓眉远超卡哇伊?
  9. 太阳能计算机屏幕是什么材质,魅蓝E的屏幕怎么样?屏幕材质是什么?
  10. 五一小长假|不得不说的一些话
  11. yaml 数组_使用 YAML 保存游戏数据 !
  12. python有多少种语法_这20个常规Python语法你都搞明白了吗?
  13. 使用 IDEA 创建 Scala 工程
  14. C语言叠堆在变量周围,C语言及ARM中堆栈指针SP设置的理解与总结
  15. 计算机辅助初中英语教学,利用多媒体优化初中英语课堂教学课题研究
  16. 【SEU程序设计课笔记】 Mooc - Chapter 5 - (EX) - 猜数字游戏
  17. 鸿蒙无极造化玉牒,上古十大至强神器,东皇钟只能排第四,另外七件你知道是哪七件吗...
  18. Weakly Supervised Instance Segmentation using Class Peak Response
  19. Bonecraft 界面汉化补丁
  20. Docker快速安装启动

热门文章

  1. Java JDBC | 四种连接数据库的方法
  2. 三七是地道中药材,三七对于血液方面的疾病有很好的治疗和预防作用
  3. 日式卡通渲染笔记(罪恶装备 碧蓝幻想 原神 战双)
  4. OpenStack快照分析:(一)从镜像启动的云主机离线快照分析
  5. 前端菜鸟帝都面试记 super | 掘金技术征文
  6. Oracle取当前日期的前6个月或后6个月时间
  7. java加密框架_Java加密解密(一)Java加密体系基础
  8. k均值聚类算法伪代码
  9. 长尾理论不是颠覆性的概念
  10. springbootCache和Redis缓存机制