湖南生物机电职业技术学院 毕业设计成果报告书 题目: 基于单片机的六路抢答器设计
2017年08 月 13日 湖南生物机电职业技术学院毕业设计报告书 目录 第一部分 设计任务与调研 第二部分 设计说明 第三部分 设计成果 第四部分 结束语 致谢 参考文献
第1部分 设计任务与调研
1.1 设计的任务及要求设计一个基于52单片机的六路抢答器,要求所设计的电路具有以下功能: - 抢答器同时供6名选手或6个代表队比赛,分别用6个按钮K0~K5表示。
- 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
1.2 调研目的和总结随着电子技术的发展,现在的抢答器功能越来越强,可靠性和准确性也越来越高。能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大。 对于目前的抢答器的功能描述,如涵盖抢答器、抢答限时、选手答题计时及犯规组号抢答器具有抢答自锁,灯光指示、暂停复位、电子音乐报声、自动定时等功能,还有工作模式的切换和时间设定,对于这些,随着科学技术的发展,肯定还要得到进一步的改进。一般都要趋向于智能化。 在各类竞赛中,特别是做抢答题时,在抢答过程中,为了知道哪一组或哪一名选手先答题,必须要有一个系统来完成这个任务。如果在抢答过程中,只靠人的视觉是很难判断出哪组先答题。利用单片机来设计抢答器,使以上问题得以解决,即使有两组的抢答时间相差几微秒,也可分辨出哪组优先答题。 抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢大漆只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辨认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示功能。像这类抢答器,制作过程简单,准确性与可靠性高,而且安装维护简单。对于抢答器的应用,如早期的数字电路,随着科技的逐步发展,进而到了单片机的控制来实现其功能,而且功能齐全,电路简单,成本低,性能高,真正朝着有利的方向发展。 1.3 设计思路及方法本设计采用的主控制芯片是AT89C52,它主要负责控制各个部分协调工作。P1.0—P1.5是6组抢答的输入口,按下对应按钮即为抢答。P2.0—P2.5为位选通。P0口为数码管的段选口,位选口用的是P2口的低4位。它是共阴极的由高电平点亮。以拔动开关K0—K5中的某个开关为0N作为抢答按键,无人抢答时,6个数码管循环轮流显示1—6跑马,谁先抢答,数码管停止跑马,6个数码管同时亮谁的编号,其后再有键按下,系统不予响应,直到此位拔为OFF,恢复l—6跑了马,开始下一轮抢答。系统仿真用到了Proteus7.8软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。
第2部分 设计说明2.1 设计思路图2-1 系统框图 本系统由主控芯片、按键模块、LED显示模块、声音模块等部分构成。在设计中采用的单片机是AT89C52,它主要负责控制各个部分协调工作。P1.0—P1.5是6组抢答的输入口,按下对应按钮即为抢答。P2.0—P2.5为位选通。P0口为数码管的段选口,位选口用的是P2口的低4位。它是共阴极的由高电平点亮。以拔动开关K0—K5中的某个开关为0N作为抢答按键,无人抢答时,6个数码管循环轮流显示1—6跑马,谁先抢答,数码管停止跑马,6个数码管同时亮谁的编号,其后再有键按下,系统不予响应,直到此位拔为OFF,恢复l—6跑了马,开始下一轮抢答。系统仿真用到了Proteus7.8软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。 2.2 硬件系统设计2.2.1 主控制电路本设计采用AT89C52作为主控制芯片。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 图2-2 最小系统 2.2.2 点键盘扫描电路图2-3 点键盘扫描电路 拨动开关是通过拨动开关柄使电路接通或断开,从而达到切换电路的目的。拨动开关的设计如图2-3所示,P1.0-P1.5是6组抢答的输入口,按下按钮抢答。谁先按下后其他人再按则无效。当该选手抢答完成后该开关拨为OFF,系统开始重新跑马。 2.2.3 显示电路led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。本实验的显示电路的设计如下图2-3。采用数码管7SEG-MPX6-CA-BLUE。此为六个数码管合一的,123456表示选择的数码管供电的管脚,ABCDEFG DP就是数码管的断码输入。系统通电后六个数码管循环轮流显示1—6跑马,谁先抢答数码管停止跑马,六个数码管同时亮谁的编号。其后再有键按下系统不予响应,直到此为拨到OFF。 图2-4 显示电路 2.3 软件系统设计图2-5 程序流程图
图2-6 显示子程序流程图
第3部分 设计成果3.1 设计成果图3-1 电路原理图
图3-2 按键5按下仿真图 当主持人宣布开始的时候,按键5按下,显示屏全部显示5,蜂鸣器“滴”的响一声,此时其它按键按下无效。
图3-3 按键1按下仿真图 当主持人宣布开始的时候,按键1按下,显示屏全部显示1,蜂鸣器“滴”的响一声,此时其它按键按下无效。 3.2 源程序- #include<reg52.h>
- sbit k1=P1^0;
- sbit k2=P1^1;
- sbit k3=P1^2;
- sbit k4=P1^3;
- sbit k5=P1^4;
- sbit k6=P1^5;
- unsigned char DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82};
- void delayms(unsigned int ms)
- {
- unsigned int i,j;
- for(i=0;i<ms;i++)
- for(j=0;j<1141;j++);
- }
- void main()
- {
- unsigned char key,i;
- TMOD=0x01;
- TH0=0xff;
- TL0=0xff;
-
- while(1)
- {
- key=P1;
- if(key==0xff)
- {
- for(i=1;i<7;i++)
- {
- switch(i)
- {
- case 1:P2=0x01;break;
- case 2:P2=0x02;break;
- case 3:P2=0x04;break;
- case 4:P2=0x08;break;
- case 5:P2=0x10;break;
- case 6:P2=0x20;break;
- default : P2=0x01;break;
- }
- P0=DSY_CODE[i];
- delayms(10);
- }
- }
- if(key!=0xff)
- {EA=1;
- ET0=1;
- TR0=1;
- }
- }
- }
-
- void Tim_T0() interrupt 1 using 0
- {
- if(k1==0&&k2!=0&&k3!=0&&k4!=0&&k5!=0&&k6!=0)
- {
- P2=0xff;
- P0=DSY_CODE[1];
- }
- if(k2==0&&k1!=0&&k3!=0&&k4!=0&&k5!=0&&k6!=0)
- {
- P2=0xff;
- P0=DSY_CODE[2];
- }
-
- if(k3==0&&k1!=0&&k2!=0&&k4!=0&&k5!=0&&k6!=0)
- {
- P2=0xff;
- P0=DSY_CODE[3];
- }
- if(k4==0&&k1!=0&&k2!=0&&k3!=0&&k5!=0&&k6!=0)
- {
- P2=0xff;
- P0=DSY_CODE[4];
- }
- if(k1!=0&&k6!=0&&k2!=0&&k3!=0&&k4!=0&&k5==0)
- {
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
第4部分
结束语经过一个学期的学习,我觉得单片机这门课是很有趣的一门课程,在设计中掌握课程,具有很强的实用性,真正做出一个实际的作品比我们做很多道题更具有生动性。 第一次从白纸一样开始自己设计单片机,起初我还害怕做不出东西来,可是在这两星期的日子里,虽然中途感到在设计上迷茫,但是最后还是学到很多很多的的东西。同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。这次毕业设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好。通过这次毕业设计之后,一定把以前所学过的知识重新温固。 通过此次单片机设计实习,把自己在学校学到的知识转化为实验成果,积累了一定的经验,提高了分析问题和解决问题的实际能力。我体会到毕业设计的各个环节,不是孤立的,每个环节都是必不可少的。在该毕业设计的过程中,我深刻体会到了计算机研究工作的艰辛。自己觉得理论上可行的方法,在实验的过程中却不一定行得通。经过了一次又一次地修改程序和检查电路,终于完成了自己的毕业设计。虽然它有许多的不完善,可我却有一种无法言表的喜悦与成就感。我明白了毕业设计的过程,就是不断地改进与完善的过程。 在开发设计过程中,由于知识有限,经验不足,毕业设计时间短,难免有很多的不足,敬请老师指教,以待日后加以改进。最后,希望毕业以后能更加深入地接触到单片机,并不断前进。我非常荣幸和感谢在老师那里学到很多实用的知识。我希望更多同学能够在使用中发现单片机的无穷魅力!
致谢在本设计完成之际,我要特别感谢指导我的李浩老师的热情关怀和悉心指导。在我撰写设计的过程中李浩老师倾注了大量的心血和汗水,无论是在设计的选题、构思和资料的收集方面,还是在设计的研究方法以及成文定稿方面,我都得到了李浩老师悉心细致的教诲和无私的帮助,特别是广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。 在设计的写作过程中,也得到了许多同学的支持和帮助,给予了我很多宝贵的意见,在此一并致以诚挚的谢意。 感谢所有关心、支持、帮助过我的老师和益友的帮助。 最后,向在百忙中抽出时间对本设计进行评审并提出宝贵意见的各位老师表示衷心地感谢!
参考文献[1] 冀振燕 LJML系统分析设计与应用案例 人民邮电出版社 2003 [2] 王文峰 数码显示六路抢答器的设计 井冈山师范学院学报 2000年05期 20-21 [3] 陈越等 ISD全系列单片语音录放电路设计与应用 电子工业 [4] 杨晓辉、张彤、姜俊海、智能抢答器的设计与制作 长春大学学报 2000年06期 24-25 [5] 沈庆阳、郭庭吉 8051单片机实践与应用 清华大学出版社 [6] 杨凌霄 微型计算机原理及应用 中国矿业大学出版社 2004 [7] 郑有正 单片机原理及应用 四川大学出版社 [8] 杨刚、龙海燕等 现代电子技术 电子工业出版社 2004
完整论文下载(word格式 可编辑):
http://www.51hei.com/bbs/dpj-88654-1.html
|