当前位置:文档之家› 裁判评分系统的设计与实现

裁判评分系统的设计与实现

郑州科技学院微机原理与接口技术课程设计任务书专业计算机科学与技术班级1班学号201215010 姓名冯莲一、设计题目裁判评分系统的设计与实现二、设计任务与要求1、键盘上输入7名裁判的评分(0-10,整数),扣除一个最高分,扣除一个最低分,计算出其它五个分数的平均值(保留整数);2、显示器输出“The final score is:”显示相应的结果。

三、参考文献(不少于5个)[1]陆忠华.汇编语言程序设计[M].科学出版社,1993[2]迟成文,王保秀.汇编语言程序设计[M].中国科学技术大学出版社,1993[3]彭虎,周培玲,傅忠谦.微机原理与接口技术(第2版)[M].电子工业出版社,2008[4]张荣标,微型计算机原理与接口技术[M].机械工业出版社,2009.4[5]徐建民.汇编语言程序设计[M].电子工业出版社.2005年[6]宋杰,汪志宏,江敏,微机原理与接口技术课程设计[M].机械工业出版社,2005.4[7]郑州科技学院微机原理与接口技术实验指导书[M].四、设计时间2015年1 月5 日至2015 年1 月11 日指导教师签名:2015 年 1 月 5 日郑州科技学院《微机原理与接口技术》课程设计题目_裁判评分系统的设计与实现学生姓目录1 引言 (1)2 设计方案与论证 (2)2.1 方案一 (2)2.2 方案二 (2)2.3 设计思路 (3)3 设计原理及功能说明 (4)3.1 软件 (4)3.1.1 设计实验总流程图 (4)3.1.2 设计子程序流程图 (6)3.2 部分代码实现 (8)3.2.1 运行结果界面的代码 (8)3.2.2 实现去掉一个最大值和最小值的代码 (8)3.2.3 小数处理的代码实现 (9)4 调试与结果测试 (10)4.1初始化运行界面 (10)4.2输出最终成绩界面 (10)5 总结 (13)参考文献 (15)附录:源代码 (16)1引言随着社会的发展,文化的进步,各种比赛层出不穷。

并且参赛者训练水平的提高,伴随着多种复杂、高难技巧及隐藏技术与战术的灵活运用对裁判的执法水平也有了更高的要求。

公正、准确、合理的裁判是保证比赛顺利进行的根本和基础。

而当今社会上裁判员在临场工作中会受到各种因素的影响,从而出现错漏判,“怯场”等现象。

而随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要作用。

多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。

为了避免比赛中不公平现象的发生人们设计出了裁判评分系统。

本次课程设计是基于微机原理与接口技术的简单应用。

本课程设计的要求是键盘上输入7名裁判的评分(0-10,整数),扣除一个最高分,扣除一个最低分,计算出其它五个分数的平均值;并且显示器输出“The final score is:”显示相应的结果。

而本次课程设计的目的是利用本学期所学的RAM扩充、8253计数器/定时器、8255并行口、8251串行口、8259中断控制器、D/A数模转换、A/D模数转换、DMA、LED显示等实验,使我们了解各个器件的性能和使用方法[1]综合这些基础知识,就具体问题做出软、硬件的解决方案并付诸实施。

学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。

通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

2设计方案与论证2.1方案一用8086接口芯片设计一个四裁判使用的评分系统,接受四个裁判的打分,输出的是平均得分。

此评分系统是由四个裁判组成的一个评分系统。

对每位裁判给出的分数进行累加,并求出平均分。

根据唐都微机原理与接口技术试验箱的条件,设定裁判分数范围是0—7的整数,由试验箱中小键盘来输入。

将4位裁判给出的分数累加,用4位二进制表示每位裁判的分数。

这样可用8255A的PA口的低四位和Pc口的低两位来控制两行四列的小键盘。

将4位裁判的分数依次输入,根据PA口、PC口的数据来确定接受的数值,并送入数据段中,依次将输入的四个数值存入数据段,保存起来。

[2]由于方案一评委太少,没有考虑到特殊的情况(如某个评委很喜欢某个选手就打了一个最高分),求得的平均得分不是很公平,为此引入了方案二。

2.2方案二设计一个七位裁判的评分系统,接收七个裁判的打分,去掉一个最高分和一个最低分,然后输出平均得分。

此评分系统主要采用循环结构和子程序的基本结构形式,编写程序产生7个0~10的随机数,找出这7个数中的最大和最小的数,即评委给出的最高分和最低分,分别保存。

再对这7个数求和,减去前面保存的最大数和最小数,所得的值除以7,即为选手的得分,分别保存整数部分和小数部分。

保存该分数并在屏幕中间显示出来。

以上过程循环,然后对每次得出的选手得分进行排序并调用BIOS 功能使字符显示。

[3]经过对以上两方案得分析、比较,我觉得方案二比较完善些,更适合我的设计,于是我采用方案二作为本场次设计的总体方案。

并附上本次设计的设计框图如图2-1所示:图2-1设计框图2.3 设计思路这次课程设计中用到了汇编语言程序的四种基本结构:顺序结构、分支结构、循环结构和子程序。

[4]顺序结构程序一般是简单程序,它是顺序执行的,无分支、无循环,也无转移,因此也称为直线程序。

分支结构程序是指程序在按指令先后的顺序执行过程中,遇到不同的计算结果值,需要计算机自动进行判断、选择,决定转向下一步要执行的程序段。

程序中的某些部分需要重复执行,设计者不可能将重复部分反复地书写,只要选好参数,将程序中重复执行部分构成循环结构,这样设计的程序既美观又便于修改。

循环结构每次测试循环条件,当满足时,重复执行这一段程序;否则结束循环,顺序往下执行。

打分器 转换器计算机八段LED 屏此次主要采用循环结构和子程序的基本结构形式,编写程序产生7个0~10的随机数,找出这7个数中的最大和最小的数,即评委给出的最高分和最低分,分别保存。

再对这7个数求和,减去前面保存的最大数和最小数,所得的值除以7,即为选手的得分,分别保存整数部分和小数部分。

保存该分数并在屏幕中间显示出来。

在处理实际问题时,设计程序必须要考虑到实际的应用,对所要解决的问题进行全面了解和分析,依据给出的条件和数据,对输入信息、处理过程、输出结果进行可行性分析,建立数学模型,将问题用数学形式表达出来。

3设计原理及功能说明3.1软件3.1.1 设计实验总流程图流程图是由一些图框和流程线组成的,是算法的图形描述,它以图形的方式把解决问题的先后次序和程序的逻辑结构直观地、形象地描述出来,使得编程的思路清晰,有利于编制、调试程序。

程序流程图包括:(1)指明实际处理操作的处理符号,它包括根据逻辑条件确定要执行的路径的符号;(2)指明控制流的流线符号;(3)便于读.写程序流程图的特殊符号。

下面先介绍一下主程序流程图,如果3-1所示。

由主程序流程图可以看出程序的主要设计思路和整体框架。

开始初始化缓冲器初始化8255A设置8255A工作方式键盘行扫描否有按键?是检测按键值,并存入相应存储器中七次后进入平均分处理程序从B口经LED显示结束图3-1 程序流程图3.1.2设计子程序流程图由于汇编语言本身的多样性与灵活性,汇编语言程序的结构化程度以及易读程度均不理想。

为了更好地辅助分析汇编语言程序的功能,根据汇编指令对程序静态流程的影响,对不同类型处理器的汇编指令进行了统一的分类,并在此基础上详细讨论了一种绘制汇编子程序流程图的算法。

最后利用程序基本模块的概念,对该算法进行了改进。

子程序是为了使程序方便阅读和修改,减少编程工作量,节省存储空间,并易于实现程序的模块化。

子程序流程图也是为了让程序流程图便于读者阅读。

下面介绍这次课程设计程序中所用到的子程序。

查找最高分和最低分程序流程图:对于一些具有特殊功能的程序可以编制成子程序,通过调用来实现功能,这样有利于程序的读和写,也易于查错,因此本题将显示指定字符串、显示十进制ASCII码、查找最高分最低分的过程编写成子程序以供调用,方便简洁明了,可以更快地确定编程的方向和目的,找出解决问题的最佳途径。

由于显示指定字符串、显示十进制ASCII码涉及DOS 功能调用,指令简单,为汇编者所熟记的知识,可以不用流程图再次赘述。

查找最高分最低分的流程图如图3-2所示,从图中可以看出,找出最高分的方法和查找最低分的方法类似,只需更改其中的个别指令,即可达到目的。

图3-2 查找最高分和最低分程序流程图开始 取出一个数 与下一个数作比较 大于等于? 不变 替换 保存该数为最高分 结束 Y N 开始 取出一个数 与下一个数作比较 小于等于? 不变 替换 保存该数为最低分结束Y N3.2 部分代码实现3.2.1 运行结果界面的代码DATA SEGMENTN DB 7 DUP(0)MAX DB 0MIN DB 10M1 DB 0DH,0AH,'Input: $'M2 DB 0DH,0AH, 'The final score is: $'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA[5]3.2.2实现去掉一个最大值和最小值的代码;================MAX_MIN PROC NEAR ;输入数据的同时找出最大和最小值CMP AL,MAXJB P1MOV MAX,ALP1:CMP AL,MINJA RMOV MIN,ALR:RETMAX_MIN ENDP;===================CODE ENDS3.2.3 小数处理的代码实现PUSH AX ;处理小数ADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV AH,2MOV DL,'.'INT 21HPOP AXMOV AL,AHMOV BL,10MUL BLMOV BL,5DIV BLADD AL,30HMOV DL,ALMOV AH,2INT 21HJMP R_MAINALL10:MOV AH,2MOV DL,'1'INT 21HMOV DL,'0'INT 21HR_MAIN:MOV AH,08HINT 21HMOV AH,4CHINT 21H4 调试与结果测试4.1初始化运行界面经过调试程序至可以运行出现下图4-1显示的界面图4-1初始化运行界面4.2输出最终成绩界面调试成功后,一次输入7个裁判的评分,去掉一个最高分和一个最低分然后求出剩下的分数的平均值,最后在屏幕上输出这个选手的最终得分。

相关主题