资源描述
武汉理工大学微机原理与接口技术课程设计说明书目录摘要21 总体方案设计31.1设计目的31.2设计任务与要求31.3设计方案32 程序流程图设计42.1主流程图设计42.2子流程图设计43 程序段落的说明63.1光标的设立和隐藏63.2调用系统的时间63.3 判断是否有键盘输入74 程序调试说明、结果记录与分析84.1 程序调试过程84.2调试结果84.3分析结果95课程设计收获与心得体会10参考文献11附录12摘要微型计算机简称微机,由于其具备人脑的某些功能,所以也称其为微电脑。是由大规模集成电路组成的、体积较小的电子计算机。它是以微处理器为基础,配以内存储器及输入输出接口电路和相应的辅助电路而构成的裸机。把微型计算机集成在一个芯片上即构成单片微型计算机。学习微机课程,主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而汇编语言是其中一大板块。汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码,汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言像机器指令一样,是硬件操作的控制信息,使用起来比较繁琐费时,通用性也差,但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。关键字: 微机 指令 汇编语言 程序时钟系统汇编语言程序设计1 总体方案设计1.1设计目的1)进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应用微型计算机解决实际问题的能力;2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。3)进一步熟悉微机最小系统的构成及常用接口芯片的使用,提高系统设计的能力。 1.2设计任务与要求 课程设计任务:系统时钟汇编语言程序设计设计初始条件:1)采用16位微处理器 8086 CPU以及86系列微型计算机的指令系统;2)软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP。课程设计要求:1)设计一个计时器界面,形式为:时:分:秒;2)单击”ESC”键退出程序。根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试1.3设计方案 本次设计中,要实现时间的显示,并在此基础上附加上一个功能,在时间显示后,单机“ESC”键时,退出显示界面。在本次设计中,可以加入一个功能,当单击其他键时,显示界面并不退出,即界面不变,没有反应,再单击“ESC”键时,退出显示界面。 在设计时,时钟的实现有很多方法,可以采用DOS系统功能调用语句INT 21h直接调用系统时间,再在着基础上加上推出的功能;也可以采用延时的方法,设计一个延时器,每隔一秒,计数器加一,采用六十进制。在此基础上再加上附加功能。在本次课程设计中,采用调用系统时间的方法,方法比较简单明了,功能实现比较好,能和系统时间跳动保持一致,故选用此种方法。2 程序流程图设计2.1主流程图设计 由方案设计分析可知,此次设计比较简单,先初始化程序,然后设立光标,在光标移动时,不断地取时,取分,取秒,并不断的循环。在循环的过程中,当按下ESC键时退出程序;当按下其它键时,程序继续运行,并显示时间界面,再按下ESC键时,程序又将退出。流程图设计:当初始化后,设定一个光标用来显示时间的时、分、秒,并将光标隐藏。流程图有两个分支,表示有两个判断,当时分秒取完后,判断是否在键盘上有输入,如果没有输入,则返回到光标定位,若有输入判断是否为ESC键的ASC码,如果是则退出程序,程序结束,过程比较明了,流程图分支不多,但功能能够很好的实现。流程图如1所示。2.2子流程图设计 可知,在时间的获取时,需要时、分、秒分别获取,显示时使用的是相应的ASCII码。加上分隔符“:”,共同组成完整时钟显示,我们对子程序做流程图,如图2所示。 开 始结 束输入为ESC吗?键盘有输入吗?显 示 秒 钟显 示 分 钟获取时间,显示时初 始 化设 立 光 标 秒的获取,将储存的数值转换成相应的ASCII码显示在屏幕上分的获取,将分的数值转换成相应的ASCII码时的显示,将储存的数值转换成相应的ASCII码,显示在光标位置上系统时间调用:mov ah,02 int 1ah CX,DX进出栈使用实现时分秒的显示开 始结 束 N Y NY图1 主程序设计流程图 图2 子程序流程图 3 程序段落的说明3.1光标的设立和隐藏 光标的不停移动,使时间能不停地显示时间的时分秒,并使其显示界面不消失,并随着系统时间的变化而同步变化,隐藏光标使界面看起来更美观。程序如下: mov dh,0ah ;行数 mov dl,35 ;列数 mov bh,0 ;页数 mov ah,2 int 10h ;确定光标的位置,使其居在中间 mov cx,2000h mov ah,01h int 10h ;隐藏光标3.2调用系统的时间 获取系统的时间,用程序将系统的时间调用,使显示的时间和系统的时间同步变化,其中时间的时分秒显示都是需要先转换成相应的ASCII码,再显示在屏幕上。获取系统时间:mov ah,02 int 1ah ;系统时间调用 push cx push dx ;现场保护 时的获取: xor dl,dl ;dl清零 mov dl,ch ;cx高四位给dl mov cl,4 shr dl,cl ;最终dl中为ch的高四位 add dl,30h ;转换成ASCII码 mov ah,02h int 21h ;光标处显示时的第一位 mov dl,ch add dl,0fh add dl,30h ;转换成ASCII码 mov ah, 02 int 21h ;光标处显示时的第二位 mov dl,: mov ah,02 int 21h ;光标处显示“:”分的获取: pop dx pop cx ;出栈,恢复现场 push dx ;置光标位置 xor dl,dl mov dl,cl mov dh,cl mov cl,4 shr dl,cl add dl,30h ;转化成相应的ASCII码 mov ah,02 int 21h ;光标处显示分的第一位 mov cl,dh and cl,0fh add cl,30h ;转化成相应的ASCII码 mov dl,cl mov ah,02 int 21h ;光标处显示分的第二位 mov dl,: mov ah,02 int 21h ;光标处显示“:”秒的获取: pop dx ;出栈,恢复现场 mov bl,dh mov cl,4 shr dh,cl add dh,30h ;转化成相应的ASCII码 mov dl,dh mov ah,02 int 21h ;光标处显示秒的第一位 mov cl,bl and cl,0fh add cl,30h ;转化成相应的ASCII码 mov dl,cl mov ah,02 int 21h ;光标处显示秒的第二位 3.3 判断是否有键盘输入 判断是否有输入,当有字符时判断是否为ESC,若是则退出程序,如果不是程序继续运行。程序段:a1: mov ah,0bh ;调用DOS 功能0BH 检测键盘是否有输入 int 21h cmp al,00h ;检测是否有输入 jne a2 ;有则跳到a2 jmp go ;没有则回到goa2: mov ah, 08h int 21h cmp al,1bh ;判断是否为ESC je exit ;是则退出 jmp go ;不是则跳到goexit:mov ah,4ch int 21h ;退出程序4 程序调试说明、结果记录与分析4.1 程序调试过程 程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,得调试所写程序是否正确,是否能满足所要求的功能。 写好程序后,对DOS系统界面调用功能指令不太熟悉,界面出来后时间显示在右上角,并且光标不能消失,最后经过查询,运用了10号中断,最后把光标隐藏了,并使时间显示在界面的中间位置。在判断是否在键盘上有输入时,开始不会用键盘扫描功能,没有调试出来,经过向同学请教最后调用DOS功能0bh,并用08h来判断是否是ESC输入,最终实现了退出功能。4.2调试结果运行程序,时间显示界面,如图3所示: 图3 进入后的运行界面 单击其他键时的显示界面,如图4所示,与图3相同。单击ESC键时,界面消失,退出程序。 图4 单击其它键时的显示界面4.3分析结果 可知运行程序后,能达到设计要求,即进入后能显示时间在屏幕的中央位置,单击ESC外的键时,程序继续,时间继续显示,单击ESC时,退出程序,程序设计成功。5课程设计收获与心得体会 首先,经过了一个学期的微机原理与接口技术的学习,但是除了实验外并没有多少实际设计的机会,课程设计与理论课程和实验有着很大的区别,它是一个综合性很强的课程环节,也是我们所必须经历的一个学习阶段。在课程设计中,我们在学会学会理论知识的同时,还会加深自己对这门课程的理解,在这门课程设计当中,我们能学到一些软件的运用,结合一些其他课程,如MF2KI,即汇编语言程序软件,通过互相结合,相互渗透,来得到我们所需的数据、结论以及使我们掌握更多的知识。 其次,通过这次课程设计的实际操作,我加深了对微机原理与接口技术课程理论知识的理解和认识,同时初步掌握了课程设计的方法和步骤。学会了把微机课程中学到的理论知识实际运用,在实践中体会。同时通过编程,加强了我对MF2KI软件的掌握程度,学会了通过用MF2KI的编程来解决一些跨专业的,综合性的问题。总之,在此次课程设计中,很多东西以前都没有接触到,现在经过课设,通过查阅资料,我拓宽了自己的知识面,在课设中学会了独立思考和锻炼了自己的实践动手能力。总的来说,这次课程设计使我受益匪浅。参考文献1 彭虎等编著微机原理与接口技术(第二版)北京:电子工业出版社,20082 钱晓捷著.汇编语言程序设计学习与解题指南.武汉:华中科技大学出版社,2002 3 黄明,粱旭,常征著.汇编语言程序设计习题详解.北京:机械工业出版社,2004 4 马力妮80x86汇编语言程序设计北京:机械工业出版社,20045 程学先,徐东平著.汇编语言程序设计.武汉:武汉理工大学出版社,20036 艾德才Pentium系列微型计算机原理与接口技术北京:高等教育出版社,2000附录datas segment datas endsstacks segment ;此处输入堆栈段代码stacks endscodes segment assume cs:codes,ds:datas,ss:stacksstart: mov ax,datas mov ds,ax go: mov dh,0ah ;行数 mov dl,35 ;列数 mov bh,0 ;页数 mov ah,2 int 10h ;确定光标的位置,使其居在中间 mov cx,2000h mov ah,01h int 10h ;隐藏光标 xor dl,dl ;dl清零 mov dl,ch ;cx高四位给dl mov cl,4 shr dl,cl ;最终dl中为ch的高四位 add dl,30h ;转换成ASCII码 mov ah,02h int 21h ;光标处显示时的第一位 mov dl,ch add dl,0fh add dl,30h ;转换成ASCII码 mov ah, 02 int 21h ;光标处显示时的第二位 mov dl,: mov ah,02 int 21h ;光标处显示“:” pop dx pop cx ;出栈,恢复现场 push dx ;置光标位置 xor dl,dl mov dl,cl mov dh,cl mov cl,4 shr dl,cl add dl,30h ;转化成相应的ASCII码 mov ah,02 int 21h ;光标处显示分的第一位 mov cl,dh and cl,0fh add cl,30h ;转化成相应的ASCII码 mov dl,cl mov ah,02 int 21h ;光标处显示分的第二位 mov dl,: mov ah,02 int 21h ;光标处显示“:” pop dx ;出栈,恢复现场 mov bl,dh mov cl,4 shr dh,cl add dh,30h ;转化成相应的ASCII码 mov dl,dh mov ah,02 int 21h ;光标处显示秒的第一位 mov cl,bl and cl,0fh add cl,30h ;转化成相应的ASCII码 mov dl,cl mov ah,02 int 21h ;光标处显示秒的第二位 a1: mov ah,0bh ;调用dos 功能0bh 检测键盘是否有输入 int 21h cmp al,00h jne a2 ;如果有输入,则跳转到a2 jmp go ;如果没有输入,则跳转到goa2: mov ah, 08h int 21h ;调用dos 功能08h 判断键盘输入的字母 cmp al,1bh ;判断键盘输入是否为esc je exit ;如果是则跳转到exit jmp go ;重新跳回开头exit: mov ah,4ch ;结束dos以及跳出语句 int 21hcodes ends end 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
展开阅读全文