单片机课程设计方案抢答器路抢答器.docx
- 文档编号:4707008
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:21
- 大小:290.99KB
单片机课程设计方案抢答器路抢答器.docx
《单片机课程设计方案抢答器路抢答器.docx》由会员分享,可在线阅读,更多相关《单片机课程设计方案抢答器路抢答器.docx(21页珍藏版)》请在冰豆网上搜索。
单片机课程设计方案抢答器路抢答器
1引言1
2功能概述1
2.1抢答器工作原理1
2.2设计目的与要求1
2.3设计任务1
2.4运行环境及工具2
3系统硬件设计2
3.1芯片的选择2
3.2原理及电路总框图2
3.3晶振复位及开始抢答电路3
3.4选手抢答键3
3.5显示与显示驱动电路4
3.6蜂鸣器音频输出电路4
4系统软件设计5
4.1系统主程序设计5
4.2系统流程图6
4.3程序清单7
5系统仿真结果14
5.1开始抢答仿真14
5.2抢答犯规仿真15
5.3抢答成功仿真16
6课程设计的总结与体会17
参考文献资料17
1引言
当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,那么也就必然离不开抢答器。
而现在的抢答器有着数字化,智能化的方向发展,这就必然提高了抢答器的成本。
鉴于现在小规模的知识竞赛越来越多,操作简单,经济实用的小型抢答器必将大有市场。
本抢答器与其他抢答器电路相比较有分辨时间极短、结构清晰,成本低、制作方便等优点,并且还有防作弊功能。
因此,我们制作了这款简易多路<十六路)数字抢答器摒弃了成本高、体积大、操作复杂。
我们采用了数字显示器直接指示,自动锁存显示结果,因而本抢答器具有显示直观,操作简单的特点。
而且在显示时抢答器会发出蜂鸣声使效果更为生动。
工厂、学校和电视台等单位常举办各种智力竞赛,抢答记分器是必要设备。
2功能概述
2.1抢答器工作原理
抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。
采用动态显示组号。
主持人按下开始抢答键才可以抢答。
主持人没有按下开始抢答按纽 主持人按下开始抢答按纽 20秒后主持人按下复位开关为下一题的抢答做准备。 单片机最小系统、抢答按键模块<四位并行数码显示、4*4矩阵式键盘)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。 2.2设计目的与要求 (1>熟悉电路,理解各个元件之间的控制流程。 (2>熟悉PROTEUS及WAV6000平台的运行环境。 (3>熟练掌握汇编语言,调用中断子程序和对端口进行读写数据的操作。 (4>理解掌握抢答器的原理及电路设计 2.3设计任务 (1>多路数字抢答器的硬件和软件设计 (2>分析电路图 (3>画出程序流程图 (4>编写代码 (5>程序分析与调试 2.4运行环境及工具 (1>WINDOWSXP系统 (2>PROTUES软件 (3>汇编编译环境、汇编语言 3系统硬件设计 3.1芯片的选择 本设计使用到的元器件包括: AT89C51芯片、数码LED显示器、七段LED数码管的译码。 其中AT89C51是系统的核心,它主要负责控制各个部分的协调工作。 在其外围接上复位电路,上拉电阻,数码管,按钮以及振荡器,p1.0-p1.7为抢答输入键接口,数码管段选P0口,位选P2口,蜂鸣器输出为P3.0口。 3.2原理及电路总框图 图4.5抢答器总原理图 3.3晶振复位及开始抢答电路 晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。 当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。 图3.3晶振复位及开始抢答电路 3.4选手抢答键<矩阵式键盘) 89C51的P1口做一个4*4的行列式键盘。 P1.0至P1.3轮流输出低电平在软件查询P1.4至P1.7的电平变化来输入组号。 给每一个选手编号1至16,当选手按下按钮时,电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。 图3.4选手抢答电路 3.5显示与显示驱动电路 此电路包括显示和驱动,显示采用数码管,驱动用三极管PNP。 数码管要显示抢答违规者编号、抢答10秒倒计时、正常抢答者编号和回答问题时间20秒倒计时,数码管采用动态显示。 驱动电路PNP发射极接+5V电压,当基极为低电平是集电极 为高电平则能驱动数码管使其显示数字。 因为PNP是模拟器件而数码管为数字器件,PNP的集电极如果不接一个较大的电阻显示就会出问题。 所以在PNP的集电极接了一个10千欧的电阻。 图4.3显示与显示驱动电路 3.6蜂鸣器音频输出电路 蜂鸣器音频输出电路的功能是用来报警,当遇到报警信号时,发出蜂鸣声,以此来提醒操作者。 本电路通过控制不同频率的矩形脉冲来控制蜂鸣器发声。 此次课程设计中只需要一些简单的提示声音,如有抢答违规,开始抢答,抢答时间结束和回答问题时间到的提示声音。 本课程设计从P3.0口输出一个矩形脉冲来控制驱动器PNP集电极的高低电平时间来控制蜂鸣器的声音。 图3.6蜂鸣器音频输出电路图 4系统软件设计 4.1系统主程序设计 为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人按开始键发布抢答命令,若在主持人未按开始键之前,有选手提前答题,则为违规抢答,蜂鸣器会发出警告声,并在显示器上显示犯规的选手编号。 当有选手抢答成功,则程序打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序,其他选手在此之后按键无效。 当在扫描到有人按下了抢答键,马上关闭T0、调用显示程序、封锁键盘。 4.2系统流程图 4.2.1硬件复位流程图 图4.2.1硬件复位流程图 4.2.2系统程序流程图 图4.2.2系统程序流程图 4.2.3显示抢答违规流程图 图4.2.3显示抢答违规流程图 4.2.4抢答成功流程图图 图4.24抢答成功流程图 4.3程序清单 ORG0000H LJMPMAIN ORG0013H LJMPESS1 ORG0100H MAIN: SETBEA SETBEX1 SETBIT1。 外部中断1初始化 L16: MOVP1,#0FFH MOVR2,#00H CLRP1.0 INCR2 JBP1.4,L0 LCALLDE0 L0: INCR2 JBP1.5,L1 LCALLDE0 L1: INCR2 JBP1.6,L2 LCALLDE0 L2: INCR2 JBP1.7,L3 LCALLDE0 L3: SETBP1.0 CLRP1.1 INCR2 JBP1.4,L4 LCALLDE0 L4: INCR2 JBP1.5,L5 LCALLDE0 L5: INCR2 JBP1.6,L6 LCALLDE0 L6: INCR2 JBP1.7,L7 LCALLDE0 L7: SETBP1.1 CLRP1.2 INCR2 JBP1.4,L8 LCALLDE0 L8: INCR2 JBP1.5,L9 LCALLDE0 L9: INCR2 JBP1.6,L10 LCALLDE0 L10: INCR2 JBP1.7,L11 LCALLDE0 L11: SETBP1.2 CLRP1.3 INCR2 JBP1.4,L12 LCALLDE0 L12: INCR2 JBP1.5,L13 LCALLDE0 L13: INCR2 JBP1.6,L14 LCALLDE0 L14: INCR2 JBP1.7,L15 LCALLDE0 L15: LJMPL16。 读行列式键盘 ESS1: MOV70H,#30D。 外部中断1 MOVR7,#0CH CLRP3.0 S2: LCALLDELAY DJNZ70H,S2 SETBP3.0。 蜂鸣器提示开始抢答 MOVTMOD,#00010000B MOVR3,#0AH L20: MOV55H,#14H L19: MOVTH0,#3CH MOVTL0,#0B0H。 定时器1初始化 SETBTR1。 启动定时器1 MOVA,R3 MOVB,#0AH DIVAB MOVDPTR,#TAB MOVCA,@A+DPTR MOV53H,A CLRP2.4 MOVP0,53H LCALLDELAY1 SETBP2.4 MOVA,B MOVCA,@A+DPTR MOV54H,A CLRP2.5 MOVP0,54H LCALLDELAY1 SETBP2.5 L18: JNBTF1,L18 CLRTF1 DJNZ55H,L19 DECR3 CJNER7,#00H,D6 LJMPD5 D6: CJNER3,#0FFH,L21 LJMPL22 L21: LJMPL20。 抢答倒计时 L22: MOV73H,#02D S5: MOV70H,#20D MOV71H,#20H CLRP3.0 S4: LCALLDELAY DJNZ70H,S4 SETBP3.0 S6: LCALLDELAY DJNZ71H,S6 DJNZ73H,S5。 抢答倒计时时间到声音提示 D5: RETI DE0: MOVDPTR,#TAB。 抢答违规报警并显示抢答违规组号 MOVA,R2 MOVB,#0A S10: MOV72H,#20D MOV73H,#10D CLRP3.0 S8: LCALLLCC DJNZ72H,S8 SETBP3.0 S9: LCALLLCC DJNZ73H,S9 DJNZ71H,S10 L17: LCALLLCC LJMPL17 LCC: CLRP2.4 MOVP0,50H LCALLDELAY DELAY1: MOVP1,#0FFH。 正常抢答读键 MOVR4,#250D W17: MOVR2,#00H CLRP1.0 INCR2 JBP1.4,W0 LCALLDE1 W0: INCR2 JBP1.5,W1 LCALLDE1 W1: INCR2 JBP1.6,W2 LCALLDE1 W2: INCR2 JBP1.7,W3 LCALLDE1 W3: SETBP1.0 CLRP1.1 INCR2 JBP1.4,W4 LCALLDE1 W4: INCR2 JBP1.5,W5 LCALLDE1 W5: INCR2 JBP1.6,W6 LCALLDE1 W6: INCR2 JBP1.7,W7 LCALLDE1 W7: SETBP1.1 CLRP1.2 INCR2 JBP1.4,W8 LCALLDE1 W8: INCR2 JBP1.5,W9 LCALLDE1 W9: INCR2 JBP1.6,W10 LCALLDE1 W10: INCR2 JBP1.7,W11 LCALLDE1 W11: SETBP1.2 CLRP1.3 INCR2 JBP1.4,W12 LCALLDE1 W12: INCR2 JBP1.5,W13 LCALLDE1 W13: INCR2 JBP1.6,W14 LCALLDE1 W14: INCR2 JBP1.7,W15 LCALLDE1 W15: DJNZR4,W16 LJMPW18 W16: LJMPW17 W18: RET DE1: MOVP1,#0FFH。 抢答成功声音提示及回答问题时间20秒倒计时 MOV70H,#20D CLRP3.0 S3: LCALLDELAY DJNZ70H,S3 SETBP3.0 SETBP2.0 SETBP2.1 MOVDPTR,#TAB MOVA,R2 MOVB,#0AH DIVAB MOVCA,@A+DPTR MOV56H,A MOVA,B MOVCA,@A+DPTR MOV57H,A MOVTMOD,#00000001B MOVR5,#16H L32: MOVR6,#14H L31: MOVTH0,#3CH MOVTL0,#0B0H SETBTR0 CLRP2.4 MOVP0,56H LCALLDELAY SETBP2.4 CLRP2.5 MOVP0,57H LCALLDELAY SETBP2.5 CJNER5,#14H,L34 LJMPL35 L34: JCL35 LJMPL30 L35: MOVA,R5 MOVB,#0AH DIVAB MOVCA,@A+DPTR MOV58H,A MOVA,B MOVCA,@A+DPTR MOV59H,A CLRP2.6 MOVP0,58H LCALLDELAY SETBP2.6 CLRP2.7 MOVP0,59H LCALLDELAY SETBP2.7 L30: JNBTF0,L30 CLRTF0 DJNZR6,L31 DECR5 CJNER5,#0FFH,L32 MOVP1,#0FFH MOV70H,#50D CLRP3.0 S7: LCALLDELAY DJNZ70H,S7 SETBP3.0 MOVP2,#0FFH MOVR3,#00H MOVR7,#00H RET DELAY: MOV51H,#10D。 延时子程序 D0: MOV52H,#248D D1: DJNZ52H,D1 DJNZ51H,D0 RET TAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END 5系统仿真结果 5.1开始抢答仿真 主持人按开始按钮后,进入抢答10秒倒计时。 图5.1.110秒抢答倒计时开始 图5.1.210秒抢答倒计时结束 5.2抢答犯规仿真 若在主持人还未按开始按钮时,就抢答则为抢答犯规。 仿真为4号犯规。 图5.2.1未开始状态 图5.2.24号选手犯规抢答 5.3抢答成功仿真 主持人按开始按钮后,10秒内抢答则为成功抢答。 仿真为15号选手成功抢答,抢答后进入20秒倒计时答题时间。 图5.3.110秒抢答倒计时开始 图5.3.215号选手成功抢答 6课程设计的总结与体会 通过本次课程设计使我对proteus仿真软件的使用和汇编语言有了更进一步的了解和掌握。 在最初编写过程中,我也曾经因为实践经验的缺乏失落过,也曾经因仿真成功而热情高涨。 特别是Proteus仿真软件的使用,不知是由于电脑的问题还是怎么,这个软件的安装就花了我很长的时间,好不容易安装好了,又对软件的使用一点都不熟悉,要从头开始学起,对着老师发给我们的芯片原理进行仿真画图,刚刚开始时候真的很难下手,因为是英文版的软件,很多东西都看不太明白,都是通过自己一个个来慢慢琢磨,才把仿真图画了出来,然后把写好的程序导入芯片,进行仿真,当看到程序正常运行的那一刻,心中真是有几分的喜悦。 虽然这只是一次的较简单的课程设计,可是平心而论,也耗费了我不少的心血。 我想说: 为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,当LED亮了起来,喇叭响了起来是对我这段日子以来最好的告慰。 而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后的毕业论文会有更多帮助。 这次课程设计让我充分理解了89C51芯片的工作原理,知道了抢答器的硬件和软件的实现过程,并且通过自己动手编写程序来控制抢答器的工作,我感到非常有成就感,也锻炼了我的编程能力。 在刚开始编程的时候,我感到很茫然,不知道怎么样下手,但是通过自己的仔细的分析和老师的细心的指导,在认真分析了原来已有的代码后,和应有的硬件后,经过多次调试和测试终于成功了。 在此我非常要感谢的是我的指导老师刘伟春老师,感谢老师的细心认真的辅导,教给我许多原来不知道的知识。 这次课程设计能够顺利的完成,当然有我个人的努力,但同时也离不开指导老师的答疑解惑和同学的帮助。 参考文献资料 [1]李泉溪.《单片机原理与应用实例仿真》.北京航天航空大学出版社2009年 [2]江世明.《基于Proteus的单片机应用技术》.电子工业出版社2008年 [3]喻宗泉.《单片机原理与应用技术》.西安电子科技大学出版社2005年 [4]万光毅.《单片机实验与实践教程》.北京航天航空大学出版社2003年 [5]张俊谟.《单片机初级教程》.北京航天航空大学出版社2000年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 方案 抢答