收藏 分享(赏)

汇编语言实时时钟程序设计.doc

上传人:精品资料 文档编号:10649009 上传时间:2019-12-14 格式:DOC 页数:17 大小:140.09KB
下载 相关 举报
汇编语言实时时钟程序设计.doc_第1页
第1页 / 共17页
汇编语言实时时钟程序设计.doc_第2页
第2页 / 共17页
汇编语言实时时钟程序设计.doc_第3页
第3页 / 共17页
汇编语言实时时钟程序设计.doc_第4页
第4页 / 共17页
汇编语言实时时钟程序设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、课程设计说明书姓 名: 学 号: 院 系: 专 业: 题 目: 实时时钟程序设计 指导教师: 职称: 课程设计说明书院 系: 专 业: 姓 名: 学 号: 课程设计题目: 实时时钟程序设计 起 迄 日 期:课程设计地点: 指 导 教 师: 系 主 任: 课 程 设 计 任 务 书1设计目的:1)培养学生文献检索的能力,特别是如何利用 Internet 检索需要的文献资料。2)培养学生综合分析问题、发现问题和解决问题的能力。3)培养学生运用知识的能力和工程设计的能力。4)提高学生课程设计报告撰写水平。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等):设计内容:设计一个根据所学汇编语言

2、课程的知识,熟练8086汇编语言的编程原理,和程序设计思想,编写一个实时时钟程序进一步提高综合运用知识的能力。设计要求:每隔一秒显示系统时钟;可以重复输入,有退出键功能。3设计工作任务及工作量的要求包括课程设计说明书、图纸、实物样品等:设计工作任务及工作量的要求:1)根据课程设计题目,收集和学习相关知识,确定编程方案;2)用相关软件编写程序代码,实现基本要求;3)撰写课程设计报告可利用 Visio 或 Word 等软件画出相关的程序流程图,列出相应的程序源代码,说明设计过程中遇到的问题和解决问题的方法,附参考资料。课 程 设 计 任 务 书4主要参考文献:1 沈美明,温冬禅 IBM PC 汇编

3、语言程序设计清华大学出版社,第二版2 刘丽莉汇编语言程序设计北京大学出版社,20105设计成果形式及要求:1)撰写课程设计报告;2)程序流程图 1 份(可手画) ;3)程序清单 1 份。6工作计划及进度:系主任审查意见:签字: 2012 年 6 月 17 日目 录第一章 课题设计目的内容及要求 21.1 目的 . . . . . . . . .21.2 内容 21.3 要求 2第二章 程序流程图设计 22.1 主流程图设计 .22.2 子流程图设计 .3第三章 程序段落的说明 431 光标的设立和隐藏 .432 调用系统的时间 .533 判断是否有键盘的输入 .6第四章 程序调试说明、结果记录

4、与分析 741 程序调试的过程 .742 调试结果 .743 分析结果 .8第五章 总结与体会 8参考文献 .8附 录 91程序流程图 92程序清单 11第一章 课题设计目得内容及要求1.1 目得1)培养学生文献检索的能力,特别是如何利用 Internet 检索需要的文献资料。2)培养学生综合分析问题、发现问题和解决问题的能力。3)培养学生运用知识的能力和工程设计的能力。4)提高学生课程设计报告撰写水平。1.2 内容设计一个根据所学汇编语言课程的知识,熟练8086汇编语言的编程原理,和程序设计思想,编写一个实时时钟程序进一步提高综合运用知识的能力。1.3 要求每隔一秒显示系统时钟;可以重复输入

5、,有退出键功能。第二章 程序流程图设计2.1 主流程图设计由方案设计分析可知,此次设计比较简单,先初始化程序,然后设立光标,在光标移动时,不断地取时,取分,取秒,并不断的循环。在循环的过程中,当按下 ESC 键时退出程序;当按下其它键时,程序继续运行,并显示时间界面,再按下 ESC 键时,程序又将退出。流程图设计:当初始化后,设定一个光标用来显示时间的时、分、秒,并将光标隐藏。流程图有两个分支,表示有两个判断,当 时 分秒取完后,判断是否在键盘上有输入,如果没有输入,则返回到光标定位,若有输入判断是否为 ESC键的ASC码,如果是则退出程序,程序结束,过程比较明了,流程图分支不多,但功能能够很

6、好的实现。流程图如 1 所示图 1 主程序设计流程图开 始结 束输入为 ESC 吗?显 示 秒 钟显 示 分 钟获取时间,显示时初 始 化设 立 光 标2.2 子流程图设计可知,在时间的获取时,需要时、分、秒分别获取,显示时使用的是相应的ASCII码。加上分隔符“:”,共同组成完整时钟显示,我们对子程序做流程图,如图 2 所示。图 2 子程序流程图第三章 程序段落的说明31 光标的设立和隐藏光标的不停移动,使时间能不停地显示时间的时分秒,并使其显示界面不消秒的获取,将储存的数值转换成相应的 ASCII码显示在屏幕上分的获取,将分的数值转换成相应的 ASCII码时的显示,将储存的数值转换成相应的

7、 ASCII码,显示在光标位置上系统时间调用:mov ah,02 int 1ah CX,DX进出栈使用实现时分秒的显示开 始结 束失,并随着系统时间的变化而同步变化, 隐藏光标使界面看起来更美观。程序如下: mov dh,0ah ;行数mov dl,35 ;列数mov bh,0 ;页数mov ah,2int 10h ;确定光标的位置,使其居在中间mov cx,2000hmov ah,01hint 10h ;隐藏光标3.2 调用系统的时间获取系统的时间,用程序将系统的时间调用,使 显示的时间和系统的时间同步变化,其中时间的时分秒 显示都是需要先转换成相应的 ASCII码,再显示在屏幕上。获取系统

8、时间:mov ah,02int 1ah ;系统时间调用push cx push dx ;现场保护时的获取: xor dl,dl ;dl清零mov dl,ch ;cx高四位给dlmov cl,4shr dl,cl ;最终dl中为ch的高四位 add dl,30h ;转换成ASCII 码mov ah,02hint 21h ;光标处显示时的第一位mov dl,chadd dl,0fhadd dl,30h ;转换成ASCII 码mov ah, 02 int 21h ;光标处显示时的第二位mov dl,“:“mov ah,02int 21h ;光标处显示“:”分的获取: pop dxpop cx ;出栈

9、,恢复现场push dx ;置光标位置xor dl,dlmov dl,clmov dh,clmov cl,4shr dl,cladd dl,30h ;转化成相应的 ASCII码mov ah,02int 21h ;光标处显示分的第一位mov cl,dhand cl,0fhadd cl,30h ;转化成相应的ASCII码mov dl,clmov ah,02int 21h ;光标处显示分的第二位mov dl,:mov ah,02int 21h ;光标处显示“:”秒的获取: pop dx ;出栈,恢复现场mov bl,dhmov cl,4shr dh,cladd dh,30h ;转化成相应的ASCII

10、码 mov dl,dhmov ah,02 int 21h ;光标处显示秒的第一位mov cl,bland cl,0fhadd cl,30h ;转化成相应的ASCII码mov dl,clmov ah,02int 21h ;光标处显示秒的第二位 3.3 判断是否有键盘输入判断是否有输入,当有字符时判断是否为ESC,若是则退出程序,如果不是程序继续运行。程序段:a1: mov ah,0bh ;调用 DOS 功能 0BH 检测键盘是否有输入int 21hcmp al,00h ;检测是否有输入jne a2 ;有则跳到 a2jmp go ;没有则回到 goa2: mov ah, 08hint 21h cm

11、p al,1bh ;判断是否为 ESCje exit ;是则退出jmp go ;不是则跳到 goexit:mov ah,4chint 21h ;退出程序第四章 程序调试说明、结果记录与分析41 程序调试的过程程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正 语法错误和逻辑错误的过程。 这是保证计 算机信息系统正确性的必不可少的步骤。编完计算机程序,得调试所写程序是否正确,是否能 满足所要求的功能。写好程序后,对 DOS 系统界面调用功能指令不太熟悉,界面出来后时间显示在右上角,并且光标不能消失,最后经过查询,运用了 10 号中断,最后把光标隐藏了,并使时间显示在界面

12、的中间位置。在判断是否在键盘上有输入时,开始不会用键盘扫描功能,没有调试 出来, 经过向同学请教最后调用 DOS 功能 0bh,并用 08h 来判断是否是 ESC输入,最终实现了退出功能。4.2 调试结果运行程序,时间显示界面,如图 3 所示:图 3 进入后的运行界面单击其他键时的显示界面,如图 4 所示,与图 3 相同。单击 ESC键时,界面消失,退出程序。图 4 单击其它键时的显示界面4.3 分析结果可知运行程序后,能达到设计要求,即 进入后能显示时间在屏幕的中央位置,单击 ESC 外的键时,程序继续 ,时间继续显示,单击 ESC时,退出程序,程序 设计成功。第五章 总结与体会参考文献1

13、沈美明,温冬禅 IBM PC 汇编语言程序设计清华大学出版社,第二版2 刘丽莉汇编语言程序设计北京大学出版社,2010附录1 程序流程图主程序设计流程图开 始结 束输入为 ESC 吗?显 示 秒 钟显 示 分 钟获取时间,显示时初 始 化设 立 光 标子程序流程图2程序清单 datas segment datas endsstacks segment ;此处输入堆栈段代码stacks endscodes segmentassume cs:codes,ds:datas,ss:stacksstart: mov ax,datasmov ds,ax go: mov dh,0ah ;行数mov dl,3

14、5 ;列数mov bh,0 ;页数mov ah,2 秒的获取,将储存的数值转换成相应的 ASCII码显示在屏幕上分的获取,将分的数值转换成相应的 ASCII码时的显示,将储存的数值转换成相应的 ASCII码,显示在光标位置上系统时间调用:mov ah,02 int 1ah CX,DX进出栈使用实现时分秒的显示开 始开 始结 束int 10h ;确定光标的位置,使其居在中间mov cx,2000hmov ah,01hint 10h ;隐藏光标xor dl,dl ;dl清零mov dl,ch ;cx高四位给dlmov cl,4shr dl,cl ;最终dl中为ch的高四位 add dl,30h ;

15、转换成ASCII码mov ah,02hint 21h ;光标处显示时的第一位mov dl,chadd dl,0fhadd dl,30h ;转换成ASCII码mov ah, 02 int 21h ;光标处显示时的第二位mov dl,“:“mov ah,02int 21h ;光标处显示“:”pop dxpop cx ;出栈,恢复现场push dx ;置光标位置xor dl,dlmov dl,clmov dh,clmov cl,4shr dl,cladd dl,30h ;转化成相应的ASCII 码mov ah,02int 21h ;光标处显示分的第一位mov cl,dhand cl,0fhadd c

16、l,30h ;转化成相应的ASCII码mov dl,clmov ah,02int 21h ;光标处显示分的第二位mov dl,:mov ah,02int 21h ;光标处显示“:”pop dx ;出栈,恢复现场mov bl,dhmov cl,4shr dh,cladd dh,30h ;转化成相应的ASCII码 mov dl,dhmov ah,02 int 21h ;光标处显示秒的第一位mov cl,bland cl,0fhadd cl,30h ;转化成相应的ASCII码mov dl,clmov ah,02int 21h ;光标处显示秒的第二位 a1: mov ah,0bh ;调用dos 功能0bh 检测键盘是否有输入int 21hcmp al,00hjne a2 ;如果有输入,则跳转到a2 jmp go ;如果没有输入,则跳转到goa2: mov ah, 08hint 21h ;调用dos 功能08h 判断键盘输入的字母 cmp al,1bh ;判断键盘输入是否为escje exit ;如果是则跳转到exitjmp go ;重新跳回开头exit: mov ah,4ch ;结束dos以及跳出语句 int 21hcodes endsend start

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报