基于-51单片机6路抢答器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
此次设计选择使用AT89C51单片机为核心的控制元件,设计制作一个简易的抢答器。

本设计是以AT89C51单片机作为控制的主要核心,LED显示器,蜂鸣器等六路抢答器的程序,并且利用了单片机的延迟时电路,时钟电路,键复位电路以及定时器/中断等其他电路。

六路抢答器的设计特点是让选手应答时间与选手实时显示出来,利用复位电路开场新一轮的比赛或者游戏,我们使用的也是我们所掌握的C语言来进展编程,实现了一些根本功能。

该系统的设计是可行的,以确定准确,简便,强烈的扩展能力。

它的表达的功能主要是比赛开场时,主持人读完题目后按下抢答键,语音提示答题开场,提示音完毕后开场倒计时,这时数码管开场进展10s的倒计时,当有选手进展抢答时,选手按下抢答键,这时候数码管显示屏上就会显示出对应答题者的编号以及抢答所剩余的时间。

如果10秒计时时间到了还没有人做出抢答,蜂鸣器就会发出声音并且语音提示抢答完毕,这一题就作废即所有人均不得分,然后开场新一轮的抢答。

在下一轮抢答开场之前按下复位键将时间归零,再按下开场键进展新的一轮。

抢答者答复正确后,评审员按下加分键,该选手编号所对应的数码管显示的数字就增加〔按一次加一分,最高显示9分〕。

相反,如果抢答者答复错误,在抢答者分数不为0的情况下,评审员按下减分键,该选手编号所对应的数码管显示数字就减少〔按一次减一分,最低显示0分〕。

关键词:单片机、AT89C51、抢答器
Abstract:The design options using AT89C51 microcontroller as the core control elements, design a simple Responder. The design is based on the six-way Responder AT89C51 microcontroller as the main core control, LED display, beeper and other procedures, and use of the single-chip delay circuit, clock circuit, key reset circuit and a timer / interrupt other circuits. Six-way Responder design feature is to allow players the response time and the player numbers displayed in real time, using the reset circuit to start a new round of the petition or game, we used our disposal C language programming, to achieve some basic functions.
The design of the system is feasible to determine the accurate, simple, strong expansion capability. Its main function is to reflect the start of the game, the host title after reading press answer key, voice prompt answer began, the tone began the countdown ends, then the digital countdown began 10s, when there are players to answer in time , players press the answer key, this time will show the number of respondents and the corresponding answer in the time remaining on the digital display. If 10 seconds to answer in time of time to make a nobody, a buzzer will sound and the end of the voice prompt answer this question on the void that all men are not scoring, then start a new round of answer. Before you start to answer in the next round will be time to press the reset button to zero, and then press the start key to make a new round. Responder who answered correctly, the assessors press plus key, alphanumeric display of the player number corresponding increases (once plus one points, the maximum display 9 points). Conversely, if the answer were wrong answer, answer in person at a fraction is not 0, the panelists Press the minus key points, the player number that corresponds to the digital display figures decrease (once by one point, the lowest display 0 ).
Keywords:AT89C51、RESPONDER、SCM
目录
第一章概述 (1)
第二章各模块的选择和论证 (2)
1. 方框图┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ (2)
2.1抢答器显示模块选择 (2)
2.2 控制器选择 (3)
2.3 键盘选择 (3)
2.4 时钟频率电路的设计 (4)
2.5 复位电路的设计 (5)
2.6 报警电路 (5)
3. 系统硬件连接图 (6)
4. 元器件清单 (6)
第三章软件的设计 (6)
3.1程序流程图 (7)
3.2源程序 (8)
第四章系统调试 (16)
4.1 硬件调试问题分析 (17)
4.2 软件调试问题分析 (17)
参考文献 (19)
第一章概述
随着科学技术的开展,电子技术在近几年也得到了快速的开展,而在我们的生活中处处都运用到电子技术,例如现在随着智力竞赛、电视娱乐节目越来越多,为了实现比赛的公平性,就需要一个能在多人进展比赛的情况下能够实现抢答的机器,所以我们就需要这么一个能够简单操作的抢答器。

现在抢答器因为它的构造简单,使用方便,系统运行时稳定的特点已经被广泛的运用于各种比赛中。

此次设计选择使用AT89C51单片机为核心的控制元件,设计制作一个简易的抢答器。

本设计是以AT89C51单片机作为控制的主要核心,LED显示器,蜂鸣器等六路抢答器的程序,并且利用了单片机的延迟时电路,时钟电路,键复位电路以及定时器/中断等其他电路。

六路抢答器的设计特点是让选手应答时间与选手实时显示出
来,利用复位电路开场新一轮的比赛或者游戏,我们使用的也是我们所掌握的C语言来进展编程,实现了一些根本功能。

该系统的设计是可行的,以确定准确,简便,强烈的扩展能力。

它的表达的功能主要是比赛开场时,主持人读完题目后按下抢答键,语音提示答题开场,提示音完毕后开场倒计时,这时数码管开场进展10s的倒计时,当有选手进展抢答时,选手按下抢答键,这时候数码管显示屏上就会显示出对应答题者的编号以及抢答所剩余的时间。

如果10秒计时时间到了还没有人做出抢答,蜂鸣器就会发出声音并且语音提示抢答完毕,这一题就作废即所有人均不得分,然后开场新一轮的抢答。

在下一轮抢答开场之前按下复位键将时间归零,再按下开场键进展新的一轮。

抢答者答复正确后,评审员按下加分键,该选手编号所对应的数码管显示的数字就增加〔按一次加一分,最高显示9分〕。

相反,如果抢答者答复错误,在抢答者分数不为0的情况下,评审员按下减分键,该选手编号所对应的数码管显示数字就减少〔按一次减一分,最低显示0分〕。

第二章各模块的选择和论证
1.方框图
按键扫描LED显示模块AT89C51
声音模块
图2-0 功能模块图
在扫描按钮的第一步,AT89C51接收,以确定是否在扫描开场一轮的答复,当按下扫描按钮时,第二步骤AT89C51启动声音模块,蜂鸣器发声一段时间停顿发声,选手开场抢答,第三步AT89C51启动LED显示模块,显示倒计时,并显示每个选手的得分,整个过程已被执行键扫描,当有选手按下抢答键后,按键扫描停顿对选手按键的扫描,AT89C51启动声音模块提示所有选手,将抢答选手的发送到LED显示屏,第四步,关键扫描点加减按键扫描,按键每按下一次对相应的选手对应的数码管上显示的分数加减一,直到抢答复位键的按下,一个新的周期的开场。

当倒计时完毕时仍然没有选手抢答,单片机启动声音模块,这一轮的答复完毕。

2.1抢答器显示模块选择
显示模块显示应答时间,选手编号和选手分数。

在使用传统的数码管显示。

数码管具有的特点:低损耗,低电压,寿命长,能耗低的特点,并且它还能够抗老化,防火,防潮,大大的增加了它的使用寿命。

它使用起来操作简单,运行速度快,能够准确及时的计算出我们所需要的答案。

外界环境对它的影响很低,易于修理和维护。

它采用数字显示BCD编码显示,软件程序容易编写,占用存空间资源少。

显示功能与硬件之间有很大的联系,硬件是固定显示足够的信息,怎样不使操作员误以为全部依靠软件来解决的前提。

在这里,我用了7段LED显示屏,通常情况下显示有两种方式:一种是静态显示,另外一种是动态显示。

静态显示工作时显示的字符比拟稳定,不会出现闪烁,而且它的程序容易编写,但是比拟浪费资源端口。

动态显示在显示时并没有静态显示那么稳定,而且相对于静态显示而言编程较为复杂,但相对于静态显示在资源占用上面具有很大的优势。

在我们的设计中,我们根据实际应用情况选用动态显示的方法。

下列图是LED 显示电路原理图。

4位7段数码管显示电路图
图中数码管采用四位一体七段共阳极LED,其中A〜DP段共收到单片机P0口数据从单片机的输出来确定值段码,位选码1,2,3,4,〔1,2,3,4〕接到单片机的P2^ 0,P 2^ 1,P 2^ 2,P 2^ 3,〔P2^ 4,P 2^ 5,P 2^ 6,P 2^ 7〕端口,由单片机控制来决定显示哪一个端口的信号。

在原理图中还有一个排阻,它连接在P0端口用于上拉电阻,它的作用是在没有信号从端口输出时使端口一直处于高电平状态。

通过查表法,将输出的信号在数码管上显示出来,当中P0端口为字型码输入端,而P2口的8位作为字选段输入段。

在这里我们将通过查表将字型码输送给8段数码管再显示的数字。

2.2 控制器的选择
控制器主要的作用是对于显示、应答、声音还有计分模块的控制。

采用ATMEL公司生产的AT89C51作为系统主控制器的CPU方案。

该单片机算术运算功能强大,软件编程较为灵活、自由度较大,可以利用软件编程来实现各种算法和逻辑控制,而且由于它的功耗低、体积小、技术比拟成熟和本钱低等优点,使得它在各个领域中必不可缺。

2.3 键盘的选择
键盘是必不可少的微控制器的输入设备,它被实现结合人与机器的关系。

键盘可以分为两种类型,根据该构造,一个非编码键盘,另一种是编码键盘。

非编码键盘与软件的生成方法的一个关键码,和键盘是一个硬件编码方法,用于产生关键码。

在MCU最常用它非编码键盘,原因很简单,非编码键盘构造,工程造价低,非编码键盘类型较为普遍独立的键盘,并且键盘行列式使用。

我们的设计采用了独立的键盘。

我们用了多少根I / O线,表示键盘有几个键,如键盘接口键盘接口采用8个I / O线,那么键盘将有八个按钮。

像这种类型的键盘,因为它是相对小的键,以及彼此独立地每个键在工作的过程中。

因此,根据我们的实际键盘按键灵活的编码要求。

独立式键盘
我们可以直接编码最简单的方法,根据I / O输入端口直接反映在这样对应的键,按国家规定的编码按钮被称为状态码,如独立编码键盘,CPU可以通过我的状态直接进入/O端口状态码值直接按键,我们可以直接从该值,这种类型的键盘的构造简单识别键,按键比拟容易识别。

单机键盘的缺点在于,它占用了大量的I / O线,如果我们使用单片机应用系统键盘按键相对较小或I/ O 口线比拟长的时间使用时,可以以这种方式使用键盘。

2.4 时钟电路的设计
单片机必须工作在时钟驱动。

在部有一个时钟振荡电路,外部振荡源,只要我们能有一些部时钟信号给单片机,其信号发送决定微控制器的运行速度。

外部振荡源电路
通常我们使用的石英晶体振荡器。

该振荡器电路是约10ms开场后,当XTAL2引脚供电石英振荡器的频率来确定其振荡频率大约为3V幅度正弦时钟信号延迟。

两个电容电路C1,C2有两个作用:第一是帮助振荡器启动;二是微调振荡器的频率。

单单片机在操作由部振荡器,或直接从外部输入,以产生控制逻辑单元的部时钟信号的所谓的时钟周期。

它的大小是所述时钟信号的频率的倒数。

时钟频率为12MHz。

2.5 复位电路的设计
单片机的第9引脚RST为硬件复位端,我们只要持续的通4个机器周期的高电平就可以实现复位,复位之后单片机的各个状态都和初始化状态一样,其电路图如下所示:
按键复位电路
2.6 报警电路
利用程序来控制“高〞电平或“低〞电平,然后连接蜂鸣器,使蜂鸣器发声。

加上再利用延时程序来控制“高〞或“低〞电平的持续时间,就实现了改变蜂鸣器鸣响的时间。

这种设计如下列图所示。

使用单片机的I / O端口P1^6,通过“高〞“低〞电平信号可以使蜂鸣器发声。

图2-5 发声电路
3. 系统硬件连接原理总图
图2-6 系统硬件连接原理图
4. 元器件清单
4位8段数码管2只;
12M晶振1只;
30PF瓷片电容2只;
10UF电解电容1只;
电阻1KΩ、200Ω、2.2KΩ各一只;按键BUTTON 11只;
三极管8550 1只;
蜂鸣器1只;
排阻471、102 各一只;
74LS245 一只;
第三章软件的设计
3.1程序流程图
开场
设置定时器
检测抢答开场键是否按下
启动定时器、蜂鸣器
检测抢答键是否按下
显示选手编号倒计时是否完成
检测减分键是否按下对应数码管加一
对应数码管减一
检测抢答复位键是否按下
图3-0
第四章系统调试
本系统调试包括两个方面:硬件调试和软件调试,并且两者是密不可分的。

我们设计好的软件程序和硬件电路局部,只有经过共同调试,才能验证它的正确性;软硬件的兼容情况以及有没有到达我们预期的要求,也只有经过调试,才能发现问题并进展解决、完善,最终开发成实用的产品。

硬件调试分为单元电路调试和联机调试两局部,单元电路的测试在硬件电路设计时已经进展过了,这里的调试只是查看其制成印刷电路板之后试验电路是否正确,并且排除一些在加工过程中出现的工艺性错误〔例如:错线、开路、短路等〕。

这种调试可以单独模拟进展,或者也可以通过开发装置由软件配合来完成,硬件联机调试必须要在系统软件的配合下才能进展。

软件调试也分为两个局部:分块调试和联机调试。

程序的分块调试一般情况下是在单片机开发装置上来进展,可以根据所调程序的功能块入口参数量初值来编制一个特殊的程序段,并且连同被调程序功能块也一起在开发装置上进展运行。

也可以配合对应硬件电路单独进展某程序功能块的运行,然后再检查是否正确,如果执行结果与预想的情况不一致,我们可以通过单步运行或者断点的方法来进展检测,查出错误原因并且加以改正,一直到运行结果正确为止。

到这个时候,程序已经调试功能块,附加块可以被删除。

点击其他程序功能一样的方法来进展调试。

在线调试程序是根据整个构造使每个调试程序功能聚集成一个完整的程序,并开展到在硬件电路中运行。

因此,测试,以观察程序的正确性的整体操作和它的硬件电路。

有可能是在FBI的道路在程序上的一些支持,功能块,因为约束,而不是由相应的输入参数,那么,应该创立调试仿真调试条件。

如果FBI发
现了一个硬件问题应及时纠正,直到单片机系统的软件和硬件调试成功。

调试系统,而且它的试运行,从而探测系统的稳定性和抗干扰能力之后,确认系统是否运行正常,实现了最初的设计要求,是否能到达预期的效果。

本设计的调试方法:先仿真,然后到达预期效果。

4.1 硬件调试问题分析
颁发数字显示:这种设计的最终解决方案是数字显示屏,实现了显示器的选择上,数字显示的开场是不正常的,并足够明亮。

通过调试后发现这是由于数码管的驱动电流不够,头一次增加了数码管驱动74LS245芯片在P0口,数码管依旧亮度不够,经分析,驱动应该加在数码管的位选信号上,再一次在P2口上加上74LS245芯片,数码管亮度正常。

蜂鸣器不正常的启动问题:启动和关闭蜂鸣器,通过控制单片机输出信号已经实现。

最初蜂鸣器始终不发出声音,经过仔细的检查原件及连接电路,找出了其不发声的原因,三级管用成了NPN型的8050,改动芯片为PNP型的8550后,蜂鸣器发音正常。

4.2 软件调试问题分析
蜂鸣器发声异常:蜂鸣器要发出声音是通过单片机的P1^6输出低电平来实现,最初仿真的时候用的是喇叭,它是需要单片机提供一个具有一定频率的方波信号来发声,所以一直不会发出声音,修改程序后,解决了该问题。

第五章总结
通过这次毕业设计,我明白了不管是学习中还是工作生活中,要完成一件事不单单是靠自己所了解的知识就能完成,要通过自己对以往经历的总结,与他人的交流、向他人请教,才能很好的到达我们所期望的目标。

从选定毕业设计方向再到设计电路图、选取电路元器件,再到最后的调试、总结。

万事开头难,一开场不知道该如何下手,直到最后完成后才有一种如释重负的感觉。

我懂得了只有把理论够运用到实际才是真正理解了知识。

所以有些时候觉得自己学会了和实际运用是两回事。

通过这次课程设计懂得了很多,自己上网查资料然后向专业知识学的比拟好的同学请教、探讨,原以为会很简单的,但是实际操作起来和理论又有一些差异,第一是综合性比拟强,运用到了我们所学的51单片机的专业知识、C语言编程,以及实训所学的焊接工艺。

第二是理论联系实际性较强,因为我们在理论学习中都是靠书本上的知识,所以对于各种元件在实际电路中的连接也不是容易的事。

在经过几个月的努力后,我的毕业设计终于完成了。

虽然在整个过程中我磕磕碰碰,遇到了不少的难题,但是通过我的不懈努力最终完成了。

在这之前我一直认为毕业设计和考试一样,是对我们学习掌握程度的一个检验。

但是我发现我的想法是错误的,它不只是检验,而是对我们个人走上社会能力的又一个提高。

毕业设计是理论知识和实际操作的综合训练,不仅是对我们这三年所学知识掌握情况的一个检验,也是对我在完成一个目标的一个考验。

它培养了我独立设计以及分析、解决问题的能力。

当我在设计中遇到困难,首先独立思考并查阅相关的书籍、文章,在解决不了问题的情况下向同学或者导师请教,这锻炼了我在解决问题时不要气馁,灵活运用身边的资源,告诉我如何向他人请教,与他人合作的重要性。

增加了我解决问题时的自信心,提高了心里素质,为以后工作打下了良好的根底。

培养了我在突发问题面前时应需要沉着冷静,不能急躁,心静才能更好的完成任务。

参考文献
[1] 万文略利蔡静之编著. 单片机原理及应用.大学
[2] 康华光大钦林编著. 模拟电子技术根底.高等教育
[3] 建华亮编著.单片机应用系统设计与产品开发.人民邮电。

相关文档
最新文档