[工学]微机原理课程设计-电子钟.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]微机原理课程设计-电子钟

摘要 汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这样用符号代替机器语言的二进制代码,就把机器语言变成了汇编语言。汇编语言能够最大限度的发挥硬件的性能。 本次课程设计我做的是计算机时钟模拟显示程序的设计,要求有1.显示位置:屏幕中央;2.日期显示格式时:分:秒;3.12/24时制可调;4.在显示屏上显示提示语“CURRENT TIME IS:”和当前时间。在这次课程设计中我加入了整点和半点报时功能。使得程序更加完善。 关键字:汇编语言 电子钟 DOS系统 目录设计思路 1 1.1设计任务及要求 1 1.2设计原理 1 1.3 程序流程图 2 2 软件设计 4 2.1 12/24时制程序设计 4 2.2时钟起始时间的设置 5 2.3延时程序设计 6 2.4时间显示程序设计 7 2.5半点、整点报时 9 3 调试过程和运行结果分析 10 3.1调试过程 10 3.2运行结果显示 10 3.3所遇到的问题与解决 14 3.4结果分析 17 4.心得体会 18 参考文献 19 附录 源程序: 20 电子钟 1 设计思路 1.1设计任务及要求 (1)使用汇编语言设计一个运行于计算机的时钟模拟显示软件,软件应实现模拟显示时钟。 (2)根据任务书的要求,可知需要设计的计算机时钟模拟显示程序是基于汇编语言的WINDOWS应用程序设计,程序运行成功后,页面出现数字式的时钟。具体过程如下首先界面中间出现“TIME SYSTEM IS:”提示输入12/24时制。输入以后会出现“CURRENT TIME IS:”提示输入初值时间其格式为:时(XX):分(XX):秒(XX)。接着就会在界面出现所设的初值开始计时其输出格式为XX:XX:XX。并且到半点或整点会报时。。此模拟时钟外观简洁明了,功能和实际运用到的时钟的基本功能一样,用起来非常方便。”结束,并按时、分、秒的顺序送存储器缓冲区内。调用DOS操作系统模块9时,(DS:DX)应指向字符串首址。 程序一旦进入运行,就将不间断地在显示屏显示时间,要想使程序停止运行,可同时在键盘按下Ctrl和Break二键。 5.半点、整点报时 当分达到30时,转到报时程序;当分到0时,转到报时程序;其余的情况都不用跳到报时程序而是正常执行输出。 1.3 程序流程图 根据以上程序流程相应的说明,在程序编写前,我们应先画出程序流程图本程序的流程图如图1所示。 图1 程序流程图 2 软件设计 2.1 12/24时制程序设计 很明显要想实现此功能必须使用分支结构程序,调用DOS操作系统模块1,输入12/24时制的第一位即高位,再调用DOS操作系统模块1输入12/24时制的第二位即低位。然后将输入的两个ASCII码值转换为压缩BCD码存入定义的变量X中,用于与12H比较并跳转到相应进制显示的程序中。其程序片段如下: …… MOV AH,1??? ;DOS功能模块,从键盘输入字符 ? INT 21H MOV BL,AL ;将输入的数据12,24转换为压缩BCD码存放在变量S中 AND BL,0FH SHL BL,1 SHL BL,1 SHL BL,1 SHL BL,1 MOV AH,1 INT 21H MOV CL,AL AND CL,0FH OR CL,BL MOV S,CL MOV AH,1 ;输入最后一个回车字符 INT 21H …… CMP S,12H JNZ AGAIN1 ;24进制则跳转到AGAIN1执行24进制显示的程序 …… 2.2时钟起始时间的设置 先调用设置光标子程序和清除屏幕子程序,调用DOS操作系统模块9,在显示屏上显示提示符“CURRENT TIME IS:”,再调用DOS操作系统模块10,提示要输入时钟的起始时间,输入时间的格式是“时(XX):分(XX):秒(XX)”。输入的时间以字符串形式放在已定义的存储器缓冲区,继而调用TRAN1和MUL10子程序,将存放在存储器缓冲区的ASCII字符转换成压缩BCD码,并将时、分、秒的值放置在寄存器CH、DH、DL中。其程序片段如下: …… MOV DX,OFFSET CT??? ;DOS功能模块,显示字符串,提示从键盘输入 ??MOV AH,9 ??INT 21H????????? ??MOV DX,OFFSET BUFFER ??MOV AH,10??? ;DOS功能模块,从键盘输入字符串到缓冲区 ??INT 21H MOV BX,OFFSET BUFFER+2 CALL TRAN1 ;时转换为BCD数 INC BX INC BX CALL TRAN1

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档