日期时间显示系统_第1页
日期时间显示系统_第2页
日期时间显示系统_第3页
日期时间显示系统_第4页
日期时间显示系统_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、郑州科技学院微机原理与接口技术课程设计题 目 日期时间显示系统目 录1课程设计的目的12课程设计的任务与要求13 设计方案与论证14设计原理及功能说明14.1 程序流程图 24.2 系统工作原理 35硬件的制作与调试45.1 方案所需软件与硬件条件55.2 具体各部分功能实现55.3实验结果86总结 9参考文献11附录111 课程设计的目的用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有比较完整功能的程序的目的。 (1)学习分支、中断、和逻辑表达。  (2)熟悉汇编语言程序的编译、链接过程。2课程设计的任务与要求设计一个显示日期或时间的汇编程序间且满

2、足以下要求:基本功能:运行可执行程序RQSZ.exe,在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间;输入大写字母“Q”,可结束程序。3设计方案与论证根据键盘输入的相关内容,如:若输入D,则设计程序代码依次读取系统日期年、月、日,并转换成BCD码调用号中断予以显示;若在键盘输入T,则设计程序代码依次读取系统时间时、分、秒,并转换成码并调用号中断予以显示;若输入大写字母Q,则退出当前状态;若不是相关字符,则不于任何响应,并不显示任何信息。4设计原理及功能说明4.1 程序流程图由课程设计任务要求可知,程序的大致过程是:先判断输入的字符是否为“D”、

3、“T”、“Q”,否则回到初始状态等待重新输入。若为“D”,则调用日期读取程序,显示出日期并回到初始状态;若为“T”,则调用时间读取程序,显示出时间并回到初始状态;若为“Q”,则直接退出程序。由此可以画出如下程序流程图:4.2 系统工作原理说明本次课程设计的程序编译和调试应该都是在DOS环境中进行的。程序的工作过程如前一节的流程图所示。其中调用日期的子程序需要用到DOS中的2AH号功能,而调用系统时间的子程序需要用到DOS中的2CH号功能,最后退出程序的功能则需要用到I/O中断。在调用子程序之前还用到了简单的判断程序,判断符合要求才调用子程序,否则退出。在程序读取系统时间和日期时,由于读取的数据

4、都是二进制数,所以要显示正常结果必须加上一个二进制转化为BCD码的程序。5硬件的制作与调试5.1 方案所需软件与硬件条件所需软件条件:武汉大学开发的轻松汇编软件。轻松汇编是一个汇编语言的集成开发环境,主要面向汇编语言的初学者。它提供了一个在Windows界面下的汇编语言开发环境,具有了一般的集成开发环境所提供的功能。所需硬件条件:一台PC机5.2 具体各部分功能实现程序调试本次课设的程序调试所用到的软件是武汉大学开发的轻松汇编软件。调试步骤如下:(1) 打开轻松汇编软件,在右侧的程序编辑区输入自己写的汇编程序。然后点击保存按钮。(2) 再点击“运行”菜单栏中的“编译”按钮,出现如图4提示:出现

5、提示说明编写的程序有错误和警告,按照提示将错误改正。“Reserved word used as symbol:STACK”,说明STACK与系统默认标识符相同,改成STACK1即可。(3) 程序改正后,再一次点击“运行”菜单栏里的“生成”和“运行”,生成zhaohao.exe文件(4) 在光标后输入D或T,分别实现调用系统日期、时间功能。(5) 若在光标后输入字符Q,则会出现如下字符串并退出程序INT 21H ;显示BUF2中的字符串MOV AH,2AHINT 21H ;利用DOS的2AH功能来调用系统日期 MOV YEAR,CXMOV MON,DHMOV DAY,DLMOV DI,OFFS

6、ET 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 START ; 分别定义时分秒数据寄存器 ;对年进行二进制转换并存于寄存器中 ;输出寄存器中的数据 ;在年后加入分隔符-,将年与月分开;对月进行二进制转换并存于寄存器中 ;输出寄存器中的数据 ;加入分隔符-,将月与日隔开 ;调用显示字符子程序5.3

7、实验结果双击RQSZ.exe,程序初始运行界面:如果按错了键,会出现如下界面,没任何反应,也不显示任何信息:如果输入正确如“D”将出现如下界面(每输入一次就显示一次系统日期):如果输入正确如“T”将出现如下界面(每输入一次就显示一次系统时间):如果输入“Q”,则退出以上界面。6总结1. 在完成课程设计过程中,我认识到平时基础知识的重要性,只有能够熟练的掌握才能在实验过程中得心应手,否则一步错则整个试验都会陷入困境,因而,严谨的态度是试验成功的重要保障!2. 通过这次课程设计,我们对各个函数以及语句有了进一步的了解,对各个语句的功能有了更深刻的认识和体会,平时上课的理论知识只是停留在理论的层面,

8、只有通过了这样的试验才能更好的体会到,做到了理论和实际的相结合,使理论知识真正运用到了实践中去。在课程设计过程中,同组人员之间相互合作,共同研究使我更加坚信了团体的力量。在团体的共同协作和努力下,任何的难题都可以被解决!参考文献1、微型计算机原理与接口技术 中国矿业大学出版社 李长青 主编2、汇编语言程序设计 科学出版社 卢中华等 主编3、微型计算机汇编语言程序设计 电子科学技术出版社 龙尚福 主编4、微机原理与汇编语言实用教程 清华大学出版社 王富荣 主编5、微机原理与接口技术课程设计 中南大学出版社 王南兰 主编6、微机原理及应用 西南交通大学出版社 晏寄夫 主编7、32位微机原理与接口技

9、术 化学工业出版社 马兴录 主编8、微机原理与接口技术 电子科技大学出版社 倪继烈 主编附录:STACK1 SEGMENT STACKDW 200 DUP (?)STACK1 ENDSDATA SEGMENTSPACE DB 1000 DUP (' ')PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ')DB 6 DUP (' '),0BAH,26 DUP (20H),0BAH,6 DUP (' ')DB 6 DUP (' '),0C8

10、H,26 DUP (0CDH),0BCH,6 DUP (' ')DBUFFER DB 8 DUP (':'),12 DUP (' ')DBUFFER1 DB 20 DUP (' ')STR1 DB 0DH,0AH, 'PLEASE INPUT DATE(D) OR TIME(T) OR QUIT(Q): $'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK1START: MOV AX,0001H ;设置显示方式为40*25彩色文本方式INT 1

11、0HMOV AX,DATAMOV DS,AXMOV ES,AXMOV BP,OFFSET SPACEMOV DX,0B00HMOV CX,1000MOV BX,0040HMOV AX,1300HINT 10HMOV BP,OFFSET PATTERN ;显示矩形条MOV DX,0B00HMOV CX,120MOV BX,004EHMOV AX,1301HINT 10HLEA DX,STR1 ;显示提示信息MOV AH,9INT 21HMOV AH,1 ;从键盘输入单个字符INT 21HCMP AL,44H ;AL='D'?JNE ACALL DATE ;显示系统日期A: CMP

12、 AL,54H ;AL='T'?JNE BCALL TIME ;显示系统时间B: CMP AL,51H ;AL='Q'?JNE STARTMOV AH,4CH ;返回dos状态INT 21HDATE PROC NEAR ;显示日期子程序dis:MOV AH,2AH ;取日期INT 21HMOV SI,0MOV AX,CXMOV BX,100DIV BLMOV BL,AHCALL BCDASC1 ;日期数值转换成相应的ASCII码字符MOV AL,BLCALL BCDASC1INC SIMOV AL,DHCALL BCDASC1INC SIMOV AL,DLCAL

13、L BCDASC1MOV BP,OFFSET DBUFFER1MOV DX,0C0DHMOV CX,20MOV BX,004EHMOV AX,1301HINT 10HMOV AH,02H ;设置光标位置MOV DX,0300HMOV BH,0INT 10HMOV BX,0018HREPEA: MOV CX,0FFFFH ;延时REPEAT:LOOP REPEATDEC BXJNZ REPEAMOV AH,01H ;读键盘缓冲区字符到AL寄存器INT 16HJE disJMP STARTMOV AX,4C00HINT 21HRETDATE ENDPTIME PROC NEAR ;显示时间子程序D

14、ISPLAY1:MOV SI,0MOV BX,100DIV BLMOV AH,2CH ;取时间INT 21HMOV AL,CHCALL BCDASC ;将时间数值转换成ASCII码字符INC SIMOV AL,CLCALL BCDASCINC SIMOV AL,DHCALL BCDASCMOV BP,OFFSET DBUFFERMOV DX,0C0DHMOV CX,20MOV BX,004EHMOV AX,1301HINT 10HMOV AH,02HMOV DX,0300HMOV BH,0INT 10HMOV BX,0018HRE: MOV CX,0FFFFHREA: LOOP READEC

15、BXJNZ REMOV AH,01HINT 16HJE DISPLAY1JMP STARTMOV AX,4C00HINT 21HRETTIME ENDPBCDASC PROC NEAR ;时间数值转换成ASCII码字符子程序PUSH BXCBWMOV BL,10DIV BLADD AL,'0'MOV DBUFFERSI,ALINC SIADD AH,'0'MOV DBUFFERSI,AHINC SIPOP BXRETBCDASC ENDPBCDASC1 PROC NEAR ;日期数值转换成ASCII码字符子程序PUSH BXCBWMOV BL,10DIV BLA

16、DD AL,'0'MOV DBUFFER1SI,ALINC SIADD AH,'0'MOV DBUFFER1SI,AHINC SIPOP BXRETBCDASC1 ENDPCODE ENDSEND STARTcursor equ 45H attrib equ 2fh code segment assume cs:code,ds:code start: jmp go oldcur dw ? OLD1C DW 2 DUP(?) NEWINT1C: PUSHF CALL DWORD PTR CS:OLD1C push ax PUSH BX PUSH CX PUSH D

17、X XOR BH,BH MOV AH,3 INT 10H MOV CS:OLDCUR,DX MOV AH,2 xor bh,bh MOV DX,CURSOR INT 10H MOV AH,2;读取系统时钟 INT 1AH PUSH DX PUSH CX POP BX PUSH BX CALL SHOWBYTE CALL SHOWCOLON POP BX XCHG BH,BL CALL SHOWBYTE CALL SHOWCOLON POP BX CALL SHOWBYTE MOV DX,CS:OLDCUR MOV AH,2 XOR BH,BH INT 10H POP DX POP CX POP

18、 BX POP AX IRET SHOWBYTE PROC NEAR PUSH BX MOV CL,4 MOV AL,BH SHR AL,CL ADD AL,30H CALL SHOW CALL CURMOVE POP BX MOV AL,BH AND AL,0FH ADD AL,30H CALL SHOW CALL CURMOVE RET SHOWBYTE ENDP SHOWCOLON PROC NEAR MOV AL,':' CALL SHOW CALL CURMOVE RET SHOWCOLON ENDP CURMOVE PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,3 MOV BH,0 INT 10H INC DL MOV AH,2 INT 10H POP DX POP CX POP BX POP AX RET CURMOVE ENDP SHOW PROC NEAR PUSH AX PUSH BX PUSH CX MOV AH,09H MOV BX,attrib MOV CX,1 INT 10H PO

温馨提示

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

评论

0/150

提交评论