微机原理与应用实训猜数字游戏.docx
《微机原理与应用实训猜数字游戏.docx》由会员分享,可在线阅读,更多相关《微机原理与应用实训猜数字游戏.docx(11页珍藏版)》请在冰豆网上搜索。
微机原理与应用实训猜数字游戏
实训报告书
课题名称:
微机原理及应用实训
系(部):
信息工程系
班级:
信管12-1
学生姓名:
谢观林
学号:
2
完成时间:
2015/01/10
实习类型
微机原理及应用
实训地点
组成原理实验室
组别
第二组
实习课题
猜数字游戏
实训人姓名
谢观林
指导教师
冯文旭
实习日期
2015/01/05至2015/01/09
实训成绩
教师评语
指导教师签名:
______________
_______年____月____日
一.实训目的…………………………………………………………………4
二.实训题目及要求…………………………………………………………4
三.系统总体设计……………………………………………………………4
四.系统硬件部分设计………………………………………………………5
五.系统软件部分设计………………………………………………………9
六.实训总结…………………………………………………………………13
一.实训目的:
通过接触客观实际,来了解和认识所学的专业知识,让学生了解和掌握所学知识在客观实际中的应用,通过实训课可以使学生了解解决实际问题的过程,并能亲自动手完成相关题目设计。
让学生对实际课题设计的过程和方法有个很好的认识,又能亲自动手来锻炼提高专业技能,把所学的理论知识与实际能力紧密的结合在一起。
二.实训题目及要求
1.实训题目:
猜数字游戏
2.基本要求:
编制能产生0~99的两位随机数的子程序,随机产生被猜值(但不显示出来),然后可用0~9数字键输入0~99内的两位数xx(显示在八段码上),若输入数xx大于随机数则显示红灯,若小于则显示绿灯,两者均表示猜错从而猜次数增1(初始值为零)并继续猜下去;若猜中则红、绿灯同时亮并将猜中的数字与猜的次数闪烁5次。
要求确保被猜数的随机性(即未知性)。
3.设计提示:
为确保被猜数的随机性,一开始的初始值可随机读取某100个RAM单元值求和获得或由裁判手工输入不同的数字作为初始值,以后将上次被猜值作为初始值。
4.进一步设计要求:
将产生的被猜数及每次猜的值、猜的次数在CRT上同步显示,以示“公正”。
三.系统总体设计
1.系统总体结构框图:
2.系统工作原理:
猜数字游戏系统由8279芯片中的按键控制程序流程,开发平台控制系统的工作方式,并处理数据,之后将处理的数据送至8279的显示屏及红灯绿灯,让其显示结果。
3.系统细化后的流程图:
四.系统硬件部分设计
1.设计思路
2.分析系统所需的器材及功能
根据项目猜数字游戏的要求及实验箱提供的器材,要用到的器材如下:
①8279芯片:
提供数字键盘输入及显示器上显示数字。
②红绿发光二极管:
用于提示用户输入的数字与随机数比较的结果。
③8259芯片:
管理中断。
④8283芯片:
计数作用,用于统计用户输入猜的数字的次数。
⑤8255芯片:
连接其他芯片或元件通信用,扫描键盘。
⑥CPU:
响应来自8259芯片的中断请求,及运行由汇编程序连接后的机器语言程序。
⑦地址译码器:
用于片选选中需要用到的芯片。
⑧RAM芯片:
用于产生随机数,随机读取某100个RAM单元值求和获得
3.硬件设计原理图
(由于时间关系原理图不再用绘图软件绘画出来)
五.系统软件部分设计
1.程序设计思想
程序的设计思想是:
通过8255芯片时刻扫描键盘,如有按键按下,进入到解码程序,再到程序散转表,去执行各个功能控制程序。
2.算法流程图
3.最终程序代码
FOREAT598
C8279EQU239H
D8279EQU238H
C8255EQU203H
P8255CEQU202H
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
START:
PUSHCS
POPDS
INI:
MOVDX,C8255
MOVAL,80H
OUTDX,AL
MOVDX,C8279
MOVAL,00H
OUTDX,AL
MOVAL,2AH
OUTDX,AL
MOVAL,90H
OUTDX,AL
MOVAL,0D1H
OUTDX,AL
WAIT1:
INAL,DX;读8279状态字,判是否有键按下
MOVAH,AL
ANDAL,80H
JNZWAIT1
MOVAL,AH
ANDAL,0FH
CMPAL,00H
JEWAIT1
LEABX,STEP
RUN:
CALLCHKKEY
CALLDISPLAY
MOVCX,08H
LOOP3:
MOVDX,P8255C
MOVAL,[SI]
OUTDX,AL
INCSI
CALLDELAY
LOOPLOOP3
JMPRUN
CHKKEYPROCNEAR
RDKEY:
MOVDX,C8279
INAL,DX
MOVAH,AL
ANDAL,80H
CMPAL,80H
JERDKEY
MOVAL,AH
ANDAL,0FH
CMPAL,00H
JERTN
MOVAL,40H
OUTDX,AL
MOVDX,D8279
INAL,DX
CHK:
CMPAL,0FH
JEQUIT
CMPAL,0AH;判是否大于A键
JNCDIRE
MOVDELAYTIME,AL
JMPRTN
DIRE:
CMPAL,0BH
JNENEXT
MOVDIRDSP,40H
LEABX,STEP
JMPRTN
NEXT:
CMPAL,0CH
JNERTN
MOVDIRDSP,46H
LEABX,STEP
ADDBX,07H
RTN:
MOVSI,BX
RET
CHKKEYENDP
DELAYPROCNEAR
PUSHCX
MOVCX,0AH
SUBCL,DELAYTIME
LOOP1:
PUSHCX
MOVCX,03FFH
LOOP2:
NOP
LOOPLOOP2
POPCX
LOOPLOOP1
POPCX
RET
DELAYENDP
DISPLAYPROCNEAR
PUSHBX
MOVDX,D8279
MOVAL,DELAYTIME
LEABX,LED
XLAT
OUTDX,AL
MOVAL,DIRDSP
OUTDX,AL
MOVCX,0006H
LEABX,DSP
LOOP4:
MOVAL,[BX]
OUTDX,AL
INCBX
LOOPLOOP4
MOVDX,C8279
MOVAL,0C2H
OUTDX,AL
POPBX
RET
DISPLAYENDP
QUIT:
MOVDX,C8279
MOVAL,0D2H
OUTDX,AL
JMP$
LEDDB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
DSPDB5EH,79H,79H,73H,6DH,0EDH
DELAYTIMEDB01H
STEPDB08H,0CH,04H,06H,02H
DB03H,01H,09H,01H,03H
DB02H,06H,04H,0CH,08H
DIRDSPDB40H
CODEENDS
ENDSTART
六.实训总结
关于微机原理的实训只有短短的这么几天,转眼之间就过去了。
微机原理的课程已经结束有一个学期了,现在再来实训,之前所学的知识难免有些陌生,通过这次实训就相当于将之前的知识重新温习一遍,另外就是接触实际中微机原理的知识的应用,开阔了眼界,不再局限于课本中纸上谈兵。
实训刚开始时,并不知道如何下手,通过老师的讲解及自己上网查找资料,大概的了解了所选项目的基本原理,接着再把课本中各个芯片的介绍及工作方式看了看。
过了有两天,画出实验原理图,才开始着手在试验箱上连线,在电路中找出程序,通过软件将程序与仿真机通讯连接,这才发现无法与仿真机通讯,原来仿真机有问题啊,换了好几台仿真机还是一样的结果,实验室里有好多仿真机都有故障。
到第四天时,把仿真机拿去修了,到最后并没有做出成果来,有点遗憾,但项目的原理基本弄懂了。
只有通过亲身实践才知道自己所学的知识的欠缺和不足,才知道当初自己学的并不是很好。
也只有通过亲身实践才能真正提高自己的能力。
这就提醒我们在今后不仅要将专业知识学好,还要经常学以致用将知识应用到实际中,才能更好的提高自身能力。