ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:365.53KB ,
资源ID:5778201      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5778201.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(竞赛打分系统的设计与实现论文.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

竞赛打分系统的设计与实现论文.docx

1、竞赛打分系统的设计与实现论文毕业设计说明书学生姓名学 号学院 计算机科学与技术学院专 业计算机科学与技术(软件工程)题 目竞赛打分系统的设计与实现指导教师 讲师/硕士 (姓 名) (专业技术职称/学位)2013年5月摘 要:竞赛打分系统是一个简单的信息发送,接收与处理系统,本系统由PC、打分终端等组成,采用串口总线通讯,语言包括VB,汇编语言。评委在各自的打分终端上输入比赛成绩,终端通过总线将数据传送到PC机,软件对各评委的打分进行统计,最终得出选手的名次。本文介绍了系统的工作原理,软件和硬件设计,给出了关键源代码及部分电路的原理图。关键字: VB,汇编语言,串行通讯,竞赛Abstract:

2、The judges scoring system is to send a simple message, receiving and processing system, this system is composed of PC, scoring terminal, this systems languages are VB、assembler.the bus structure.the hardware structure is simple。In the traditional game score, the score, the format and effectiveness n

3、eed manual inspection, is prone to errors, will also affect the fairness of the scoring.This system is: the fractional collection, analysis, processing of players, and then through the way of showing stick out a mile.After using this system, can save the game organizers of manpower, material resourc

4、es。 Can make the grading efficiency, accuracy can be improve. The scoring system is simple, practical, can make easy and professional activities of the organization。Key words: vb, assembler, serial , game1 前言随着近几年来各种各样竞赛的风靡,主办方急需一个操作方便,价格低廉的打分系统,本评分打分系统是按照竞赛中评委打分的方式设计的,有比较完善的竞赛评分功能.该系统优点是:1、可以节省比赛主办

5、方的人力,物力.2、使打分的效率,准确性得到整体的提高。3、本评分系统操作简单,实用性强,使活动组织更轻松,更专业。该系统适用于一切比赛下的评委打分情况如:象棋竞赛、歌唱比赛、计算机知识竞赛、乒乓球竞赛、足球竞赛等.本系统由PC、打分终端等组成,采用总线结构,硬件结构简单,便于生产,组装,可有效节省成本,节约时间。2 硬件选择选用AT89C51单片机(如图1),该MCU内含4KB的ROM,有四个8位的并行口(P1,P2等)和一个串行口,两个16位计数/定时器(T0,T1)。我们的硬件除了一个CPU以外,还有两个不可或缺的外设要选择:1、显示器 : 终端上要有显示器,用于告知评委他打的分数是什么

6、,可选用LCD或LED数码管。本系统使用四个7段LED数码管,这种显示器是4个数码管做在一起的,四个数码管的相同接口已在内部连在一起,不同的引脚分别由同一个引脚引出,例如:7个数字端和1个小数点端接在单片机的P2口,当某一脚为低电平时对应的灯亮,输出为1时对应的灯不亮;4个序号端分别为P30、P31、P32、 P33,选择一个时候我们就可以选择哪个序号的数码管亮了.软件编码时采用扫描的方式,每次只有一个数码管亮,4个数码管轮流点亮,每个数码管亮0.005秒,4个一共是0.02秒。为了是设计简单和自动化,我们用时钟中断的方式,在中断处理函数里,我们实现了不同数码管的依次显示。2、键盘电路:由于按

7、键较多,如果按照一个按键一个接口的方式来连接键盘则51的引脚数目要增加好几倍,所以键盘连接成mn(m=4,n=3)的矩阵形式,占用单片机的7根口线。图21 AT89C51单片机的结构框图本系统远端不需要太强的运算能力,单片机就可以满足我的需求。不仅可以减少硬件成本,也可以简化软件的设计3 软件选择1、上位机:VB是由微软公司开发的事件驱动编程语言。程序员可以使用VB提供的组件快速写出一个稳定的应用程序。在本项目中最重要的就是上位机和下位机之间的串口通信,而在VB中就有一个用于串口收发数据的控件, 从系统的稳定性和系统的复杂度来看, 用Visual Basic是合适的。 而且我也对他比较熟悉。

8、所以PC端的程序就由Visual Basic开发.2、下位机:下位机即打分终端,选择Keil开发环境和汇编语言编程。4 通信方案打分系统分工:上位机负责处理,显示和保存数据.下位机负责输入数据.在上下系统之间有一个通信的过程,通信的方法有很多种,我们可以在下面几种通信方法中选择一种。(1)并行连接方式: 图4-1 并行连接每个MCU连接不同的引脚,主机采用轮讯方式读取第N个打分终端上的评委的打分。说明:MCU与主机的并口相连接优点:这种连接方式软件和硬件设计简单.缺点:连线多,通信只能在数米内进行。(2)多串口线连接方式:图4-2 多串口线连接说明:每一个MCU单独用串口线与主机连接。优点:这

9、种方式软件设计简单,通信距离可至数十米。缺点:连线多,且主机需要有多个串口。(3)单串口线连接方式:图4-3 单串口线连接说明:每个MCU设置不同的地址,主机采用查询方式读取第N个MCU上的数据。优点:通信距离远(数十米),连线少。缺点:软件设计稍复杂。基于上述三种方式的优缺点,我们选用了第三种方式,即RS-485总线方式。5 下位机软件设计5.1主程序主程序的流程图如图5-1 所示,首先是中断,串口等的初始化,然后清空显示的“buffer”让终端显示“ 0”,然后调用读按键盘程序,直到有键被按下,然后分析被按下的键值,如果是小数点就查看小数点有没有被按下,如果没有被按下就将前一个数的高四位置

10、一,如果已经被按下过了,则输入是错误的,此时我们可以将本次按键的值忽略不计。如果按键不是“.”,而是“OK”则我们调用发送子程序,待发送完毕,我们再次清空“发送buffer,然后回到读按键状态。如果既不是”。”也不是”OK”,就是数字键,则首先判断是否是第一次按下数字键,如果是的话,就不用左移一位“发送buffer”了。接着将按键的值和“发送buffer进行“或”运算,并且将运算结果存入“发送buffer”中。随后再次去等待按键的按下。图5-1 主程序5。2读键盘子程序 读键盘子程序的流程图如图52所示,这里采用的是行反转法的读键盘程序设计,将行值置“1”如果有按键被按下那只能确定是哪一行的按

11、键被按下,此时无法确定是哪一个按键被按下,将列值置“1”这个时候能确定是那一列的值被按下,将行和列确定了那么哪个键被按下也就确定了.然后根据此值来确定它代表的数字是什么,这就需要一个键值表了。图52 读键盘子程序5.3发送子程序 数据发送子程序流程图如图53所示,先发送“主机号,待主机号发送完毕以后,开始发送实际的的分值.其中要注意的是随时监测数据的高四位是否为“1“,如果为一的话,我们要发送小数点。这么做比较麻烦也可以在接受按键值的时候定义一个变量,在发送数字的同时,我们可以通过它来确定小数点是在哪里这样就减去了每次比较的辛苦。图53 发送子程序 5。4显示子程序 显示子程序流程图如图54所

12、示,因为显示的时候我们使用的是中断来显示的,所以按照中断函数的惯例应该是现场保护。将计数的变量取模运算,得到要显示的数据的偏移地址。接着我们判断数据的高四位是否为“1”如果是的话,我们就将“。“点亮,根据要显示的数据,我们在表中查找段代码。根据段代码来点亮“LED灯”,计数变量加一;定时计数器的计数器值置初值.恢复现场。中断返回。图54显示子程序流程图6 上位机软件设计软件说明:软件有FORM1,2,3,4,5,6,和Module1 其中程序的入口点是Module1,在那里我们将首先显示form2,它是软件的主窗口。下面我将一一介绍这些窗口。6.1 系统实现 打分界面如图61见示所示,选手姓名

13、和比赛项目可以分别通过界面来改变.评委打分情况是通过MScomm这个控件来改变的。得分是根据评委的打分情况来得到的,比如平均分和总分.下一位选手和上一位选手的改变也可以改变选手姓名,得分,评委打分情况。它是通过from1中的msflexgrid来改变的,它也可以存储一些基本的信息比如,选手的姓名,得分,评委的打分情况。值得注意的是比赛项目不可以改变。图61 打分界面6。2 输入选手姓名界面输入选手姓名界面如图6-2所示。图6-2 输入选手姓名界面6.3 改变比赛项目界面改变比赛项目界面如图63所示。图63 改变比赛项目界面6。4 成绩统计成绩统计界面如图64所示,存储比赛的所有信息。Form2

14、中的下一位选手和上一位选手的按键的按下就意味着显示值的改变.改成什么样就要看form1中的内容了.图6-4 成绩统计界面6.5 系统设置系统设置界面如图65所示,改变比赛的得分情况(是取平均分还是取总分),和裁判的人数。这个直接影响到form2的显示,和form1的分数的存储情况.图65 系统设置界面7 系统调试7。1 硬件系统调试在本系统的硬件上有两个主要部件,在进行试验之前,一定要确保他们的正常工作.分别是输入,输出.输入是键盘,输出是LED数码管。1,LED数码管的测试:本项目中,由P2端口连接LED数码管的数据输入端,由P3的13号端口来选择在哪一个上数码管显示数字.所以我们就可以逐个

15、的输出8字,因为数码管的全亮就是8。这样既可以检测硬件连接是否正确,也可以使我们知道LED数码管的灯是否都是正确的.方法如下:a,将P2口上全部输出为1,将P3口上的1号端口设置为一用来在第一个数码管上显示一个8和一个小数点。b,P2的管脚不变,将P3口上的2号端口输出为1.然后以此类推。遇到的问题:在显示具体数字如1,2,3,4的时候,我在P2口上输出的是该数字的原码二进制。可是老是得不到预期的结果。原来我犯了一个低级的错误,我采用了大家比较通用的方法:写了一个数组。数组里数字的序号就是要显示的值,数组里相应序号的值就是我们要往P2口输出的值。2,键盘的测试:在本系统中,利用P1口来接受键盘

16、的输入,同时它的输入不是一个具体的值因为那样需要很多端口,我们现在的设计只需要7个端口就可以了。我们现在是确定要输入的值是不是正确的,是硬件级的调试,所以现在只需要得到的是两个1和六个零组成的数字,两个1的组合就可以确定是什么按键被按下了。遇到的问题:在连接键盘的时候,我先选择的是最简单的一个引脚接一个按键的设计,可是在设计的过程中才发现,引脚不够,因为起先没有考虑到LED数码管,后来加上LED数码管以后引脚就不够用了。经多次尝试之后,我选择了现在的4X3的按键。只是这样的设计是软件复杂了。7。2 软件系统调试1、打分终端的显示子程序:第一步:先写一个死循环,显示缓冲区中依次写入01、02、0

17、2、01四个数字,使得LED数码管上依次显示1、2、2、1,然后在显示的时候,死循环里依次选中P3的13号口,在选中的过程中加上一个延迟;作用:确认缓冲区的设置是否正确.第二步:在第一步的基础上将死循环改成时钟中断。这样我们的程序就可以在中断的基础上显示了。然后在中断处理函数上启动时钟中断这样就可以使得源源不断的数字得到显示。作用:使得数据的显示不需要人工的参与,完全由中断来搞定。遇到的问题: 在显示的时候我的数据类型是char,可是有的时候是不正确的输出,后来仔细的研究了类型的表示才知道.Char类型只能保证我们的数据的低七位是有效的。第八位是不确定的.将类型改成了Unsigned Char

18、类型以后就成功了。2、打分终端的按键子程序按住某个键不动,从P2口读取扫描码,然后从扫描码表中得到相应的二进制数字,然后将它导入到上一步调试好的显示缓冲区中。如果显示的数字是正确的就说明已经调试好了.否则将该二进制数字打印出来,然后一点一点的调试.如果上几步的硬件和软件调试没有问题,那么这一步也不会有太大的问题。3、下位机软和上位机软件调试:本系统中,上位机软件的编写难点以及上位机和下位机之间的关系的难点都是串口数据的收发。其中下位机没有什么大的问题,比较麻烦的是上位机的接收。因为仅仅在开始接受数据的时候会触发一个函数调用,但是我们现在串口才刚刚接受数据而已,那么怎么样既可以收取完整的数据,又

19、不添加太多的代码呢?有两种解决方法:(a) 可以用一个延时函数,来让cpu空转一段时间,给串口一个接收数据的时间.等到时间结束的时候,我们的数据也就发送完了。这时就可以放心大胆的一次性读取了.(b) 可以开始一个计时器,使其进入激活状态,也是等待一段时间以后再去读取数据.不过a计划的读数据函数是在串口控件的函数里进行的而b计划的读数据代码是在时钟控件里进行的,我认为二者没有什么太大的优劣之分,因为我们传输的数据量不是很大。我选取了b选项的设计风格,因为这样的设计思路更清晰。结 论随着毕业设计的结束,我的大学生活也要结束了,回想这四年的大学生活感想良多。大一的时候第一次听说编程这个词,对计算机算

20、是一窍不通,以前只是会上上网,别的什么都不会。后来渐渐地系统性的学习了C语言,C+,数电,组成原理,汇编语言,编译原理,操作系统等等专业课,在大三上学期用了半年的时间学习java,以为以后就要在java里面混饭吃了。到了大三下学期突然意识到,如果以后就做java,那么以前下过功夫学的一些理论课就完全的没有了意义,所以还是果断的转换了方向。毕业设计的选择也是因为方向的转变而转变的,随着自己的兴趣选择了偏底层的单片机来开发。通过这次毕业设计,学会了怎样查阅资料和利用工具书.平时课堂上所学习的知识大多比较陈旧和偏理论,作为软件工程专业的学生,由于专业特点不可能什么都学过,什么都懂,因此,在设计过程中

21、需要用一些不曾学过的东西时,就要去有针对性地查找资料,然后加以吸收利用。一定要对自己有信心。相信自己能把东西做出来那么就一定能做出来。在调试的时候知道了这一行的辛酸,不知道是哪儿的问题,它就是不出来。最后绝大部分是因为没有看好数据手册,导致的问题。所以以后看资料一定要细心再细心。这样往往会事半功倍的.否则,只有死路一条。还有我想告诉学弟学妹们的是在平时的学习过程中一定要注重基础知识的学习,尤其要注意的是多动手,多动脑。这比基础知识的学习更实用,因为,我们做的是一个研发类的工作,在工作中,会遇到很多的问题,对于这些问题你身边的人大多数都是不能指导你的,因为他们也没有遇到过类似的问题,所以更不可能

22、有人可以给你一个及时的解答。这就需要你自己去空手套白狼了。在学校就要培养这种独立解决问题的能力,否则到了社会上,在工作中很少有领导能照顾你。参 考 文 献1 薛均义, 张彦斌. MCS51系列单片微型计算机及其应用M。 西安交通大学出版社, 2005。2 李全利。 单片机原理及应用M。 北京: 清华大学出版社, 2006.3 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计M.北京航空航天大学出版社, 2006.4 余锡存. 单片机原理及接口技术M。 西安: 西安电子科技大学出版社, 2000。5 李全利。 单片机原理及接口技术M。 北京: 北京航空航天大学出版社, 2004.致 谢感谢父母,他们给予我生命,将所有的爱都倾注在我的身上。感谢老师,她在百忙之中抽出时间指导我的学习和毕业设计工作,另外,也要感谢金法华老师,他平时对我们严格要求,对工作一丝不苟。尤其是他深厚的理论水平和高超的动手能力更使我受益良多.再次感谢!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1