资源描述:
《微机原理课程设计----程序开发中对系统时间的显示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目录一概述3二总体方案设计4三详细设计7四程序的调试与运行结果说明12五课程设计总结14谢启15附录16参考文献2121一概述1.课程设计的目的(1)使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。(2)培养学生综合运用所学知识独立完成汇编程序课题的能力。(3)培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。(4)提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。(5)培养学生从资料文
2、献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。(6)对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。2.课程设计的要求要求完成一个显示系统当前日期和时间的程序,即通过按下键盘上某个按键就可以显示系统的日期和时间或者终止程序。在出现的提示信息后输入小写字母“d”,显示系统当前日期;输入小写字母“t”,显示系统当前时间;输入小写字母“q”,结束程序。此程序涉及到对DOS和BIOS的常用功能的调用,要求学生掌握使用汇
3、编语言对I/O中断的使用。21二总体方案设计1.程序总体流程图如图2-1。开始显示提示信息接收键盘输入是“q”?是“d”?是“t”?退出程序是是是否否否调用DATE,显示系统日期调用TIME,显示系统时间图2-1程序总体流程图211.工作原理在DOS环境下完成,先利用BIOS功能调用中显示器驱动程序的00H类型调用,设置显示器的显示模式为80*25彩色。在屏幕中央显示提示信息(提示用户输入“d”或“t”或“q”)。然后对用户输入的字母进行判断,利用分支程序分别调用不同的子程序。两个子程序的功能分别是显示当前日期(用2AH
4、的DOS功能调用来取日期),显示当前时间(用2CH的DOS功能调用来取时间)。必须用到的DOS功能调用:取当前系统日期:功能号为2AH,返回值送入CX,DX寄存器中。取当前系统时间:功能号为2CH,返回值送入CX,DX寄存器中。2.部分程序设计及功能(1)文本显示在显示彩色文本时,属性字节能够选择前景(显示的字节)和背景的颜色;每个字符可以选择16种颜色中的一种,背景有8种颜色可以选择;在程序代码中,我设置了显示绿色,代码部分如下:LOP:PUSHCX;;;;;;;;;;;;;;;;;;;;;;;;;;MOVAL,[DI
5、]ADDAL,30HMOVBL,02H(2)时间日期转化数制在定义堆栈寄存器,按循环要求读取系统日期项,由于读取的日期项是二进制代码,因此需调用DIVNUMPROC子程序转换为BCD码,其中部分代码如下:DIVNUMPROCNEARPUSHCXAGAIN:MOVBL,0AHDIVBLMOV[DI],AHMOVAH,0INCDILOOPAGAINDECDIPOPCXRET21DIVNUMENDP(3)光标设置利用INT10H的功能1是光标显现或者关闭,这个功能也控制光标行的开始和结束,也就是控制光标的大小;INT10H的功
6、能2设置光标位置,光标位置的行号设在DH寄存器中,列号设在DL中;BH中必须包含被输出的页号,对单色显示器来说,页号总是0;INT10H功能3是读光标位置,页号也必须在BH中指定,此功能把光标位置的行号回送给DH,列号回送给DL;程序中的代码部分如下:MOVBH,0MOVCX,1MOVAH,9INT10HMOVBH,0MOVAH,3INT10HINCDLMOVAH,2INT10H21三详细设计本程序通过调用不同的子程序来实现系统功能,以下为各主要子程序的详细设计。1.日期子程序系统通过条用时间子程序来实现获取并显示当前时
7、间的功能。此程序主要涉及三个重点:(1)DOS和BIOS的常用功能的调用。(2)掌握使用汇编语言对I/O中断的使用。(3)ACS码与BCD码数制上的转化。子程序的程序流程图如下,见图3-1。开始获取原中断类型1CH设置新的中断类型执行中断处理程序保护现场中断返回读取系统时间保存原中断类型分别将时间的BCD码转换为字符在指定位置写显存以显示日期恢复现场21图3-1日期子程序的流程图当键盘输入字母“D”时所调用执行的子程序;首先定义堆栈寄存器,按循环要求读取系统日期项,由于读取的日期项是二进制代码,因此需调用DIVNUMPR
8、OC子程序转换为BCD码,然后接着调用LISNUMPROC予以显示;执行完DIVNUMPROC子程序后调用DIS1PROC显示一个分隔符”-”,完成一个日期项的显示,然后再循环去读取其他日期项;最后返回主程序执行主程序。子程序的关键代码:MOVDX,OFFSETBUF2MOVAH,9INT21HMOVAH,2AHIN