基于单片机的多路智能抢答器的设计毕业设计论文.doc
《基于单片机的多路智能抢答器的设计毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的多路智能抢答器的设计毕业设计论文.doc(22页珍藏版)》请在咨信网上搜索。
22 目 录 第一部分 设计任务与调研…………………………………………………………3 1.1 系统设计依据………………………………………………………………………………3 1.2 设计任务和要求……………………………………………………………………………3 1.3 设计目的……………………………………………………………………………………3 第二部分 设计说明………………………………………………………………………4 2.1 单片机控制原理……………………………………………………………………………4 2.2 抢答器的原理………………………………………………………………………………5 2.2.1 原理框图…………………………………………………………………………………5 2.3 功能模块电路………………………………………………………………………………6 2.3.1 晶振复位及开始抢答电路……………………………………………………………6 2.3.2 选手抢答键(矩阵式键盘)…………………………………………………………7 2.3.3.显示与显示驱动电路…………………………………………………………………7 2.3.4 蜂鸣器音频输出电路…………………………………………………………………8 第三部分 设计成果……………………………………………………………………9 3.1程序设计……………………………………………………………………………………9 3.1.1 系统流程图……………………………………………………………………………9 3.1.2 显示抢答违规流程图…………………………………………………………………10 3.1.3 抢答成功流程图………………………………………………………………………11 3.2 程序代码……………………………………………………………………………………12 3.2.1主程序代码……………………………………………………………………………12 3.2.2 定时器子程序…………………………………………………………………………19 3.2.3 延时子程序……………………………………………………………………………19 3.2.4 显示子程序……………………………………………………………………………20 第四部分 结束语…………………………………………………………………………21 第五部分 致谢………………………………………………………………………………21 第六部分 参考文献………………………………………………………………………22 第一部分 设计任务与调研 1.1系统设计依据 抢答器由计数器、寄存器、集成定时器和译码显示等组合、时序电路组成。可分为抢答电路,定时电路,报警电路等几个单元部分。每个单元电路分别可以处理一些抢答竞赛中的基本问题。 本次课程设计设计的是一个多路定时抢答器,是一个多于两位选手参赛的一个抢答器,具有锁存和显示功能。同时有主持人控制系统的清零和抢答的开始。抢答开始后,若有任何一名选手按动抢答按钮,抢答器就会显示该选手编号直至系统被主持人清零,并有扬声器发出提示,同时其他人再抢答就无效了。这次设计的抢答器还有自动定时功能,主持人可以设定选手答题的时间。当主持人启动“开始”键后,定时器会自动减计时,这个会显示在显示器上。选手只有在抢答时间内抢答才有效,若在答题时间内没有选手答题,时间到时,报警电路就会发出警报亮灯并且禁止抢答。 1.2设计任务和要求 设计一个八路抢答器 要求:(1)设计出硬件电路; (2)设计出软件编程方法,并写出源代码; (3)用PROTEUS进行仿真; (4)论文格式要符合学院的统一规定,结构要合符逻辑,表达要得体。 1.3 设计目的 通过设计学习单片机最小系统的基本设计方法,掌握单片机应用系统的开发调试过程。 (1)学习单片机开发工具功能、特点和使用方法。 (2)学会单片机控制系统程序的编制和编制和调试方法。 (3)设计单片机抢答器硬件电路,绘制出电路原理图。 (4)编制并调试出键盘扫描程序和显示驱动程序。 (5)掌握单片机定时器的基本用法,编制出定时器的中断程序。 第二部分 设计说明 2.1 单片机控制原理 单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。它的最大优点是体积小,可放在仪表内部。但存储量小,输入输出适配器简单,功能较低。目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。 简单的说,用单片机系统来设计抢答器,实现两组的抢答时间即使是相差几微秒,也可分辨出哪组优先答题。 P0端口(P0.0-P0.7):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3端口(P3.0-P3.7): P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。 2.2 抢答器的原理 抢答器的工作原理是采用单片机最小系统,用程序查询方式采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(P3.0),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.0),蜂鸣响声提示,数码管30秒倒计时抢答,蜂鸣器响声提示并显示他的组号,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。单片机最小系统、抢答按键模块(四位并行数码显示)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。 2.2.1 原理及电路总框图 图2.2.1抢答器总原理图 2.3 功能模块电路 2.3.1晶振复位及开始抢答电路 晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。 图2.3.1 晶振复位电路 图2.3.1开始抢答电路 2.3.2 选手抢答键(矩阵式键盘) 89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。 图2.3.2选手抢答电路 2.3.3 显示与显示驱动电路 此电路包括显示和驱动,显示采用数码管,驱动用P2口, 违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。在+5V电压下接10k的电阻,保证正常压降。 图2.3.3 显示与显示驱动电路 2.3.4蜂鸣器音频输出电路 通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要一些简单的提示声音和稍微显眼的灯控,有抢答违规,开始抢答,抢答时间结束和回答时间到的提示声和亮灯提醒。 图2.3.4蜂鸣器音频输出电路 第三部分 设计成果 3.1程序设计 3.1.1 系统流程图 开 始 初始化 读键盘是否有键按下 中断条件是否满足 调用显示抢答违 规并报警子程序 进入中断程序 开中断并响声提示 设定定时器值 并启动定时器 30秒抢答时间并显示 并显示 调用读键子程序为延时程序 是否有键按下 60秒到中断返回 调用抢答者获得的回答问题子程序 3.1.2显示抢答违规流程图 开 始 报警一直提示 显示违规者编号 3.1.3抢答成功流程图 开 始 响声提示 设置定时器初值并启动 显示抢答者后30秒倒计时 60秒答问题时间到并响声提示 RET 3.2 程序代码 3.2.1 主程序 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=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(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(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;delay(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;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=60;} 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);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(); } else 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);if(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+=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);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;score8-=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); } } } } 3.2.2 定时器子程序 void Timer() { TMOD|=0x01; TH0=0xd8; //初值55536,计数10000次,每次1US,总计10ms TL0=0xf0; IE=0x82; //这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时 TR0=1; } void tim(void) interrupt 1 using 1 //为定时中断TR0 { TH0=0xd8; //重新赋值 TL0=0xf0; count++; if(count==100) //100*10ms=1秒 { count=0; second--; //秒减1 } } 3.2.3 延时子程序 void delay(uint z) //延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 3.2.4 显示子程序 void display (uchar shiwei,gewei,xuanshou) //显示函数 { P2=0xfe; //打开显示时间十位的位选 P0=shiwei;//显示十位 delay(5); P2=0xfd; //个位位选 P0=gewei; delay(5); P2=0xf7; //选手位选 P0=xuanshou; delay(5); } 第四部分 结束语 自接触单片机以来,一直觉得单片机非常难,这次的课程设计我开始是以老师布置题目为主要选择对象的,但是后面发现,像八路抢答器在我脑海中根本没有一点印象,上网搜了很多资料,也感觉不怎么懂,于是问老师怎么弄,后面发现老师的意见和我的原本的程序和图只有几个地方不同,于是便将两者综合了一下,经调试和运行后,发现还行得通,于是便开始了忐忑的正文模版之路,以为快搞完了,后面发现其实程序和图还是要细细的弄懂才能写好报告,于是我又将程序和图细细的剖析了一遍,慢慢的画出流程图,然后慢慢将流程图和proteus图画好和截取下来,经过最近这段时间的在电脑前面的驻守,觉得只要自己肯付出和努力,发现其实很多的东西不是那么难懂的,以后还是要好好提升自己的动手能力和独立思考的能力。 第五部分 致谢 在此,还是非常感谢我们的指导老师,她是一位很负责和很细心的老师,谢谢她的辅导和鼓励,这次的课程设计给了我一个很好的开始,以后我会好好努力的。纵然课程设计是学校所要求的科目,纵然每次都这么紧张和辛苦,但是我还是觉得有些东西做了,就一定会有一定的价值吧。 第六部分 参考文献 参考文献资料 【1】 张迎新. 《单片机初级教程》.北京航天航空大学出版社 2000年. 【2】康华光. 《电子技术基础(模拟部分)》.第四版 高等教育出版社 1999年. 【3】 喻宗泉. 《单片机原理与应用技术》.西安电子科技大学出版社 2005年. 【4】 万光毅. 《单片机实验与实践教程》. 北京航天航空大学出版社 2003年. 【5】 张俊谟. 《单片机初级教程》.北京航天航空大学出版社 2000年.- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 抢答 设计 毕业设计 论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文