标题: 单片机《8位竞赛抢答器的设计》课程设计报告 [打印本页]

作者: luhaix    时间: 2018-6-25 09:56
标题: 单片机《8位竞赛抢答器的设计》课程设计报告




接口技术及应用
课程设计


题目

8位竞赛抢答器的设计

学院(系)

信息工程系

专业

计算机科学与技术

班级

20153

姓名








指导教师




摘要

抢答比赛能极大地提高参赛者与观众的兴趣,而多人抢答器作为一种抢答比赛常用的工具现在已经广泛运用于各种抢答竞赛,多人的抢答器要求要能快速锁定抢答的信息,并且可以灵活地计时,还要能方便主持人设置抢答时间。

本设计使用 AT89C52单片机芯片以及MAX7219串行输入/输出显示驱动芯片可以实现多人抢答系统,利用AT89C52单片机的中断、记数的功能以及其优秀的性能,通过高速扫描选手按键I/O口,可以精准锁定抢答成功选手编号,并为系统提供计时功能,同时不断更新数码管输出信息使其能够正确地显示抢答时间与抢答成功选手编号。







Abstract

Answering the competition can greatly increase the interest of the participants and the audience, and the multi-user responder is now widely used in various rush-answering contests as a common tool for answering the match. The multi-user responder needs to be able to quickly lock the answer. Information, and can be flexibly timed, but also to facilitate the host set the answer time.

This design uses the AT89C52 microcontroller chip and the MAX7219 serial I/O display driver chip to implement a multi-user system, using the interrupt and count functions of the AT89C52 microcontroller and its excellent performance, by high-speed scanning of the player's button I/O ports. Accurately lock the successful player number and provide the system with the timekeeping function. At the same time, it constantly updates the digital tube output information so that it can correctly display the answering time and the successful player number.



目 录

第1章  需求分析

第2章  系统概要设计

2.1 8位竞赛抢答器的整体设计

2.2 8位竞赛抢答器功能流程

第3章  仿真电路设计

3.1 仿真电路总体设计

3.2 单元电路设计

3.2.1 晶振电路与复位电路

3.2.2 抢答电路

3.2.3 显示电路

3.2.4 控制电路

第4章 系统软件设计

4.1 软件主程序设计

4.2 软件子程序设计

第5章  仿真结果分析

5.1仿真结果分析

第6章 课程设计总结

参考文献

致  谢

附录



8位竞赛抢答器的设计
第1章  需求分析

抢答比赛是一个参赛者与观众都喜爱的富有激情的比赛,在主持人宣布开始答题后,选手要在规定的时间内,以抢答的方式来回答问题。过去,人们抢答比赛仅依靠主持人人为的判断来判定到底哪个选手是最快抢答成功的,这种抢答方式不仅精准性低而且效率也不高,所以抢答比赛就需要有抢答器来进行辅助比赛,精准选出抢答成功的选手。

本次我们要设计的是一个8位竞赛抢答器,可以同时供8名选手或8支队伍比赛。抢答器要求能快速地锁定抢答选手或队伍的编号,抢答的信息要能迅速显示在数码管上,并且要能为主持人提供方便的比赛操作,可以灵活地进行比赛时间调节与操作比赛的开始与结束,保证整场比赛的公平性与灵活性。考虑到比赛运营的费用与投入的成本,抢答器整套系统的成本也不能太高,所选用芯片的价格要求要适中,这样才能保证抢答器系统的价格在可以普遍应用的范围内。


2  系统概要设计
2.1 8位竞赛抢答器的整体设计

8位竞赛抢答器可以同时提供 8 名选手参加比赛,使用AT89C52单片机芯片的P1^1 – P1^7口作为抢答按钮的接口,与8个按钮相连接,模拟选手的抢答按键。并在P2^0口与P2^1口分别设置一个抢答开始按键与抢答时间设置按键,提供给主持人进行比赛的控制,再利用系统的复位功能,重置系统模拟进入下一题,重新设置计时时间与计时抢答工作的准备。数码管的显示驱动由MAX7219显示芯片带动,使用AT89C52单片机芯片的P3^0(RXD)与P3^1(TXD)口分别与MAX7219芯片的DIN口与LOAD口连接,进行串行通信与数据装载,传送当前的抢答时间与抢答成功选手编号,CLK时钟序列输入口与AT89C52芯片的INT0口(外部中断口)进行连接,提供控制信息。

2.2 8位竞赛抢答器功能流程

接通电源后,主持人可以按抢答时间设置按键进行抢答时间的设置,在设置好抢答时间后,按开始按键即可开始计时抢答,此时选手可以通过自己的按键进行抢答。在一个选手成功之后,系统会进行选手编号与抢答时间的锁定,数码管就会显示当前抢答选手的编号与抢答时间。系统流程图如下所示:

图2-1 8位竞赛器系统流程图


3  仿真电路设计
3.1 仿真电路总体设计

8位竞赛抢答器使用了AT89C52芯片和MAX7219芯片进行设计,AT89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS,8位微处理器,俗称单片机,用于抢答逻辑电路的设计。MAX7219是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED,拥有10MHz连续串行口与独立的LED段控制,用于显示抢答成功选手编号显示与抢答时间显示。

系统的总体电路如下图所示:

图3-1 总体电路图



3.2 单元电路设计

为了更好的设计8位竞赛抢答器,我们根据各个部分的功能将总电路划分成为晶振电路、抢答电路、显示电路以及主持人控制电路,以下是对各个单元电路的详细说明。

3.2.1 晶振电路与复位电路

该晶振电路使用的是内部时钟电路,晶振的频率为12MHZ ,提供AT89C52芯片的时钟脉冲使AT89C52芯片工作。复位电路使用的是按键与上电复位,复位电路可以使单片机重置,使单片机重新开始执行程序。当复位开关按下 RST 口由低电平变为高电平,触发复位功能,系统重置。晶振电路电路图如下图红圈区域,复位电路如下图蓝圈区域,如图:

图3-2 晶振电路电路图

3.2.2 抢答电路

抢答电路使用AT89C52的P1^0 - P1^7作为选手的抢答按键,选手编号分别1到8,当选手按下按键时,按键对应的接口由高电平变为低电平,程序不断扫描P1各个口电平的变化,在扫描到有接口变为低电平后,迅速锁定该口的编号,模拟抢答成功情形。抢答电路电路图如下图红圈区域所示:

图3-3 抢答电路电路图

3.2.3 显示电路

显示电路由MAX7219芯片进行显示驱动,两个10引脚的LED数码管进行选手编号的显示与抢答时间显示,由DIN接口(串行数据输入端口)进行串行数据的输入,LOAD口进行数据的装载,再通过DIG0~DIG7口进行片选信号的输出,对LED数码管进行控制。显示电路电路图如下图红圈区域所示:

图3-4 显示电路电路图

3.2.4 控制电路

控制电路由AT89C52芯片的P2^0与P2^1口进行实现,通过与两个按键进行连接,实现开始计时与抢答时间的设置。控制电路电路图如下图所示:

图3-5 控制电路电路图


4 系统软件设计4.1 软件主程序设计

图4-1 主程序流程图

程序Main函数

  1. <font style="font-size: 12pt">void main()
  2. {
  3.   while(1)
  4.   {
  5.   do
  6.   {
  7.     holderscan();
  8.   }
  9.   //while(begin);//开始前进行设置,若未按下开始键    主持人是否把开始按键按下
  10.   while (begin)
  11.   delay_ms(10);//防抖
  12.   while(!begin);
  13.   max7219_init(); //芯片初始化
  14.   timer_init();                //中断初始化
  15.   TR0=1;                              //开始中断
  16.   do
  17.   {
  18.     time_display(second);
  19.               people=keyscan();//扫描选手按键
  20.               scare_display(people);
  21.   }
  22.   while((!people)&&(second));//运行直到抢答结束或者时间结束
  23.   TR0=0;
  24.   }
  25. }</font>
复制代码


第5章  仿真结果分析
5.1仿真结果分析

系统仿真时首先要在使用KeilC编译器,把所写的程序进行编译,同时在仿真器里设置生成 hex 文件,编译无错误时使用 Proteus软件仿真。电路启动仿真结果如下所示:

图5-1 电路启动仿真图

按下START按键后,抢答开始,开始30s倒计时,仿真结果如下所示:
图5-2 倒计时仿真图

点击任意选手按钮,倒计时暂停,显示选手编号,仿真结果如下所示:

图5-3 选手抢答仿真图

若该选手打错,继续倒计时,选手编号清零,仿真结果如下所示:

图5-4 继续抢答仿真图

一轮答题结束后,点击复位按钮,倒计时复位,选手编号清零,仿真结果如下所示:

图5-5 复位仿真图

6章 课程设计总结

在这次课程设计中,通过完成8位竞赛抢答器的设计,我们对书本上的知识有了进一步的了解。将以前学习过的模电知识与proteus软件的操作结合起来。本次课程设计我们选择8位竞赛抢答器设计的原因是这看起来是个相对简单一点的课题,但当我们真正开始设计的时候,发现这个课题并没有我们想象中的那么简单,在设计电路的过程中遇到了不少的问题。虽然我们通过查阅书本和网上的资料在proteus上成功画出本次设计所需要的电路图,但我们在电路仿真的时候发现电路中的电阻及电容参数设置错误,导致仿真过程中电路无法正常运行,当我们改正后再次仿真的时候又发现了定时器的初值设置有误以及其他元器件的参数都有点小问题,经过几次修改,电路成功仿真并达到了我们预期设想的结果。

本次的课程设计使我们受益匪浅。加深了我们对单片机和数字电路的认识,相信这在以后的学习和工作中碰到这些基础元器件我们会更加得心易手。我们还学习到了一些课堂上学不到的东西,这些知识可能对于我们将来的毕设、学习或者工作来说,都是很有帮助的。希望以后我们还能更多这样的机会来学习更多的知识。



致  谢

经过一周的努力,我们成功完成本次课程设计的课题,以单片机为核心设计出一个8位竞赛抢答器。虽然还存在一些小问题,但基本达到本次课程设计的设计要求。

在这一周的课程设计中,我们在设计过程中遇到一些曲折。在编写程序和完成电路仿真时,几次因无法实现设计所要求的结果或错漏百出,我们只好重新设计一个新的方案。好在得到老师和周围同学及好友的帮助,我们才能坚持下去并成功完成本次课程设计。在此我们要感谢罗泽鹏老师对我们的指导,老师知识渊博,做事严谨,平近易人。向老师请教问题时,老师细心地解答我们的问题,还经常帮忙指出我们没有发现的错误并提出改善的建议。我们还要感谢周围的同学,在完成本次课程设计的过程中得到他们不少的帮助和支持。不过我们最想感谢的还是我们自己,正是因为我们组员互帮互助、团结友爱、坚持不懈的精神,我们才能在本次课程设计画下一个完美的句号。


附录

总电路图

电路元器件图表

名称

图标

检索名

电容

CAP

CAP-ELEC

晶振

CRYSTAL

按钮

BUTTON

电阻

RES

喇叭

SOUNDER

数码管

7SEG-MPX2-CC

7SEG-MPX2-CC-BLUE

接地

GROUND

VCC

POWER

AT89C52

AT89C52

MAX7219


完整的Word格式文档51黑下载地址(含源码):
《8位竞赛抢答器的设计》课程设计报告.docx (650.02 KB, 下载次数: 562)




作者: 关丑丑    时间: 2018-7-14 16:27
很有帮助,厉害了
作者: 米老鼠alan    时间: 2018-12-19 16:29
源代码呢?
作者: 米老鼠alan    时间: 2018-12-19 20:26
pdsprj文件有吗
作者: 昊天浮梦    时间: 2018-12-19 23:02
根据文档我画了一幅简单proteus图,新手多见谅

抢答器.rar

17.25 KB, 下载次数: 192, 下载积分: 黑币 -5


作者: 米老鼠alan    时间: 2018-12-20 15:10
昊天浮梦 发表于 2018-12-19 23:02
根据文档我画了一幅简单proteus图,新手多见谅

你好,源代码包括hex文件,c文件等等有吗?
作者: 昊天浮梦    时间: 2018-12-26 09:19
米老鼠alan 发表于 2018-12-20 15:10
你好,源代码包括hex文件,c文件等等有吗?

有的,邮箱还是我直接挂上去。
作者: 15863332475    时间: 2019-1-2 08:25
米老鼠alan 发表于 2018-12-20 15:10
你好,源代码包括hex文件,c文件等等有吗?

你有程序代码吗
作者: 徐徐8888    时间: 2019-1-3 01:03
你有hex文件吗?
作者: 15863332475    时间: 2019-1-3 09:05
徐徐8888 发表于 2019-1-3 01:03
你有hex文件吗?

你有c语言程序吗

作者: 15863332475    时间: 2019-1-3 09:27
昊天浮梦 发表于 2018-12-26 09:19
有的,邮箱还是我直接挂上去。

你能给我发一遍八位竞赛抢答器的hex文件吗
作者: 嘎嘎嘎嘎嘎个    时间: 2019-1-7 12:35
有pcb图吗

作者: rbq    时间: 2019-1-15 14:44
有汇编语言的吗
作者: Eyrane    时间: 2019-4-19 13:35
7SEG-MPX2-CC和7SEG-MPX2-CC有什么区别吗?
作者: ElecC    时间: 2019-4-19 15:25
才发现有这么一个功能强大的网站,赞
作者: dpjnmsl    时间: 2019-4-22 14:05
代码没有运行成功,数码管始终是全亮状态求大神指教
作者: zzzzzzyy    时间: 2019-5-15 10:42
很不错的资源
作者: 小苹果啊    时间: 2019-6-5 10:10
wx1235 发表于 2019-4-18 14:58
求给个源程序!!谢谢大神!!邮箱:

大哥,有源代码么,HEX文件也行
作者: 小苹果啊    时间: 2019-6-5 10:16
昊天浮梦 发表于 2018-12-26 09:19
有的,邮箱还是我直接挂上去。

有源代码么,本人一名正经学生求源代码
作者: 17370143925    时间: 2019-6-17 21:55
能问一下大神我仿真有用,硬件为什么什么显示都没有吗

IMG_20190617_144401.jpg (799.01 KB, 下载次数: 151)

IMG_20190617_144401.jpg

1560778330651.jpg (1.18 MB, 下载次数: 133)

1560778330651.jpg

作者: 1996TT    时间: 2019-6-22 14:53
值得学习参考
作者: 方十五    时间: 2019-9-17 11:04
有完整源代码吗
作者: 653247108    时间: 2019-12-5 17:47
Eyrane 发表于 2019-4-19 13:35
7SEG-MPX2-CC和7SEG-MPX2-CC有什么区别吗?

cc是共阴极,ca是共阳极
作者: 5111at89    时间: 2019-12-7 14:29
昊天浮梦 发表于 2018-12-19 23:02
根据文档我画了一幅简单proteus图,新手多见谅

大神,电路已完成,求程序,学习,万分感谢!
作者: 小白爱好者    时间: 2020-4-1 19:32
感谢发帖,可以分享一下hex文件吗
作者: zhy.    时间: 2020-4-5 18:58
很有帮助,谢谢
作者: 123636960    时间: 2020-5-17 16:57
给个源代码白,大佬
作者: 布吉岛,    时间: 2020-5-18 12:41
谢谢楼主分享
作者: skdpj    时间: 2020-5-21 17:52
大神求源代码 十分感谢
作者: 林夕sunny    时间: 2020-6-4 14:13
求源程序,谢大神!
作者: 愤怒的小呆头    时间: 2020-6-16 14:32
赞一个 好资料,51黑有你更精彩!!!

作者: a1365269755    时间: 2020-6-18 17:02
是真的太详细了,找的很多都没有这个这么详细
作者: woyuchengxian    时间: 2020-6-18 21:11
求源程序,还有仿真图啊
作者: a1365269755    时间: 2020-6-20 15:47
老铁那个程序函数用Keil C51导不成hex文件啊
作者: 哈轩    时间: 2020-6-20 19:14
有源代码吗?我下载了就一个dsn文件,没啥帮助啊


作者: eternal。    时间: 2020-7-1 20:18
哥,可以给份源代码吗?小白下载了你的word还是看不懂呀
作者: eternal。    时间: 2020-7-1 20:20
昊天浮梦 发表于 2018-12-19 23:02
根据文档我画了一幅简单proteus图,新手多见谅

哥,现在还有吗源代码吗

作者: ddya    时间: 2020-12-2 18:52
代码没有完全运行成功,倒计时数码管始终常亮,求大神解答
作者: 一只李嘉图    时间: 2020-12-7 15:47
ddya 发表于 2020-12-2 18:52
代码没有完全运行成功,倒计时数码管始终常亮,求大神解答

老哥,能求一份代码嘛 QAQ
作者: 1121203712    时间: 2020-12-7 21:07
请问,可以把七个S开关,换成4X4键盘来控制嘛?
作者: 他曾是我的破绽    时间: 2020-12-10 19:04
Eyrane 发表于 2019-4-19 13:35
7SEG-MPX2-CC和7SEG-MPX2-CC有什么区别吗?

你打的一模一样肯定没区别啊
作者: 他曾是我的破绽    时间: 2020-12-10 19:07
下载咋没程序呢?

作者: qingning333    时间: 2020-12-11 14:05
楼主这个设计实物的话好设计吗
作者: 哦买噶的    时间: 2021-3-31 16:45
有源代码吗

作者: 讨厌单片机    时间: 2021-6-21 09:44
有C程序源代码嘛!求求求!!
作者: okeral    时间: 2022-12-30 20:00
求求源码,作者
作者: 哎喝汤的小泽    时间: 2023-1-3 21:32
昊天浮梦 发表于 2018-12-19 23:02
根据文档我画了一幅简单proteus图,新手多见谅

可以可以
作者: 光、    时间: 2023-3-26 16:41
写的很全面,根据PROTEUS图,画出的仿真图能运行。
作者: 李黎11    时间: 2023-6-12 09:53
光、 发表于 2023-3-26 16:41
写的很全面,根据PROTEUS图,画出的仿真图能运行。

友友,有源代码吗
作者: 湖123    时间: 2024-12-25 15:32
发表于 2019-4-19 13:35
7SEG-MPX2-CC和7SEG-MPX2-CC有什么区别吗?

想问的是
7SEG-MPX2-CA和7SEG-MPX2-CC的区别吧
前共阳后共阴
作者: 遇见01    时间: 2024-12-30 21:24
Up主这个有用的,谢谢
作者: 遇见01    时间: 2024-12-30 22:34
有源程序代码吗?求




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1