时钟模拟显示软件设计课件.docx
- 文档编号:7082621
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:22
- 大小:215.19KB
时钟模拟显示软件设计课件.docx
《时钟模拟显示软件设计课件.docx》由会员分享,可在线阅读,更多相关《时钟模拟显示软件设计课件.docx(22页珍藏版)》请在冰豆网上搜索。
时钟模拟显示软件设计课件
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
题目:
时钟模拟显示软件设计
初始条件:
带有编辑器、汇编程序、连接程序和调试程序的电脑一台。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
采用汇编语言设计一个运行于计算机的时钟模拟显示软件,在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间。
按Q退出程序。
(1)设计任务及要求分析
(2)方案比较及认证说明
(3)系统原理阐述
(4)软件设计课题需要说明:
软件思想,流程图,源程序及程序注释
(5)调试记录及结果分析
(6)总结
(7)参考资料
(8)附录:
芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图
时间安排:
12月31日~1月2日:
收集资料,方案选择
1月3日~1月8日:
整体流程,程序细节
1月9日~1月10日:
调试程序,报告撰写
1月11日:
交设计报告,程序演示,答辩
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
目录
摘要1
1设计思路2
1.1设计任务及要求的分析2
1.2程序流程图2
2软件设计4
2.1背景格局设计4
2.2文本方式设置4
2.3获取系统日期和时间4
2.4日期有关子程序5
2.4.1日期显示子程序5
2.4.2日期转换ASCII码字符子程序6
2.5时间有关子程序7
2.5.1时间显示子程序7
2.5.2时间转换ASCII码字符子程序8
3调试过程和运行结果及分析10
3.1调试过程10
3.2运行结果11
3.3结果分析12
4总结13
附录1程序源程序14
附录2程序运行结果20
附录3程序资料22
参考文献23
摘要
汇编语言(AssemblyLanguage)是面向机器的程序设计语言。
汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。
汇编语言,作为一门语言,保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等,且目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。
它经常与高级语言配合使用,应用十分广泛。
对于不同型号的计算机,有着不同的结构的汇编语言。
汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。
汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。
使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机,有着不同的结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同种类的计算机间是互不相通的。
汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的"汇编程序"中进行加工和翻译,才能变成能够被计算机直接识别和处理的二进制代码程序。
用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。
目标程序是机器语言程序,当它被安置在内存的预定位置上,就能被计算机的CPU处理和执行。
本次微机原理课程设计的题目是时钟模拟显示软件设计,要求采用汇编语言设计一个运行于计算机的时钟模拟显示软件,在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间,按Q退出程序。
要获取系统日期和时间就必须采用DOS系统调用功能。
调用系统日期和时间分别应用2AH号和2CH号系统功能,将日期和时间都以二进制存入个寄存器中,要想显示出来必须转化成ASCII码才行。
关键字:
汇编语言汇编程序时钟模拟DOS系统
时钟模拟显示软件设计
1设计思路
1.1设计任务及要求的分析
采用汇编语言设计一个运行于计算机的时钟模拟显示软件,在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间。
按Q退出程序。
根据任务数的要求,可知需要设计的计算机时钟模拟显示软件程序是基于汇编语言的WINDOWS应用程序设计。
程序运行成功后,页面出现数字式的时钟,树脂中的钟面为一个规则的矩形。
当输入大写字母“D”,可显示系统当前日期,其显示格式是:
××××××××,依次为年、月、日。
当输入大写字母“T”,可显示系统当前时间,其显示格式是:
××:
××:
××,依次为时、分、秒,小时为二十四进制,分和秒都为六十进制。
1.2程序流程图
根据课程设计任务及要求,在编写程序前,我们可以绘制程序流程图,这样有助于程序的编写,保持清晰的思路。
程序流程图如图1所示。
图1计算机时钟模拟程序流程图
2软件设计
2.1背景格局设计
对于计算机模拟的时钟,在显示时,加入一些背景作为修饰可以使时钟更加的美观。
对背景格局修饰的初始化程序段如下:
SPACEDB1000DUP('')
PATTERNDB6DUP(''),0C9H,26DUP(0CDH),0BBH,6DUP('')
DB6DUP('#'),0BAH,26DUP(20H),0BAH,6DUP('#')
DB6DUP(''),0C8H,26DUP(0CDH),0BCH,6DUP('')
BUFF1DB8DUP(':
'),12DUP('')
BUFF2DB20DUP('')
XDB0DH,0AH,'Pleaseinputdate(D)ortime(T)orquit(Q):
$'
2.2文本方式设置
文本显示方式如表1所示。
表1常用的几种显示方式
AH
调用参数AL
显示方式
00
00
40×25黑白文本方式
00
01
40×25彩色文本方式
00
02
80×25黑白文本方式
00
03
80×25彩色文本方式
00
04
320×200彩色文本方式
00
05
320×200黑白文本方式
00
06
640×200黑白文本方式
本课程设计采用40×25彩色文本方式,所以设置显示方式的程序段如下:
MOVAX,0001H
INT10H
2.3获取系统日期和时间
系统日期的调用程序段:
MOVAH,2AH
INT21H
系统时间的调用程序段:
MOVAH,2CH
INT21H
2.4日期有关子程序
2.4.1日期显示子程序
日期显示子程序模块设计功能为实时调用系统日期并将其显示,系统日期调用应用2AH号系统功能,将年月日都以二进制存入各寄存器中,要想显示出来必须转化为ASCII码才行。
具体程序如下:
DATEPROCNEAR;显示日期子程序
DISPLAY:
MOVAH,2AH;获取日期
INT21H
MOVSI,0
MOVAX,CX
MOVBX,100
DIVBL
MOVBL,AH
CALLBCDASC1;日期数值转换成相应的ASCII码字符
MOVAL,BL
CALLBCDASC1
INCSI
MOVAL,DH
CALLBCDASC1
INCSI
MOVAL,DL
CALLBCDASC1
MOVBP,OFFSETBUFF2
MOVDX,0C0DH
MOVCX,20
MOVBX,002EH
MOVAX,1301H
INT10H
MOVAH,02H;设置光标位置
MOVDX,0300H
MOVBH,0
INT10H
MOVBX,0018H
BB1:
MOVCX,0FFFFH;延时
BB2:
LOOPBB2
DECBX
JNZBB1
MOVAH,01H;读键盘缓冲区字符到AL寄存器
INT16H
JEDISPLAY
JMPSTART
MOVAX,4C00H
INT21H
RET
DATEENDP
2.4.2日期转换ASCII码字符子程序
日期数值转换成ASCII码字符的子程序如下:
BCDASC1PROCNEAR;将日期数值转换成ASCII码字符子程序
PUSHBX
CBW
MOVBL,10
DIVBL
ADDAL,'0'
MOVBUFF2[SI],AL
INCSI
ADDAH,'0'
MOVBUFF2[SI],AH
INCSI
POPBX
RET
BCDASC1ENDP
2.5时间有关子程序
2.5.1时间显示子程序
时间显示子程序模块与日期显示子程序模块类似,系统时间调用应用2CH号系统功能。
具体程序如下:
TIMEPROCNEAR;显示时间子程序
DISPLAY1:
MOVSI,0
MOVBX,100
DIVBL
MOVAH,2CH;获取时间
INT21H
MOVAL,CH
CALLBCDASC;将时间数值转换成ASCII码字符
INCSI
MOVAL,CL
CALLBCDASC
INCSI
MOVAL,DH
CALLBCDASC
MOVBP,OFFSETBUFF1
MOVDX,0C0DH
MOVCX,20
MOVBX,004EH
MOVAX,1301H
INT10H
MOVAH,02H
MOVDX,0300H
MOVBH,0
INT10H
MOVBX,0018H
DD1:
MOVCX,0FFFFH
DD2:
LOOPDD2
DECBX
JNZDD1
MOVAH,01H
INT16H
JEDISPLAY1
JMPSTART
MOVAX,4C00H
INT21H
RET
TIMEENDP
2.5.2时间转换ASCII码字符子程序
将时间数值转换成ASCII码字符子程序如下:
BCDASCPROCNEAR;时间数值转换成ASCII码字符子程序
PUSHBX
CBW
MOVBL,10
DIVBL
ADDAL,'0'
MOVBUFF1[SI],AL
INCSI
ADDAH,'0'
MOVBUFF1[SI],AH
INCSI
POPBX
RET
BCDASCENDP
3调试过程和运行结果及分析
3.1调试过程
编写源文件,命名为shizhongmoni.asm,并保存于默认文件夹中。
打开文件shizhongmoni.asm,编译使之生存目标文件,检查源程序中的错误并改正,知道编译无错误为止。
在调试过程中,遇到了一些调试不合理的结果,如刚开始的文本显示方式为320×200彩色文本,但却显示错误,显示结果如图2所示。
图2错误的结果显示图
点击菜单栏中运行里的连接,在点击运行,输入相应的字符就会显示相应的结果。
3.2运行结果
(1)当从键盘D时,其显示结果如图3所示。
图3输入D时,时钟显示结果
(2)当从键盘T时,其显示结果如图4所示。
图4输入T时,时钟显示结果
(3)当从键盘Q时,其显示结果如图5所示。
图5输入Q时,时钟显示结果
3.3结果分析
经过验证,当从键盘上输入D时,模拟时钟显示日期,并且与计算机系统保持一致;当从键盘上输入T时,模拟时钟显示时间,与计算机系统同步;当从键盘上输入Q时,退出显示,返回DOS系统。
综上所述,本次课程设计时钟模拟显示到达设计任务书要求。
4总结
经过上述设计步骤,课程设计所要求的时钟模拟显示软件设计成功完成。
当从键盘上输入D时,模拟时钟显示日期,并且与计算机系统保持一致;当从键盘上输入T时,模拟时钟显示时间,与计算机系统同步;当从键盘上输入Q时,退出显示,返回DOS系统。
整个页面简洁清晰,方便读取时间和日期,而且操作简单,符合课程设计的要求。
在本次微机原理课程设计中,我对在汇编语言下编写Windows应用程序的了解加深了。
汇编语言定义了一个标准的应用程序框架,为我们提供了大量可用代码,隐藏了程序设计中的许多复杂的工作。
在程序编写和程序调试过程中,我更加熟悉了汇编程序的编写,掌握了程序调试的方法,打打提高了编程能力和动手能力。
当然,在调试过程中,也遇到一些困难,特别是对模拟时钟背景的绘制。
通过多次的调试,终于达到了课程设计任务书的要求。
这次课程设计让我认识到理论知识和实际相结合的重要性,对课本上的一些知识如何应用到实际生活中也有了一定的了解,同时也基本上掌握了汇编语言程序编程的步骤。
附录1程序源程序
STACKSEGMENTSTACK
DW200DUP(?
)
STACKENDS
DATASEGMENT
SPACEDB1000DUP('')
PATTERNDB6DUP(''),0C9H,26DUP(0CDH),0BBH,6DUP('')
DB6DUP('#'),0BAH,26DUP(20H),0BAH,6DUP('#')
DB6DUP(''),0C8H,26DUP(0CDH),0BCH,6DUP('')
BUFF1DB8DUP(':
'),12DUP('')
BUFF2DB20DUP('')
XDB0DH,0AH,'Pleaseinputdate(D)ortime(T)orquit(Q):
$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,0001H;设置显示方式为40×25彩色文本方式
INT10H
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVBP,OFFSETSPACE
MOVDX,0B00H
MOVCX,1000
MOVBX,0050H;设置背景颜色
MOVAX,1300H
INT10H
MOVBP,OFFSETPATTERN;显示矩形条
MOVDX,0B00H
MOVCX,120
MOVBX,004EH
MOVAX,1301H
INT10H
LEADX,X;显示提示信息
MOVAH,9
INT21H
MOVAH,1;从键盘输入单个字符
INT21H
CMPAL,44H;AL=’D’?
JNEAA1
CALLDATE;显示系统日期
AA1:
CMPAL,54H;AL=’T’?
JNEAA2
CALLTIME;显示系统时间
AA2:
CMPAL,51H;AL=’Q’?
JNESTART
MOVAH,4CH;返回DOS状态
INT21H
DATEPROCNEAR;显示日期子程序
DISPLAY:
MOVAH,2AH;获取日期
INT21H
MOVSI,0
MOVAX,CX
MOVBX,100
DIVBL
MOVBL,AH
CALLBCDASC1;日期数值转换成相应的ASCII码字符
MOVAL,BL
CALLBCDASC1
INCSI
MOVAL,DH
CALLBCDASC1
INCSI
MOVAL,DL
CALLBCDASC1
MOVBP,OFFSETBUFF2
MOVDX,0C0DH
MOVCX,20
MOVBX,002EH
MOVAX,1301H
INT10H
MOVAH,02H;设置光标位置
MOVDX,0300H
MOVBH,0
INT10H
MOVBX,0018H
BB1:
MOVCX,0FFFFH;延时
BB2:
LOOPBB2
DECBX
JNZBB1
MOVAH,01H;读键盘缓冲区字符到AL寄存器
INT16H
JEDISPLAY
JMPSTART
MOVAX,4C00H
INT21H
RET
DATEENDP
TIMEPROCNEAR;显示时间子程序
DISPLAY1:
MOVSI,0
MOVBX,100
DIVBL
MOVAH,2CH;获取时间
INT21H
MOVAL,CH
CALLBCDASC;将时间数值转换成ASCII码字符
INCSI
MOVAL,CL
CALLBCDASC
INCSI
MOVAL,DH
CALLBCDASC
MOVBP,OFFSETBUFF1
MOVDX,0C0DH
MOVCX,20
MOVBX,004EH
MOVAX,1301H
INT10H
MOVAH,02H
MOVDX,0300H
MOVBH,0
INT10H
MOVBX,0018H
DD1:
MOVCX,0FFFFH
DD2:
LOOPDD2
DECBX
JNZDD1
MOVAH,01H
INT16H
JEDISPLAY1
JMPSTART
MOVAX,4C00H
INT21H
RET
TIMEENDP
BCDASCPROCNEAR;时间数值转换成ASCII码字符子程序
PUSHBX
CBW
MOVBL,10
DIVBL
ADDAL,'0'
MOVBUFF1[SI],AL
INCSI
ADDAH,'0'
MOVBUFF1[SI],AH
INCSI
POPBX
RET
BCDASCENDP
BCDASC1PROCNEAR;将日期数值转换成ASCII码字符子程序
PUSHBX
CBW
MOVBL,10
DIVBL
ADDAL,'0'
MOVBUFF2[SI],AL
INCSI
ADDAH,'0'
MOVBUFF2[SI],AH
INCSI
POPBX
RET
BCDASC1ENDP
CODEENDS
ENDSTART
附录2程序运行结果
当从键盘D时,其显示结果如附图1所示。
附图1输入D时,时钟显示结果
当从键盘T时,其显示结果见附图2所示。
附图2输入T时,时钟显示结果
当从键盘Q时,其显示结果见附图3所示。
附图3输入Q时,时钟显示结果
附录3程序资料
常见的几种文本显示方式见附表1所示。
附表1常用的几种显示方式
AH
调用参数AL
显示方式
00
00
40×25黑白文本方式
00
01
40×25彩色文本方式
00
02
80×25黑白文本方式
00
03
80×25彩色文本方式
00
04
320×200彩色文本方式
00
05
320×200黑白文本方式
00
06
640×200黑白文本方式
参考文献
[1]周佩玲,彭虎,傅忠谦.微机原理与接口技术(第3版).电子工业出版社2011
[2]朱金均,麻新旗.微机原理及应用技术(第二版).机械工业出版社.2005
[3]吴秀清,周荷琴.微型计算机原理与接口技术(第二版).中国科学技术大学出版社.2002
[4]丁辉.汇编语言程序设计(第3版).电子工业出版社.2009
[5]孙德文.微型计算机技术.高等教育出版社.2001
[6]王爽.汇编语言(第2版).清华大学出版社.2008
本科生课程设计成绩评定表
姓名
性别
专业、班级
课程设计题目:
时钟模拟显示软件设计
课程设计答辩或质疑记录:
成绩评定依据:
评定项目
评分成绩
1)考勤、态度(10分)
2)查阅资料能力(10分)
3)系统设计(20分)包括系统实现原理、框图、方案的说明
4)编写程序,调试结果(25分)
5)设计说明书质量及规范化、参考文献充分(不少于5篇)(15分)
6)答辩(20分)
总分:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时钟 模拟 显示 软件设计 课件