您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 汇编语言实时时钟程序设计
课程设计说明书姓名:学号:院系:专业:题目:实时时钟程序设计指导教师:职称:课程设计说明书院系:专业:姓名:学号:课程设计题目:实时时钟程序设计起迄日期:课程设计地点:指导教师:系主任:课程设计任务书1.设计目的:1)培养学生文献检索的能力,特别是如何利用Internet检索需要的文献资料。2)培养学生综合分析问题、发现问题和解决问题的能力。3)培养学生运用知识的能力和工程设计的能力。4)提高学生课程设计报告撰写水平。2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):设计内容:设计一个根据所学汇编语言课程的知识,熟练8086汇编语言的编程原理,和程序设计思想,编写一个实时时钟程序进一步提高综合运用知识的能力。设计要求:每隔一秒显示系统时钟;可以重复输入,有退出键功能。3.设计工作任务及工作量的要求〔包括课程设计说明书、图纸、实物样品等〕:设计工作任务及工作量的要求:1)根据课程设计题目,收集和学习相关知识,确定编程方案;2)用相关软件编写程序代码,实现基本要求;3)撰写课程设计报告——可利用Visio或Word等软件画出相关的程序流程图,列出相应的程序源代码,说明设计过程中遇到的问题和解决问题的方法,附参考资料。课程设计任务书4.主要参考文献:[1]沈美明,温冬禅.IBMPC汇编语言程序设计.清华大学出版社,第二版[2]刘丽莉.汇编语言程序设计.北京大学出版社,20105.设计成果形式及要求:1)撰写课程设计报告;2)程序流程图1份(可手画);3)程序清单1份。6.工作计划及进度:系主任审查意见:签字:2012年6月17日目录第一章课题设计目的内容及要求.........................61.1目的.................................61.2内容............................................................................61.3要求............................................................................6第二章程序流程图设计.................................22.1主流程图设计.............................................................22.2子流程图设计..............................错误!未定义书签。第三章程序段落的说明.................................83.1光标的设立和隐藏...................................................83.2调用系统的时间.......................................................53.3判断是否有键盘的输入...........................................6第四章程序调试说明、结果记录与分析...................74.1程序调试的过程.......................................................74.2调试结果...................................................................74.3分析结果...................................................................8第五章总结与体会.....................................8参考文献..............................................8附录...............................................91.程序流程图..................................................................92.程序清单....................................................................11第一章课题设计目得内容及要求1.1目得1)培养学生文献检索的能力,特别是如何利用Internet检索需要的文献资料。2)培养学生综合分析问题、发现问题和解决问题的能力。3)培养学生运用知识的能力和工程设计的能力。4)提高学生课程设计报告撰写水平。1.2内容设计一个根据所学汇编语言课程的知识,熟练8086汇编语言的编程原理,和程序设计思想,编写一个实时时钟程序进一步提高综合运用知识的能力。1.3要求每隔一秒显示系统时钟;可以重复输入,有退出键功能。第二章程序流程图设计2.1主流程图设计由方案设计分析可知,此次设计比较简单,先初始化程序,然后设立光标,在光标移动时,不断地取时,取分,取秒,并不断的循环。在循环的过程中,当按下ESC键时退出程序;当按下其它键时,程序继续运行,并显示时间界面,再按下ESC键时,程序又将退出。流程图设计:当初始化后,设定一个光标用来显示时间的时、分、秒,并将光标隐藏。流程图有两个分支,表示有两个判断,当时分秒取完后,判断是否在键盘上有输入,如果没有输入,则返回到光标定位,若有输入判断是否为ESC键的ASC码,如果是则退出程序,程序结束,过程比较明了,流程图分支不多,但功能能够很好的实现。流程图如1所示图1主程序设计流程图开始结束输入为ESC吗?显示秒钟显示分钟获取时间,显示时初始化设立光标2.2子流程图设计可知,在时间的获取时,需要时、分、秒分别获取,显示时使用的是相应的ASCII码。加上分隔符“:”,共同组成完整时钟显示,我们对子程序做流程图,如图2所示。图2子程序流程图第三章程序段落的说明3.1光标的设立和隐藏光标的不停移动,使时间能不停地显示时间的时分秒,并使其显示界面不消失,并随着系统时间的变化而同步变化,隐藏光标使界面看起来更美观。秒的获取,将储存的数值转换成相应的ASCII码显示在屏幕上分的获取,将分的数值转换成相应的ASCII码时的显示,将储存的数值转换成相应的ASCII码,显示在光标位置上系统时间调用:movah,02int1ahCX,DX进出栈使用实现时分秒的显示开始结束程序如下:movdh,0ah;行数movdl,35;列数movbh,0;页数movah,2int10h;确定光标的位置,使其居在中间movcx,2000hmovah,01hint10h;隐藏光标3.2调用系统的时间获取系统的时间,用程序将系统的时间调用,使显示的时间和系统的时间同步变化,其中时间的时分秒显示都是需要先转换成相应的ASCII码,再显示在屏幕上。获取系统时间:movah,02int1ah;系统时间调用pushcxpushdx;现场保护时的获取:xordl,dl;dl清零movdl,ch;cx高四位给dlmovcl,4shrdl,cl;最终dl中为ch的高四位adddl,30h;转换成ASCII码movah,02hint21h;光标处显示时的第一位movdl,chadddl,0fhadddl,30h;转换成ASCII码movah,02int21h;光标处显示时的第二位movdl,:movah,02int21h;光标处显示“:”分的获取:popdxpopcx;出栈,恢复现场pushdx;置光标位置xordl,dlmovdl,clmovdh,clmovcl,4shrdl,cladddl,30h;转化成相应的ASCII码movah,02int21h;光标处显示分的第一位movcl,dhandcl,0fhaddcl,30h;转化成相应的ASCII码movdl,clmovah,02int21h;光标处显示分的第二位movdl,':'movah,02int21h;光标处显示“:”秒的获取:popdx;出栈,恢复现场movbl,dhmovcl,4shrdh,cladddh,30h;转化成相应的ASCII码movdl,dhmovah,02int21h;光标处显示秒的第一位movcl,blandcl,0fhaddcl,30h;转化成相应的ASCII码movdl,clmovah,02int21h;光标处显示秒的第二位3.3判断是否有键盘输入判断是否有输入,当有字符时判断是否为ESC,若是则退出程序,如果不是程序继续运行。程序段:a1:movah,0bh;调用DOS功能0BH检测键盘是否有输入int21hcmpal,00h;检测是否有输入jnea2;有则跳到a2jmpgo;没有则回到goa2:movah,08hint21hcmpal,1bh;判断是否为ESCjeexit;是则退出jmpgo;不是则跳到goexit:movah,4chint21h;退出程序第四章程序调试说明、结果记录与分析4.1程序调试的过程程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,得调试所写程序是否正确,是否能满足所要求的功能。写好程序后,对DOS系统界面调用功能指令不太熟悉,界面出来后时间显示在右上角,并且光标不能消失,最后经过查询,运用了10号中断,最后把光标隐藏了,并使时间显示在界面的中间位置。在判断是否在键盘上有输入时,开始不会用键盘扫描功能,没有调试出来,经过向同学请教最后调用DOS功能0bh,并用08h来判断是否是ESC输入,最终实现了退出功能。4.2调试结果运行程序,时间显示界面,如图3所示:图3进入后的运行界面单击其他键时的显示界面,如图4所示,与图3相同。单击ESC键时,界面消失,退出程序。图4单击其它键时的显示界面4.3分析结果可知运行程序后,能达到设计要求,即进入后能显示时间在屏幕的中央位置,单击ESC外的键时,程序继续,时间继续显示,单击ESC时,退出程序,程序设计成功。第五章总结与体会参考文献[1]沈美明,温冬禅.IBMPC汇编语言程序设计.清华大学出版社,第二版[2]刘丽莉.汇编语言程序设计.北京大学出版社,2010附录1.程序流程图主程序设计流程图开始结束输入为ESC吗?显示秒钟显示分钟获取时间,显示时初始化设立光标子程序流程图2.程序清单datassegmentdatasendsstackssegment;此处输入堆栈段代码stacksendscodessegmentassumecs:codes,ds:datas,ss:stacksstart:movax,datasmovds,axgo:movdh,0ah;行数movdl,35;列数movbh,0;页数movah,2int10h;确定光标的位置,使其居在中间movcx,2000h秒的获取,将储存的数值转换成相应的ASCII码显示在屏幕上分的获取,将分的数值转换成相应的ASCII码时的显示,将储存的数值转换成相应的ASCII码,显示在光标位置上系统时间调用:movah,02int1ahCX,DX进出栈使用实现时分秒的显示开始开始结束movah,01hint10h;隐藏光标xordl,dl;dl清零movdl,ch;cx高四位给dlmovcl,4shrdl,cl;最终dl中为ch的高四位adddl,30h;转换成ASCII码movah,02hint21h;光标处显示时的第一位movdl,chadddl,0fhadddl,30h;转换成ASCII码movah,02int21h;光标处显示时的第二位movdl,:movah,02int21h;光标处显示“:”popdxpopcx;出栈,恢复现场pushdx;置光标位置xordl,dlmovdl,clmovdh,clmovcl,4shrdl,cl
本文标题:汇编语言实时时钟程序设计
链接地址:https://www.777doc.com/doc-2279426 .html