基于AT89C51单片机的多人抢答器设计课程设计(21页).docx

上传人:1595****071 文档编号:37055135 上传时间:2022-08-29 格式:DOCX 页数:21 大小:135.16KB
返回 下载 相关 举报
基于AT89C51单片机的多人抢答器设计课程设计(21页).docx_第1页
第1页 / 共21页
基于AT89C51单片机的多人抢答器设计课程设计(21页).docx_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《基于AT89C51单片机的多人抢答器设计课程设计(21页).docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的多人抢答器设计课程设计(21页).docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-基于AT89C51单片机的多人抢答器设计课程设计-第 15 页单片机课程设计基于AT89C51单片机的多人抢答器设计毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(

2、设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件

3、包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它摘 要随着社会的不断进步,电子技术也飞速的向前发展

4、.特别是大规模集成电路的发展,把我们带进了电子化时代。电子产品的日益增多,也让我们的生活越来越方便。特别是计算机的发展,真可谓是突飞猛进。自从1946年世界上第一台计算机的诞生以来,还不到六十年的时间,计算机就取得了举世瞩目的成绩。特别是在通信领域,实现了信息一体化的时代。作为大学生的我们,更需要加强实践能力的培养。课程设计在一定程度上反映了我们对理论知识的理解程度,是理论与实践的桥梁。它不仅能锻炼我们的动手能力,而且能够培养我们对问题的思考能力以及对知识的进一步了解。当你能把你所学到知识化作为现实的东西时,我们能力就提升到一个新台阶。抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决

5、器电路,广泛应用于各种知识竞赛、文娱活动等场合。能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。本节介绍一种利用51单片机作为核心部件进行逻辑控制及信号产生的八路抢答器。近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色。单片机应用技术已成为一项新的工程应用技术。本次课程设计我们做的是八路抢答器,我们采用STC89C51单片机实现抢答功能,性能更稳定,更易操作调试。关键词:

6、多路数字抢答器 STC89C51 PROTEUS目 录1 绪论.12 系统设计内容.22.1 设计依据.22.2 设计目的.23 硬件设计.43.1 系统工作介绍.43.2 抢答器原理.53.3 功能模块电路.63.3.1 开始抢答电路.63.3.2 选手抢答键.63.3.3 显示器与现实驱动电路. .73.3.4 蜂鸣音频输出电路.74 软件设计. .84.1 程序设计. .84.1.1 系统流程图.84.1.2 显示抢答器违规流程图.94.1.2 抢答器成功流程图.95 Proteus仿真.10结论11致谢12参考文献.13附录.14附录A.14附录B.231 绪 论单片机作为计算机的一个

7、重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。对于计算机专业的学生来说,即使暂时没有从事单片机的应用与开发,学习单片机也有很重要的意义。学习它,不仅为将来可能从事该方面的开发打下基础,另一方面,由于单片机作为微型计算机的一个种类,麻雀虽小,五脏俱全,可以把它当作微型计算机的一个简化模型来看待,学习单片机可以加深对微型计算机工作原理的理解,更加清楚计算机的脉络。同时,提供了一个实际应用手段。21世纪,是一个信息技术飞速发展的时代,智力竞赛是一种形式比较活泼的教育方式,是

8、人们休闲娱乐生活的一部分。这些竞赛一方面充实了人们的娱乐生活,另一方面也提高了人们努力汲取相关领域的知识的兴趣。智力竞赛,也就是几个参赛选手之间在规定的时间,规定的地点相互竞争的比赛。 抢答是各种竞赛常用的一种形式。在抢答赛中,往往要有主持人宣布抢答的开始,还要确定是哪个选手抢到了答题权,具体答题的时间有时也要设定。这些如果仅凭主持人的主观判断,很容易出现误判的情况。因此,在竞赛中,抢答器就扮演了一个非常重要的角色。2 系统设计内容2.1系统设计依据 抢答器由计数器、寄存器、集成定时器和译码显示等组合、时序电路组成。可分为抢答电路,定时电路,报警电路等几个单元部分。每个单元电路分别可以处理一些

9、抢答竞赛中的基本问题。 本次课程设计设计的是一个多路定时抢答器,是一个多于两位选手参赛的一个抢答器,具有锁存和显示功能。同时有主持人控制系统的清零和抢答的开始。抢答开始后,若有任何一名选手按动抢答按钮,抢答器就会显示该选手编号直至系统被主持人清零,并有扬声器发出提示,同时其他人再抢答就无效了。这次设计的抢答器还有自动定时功能,主持人可以设定选手答题的时间。当主持人启动“开始”键后,定时器会自动减计时,这个会显示在显示器上。选手只有在抢答时间内抢答才有效,若在答题时间内没有选手答题,时间到时,报警电路就会发出警报亮灯并且禁止抢答。2.2 设计目的以单片机为核心,设计一个8位竞赛抢答器。1)抢答器

10、同时供8名选手或8个代表队比赛,分别用8个按钮S0-S7表示。2)设置一个系统清除和抢答控制开关S,该开关由主持人控制。3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30s等)。当主持人启动“开始”按键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续时间为0.5s左右。5)参赛选手在设定时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手编号和抢答时间,并保持到主持人将系统清除为止。6)如果定时时间到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显

11、示器上显示003 硬件设计3.1 系统工作介绍本系统采用单片机作为整个控制核心。控制系统主要由:显示模块、控制模块、报警模块、抢答模块组成。工作时,该系统通过矩阵键盘输入抢答信号,经单片机的处理后,输出控制信号,利用一个4位数码管来完成显示功能并伴随蜂鸣器报警,用按键来让选手进行抢答,在数码管上显示哪一组先答题,从而实现整个抢答过程。当主持人按下开始键时,向单片机P3.2引脚输入一个低电平信号,表示整个电路开始工作,此时数码管前两位显示选手编号(无人抢答显示00),后两位显示倒计时剩余时间。若在25秒内仍然无人抢答,蜂鸣器在最后5秒发出连续报警,提示抢答时间快要结束;若在30秒内有人抢答,并且

12、抢答成功,则将选手编号显示在数码管前两位上,后两位显示抢答剩余时间,同时蜂鸣器发出一声报警,提示其他没有抢答的选手此题已被人抢答成功。若在抢答过程中遇见特殊情况,主持人则可以通过时间加,时间减按键来进行时间调节。若要开始新的一轮抢答,主持人按下复位键再按开始键即可。此次用单片机控制的抢答器思路简单明了,可操作性强,可靠性高,扩展功能强,能够完全实现普通抢答器的基本功能。图2-1 单片机抢答器设计方案3.2 抢答器原理抢答器的工作原理是采用单片机最小系统,用程序查询方式采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(P3.0),有人抢答则抢答违规,报警并显示组号,主

13、持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.0),蜂鸣响声提示,数码管30秒倒计时抢答,蜂鸣器响声提示并显示他的组号,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。单片机最小系统、抢答按键模块(四位并行数码显示)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。图2.3抢答器总原理图3.3 功能模块电路3.3.1开始抢答电路在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。图2.4.1开始抢答电路3.3.2 选手抢答键89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个

14、选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号 图2.4.2 选手抢答电路3.3.3 显示与显示驱动电路此电路包括显示和驱动,显示采用数码管,驱动用P2口, 违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。在+5V电压下接1k的电阻,保证正常压降。图2.4.3 示与显示驱动电路3.3.4 蜂鸣器音频输出电路通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要

15、一些简单的提示声音和稍微显眼的灯控,有抢答违规,开始抢答,抢答时间结束和回答时间到得提示声和亮灯提醒。图2.3.4蜂鸣器音频输出电路4 软件设计4.1 程序设计4.1.1 系统流程图开 始初始化读键盘是否有键按下中断条件是否满足调用显示抢答违规并报警子程序进入中断程序开中断并响声提示设定定时器值并启动定时器30秒抢答时间并显示并显示调用读键子程序为延时程序是否有键按下60秒到中断返回调用抢答者获得的回答问题子程序4.1.2 显示抢答违规流程图开 始报警一直提示显示违规者编号4.1.3 抢答成功流程图开 始响声提示设置定时器初值并启动显示抢答者后30秒倒计时60秒答问题时间到并响声提示RET5

16、proteus仿真软件的设计与调试实行分模块实现的方法。本设计软件调试中的分模块包括显示功能模块,调整时间功能模块,抢答功能模块以及报警功能模块。各个独立模块功能调试成功后,将这些模块程序通过主程序合并在一起,最后再对合并后的总程序进行调试。各软件模块首先要通过PC和仿真器进行软件调试,当仿真效果符合要求后在烧写进单片机看是否在实际电路板上正常工作。本设计通过利用Proteus仿真,将所编写的程序用wave软件编译,所仿真原理图见下图。图5 proteus仿真图结 论自接触单片机以来,一直觉得单片机非常难,这次的课程设计我开始是以老师布置题目为主要选择对象的,但是后面发现,像八路抢答器在我脑海

17、中根本没得一点意象,上网搜了很多资料,也感觉不怎么很懂,于是问老师怎么弄,后面发现老师的意见和我的原本的程序和图只有几个地方不同,于是便将两者综合了一下,经调试和运行后,发现还行的通,于是便开始了忐忑的正文模版之路,以为快搞完了,后面发现其实程序和图还是要细细的弄懂才能写好报告,于是我又将程序和图细细的剖析了一遍,慢慢的画出流程图,然后慢慢将流程图和proteus图画好和截取下来,经过最近这段时间的在电脑前面的驻守,觉得只要自己肯付出和努力,发现其实很多的东西不是那么难懂的,以后还是要好好提升自己的动手能力和独立思考的能力。致 谢值此论文完成之际,谨向所有曾给予我帮助和指导的老师、同学和朋友们

18、致以衷心的感谢!首先,我要感谢朱煜钰老师,从这篇论文的基本思想到程序的实现,他们都给了我们极大的帮助和鼓励。感谢给我们授课的各位老师,是你们用渊博的知识教育了我们,正是你们的教育,我们才能顺利完成这篇文章。在此,让我们向你们表示深深的谢意。感谢黄河科技学院学院的各位领导,是你们的教育和培养,才使我们都能够顺利完成学业,同时我门、们要感谢这四年来一起学习的同学,在论文的完成过程中得到了大家的建议和帮助,在这里衷心的感谢他们。借此机会,我也向一直默默支持和关心我们的父母和好友们表示感谢,祝他们身体健康。参考文献1 康华光,邹寿彬编.电子技术基础数字部分(第四版)M.北京:高等教育出版社,20052

19、 谢自美编.电子线路设计实验测试 (第二版) M.上海:电子工业出版社,20013 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术M.北京:北京航空航天大学出版社,1999年4 陆坤,奚大顺,李之权等,电子设计技术M.成都:电子科技大学出版社1997年5 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术M.北京:北京航空航天大学出版社,1999年5 胡学海.单片机原理及应用系统设计M.北京:京电子工业出版社,2005年6 林凌,李刚,丁茹,李小霞.新型单片机接口器件与技术M.西安:西安电子科技大学出版社,2005年7 李朝青主编,单片机原理与接口技术.北京航天航空大学

20、出版社,1994年8 何立民主编,单片机应用与设计.北京航天航空大学出版社,1990年9 邹逢兴编著,计算机硬件技术基础实验教程高等教育出版社,1994年10 裴亚男,付智辉主编,数字逻辑,西南交通大学出版社,2005年11 李海主编,74系列芯片手册, 重庆大学出版社, 1999年附录 A (源程序)主程序:void main() init();if(k=0) /主持人按下开始键Timer();delay(10);while(!k);while(1)dis();m=0;n=0;if(second=10)beep=1;delay(500);beep=0;if(second=0) TR0=0;n

21、=1;if(k=0)beep=1;delay(500);beep=0;second=29;TR0=1;m=1;if(n=0) if(k1=0) delay(5);if(k1=0);while(!k1);t=1;else if(k2=0) delay(5);if(k2=0);while(!k2);t=2;else if(k3=0) delay(5);if(k3=0);while(!k2);t=3;else if(k4=0) delay(5);if(k4=0);while(!k2);t=4;else if(k5=0) delay(5);if(k5=0);while(!k2);t=5;else if

22、(k6=0) delay(5);if(k6=0);while(!k2);t=6;else if(k7=0) delay(5);if(k7=0);while(!k2);t=7;else if(k8=0) delay(5);if(k8=0);while(!k2);t=8;else if(k=0) delay(5);if(k=0);while(!k);t=0;i=0;second=29;beep=1;delay(500);beep=0;TR0=1;while(t)if(m=0) /开关,保证程序只执行一次switch(t)case 1:TR0=0;i=1;second=0;beep=1;delay(

23、500);beep=0;a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;case 2:TR0=0;i=2;second=0;beep=1;delay(500);beep=0;a2=0;a1=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;case 3:TR0=0;i=3;second=0;beep=1;delay(500);beep=0;a3=0;a1=1;a2=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;case 4:TR0=0;i=4;second=0;beep=1;del

24、ay(500);beep=0;a4=0;a1=1;a2=1;a3=1;a5=1;a6=1;a7=1;a8=1;m=1;break;case 5:TR0=0;i=5;second=0;beep=1;delay(500);beep=0;a5=0;a1=1;a2=1;a3=1;a4=1;a6=1;a7=1;a8=1;m=1;break;case 6:TR0=0;i=6;second=0;beep=1;delay(500);beep=0;a6=0;a1=1;a2=1;a3=1;a4=1;a5=1;a7=1;a8=1;m=1;break;case 7:TR0=0;i=7;second=0;beep=1;

25、delay(500);beep=0;a7=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a8=1;m=1;break;case 8:TR0=0;i=8;second=0;beep=1;delay(500);beep=0;a8=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;m=1;break;if(a1=0) /选手1的分数second=score1;dis(); if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score1+=1;if(score1=99)score1=6

26、0; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score1-=1;if(score1=0)score1=60;dis(); else if(a2=0) second=score2;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score2+=1;if(score2=99)score2=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100

27、);beep=0;score2-=1;if(score2=0)score2=60;dis(); else if(a3=0)second=score3;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score3+=1;if(score3=99)score3=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score3-=1;if(score3=0)score3=60;second=score3;dis();el

28、se if(a4=0)second=score4;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score4+=1;if(score4=99)score4=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score4-=1;if(score4=0)score4=60;second=score4;dis();else if(a5=0)second=score5;dis();if(m1=0) delay(5);i

29、f(m1=0);while(!m1);beep=1;delay(100);beep=0;score5+=1;if(score5=99)score5=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score5-=1;if(score5=0)score5=60;second=score5;dis();else if(a6=0)second=score6;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score6

30、+=1;if(score6=99)score6=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;score6-=1;if(score6=0)score6=60;second=score6;dis();else if(a7=0)second=score7;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score7+=1;if(score7=99)score7=60; else if(m2=0) delay(5)

31、;if(m2=0);while(!m2);beep=1;delay(100);beep=0;score7-=1;if(score7=0)score7=60;second=score7;dis();else if(a8=0)second=score8;dis();if(m1=0) delay(5);if(m1=0);while(!m1);beep=1;delay(100);beep=0;score8+=1;if(score8=99)score8=60; else if(m2=0) delay(5);if(m2=0);while(!m2);beep=1;delay(100);beep=0;scor

32、e8-=1;if(score8=0)score8=60;second=score8;dis();if(k=0)i=0;t=0;second=29;beep=1;delay(500);beep=0;TR0=1;while(!k);定时器子程序:void Timer()TMOD|=0x01;TH0=0xd8; /初值55536,计数10000次,每次1US,总计10msTL0=0xf0;IE=0x82; /这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时void tim(void) interrupt 1 using 1 /为定时中断TR0TH0=0x

33、d8; /重新赋值TL0=0xf0;count+;if(count=100) /100*10ms=1秒count=0;second-; /秒减1延时子程序:void delay(uint z) /延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);显示子程序:void display (uchar shiwei,gewei,xuanshou) /显示函数P2=0xfe; /打开显示时间十位的位选P0=shiwei;/显示十位delay(5);P2=0xfd;/个位位选P0=gewei;delay(5);P2=0xf7; /选手位选P0=xuanshou;delay(5);附录 B (抢答器原理图)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁