基于微机抢答器Word文件下载.docx
- 文档编号:19276293
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:12
- 大小:54.09KB
基于微机抢答器Word文件下载.docx
《基于微机抢答器Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于微机抢答器Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
宏指令名MACRO<
形式参数>
。
。
;
宏体
ENDM
2)通用数据传送指令
指令格式:
MOVOP1,OP2
将源操作数(OP2)内容传送到目标操作数(OP1)中。
MOV指令常用于对寄存器、存储器赋值,数据暂存等场合。
3)堆栈操作指令
存储器堆栈操作指令是CPU对内存堆栈段中的存储单元进行存(压入堆栈)、取(弹出堆栈)的操作。
指令格式是:
PUSHOP2(源操作数);
POPOP1(目的数)
4)比较指令CMP
CMPOP1,OP2
将OP1减OP2,执行完成后,OP1、OP2仍保持原值,其想减结果不送至OP1,仅影响标志位。
5)转移指令
JMPOP1,指令功能为无条件地控制程序转移到OP1指定的目标地址。
JA:
如果高于,转移;
JB:
如果低于,转移;
JZ:
如果为零,转移;
JNZ:
如果不为零,转移;
JE:
如果等于,则跳转;
JAE:
如果高于或等于,则跳转;
JNE:
如果不等于,则跳转。
6)循环(控制)指令:
LOOP循环指令也称为迭代控制指令,用来管理程序循环的次数。
调用子程序和返回指令CALLOP/RET。
7)中断指令
INT10H是由BIOS对屏幕及显示器所提供的服务程序,使用INT10H中断服务程序时,调用的功用如下,
00H—设置显示方式(AH=00H,AL=显示方式码)
02H—DH=行数,DL=列数,BH=页面,设置光标位置
INT21H是由BIOS对设备所提供的服务程序,使用INT21H中断服务程序时,调用的功用如下,
02H—显示输出(DL=显示输出字符)
06H—控制台输入输出(DL=FFH输入,DL=字符输出,AL=输入字符)
4CH—终止程序(AL=返回码)
INT1AH调用功用如下,
00H
—读取时钟“滴答”计数(CX=计时变量高子内容,DX=计时变量低字内容)
3程序设计和流程图
3.1程序汇编设计及注释
对抢答器其的设计,首先就是一个怎么样的显示过程。
用汇编语言实现输出字符串的思想,首先用BIOS的10H中断类型的02H功能置光标位置,然后用宏指令输出字符串,接着用DOS的21H中断类型的09H功能显示字符串来显示主界面。
接下来就实现抢答的功能,显示要倒计时,这里用延迟一秒来作用。
到达0后,就开始执行按键抢答计算,显示,和相关附加功能,具体见程序如下:
datasegment
Counting=5;
倒计时的秒数,也是抢答时间上限
Didas=18;
滴答次数
msgCDdb'
Counting'
'
$'
msgUdb'
User'
Uiddb?
db'
:
'
Timedb?
.'
?
Seconds.$'
UKeydb'
123'
;
按键ASCII码
UCount=($-UKey);
抢答人数
msgdb'
PressAnykeytoExit!
msg1db'
NoonePress!
StartCdw?
;
抢答开始时钟计数
EndCdw?
抢答结束时钟计数
Timesdw?
dataends
PRTSTRMACROZ;
输出字符串
leadx,Z
movah,09h
Int21h
ENDM
SETXYMACROX,Y;
设置光标位置,X=行,Y=列
xorbh,bh;
清零
movah,02h
movdh,X
movdl,Y
Int10h
codesegment
assumecs:
code,ds:
data
DELAYProcNear;
延迟一秒子程序
pushdx;
储存dx
pushcx;
储存cx
xorax,ax;
int1ah;
读取第一次获得时间
movTimes,dx
Read_Time:
xorax,ax
再次读取时间
subdx,Times
cmpdx,Didas;
与1秒相比较
jbRead_Time;
不高于则转移
popcx;
取出cx
popdx;
取出dx
ret;
返回
DELAYENDP
start:
movax,data
movds,ax;
代码段赋值
movah,00h
moval,02h
int10h;
80×
25黑白字符显示模式
SETXY9,35
PRTSTRmsgCD;
屏幕中间显示Counting
倒计时开始
xorcx,cx;
movcl,Counting;
PC:
SETXY10,39
movdl,cl
adddl,30h
int21h;
显示倒计时秒数
callDELAY;
延时一秒
loopPC;
倒计时未到0,继续执行
int21h;
显示最后一次数0
抢答计时开始
xorax,ax
int1ah;
cx:
dx=读取时钟计数,每秒18.2次.
movStartC,dx
movStartC+2,cx;
保存抢答开始时钟计数
movbx,Counting*182/10;
Counting秒所经过的时钟数
adddx,bx
adccx,0
movEndC,dx
movEndC+2,cx;
计算并保存抢答结束计数
J_again:
movah,06h
movdl,0ffh
int21h
oral,al;
al为0表示取完,跳出循环
jzJ_test;
没按键则直接检测是否已到抢答时间上限
xorsi,si;
将SI清零
PC1:
cmpUKey[si],al;
比较按键和UKEY中的字符
jeJ_Press;
相等,则跳转
incsi;
SI+1
cmpsi,UCount;
比较两者
jbPC1;
低于则执行
J_test:
movah,0
int1ah;
获取时钟数
movbx,EndC
movax,EndC+2
subbx,dx
sbbax,cx;
预置时钟与获取时钟比较
jaeJ_again;
大于则执行
SETXY11,33;
定义坐标
PRTSTRmsg1;
否则显示NoOnePress
jmpPC2;
无条件转移
J_Press:
int1ah;
获得按键时刻的时钟数
incsi
movax,si
addal,30h
movUid,al;
存贮按键用户编号
movbx,StartC
movax,StartC+2
subdx,bx
sbbcx,ax;
计算从计时开始到按键经过的时钟数,最后存在dx中
movax,1000
muldx
movbx,182
divbx;
将时钟数换算成百分秒数,存放在ax中
movbl,100
divbl;
计算整秒数,结果在al中
movTime,al
moval,ah
xorah,ah
movbl,10
计算十分秒数,结果在al中
movTime+2,al
addah,30h
movTime+3,ah;
百分秒
SETXY11,34
PRTSTRmsgU
PC2:
SETXY12,29
PRTSTRmsg
PC3:
movdl,0ffh
int21h;
等待用户按键退出
cmpal,0
jePC3
movax,4ch
int21h
codeends
endstart
3.2抢答器程序流程图
4仿真结果
我们在MF2KP仿真软件上进行编译、连接、运行后,弹出的对话框如下:
图1调试结果1
由上图可知,从第5秒开始倒计时。
图2调试结果2
由上图可知,计时到0秒的时候开始抢答,抢答后显示抢答者和抢答时间。
5心得体会
在这几天里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。
但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。
因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。
其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。
在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的编程可以行得通,但实际运行后,总是实现不了,因此耗费在这上面的时间用去很多。
做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解各个知识点,而且考试内容有限,所以在这次课程设计过程中,我从根本上了解了很多很多知识点,并且对于它们在实际中的应用有了更多的认识。
平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
平时看课本,这次看了,下次就忘了,认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
经过本次的课程设计,也感觉到自己所学的太有限了,在设计过程中,自己也发现了自己许多的不足之处,有些自己认为很了解的东西,却在自己设计时候总是过不去,后来经过几经查阅书籍,才找到相应知识点,进行分析和吸收。
完成这次课程设计我觉得收获很多,不但进一步掌握了微机原理的知识及专业仿真软件的基本操作,还提高了自己的设计能力及动手能力。
理论知识的不足在这次实践中表现的很明显,这将有助于我今后进一步的学习。
6参考文献
[1]姚燕南,薛钧义主编.《微型计算机原理与接口技术》.北京:
高等教育出版社,2004
[2]周明德,蒋本珊主编.《微机原理与接口技术》.北京:
人民邮电出版社,2002
[3]薛花主编.《微机原理与接口技术》.天津:
天津大学出版社,2009
[4]吴宁主编.《Pentium微型计算机原理及应用》.北京:
电子工业大学出版社,2000
[5]仇玉章主编.《32为微型计算机原理与接口技术》.北京:
清华大学出版社,2000
[6]邹逢兴主编.《计算机硬件技术基础》.北京:
高等教育出版社,1998
[7]谢瑞和主编.《微机技术实践》.武汉:
华中科技大学出版社,1995
[8]马忠梅主编.《单片机C语言应用程序设计》.北京:
北京航空航天大学出版,1997
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 微机 抢答