微机原理显示日期和时间课设.docx_第1页
微机原理显示日期和时间课设.docx_第2页
微机原理显示日期和时间课设.docx_第3页
微机原理显示日期和时间课设.docx_第4页
微机原理显示日期和时间课设.docx_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 显示日期时间程序 初始条件:在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间。按Q退出程序。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1) 设计任务及要求分析(2) 方案比较及认证说明(3) 系统原理阐述(4) 硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明(5) 软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6) 调试记录及结果分析(7) 总结(8) 参考资料(9) 附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图时间安排:1月10日1月12日:收集资料,方案选择1月13日1月17日:整体流程,程序细节1月18日1月20日:调试程序,报告撰写1月20日:交设计报告,程序演示,答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日II目 录摘要11 设计任务及要求的分析21.1 课程设计的目的22.1 课程设计要求分析22 总体方案设计32.1 程序流程图32.2 系统工作原理42.3 方案所需软件与硬件条件43 具体各部分功能实现53.1 系统日期调用子程序5 3.2 系统时间调用子程序7 3.2 显示器输出中断调用93.4 二进制转化为BCD码的子程序93.5 显示时间日期的子程序93.6 加入分隔符子程序93.7 中断退出的子程序104 调试过程与结果分析11 4.1 程序调试114.2 结果分析135 课程设计小结14参考文献15附录1623摘 要课程设计是完成教学计划达到工科大学生培养目标的重要环节,是教学计划中进行综合训练的重要实践环节,是有助于培养应用性人才的一种教学形式,它将使学生在综合运用所学知识,解决本专业方向的实际问题方面得到系统性的训练。培养学生利用计算机软、硬件技术解决问题的初步能力。微机原理及接口技术是一门实践性和工程性很强的专业技术课,因此不仅要重视理论教学更应注意实践技能的培养和训练。课程设计是本课程的重要组成部分,通过课程设计,使学生巩固、加深和拓宽学习内容的理解,培养他们分析、设计和调试8086微机系统的能力。本文主要介绍以显示系统时间和日期为目的的程序的设计和结果分析,所用到的仿真软件是武汉大学开发的轻松汇编软件。关键字:课程设计 8086 显示系统时间 轻松汇编显示日期时间程序1 设计任务及要求的分析1.1 课程设计的目的(1)使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。(2)培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。(3)使学生在综合运用所学知识,解决本专业方向的实际问题方面得到系统性的训练。(4)训练同学们的团队合作意识和创新能力,学会如何充分利用身边的资源来解决遇到的问题。1.2 课程设计要求分析本次课程设计要求完成一个能够通过键盘按键输入来控制显示系统时间和日期以及中断的程序。即在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间。按Q退出程序。从要求可以看出,要实现该功能肯定需要用到对DOS的调用(DOS的2AH调用实现系统日期调用功能,2CH调用实现系统时间的调用功能),并且退出程序需要用到汇编语言对I/O中断的使用。2 总体方案设计2.1 程序流程图程序开始由课程设计任务要求可知,程序的大致过程是:先判断输入的字符是否为“D”、“T”、“Q”,否则回到初始状态等待重新输入。若为“D”,则调用日期读取程序,显示出日期并回到初始状态;若为“T”,则调用时间读取程序,显示出时间并回到初始状态;若为“Q”,则直接退出程序。由此可以画出如下程序流程图:屏幕显示输入提示键盘输入字符是是否为Q否是调用时间读取子程序,并显示。是否为T否是否为D是调用日期读取子程序,并显示。否退出整个程序图1 程序总体流程图2.2 系统工作原理本次课程设计的程序编译和调试应该都是在DOS环境中进行的。程序的工作过程如前一节的流程图所示。其中调用日期的子程序需要用到DOS中的2AH号功能,而调用系统时间的子程序需要用到DOS中的2CH号功能,最后退出程序的功能则需要用到I/O中断。在调用子程序之前还用到了简单的判断程序,判断符合要求才调用子程序,否则退出。在程序读取系统时间和日期时,由于读取的数据都是二进制数,所以要显示正常结果必须加上一个二进制转化为BCD码的程序。所有环节具体的程序代码将在第三章中详细介绍。3 方案所需软件与硬件条件所需软件条件:武汉大学开发的轻松汇编软件。轻松汇编是一个汇编语言的集成开发环境,主要面向汇编语言的初学者。它提供了一个在Windows界面下的汇编语言开发环境,具有了一般的集成开发环境所提供的功能。 所需硬件条件:一台PC机3 具体各部分功能实现3.1 系统日期调用子程序子程序的流程图大致如下图2程序开始读取系统日期将ASC码转换为二进制数显示输出日期退出程序,回到初始图2 日期调用流程图当在提示信息后输入D时,系统将会自动调用日期调用程序,读取系统日期送入指定堆栈及寄存器中,再将读取的ASC码转化为二进制码,然后将数据送入寄存器并用LISNUM子程序显示输出结果。在二进制码转化完成后还需要调用DIVNUM PROC子程序来加入一个-分隔符。子程序部分代码如下:DATA:MOV DX,OFFSET BUF2MOV AH,9INT 21H ;显示BUF2中的字符串MOV AH,2AHINT 21H ;利用DOS的2AH功能来调用系统日期MOV YEAR,CXMOV MON,DHMOV DAY,DL ; 分别定义时分秒数据寄存器MOV DI,OFFSET BUFMOV AX,YEARMOV CX,4CALL DIVNUM ;对年进行二进制转换并存于寄存器中CALL LISNUM ;输出寄存器中的数据CALL DIS1 ;在年后加入分隔符-,将年与月分开MOV AL,MONMOV AH,0MOV CL,2CALL DIVNUM ;对月进行二进制转换并存于寄存器中CALL LISNUM ;输出寄存器中的数据CALL DIS1 ;加入分隔符-,将月与日隔开MOV AL,DAYMOV AH,0MOV CL,2CALL DIVNUM ;同上存入日数据CALL LISNUMCALL ENTER1 ;调用显示字符子程序JMP START ;跳转到初始3.2 系统时间调用子程序大体原理与系统日期调用子程序相同,流程图如下图3所示:程序开始读取系统时间将ASC码转换为二进制数显示输出时间退出程序,回到初始图3 时间调用程序流程图当在提示信息后输入T时,系统将会自动调用时间调用程序,读取系统时间送入指定堆栈及寄存器中,再将读取的ASC码转化为二进制码,然后将数据送入寄存器并用LISNUM子程序显示输出结果。在二进制码转化完成后还需要调用DIVNUM PROC子程序来加入一个-分隔符。子程序部分代码如下:TIME: MOV DX,OFFSET BUF3MOV AH,9INT 21H ;显示BUF3中字符串MOV AH,2CHINT 21H ;DOS中2CH功能调用来调用系统时间MOV HOUR,CHMOV MIN,CLMOV SEC,DH ;分别定义时分秒数据寄存器MOV DI,OFFSET BUFMOV AL,HOURMOV AH,0MOV CX,2CALL DIVNUM ;对小时进行二进制转换并存于寄存器中CALL LISNUM ;输出寄存器中的小时数CALL DIS2 ;显示一个分隔符:将小时和分钟分隔MOV AL,MINMOV AH,0MOV CX,2CALL DIVNUM ;对分钟进行二进制转换并存储于缓存中等待输出CALL LISNUM ;输出寄存器中的分钟数CALL DIS2 ;显示:将分钟和秒钟分隔MOV AL,SECMOV AH,0MOV CX,2CALL DIVNUM ;对秒钟进行二进制转换并存储于缓存中等待输出CALL LISNUM ;输出寄存器中的秒钟数CALL ENTER1 ;调用显示字符子程序JMP START ;跳转到初始3.3 显示器输出中断调用10H中断调用为显示器中断,共有17种功能。本程序选用2号功能调用。入口参数:AH=2(功能号),BH=页号,DH=行号,DL=列号。出口参数:无。根据DX确定了光标位置。显示方式:8025黑白文本方式3.4 二进制转化为BCD码的子程序由于读取的系统日期和时间是ASC码,为了正确显示结果,需将ASC码转化成BCD码。可以用DIVNUM PROM 来实现此功能。时间和日期子程序中的CALL DIVNUM 就是调用此指令的语句。3.5 显示时间日期的子程序当读取数据和转化BCD码过程都结束后,就该输出显示时间和日期了。时间和日期子程序中的CALL ENTER1就是调用显示程序的指令,ENTER1子程序即用来在屏幕上显示出时间和日期。3.6 加入分隔符子程序为了将年、月、日,时、分、秒分隔开,需要分别加入分隔符与:。加入后显示格式如:2011-01-17与12:05:05。用程序DIS1和DIS2实现此功能。DIS1:MOV DL,-MOV AH,2HINT 21H ;DOS的2号功能(单字符输出)调用RET ;返回到调用位置DIS2:MOV DL,:MOV AH,2HINT 21HRET3.7 中断退出的子程序当键盘输入为Q时,则跳到EXIT中断退出程序。EXIT: MOV DX,OFFSET BUF4MOV AH,9INT 21H ;显示BUF4中字符串MOV BL,10 ;存储循环次数四 调试过程与结果分析4.1 程序调试本次课设的程序调试所用到的软件是武汉大学开发的轻松汇编软件。调试步骤如下:(1) 打开轻松汇编软件,在右侧的程序编辑区输入自己写的汇编程序。然后点击保存按钮。(2) 再点击“运行”菜单栏中的“编译”按钮,出现如图4提示:图4 程序错误提示出现提示说明编写的程序有错误和警告,按照提示将错误改正。例如我的错误是“Reserved word used as symbol:STACK”,说明STACK与系统默认标识符相同,改成STACK1即可。(3) 程序改正后,再一次点击“运行”菜单栏里的“生成”和“运行”,生成zhaohao.exe文件,出现如图5所示窗口。图5 程序运行成功(4) 在光标后输入D或T,分别实现调用系统日期、时间功能。结果如图6所示。图6 调用系统日期和时间(5) 若在光标后输入字符Q,则会出现如下字符串并退出程序,如图7所示。图74.2 结果分析通过以上的结果显示可以看出此设计成功完成了目的和任务:运行可执行程序zhaohao.exe,在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间;输入大写字母“Q”,可结束程序;若不是相关字符,则从头执行程序。5 课程设计小结短短一个多星期的微机原理课程设计很快就结束了,从这次课程设计里我不仅体会到了成功的喜悦,也收获了学习的快乐。刚拿到课程设计时我显得毫无头绪,在参考了老师给的PPT资料和网上的一些参考资料后,我大体知道了程序的原理,需要用到DOS以及BIOS中的各种功能调用。之后逐步完成了此次课程设计。通过这次课程设计,我对汇编各个函数以及语句有了进一步的了解,对各个语句的功能有了更深刻的认识和体会,对调用子程序、程序循环、DOS及BIOS功能调用等知识的理解更为加深,在运用的时候更为熟悉了。平时上课的理论知识只是停留在理论的层面,只有通过了这样的试验才能更好的体会到,做到了理论和实际的相结合,使理论知识真正运用到了实践中去。而且从改正程序错误和调试程序的过程中,我也更加深入理解了各种语句指令的功能和用法。课程设计和平时的理论学习不同。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决问题,并锻炼实践能力的过程,这也将为我们未来进入社会工作打下了坚实的基础。从这次设计过程中,我懂得了理论与实际结合的重要性,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考能力。掌握自学的方法,形成工程理论整体模式,使工作、学习、生活都步入系统化流程;思考方式成熟,逻辑性规范、明确。这些方法的提高是终身受益的。从课程设计中我也发现自己平时学习的不足和薄弱环节,从而加以弥补。这难得的一周,让我真正懂得了生活和学习的基本规律,这也将为我未来的生活和工作提供了很大帮助。参考文献1周佩玲 彭虎 傅忠谦编著.微机原理与接口技术.电子工业出版社.北京.2006年2沈美明、温冬婵编著.IBMPC汇编语言程序设计(第二版).清华大学出版社. 北京.2005年3戴梅萼编著.微型计算机技术及应用.清华大学出版社.北京.1992年4艾德才主编.Pentium系列微型计算机原理与接口技术.高等教育出版社.北京.2000年5吴秀清,周荷琴编著.微型计算机原理与接口技术(第二版).中国科学技术大学出版社.合肥.2002年附录 STACK1 SEGMENT STACKDW 200 DUP(?)STACK1 ENDSDATA SEGMENTYEAR DW ? MON DB ?DAY DB ?HOUR DB ?MIN DB ?SEC DB ?BUF DB 8 DUP(?) ;定义 8字节缓存存放日期和时间数据BUF1 DB WELCOME TO THE SHOWTIME PROGRAM !PLEASE INPUT HERE(D FOR DATE,T FOR TIME,Q TO QUIT): $BUF2 DB THE DATE OF TODAY IS : $BUF3 DB THE TIME RIGHT NOW IS: $BUF4 DB HAHA!I FINISHED IT!$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BH,1 ;设置页号MOV DH,0 ;行号MOV DL,0 ;行号MOV AH,2 INT 10H ;BIOS中断10H的2号功能调用来置光标位置MOV DX,OFFSET BUF1MOV AH,09HINT 21HMOV AH,01HINT 21HCALL ENTER1;调用显示程序CMP AL,44H ;传送D的ASCII码值JZ DATE ;判断是否输入字符“D”CMP AL,54H ;传送T的ASCII码值JZ TIME ;判断是否输入字符“T”CMP AL,51H ;传送Q的ASCII码值JZ GOON ;判断是否输入字符“Q”JMP STARTGOON: JMP EXITDATE: ;调用日期程序MOV DX,OFFSET BUF2MOV AH,9INT 21HMOV AH,2AHINT 21HMOV YEAR,CXMOV MON,DHMOV DAY,DLMOV DI,OFFSET BUFMOV AX,YEARMOV CX,4CALL DIVNUMCALL LISNUMCALL DIS1MOV AL,MONMOV AH,0MOV CL,2CALL DIVNUMCALL LISNUMCALL DIS1MOV AL,DAYMOV AH,0MOV CL,2CALL DIVNUMCALL LISNUMCALL ENTER1JMP STARTTIME: ;调用时间程序MOV DX,OFFSET BUF3MOV AH,9INT 21HMOV AH,2CHINT 21HMOV HOUR,CHMOV MIN,CLMOV SEC,DHMOV DI,OFFSET BUFMOV AL,HOURMOV AH,0MOV CX,2CALL DIVNUMCALL LISNUMCALL DIS2MOV AL,MINMOV AH,0MOV CX,2CALL DIVNUMCALL LISNUMCALL DIS2MOV AL,SECMOV AH,0MOV CX,2CALL DIVNUMCALL LISNUMCALL ENTER1JMP START EXIT: MOV DX,OFFSET BUF4MOV AH,9INT 21HMOV BL,10DELAY:MOV CX,33144CALL WAITF ;调延时子程序,每次调用耗时33144*15.08us=0.5sDEC BLJNZ DELAY ;调用10次,延时5sMOV AH,4CH INT 21H DIVNUM PROC NEAR ;二进制码转BCD码程序PUSH CXAGAIN: MOV BL,0AHDIV BLMOV DI,AHMOV AH,0INC D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论