微机原理课程设计电子时钟.docx
《微机原理课程设计电子时钟.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计电子时钟.docx(12页珍藏版)》请在冰豆网上搜索。
微机原理课程设计电子时钟
一、课程设计的目的
对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。
因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。
培养学生综合运用所学知识独立完成汇编程序课题的能力。
使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。
提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
二、设计任务与要求
(一)、课题名称和内容
1.电子时钟
在出现的提示信息中输入大写字母“D”,可在屏幕的中央以“年\月\日”的形式显示系统当前日期,;输入大写字母“T”,可在屏幕的中央以“时:
分:
秒”的形式显示系统当前时间;输入大写字母“Q”,可结束程序。
(二)、设计要求
1.根据设计内容设计出硬件电路图并作详细的设计说明,并绘制出电路图。
2.画出程序流程框图,用汇编语言编写相应的控制程序。
3.进行系统的调试,完成加电仿真调试。
4.写出详细的设计报告。
三、总体方案设计
1.主程序设计思想
此动画程序要求结构化的显示系统时间和日期。
程序要求能多次执行以上两种操作并有退出选项。
则我们可以设计三个选项以供用户选择:
D-DATE、T-TIME和Q-QUIT退出程序。
三个选项分别可以用三个过程实现其功能。
用户在出现的提示信息中输入小写字母“D”,马上显示系统当前日期;输入小写字母“T”,马上显示系统当前时间;输入小写字母“Q”,则退出程序。
主程序主要实现与用户的交互,首先程序会提示用户想要进行什么操作。
是显示DATE,TIME还是退出。
这里对应的给用户提供的选项是“D”、“T”和“Q”。
当用户输入他们的选项之后,主程序要判断用户的输入调用相应的功能模块来满足用户的要求。
我们假设用户输入字符为X,那么首先我们将X与“D”比较。
如果相同则程序调用DATE模块为用户显示日期。
若不为“D”则要继续与“T”想比较。
相等则调用TIME_DISPLAY模块,不等则继续与“Q”相比较。
相等则正常退出,不等则说明用户输入非法字符主程序返回到选择界面用户可以继续选择。
2.程序设计思想
●在屏幕中央显示提示信息(提示用户输入“D”或“T”或“Q”)。
●然后对用户输入的字母进行判断,利用分支程序分别调用不同的子程序。
两个子程序的功能分别是显示当前日期,显示当前时间。
必须用到的DOS功能调用:
1.调用字符输入功能,21H中断的1号功能,定义宏INPUT方便字符输出;
2.调用字符输出功能,21H中断的2号功能,定义宏OUTPUT方便字符输出;
3.调用光标重定位功能,10H中断的2号功能,定义宏SITE实现光标定位;
4.宏定义GETAHAL获取相应数据到AH和AL中并转换为字符。
四、软件设计
1.主程序流程图
(1)DATE子程序流程图
(2)TIME子程序流程图
2.源程序清单与注释
DATASSEGMENT;定义数据段
WELCOMEDB0AH,0DH,'*********************************************************'
DB0AH,0DH,'WELCOMEYOUTOCOMEHERE!
';提示界面
DB0AH,0DH,'pleaseinput"D""T"or"Q"toshowdatatimeORexit!
'
DB0AH,0DH,'D:
displaysystemdata:
'
DB0AH,0DH,'T:
displaysystemtime:
'
DB0AH,0DH,'Q:
quit.'
DB0AH,0DH,'pleaseinputthechar:
'
DB0AH,0DH,'*********************************************************',0AH,0DH,'$'
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
;宏定义字符输入
INPUTMACRO;宏定义无参数的字符输入功能
MOVAH,01H;系统调用输入一个字符用于功能选择
INT21H;字符默认输入到AL中
ENDM
;宏定义字符输出
OUTPUTMACROoutchar;宏定义将字符outchar输出
PUSHDX
PUSHAX
MOVDL,outchar
MOVAH,02H;系统调用输出字符outchar
INT21H;调用系统中断
POPAX
POPDX
ENDM
;宏定义光标跳转到指定的位置
SITEMACROsiteC,siteL;光标位置跳转到C行L列
PUSHDX
PUSHBX
PUSHAX
MOVDH,siteC;行号
MOVDL,siteL;列号
MOVAH,02H
INT10H;在当前光标处显示字符
POPAX
POPBX
POPDX
ENDM
;宏定义获取相应数据到AH和AL中并转换为字符
GETAHALMACROctrlNum;将987420依次送至端口70H,从端口71H可依次获得年/月/日时:
分:
秒,每次获得的8位数值高4位和低4位各代表一个数值
MOVAL,ctrlNum
OUT70H,AL;将控制数ctrlNum送至控制端口70H,由71H端口输出相应数据
INAL,71H;将端口71H的内容同时送至AH和AL中
MOVAH,AL
MOVCL,4
SHRAH,CL;AH保留数值的高4位
ANDAL,00001111B;AL保留数值的低4位
ADDAH,30H;将高4位的数值转换为数值对应的字符
ADDAL,30H;将低4位转换字符
ENDM
START:
MOVAX,DATAS;将数据段地址送到AX中
MOVDS,AX;;由AX转送到送到DS
LEADX,WELCOME
MOVAH,9
INT21H
PPP:
SITE15,31;移动光标
INPUT
CMPAL,'D'
JEDATE
CMPAL,'T'
JETIME
CMPAL,'Q'
JEQUIT
CMPAL,'d';小写输入支持
JEDATE
CMPAL,'t'
JETIME
CMPAL,'q'
JEQUIT
JMPPPP;其他输入时跳转开始
DATE:
GETAHAL9;输出年
SITE12,31;将光标移动至12行31列
OUTPUTAH
SITE12,32
OUTPUTAL
SITE12,33
OUTPUT'/'
GETAHAL8;输出月
SITE12,34
OUTPUTAH
SITE12,35
OUTPUTAL
SITE12,36
OUTPUT'/'
GETAHAL7;输出日
SITE12,37
OUTPUTAH
SITE12,38
OUTPUTAL
SITE15,31;移动光标
JMPPPP
TIME:
GETAHAL4;输出时
SITE12,31
OUTPUTAH
SITE12,32
OUTPUTAL
SITE12,33
OUTPUT':
'
GETAHAL2;输出分
SITE12,34
OUTPUTAH
SITE12,35
OUTPUTAL
SITE12,36
OUTPUT':
'
GETAHAL0;输出秒
SITE12,37
OUTPUTAH
SITE12,38
OUTPUTAL
SITE15,31;移动光标
JMPPPP
QUIT:
MOVAH,4CH;调用系统结束
INT21H
CODESENDS
ENDSTART
3.程序运行界面
(1)显示日期
(2)显示时间
(3)退出系统
五、小结
通过对这一闹钟程序的制作,使我们对汇编语言的基本知识的使用更加熟练,同时也增加了对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。
通过查阅以下资料也学到了一些课本上没有的东西,拓宽了知识面,增加了学好汇编语言的信心。
这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写了很多小程序。
但这次是一个综合的程序,平时的很多程序都用到了,例如在程序中用到了不少的子程序,宏,这些子程序的设计是固定的,因此可以直接从指导资料中调用,大多只需要修改几个参数就可以,这大大方便了我们的设计,为我们节省了很多的时间。
在这次课程设计中,我们真正体会到了合作的重要性,遇到很多问题时和同学讨论一下,收获很大,可以使很多问题迎刃而解。
这次课程设计的大部分程序,不可否认存在不少缺点和不足,但通过这次作业的却找出了自己在学习上的不足,对以后的工作也有指导作用。
我们相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!
六、参考资料
1.《汇编语言程序设计》各种版本
2.《微型计算机原理与接口技术》吴秀清周荷琴编著中国科学技术大学出版社
3.《微机接口技术》李大友编著机械工业出版社