资源描述:
《汇编汇编语言课程设计-电子时钟》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计任务书专业计算机科学与技术班级姓名设计起止日期设计题目:电子吋钟设计任务(主要技术参数):[1]硬件环境:CPU:1.6GH以上内存:4GB以上[2]软件环境:操作系统:Windows8运行环境:masm.Exe[3]设计任务:要求有显示位置:屏幕中央;FI期显示格式”时:分:秒”;12/24时制可调;在显示屏上显示提示语“CURRENTTIME1ST和当询吋间;整点和半点报吋功能。指导教师评语:成绩:签字:年月日电子时钟1・课程设计目的汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号
2、或标号代替地址码。这样用符号代替机器语言的二进制代码,就把机器语言变成了汇编语言。汇编语言能够最大限度的发挥硬件的性能。本次课程设计我做的是计算机时钟模拟显示程序的设计,要求有显示位置:屏幕中央;口期显示格式”时:分:秒J12/24时制可调;在显示屏上显示提示语-CURRENTTIME1ST和当前吋间。在这次课程设计中我加入了整点和半点报时功能。使得程序更加完善。2•设计思路2.1设计任务及要求(1)使用汇编语言设计一个运行于计算机的时钟模拟显示软件,软件应实现模拟显示时钟。(2)根据任务书的耍求,可知需耍设计的计算机时钟
3、模拟显示程序是基于汇编语言的WINDOWS应用程序设计,程序运行成功后,页面出现数字式的时钟。具体过程如下首先界面屮间岀现“TIMESYSTEM1ST提示输入12/24时制。输入以后会出现“CURRENTTIME1ST提示输入初值时间其格式为:时(XX):分(XX):秒(XX)。接着就会在界面出现所设的初值开始计时其输出格式为XX:XX:XXo并且到半点或整点会报吋。。此模拟吋钟外观简洁明了,功能和实际运用到的时钟的基木功能一样,用起來非常方便、快捷。2.2设计原理1.12/24时制的设置调用DOS操作系统模块1,输入12
4、/24时制的第一位即高位,再调用DOS操作系统模块1输入12/24时制的第二位即低位。然后将输入的两个ASCII码值转换为压缩BCD码存入定义的变量X屮,用于与12H比较并跳转到相应进制显示的程序中。2.时钟起始时间的设置先调用设置光标了程序和清除屏幕了程序,调用DOS操作系统模块9,在显示屏上显示提示符“CURRENTTIMEIS:”,再调用DOS操作系统模块10,提示要输入时钟的起始时间,输入时间的格式是“时(XX):分(XX):秒(XX)”。输入的吋间以字符串形式放在已定义的存储器缓冲区,继而调用TRAN1和MUL1
5、0了程序,将存放在存储器缓冲区的ASCII字符转换成压缩BCD码,并将时、分、秒的值放置在寄存器CH、DH、DL中。1.延时程序调用TIME延时IS子程序(并未精确计算),累加到存放秒值的寄存器DL中,并进行十进制调整。在累加的过程中,不断地对时、分、秒进行比较,秒不能等于60,分不能等于60,时不能等于12或24.秒等于限值时,则使秒值为0并且分值加1;时等于限值时,先置零然后就转显示屏输岀。2.时间显示调用DOS操作系统模块9,可用來显示存储器内字符串。由于显示的字符串必须为ASCII编码,因为耍调用TRAN2转换子程
6、序将寄存器CH、DH、DL内压缩BCD码字符串转换成ASCII码字符串,字符串最后以字符“狎结束,并按时、分、秒的顺序送存储器缓冲区内。调用DOS操作系统模块9时,(DS:DX)应指向字符串首址。程序一旦进入运行,就将不间断地在显示屏显示时间,要想使程序停止运行,可同时在键盘按下Ctrl和Break二键。5•半点、整点报时当分达到30时,转到报时程序;当分到0时•,转到报时程序;其余的情况都不用跳到报时程序而是正常执行输出。2.3程序流程图根据以上程序流程相应的说明,在程序编写前,我们应先画出程序流程图本程序的流程图如图1
7、所示。开始显示提示语键盘输入吋制显示提示语键盘输入初始时间时间数据转换为BCD数BCD数转换为压缩BCD数时TCH,分TDH,秒TdL字符显示图1程序流程图2.4程序设计2.4.112/24时制程序设计很明显耍想实现此功能必须使用分支结构程序,调用DOS操作系统模块1,输入12/24时制的第一位即高位,再调用DOS操作系统模块1输入12/24时制的第二位即低位。然后将输入的两个ASCII码值转换为压缩BCD码存入定义的变量用于与12H比较并跳转到相应进制显示的程序中。其程序片段如下:MOVAHJ;DOS功能模块,从键盘输入
8、字符INT21HMOVBL,AL屮ANDBL,0FHSHLBL,1SHLBL,1SHLBL,1SHLBL,1MOVAH,1INT2IHMOVCL,ALANDCL,0FHORCL,BLMOVS,CLMOVAH,1INT21H;将输入的数据12,24转换为压缩BCD码存放在变量S;输入最后一个冋车字符CMP