资源描述:
《汇编语言课程设计——————电子时钟的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西安工业大学课程设计用纸课程名称:汇编语言程序设计课程英文名称:PROGRAMMINGBYASSEMBLELANGUAGE一.设计目的:1. 理解掌握定时/计数器和中断的使用方法。2. 掌握微机常用的输入输出方式及接口技术。3. 掌握一定的汇编语言知识,培养自己的动手操作能力。4. 学习程序设计的基本思路和方法。二.程序内容:第一部分:定义显示界面。第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。第三部分:将存在系统内存区的时间数用显示字符
2、串的形式显示出来。第四部分:获取键盘的按键值,以ESC键退出系统返回DOS。三.程序设计原理:首先在数据段开辟一显示缓冲区,用来存储系统时间。调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。调用DOS字符串显示功能将时间显示西安工业大学课程设计用纸出来。并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统
3、的时间,这样就形成了会跳动的电子钟了。调用延时TIME延时中断服务程序,累加到存放秒值的寄存器DL中,并进行十进制调整。在累加的过程中,不断地对时、分、秒值进行比较,秒不能等于60,分不能等于60,时不能等于24。秒等于限制值时,则使秒值为0分值加1;分等于限制值时,则使分值为0时值加1;时等于限制值时,则使时值为0;时、分、秒值都不超过限制值时,就转显示屏输出。时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序。 利用BIOS
4、S设计窗口,选择适当的背景和前景等,使屏幕显示更加完美。程序一旦进入运行,就将不间断地在显示屏显示时间,要想程序停止运行,可同时在键盘按下ESC键返回DOS系统。四.程序流程图如下:DATA SEGMENT ;设置数据段 BUF1 DB'THETIMEISNOW:$' BUF5 DB' @@@@@ ^^^^^^^ @@@@@@ $' BUF6 DB' &&&&&& ####### &&&&&& $' BU
5、F7 DB'00>oo<00$' BUF8 DB'00(::)00$' BUF9 DB'00~~00$' BUF10 DB'00!!00$' BUF3 DB'CLASS:040402206$' BUF4 DB'NAME:hulingwei $' BUF2 DB10 DB10DUP(?) DATAENDS STACK SEGMENTSTACK ;设置堆栈段 DB100DUP(?
6、) STACKENDS CODE SEGMENT ;设置代码段 ASSUMECS:CODE,DS:DATA,SS:STACK CURSOR MACROROW,CLM ;设置光标位置 MOVAH,2 MOVBH,0 MOVDH,ROW MOVDL,CLM INT10H
7、 ENDM WIN MACROROWL,CLML,ROWR,CLMR,COLOR ;设置窗口,位置,颜色 MOVAH,6 MOVAL,0 MOVCH,ROWL MOVCL,CLML MOVDH,ROWR MOVDL,CLMR MOVBH,COLOR INT10H ENDM ASCBCDMACROREG
8、 INCBX INCBX MOVREG,[BX] MOVCL,4 SHLREG,CL INCBX MOVAL,[BX] ANDAL,0FH