时钟系统汇编语言程序设计(共11页)_第1页
时钟系统汇编语言程序设计(共11页)_第2页
时钟系统汇编语言程序设计(共11页)_第3页
时钟系统汇编语言程序设计(共11页)_第4页
时钟系统汇编语言程序设计(共11页)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上时钟系统汇编语言程序设计1 总体方案设计1.1设计目的1)进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应用微型计算机解决实际问题的能力;2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。3)进一步熟悉微机最小系统的构成及常用接口芯片的使用,提高系统设计的能力。 1.2设计任务与要求 课程设计任务:系统时钟汇编语言程序设计设计初始条件:1)采用16位微处理器 8086 CPU以及86系列微型计算机的指令系统;2)软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2

2、KP。课程设计要求:1)设计一个计时器界面,形式为:时:分:秒;2)单击”ESC”键退出程序。根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试1.3设计方案 本次设计中,要实现时间的显示,并在此基础上附加上一个功能,在时间显示后,单机“ESC”键时,退出显示界面。在本次设计中,可以加入一个功能,当单击其他键时,显示界面并不退出,即界面不变,没有反应,再单击“ESC”键时,退出显示界面。 在设计时,时钟的实现有很多方法,可以采用DOS系统功能调用语句INT 21h直接调用系统时间,再在着基础上加上推出的功能;也可以采用延时的方法,设计一个延时器,每隔一秒,计数器加一,采用六十进制。在

3、此基础上再加上附加功能。在本次课程设计中,采用调用系统时间的方法,方法比较简单明了,功能实现比较好,能和系统时间跳动保持一致,故选用此种方法。2 程序流程图设计2.1主流程图设计 由方案设计分析可知,此次设计比较简单,先初始化程序,然后设立光标,在光标移动时,不断地取时,取分,取秒,并不断的循环。在循环的过程中,当按下ESC键时退出程序;当按下其它键时,程序继续运行,并显示时间界面,再按下ESC键时,程序又将退出。流程图设计:当初始化后,设定一个光标用来显示时间的时、分、秒,并将光标隐藏。流程图有两个分支,表示有两个判断,当时分秒取完后,判断是否在键盘上有输入,如果没有输入,则返回到光标定位,

4、若有输入判断是否为ESC键的ASC码,如果是则退出程序,程序结束,过程比较明了,流程图分支不多,但功能能够很好的实现。流程图如1所示。2.2子流程图设计 可知,在时间的获取时,需要时、分、秒分别获取,显示时使用的是相应的ASCII码。加上分隔符“:”,共同组成完整时钟显示,我们对子程序做流程图,如图2所示。 开 始结 束输入为ESC吗?键盘有输入吗?显 示 秒 钟显 示 分 钟获取时间,显示时初 始 化设 立 光 标 秒的获取,将储存的数值转换成相应的ASCII码显示在屏幕上分的获取,将分的数值转换成相应的ASCII码时的显示,将储存的数值转换成相应的ASCII码,显示在光标位置上系统时间调用

5、: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调用系统的时间 获取系统的时间,用程序将系统

6、的时间调用,使显示的时间和系统的时间同步变化,其中时间的时分秒显示都是需要先转换成相应的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

7、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 ;光标处显示分的第二位 mo

8、v 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,若是则退出程序,如果不是程序继续运行

9、。程序段: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 程序调试过程 程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可

10、少的步骤。编完计算机程序,得调试所写程序是否正确,是否能满足所要求的功能。 写好程序后,对DOS系统界面调用功能指令不太熟悉,界面出来后时间显示在右上角,并且光标不能消失,最后经过查询,运用了10号中断,最后把光标隐藏了,并使时间显示在界面的中间位置。在判断是否在键盘上有输入时,开始不会用键盘扫描功能,没有调试出来,经过向同学请教最后调用DOS功能0bh,并用08h来判断是否是ESC输入,最终实现了退出功能。4.2调试结果运行程序,时间显示界面,如图3所示: 图3 进入后的运行界面单击其他键时的显示界面,如图4所示,与图3相同。单击ESC键时,界面消失,退出程序。图4 单击其它键时的显示界面4

11、.3分析结果 可知运行程序后,能达到设计要求,即进入后能显示时间在屏幕的中央位置,单击ESC外的键时,程序继续,时间继续显示,单击ESC时,退出程序,程序设计成功。5课程设计收获与心得体会 首先,设计与理论课程和实验有着很大的区别,它是一个综合性很强的课程环节,也是我们所必须经历的一个学习阶段。在设计中,我们在学会学会理论知识的同时,还会加深自己对这门课程的理解,在这门设计当中,我们能学到一些软件的运用,结合一些其他课程,如MF2KI,即汇编语言程序软件,通过互相结合,相互渗透,来得到我们所需的数据、结论以及使我们掌握更多的知识。 其次,通过这次设计的实际操作,我加深了对微机原理与接口技术课程

12、理论知识的理解和认识,同时初步掌握了课程设计的方法和步骤。学会了把微机课程中学到的理论知识实际运用,在实践中体会。同时通过编程,加强了我对MF2KI软件的掌握程度,学会了通过用MF2KI的编程来解决一些跨专业的,综合性的问题。总之,在此次设计中,很多东西以前都没有接触到,现在经过设计,通过查阅资料,我拓宽了自己的知识面,在设计中学会了独立思考和锻炼了自己的实践动手能力。总的来说,这次设计使我受益匪浅。参考文献1 彭虎等编著微机原理与接口技术(第二版)北京:电子工业出版社,20082 钱晓捷著.汇编语言程序设计学习与解题指南.武汉:华中科技大学出版社,2002 3 黄明,粱旭,常征著.汇编语言程

13、序设计习题详解.北京:机械工业出版社,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

14、,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,"

15、;:" 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 功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论