实时日历时钟显示系统的设计.docx
- 文档编号:27770306
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:13
- 大小:191.40KB
实时日历时钟显示系统的设计.docx
《实时日历时钟显示系统的设计.docx》由会员分享,可在线阅读,更多相关《实时日历时钟显示系统的设计.docx(13页珍藏版)》请在冰豆网上搜索。
实时日历时钟显示系统的设计
微机原理及应用课程设计任务书
20xx-20xx学年第x学期 第xx周-xx周
题目
实时日历时钟显示系统的设计
内容及要求
内容:
实时日历时钟显示系统
要求:
设计一个实时日历时钟显示系统的程序。
用“年/月/日”,“时:
分:
秒”(都是两位)的形式连续显示系统时间
进度安排
课程设计内容
时间分配
方案论证
1天
分析、设计、调试、运行
3天
检查、整理、写设计报告、小结
1天
合计
5天
学生姓名:
xx
指导时间:
xxxx
指导地点:
xxxx
任务下达
任务完成
考核方式
1.评阅√ 2.答辩√3.实际操作□4.其它□
指导教师
系(部)主任
注:
1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。
2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。
摘要
此次微机原理课程设计要求设计一个实时日历时钟显示系统。
本程序利用DOS中断2AH号功能调用取系统年月日,再逐个显示各数据,利用2CH号功能调用取系统时间,逐个显示各数据。
用“时:
分:
秒”(都是两位)的形式连续显示系统时间,并利用计算机提供的软件调试工具对所编写程序进行调试,记录下整个调试分析的过程与运行结果。
任务安排:
主程序:
xx:
主体程序和流程设计
xx:
日历调用显示系统
xx:
时间调用显示系统
子程序:
xx:
显示两位数字的子程序
目录
一、课程名称2
二、课程内容及要求2
三、小组组成2
四、设计思路3
五、程序流程图及介绍4
六、调试5
七、总结7
八、参考资料9
附录9
一、
课程名称:
实时日历时钟显示系统的设计
二、课程内容及要求
课程内容:
实时日历时钟显示系统
要求:
设计一个实时日历时钟显示系统的程序。
用“年/月/日”,“时:
分:
秒”(都是两位)的形式连续显示系统时间
三、小组组成:
成员:
xx,
xx,
xx,
xx
任务安排:
主程序:
xx:
主体程序和流程设计
xx:
日历系统
xx:
时间系统
子程序:
xx:
显示两位数字的子程序
4、
设计思想
汇编语言程序设计要求综合以前所学知识,根据设计具体要求分析问题,将问题分解成一个一个的步骤,每步用汇编语言中的指令性语句,按先后顺序表达,设计一个不仅要满足要求,能正常运行,实现指定功能的程序;还应满足结构化、简明、易读、易调试、易维护、执行速度快、占用存储空间尽量少的好程序。
(1)日历的显示:
本程序主要使用DOS功能2AH号调用取系统日期(年、月、日)送屏幕显示。
出口参数:
CX=年,DH=月,DL=日。
再通过子程序显示。
(2)时钟显示:
本程序主要使用DOS功能2CH号调用取系统时间(时、分、秒、百分秒)送屏幕显示。
出口参数:
CH=小时,CL=分钟,DH=秒,DL=百分秒。
再通过子程序显示。
(3)连续显示:
加入一个循环,使程序不停刷新显示时间的变化,
(4)子程序的说明,子程序的入口为:
AL,输出一个两位数
五、程序流程图及软件介绍
1、下面是程序的流程图。
2、程序利用2AH号功能调用取系统年月日,CX=年,DH=月,DL=日,然后把这些数据保存起来,再调用子程序,逐个显示各数据;然后利用2CH号功能调用取系统时间,CH=小时,CL=分钟,DH=秒,保存号各个数据,之后调用子程序,逐个显示各数据。
3、本程序是一个无限循环程序,显示完了时间后,又开始重新从系统取时间进行显示。
6、
调试
1)进入masm程序的安装目录,汇编源文件
2)连接程序,并查看可生成执行文件A.exe
3)关闭对话框,打开可执行问件A.exe,显示时间。
七、总结
由于是第一次做课程设计,程序调试了好几次才成功,过程虽然辛苦,但完成课设后还是很有成就感的。
课设是一个把理论和实践相结合的过程,通过这次的课程设计,我学会了很多。
对于平时上课的知识,以前总以为自己学的很多,其实不是的。
上课所学的汇编知识,都只是一些基础,到真的要用汇编语言做点东西的时候,才发现很多知识不懂、不知道、要查阅很多的资料文献才能做成一个课程设计。
经过一周的课程设计,我觉得自己对于这门课程有了很大的了解和认识。
我们本次的课题是设计一个实时日历时钟显示系统,要求用“时:
分:
秒”的形式连续显示系统时间,并利用计算机提供的软件调试工具对所编写程序进行调试,记录下整个调试分析的过程与运行结果。
此次设计中,我们首先是调用系统的日期和时间,然后把这些数据显示出来,为了让这个时间能够连续显示,要再采用一个循环,不断地取系统日期和时间,进行刷新操作,以保证日期和时间能够实时更新和显示。
在设计的过程中,首先为了避免寄存器冲突的问题,在设计子程序时,应把所有用到的寄存器都入栈保存。
而且可以把寄存器当作变量来看待,有时候它存储的是数据变量(如把BP当作字符个数的记数器),而有时候它存储的是地址变量(如DI、SI);内存中的数据,按它们的结构关系,则可以把它们看待成数组,我们对数组,可以通过首地址来访问它们。
传递参数和结果的,一般可以用寄存器,也可以用一段内存空间来传递,特别是需要传递的数据较多的时候。
在设计子程序时,往往涉及到许多的循环,这时候就要注意把不该循环的变量要放在循环体外。
通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。
在整个程序的编写中,调试占了很大部分的时间。
要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。
总而言之,这次课程设计让我收获很大!
八、参考文献
1、郑初华.汇编语言、微机原理及接口技术(第3版).北京:
电子工业出版社.2010.
2、周明德.微机原理与接口技术实验指导与习题集.北京:
人民邮电出版社.2002
3、丁新民.微机原理及基应用.北京:
高等教育出版社.1996
4、刘乐善.微型计算机接口及应用.武汉:
华中科技大学出版社.2000
5、朱定华.微机原理、汇编与接口技术学习指导.北京:
清华大学出版社.2006
6、荆淑霞.微机原理与汇编语言程序设计.北京:
水利水电出版社.2005
附录
完整程序源代码:
;**************************程序开始
DATASEGMENT
MSG1DB0DH,0AH,"THEDATAIS:
$";定义提示文字
MSG2DB0DH,0AH,"THETIMEIS:
$";定义提示文字
SECDB0;自定义参数
FSECDB0
MINDB0
HOURDB0
DAYDB0
MONDB0
YEARDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
;************************循环的起点
AGAIN:
MOVDH,0
MOVDL,0
MOVAH,02H;设置光标的位置,DH=字符行号,;DL=字符列号,BH=页号
MOVBH,0
INT10H
;***********************年月日的显示
MOVDX,OFFSETMSG1;显示提示“THEDATAIS:
”
MOVAH,09;9号功能调用
INT21H
MOVAH,2AH;取日期,CX=年,DH=月,DL=日
INT21H
MOVDAY,DL;数据保存到自定义参数里
MOVMON,DH
MOVAX,CX;对年份数据(例如2010)进行处理
MOVBX,100
DIVBL;无符号数除,商送AL=20,余数送AH=10
CALLNUMBER;子程序调用,显示年份的第一二个数字20
;子程序NUMBER代码在最下面,子程序功
;能是用来显示一个十进制两位数
MOVYEAR,AH;余数送入YEAR
MOVAL,YEAR;子程序入口参数设置AL=10
CALLNUMBER;字程序调用,显示年份的第三四个数字10
MOVDL,'/';‘/’间隔
MOVAH,02
INT21H
MOVAL,MON;调用子程序,显示月
CALLNUMBER
MOVDL,'/'
MOVAH,02
INT21H
MOVAL,DAY;调用子程序,显示日
CALLNUMBER
;*******************时间的显示
MOVDX,OFFSETMSG2;显示提示“THETIMEIS:
”
MOVAH,09
INT21H
MOVAH,2CH;取时间,CH=小时,
;CL=分钟,DH=秒,DL=百分秒
INT21H
MOVHOUR,CH;参数保存
MOVMIN,CL
MOVSEC,DH
MOVFSEC,DL
MOVAL,HOUR;调用子程序,显示小时
CALLNUMBER
MOVDL,':
'
MOVAH,02
INT21H
MOVAL,MIN;调用子程序,显示分钟
CALLNUMBER
MOVDL,':
'
MOVAH,02
INT21H
MOVAL,SEC;调用子程序,显示秒
CALLNUMBER
;*********************跳转到AGAIN
JMPAGAIN
MOVAH,4CH
INT21H
;*********************子程序,功能:
用来显示一个十进制两位数,入口参数为AL中的值
NUMBERPROCNEAR;段内子程序
PUSHAX;保护现场
PUSHDX
PUSHBX
XORAH,AH;AH清0
AAM;把AL分解为十位存于AH,个位存于AL
MOVDH,AL;暂存个位
MOVDL,AH;显示十位
ADDDL,30H
MOVAH,02
INT21H
MOVDL,DH;显示个位
ADDDL,30H
MOVAH,02
INT21H
POPBX;恢复现场
POPDX
POPAX
RET
NUMBERENDP
CODEENDS
ENDSTART
;**************************程序结束忽略此处..
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实时 日历 时钟 显示 系统 设计