汇编语言课程设计——————电子时钟的设计_第1页
汇编语言课程设计——————电子时钟的设计_第2页
汇编语言课程设计——————电子时钟的设计_第3页
汇编语言课程设计——————电子时钟的设计_第4页
汇编语言课程设计——————电子时钟的设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上 西安工业大学课程设计用纸 课程名称:汇编语言程序设计课程英文名称:PROGRAMMING BY ASSEMBLE LANGUAGE一设计目的:1.       理解掌握定时/计数器和中断的使用方法。2.       掌握微机常用的输入输出方式及接口技术。3.       掌握一定的汇编语言知识,培养自己的动手操作能力。4.     

2、0; 学习程序设计的基本思路和方法。二程序内容:第一部分:定义显示界面。第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。第三部分:将存在系统内存区的时间数用显示字符串的形式显示出来。第四部分:获取键盘的按键值,以ESC键退出系统返回DOS。三程序设计原理:首先在数据段开辟一显示缓冲区,用来存储系统时间。调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号$。调用DOS字符串显示功能将时间显示 西安工业大学课程设计用纸 出来。并调用屏幕I/O

3、中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。调用延时TIME延时中断服务程序,累加到存放秒值的寄存器DL中,并进行十进制调整。在累加的过程中,不断地对时、分、秒值进行比较,秒不能等于60,分不能等于60,时不能等于24。秒等于限制值时,则使秒值为0分值加1;分等于限制值时,则使分值为0时值加1;时等于限制值时,则使时值为0;时、分、秒值都不超过限制值时,就转显示屏输出。时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超

4、过一秒,所以本程序调用了一段较精确的时间延迟程序。       利用BIOSS设计窗口,选择适当的背景和前景等,使屏幕显示更加完美。程序一旦进入运行,就将不间断地在显示屏显示时间,要想程序停止运行,可同时在键盘按下ESC键返回DOS系统。四程序流程图如下:DATA    SEGMENT                  

5、0;                      ;设置数据段   BUF1    DB 'THE TIME IS NOW: $'   BUF5    DB '         

6、$'   BUF6    DB ' &&&&&&    #     &&&&&& $'   BUF7    DB ' 00 >o o < 00 $'   BUF8    DB ' 00

7、 (:) 00 $'   BUF9    DB ' 00 00 $'   BUF10   DB ' 00 ! 00 $'   BUF3    DB 'CLASS: $'   BUF4    DB 'NAME:hu ling wei $'   BUF2

8、0;   DB 10           DB 10 DUP(?)           DATA ENDS   STACK   SEGMENT STACK              

9、0;         ;设置堆栈段           DB 100 DUP(?)           STACK ENDS   CODE    SEGMENT        &#

10、160;                      ;设置代码段           ASSUME CS:CODE,DS:DATA,SS:STACK   CURSOR  MACRO ROW,CLM   

11、0;                      ;设置光标位置           MOV AH,2            MOV BH,0     

12、       MOV DH,ROW            MOV DL,CLM            INT 10H            ENDM    WIN 

13、60;  MACRO ROWL,CLML,ROWR,CLMR,COLOR         ;设置窗口,位置,颜色           MOV AH,6            MOV AL,0          

14、  MOV CH,ROWL           MOV CL,CLML           MOV DH,ROWR           MOV DL,CLMR          &

15、#160;MOV BH,COLOR           INT 10H           ENDM           ASCBCD MACRO REG           INC BX&

16、#160;          INC BX           MOV REG,BX           MOV CL,4           SHL REG,CL    

17、;       INC BX           MOV AL,BX           AND AL,0FH           OR REG,AL       

18、60;   ENDM           BCDASC MACRO REG           INC BX           INC BX           MOV

19、 AL,REG           MOV CL,4           SHR AL,CL           OR AL,30H           MOV BX,AL  &#

20、160;        INC BX           MOV AL,REG           AND AL,0FH           OR AL,30H     

21、      MOV BX,AL           ENDM   INCBCD  MACRO REG,COUNT             ;BCD数加1           MOV AL,R

22、EG           INC AL           DAA           MOV REG,AL           CMP AL,COUNT   

23、        JNZ DISPY           MOV REG,0           ENDM   STRDSPY MACRO ADRS           LEA DX,ADRS 

24、;          MOV AH,9            INT 21H           ENDM           CLOCK PROC FAR   START:  P

25、USH DS            ;显示字符串           MOV AX,0           PUSH AX           MOV AX,DATA  

26、         MOV DS,AX            WIN 0,0,24,79,7           WIN 6,9,18,70,B      ;设置窗口        

27、   CURSOR 6,25                  ;设置光标           STRDSPY BUF5              &

28、#160;  ;显示字符串           CURSOR 7,25                  ;设置光标           STRDSPY BUF6   &

29、#160;       CURSOR 8,25           STRDSPY BUF7           CURSOR 9,25           STRDSPY BUF8     

30、;      CURSOR 10,25           STRDSPY BUF9           CURSOR 11,25           STRDSPY BUF10      

31、     CURSOR 6,9           STRDSPY BUF3           CURSOR 7,9           STRDSPY BUF4        

32、   CURSOR 14,32           STRDSPY BUF1           CURSOR 15,36           LEA DX,BUF2         

33、60; MOV AH,0AH           INT 21H                       ;从键盘接收当前时间  LEA BX,BUF2         

34、60; ASCBCD CH                     ;小时值ASCII到BCD                        

35、0;                ;存CH           ASCBCD DH                     ;分

36、值ASCII到BCD                                         ;存DH      

37、0;    ASCBCD DL                     ;秒值ASCII到BCD                      

38、                   ;存DL    TIMER: CALL DELY                     ;延时1秒  

39、;         INCBCD DL,60H                 ;(DL)+1,并判                     

40、;                     ;大于等于60?           INCBCD DH,60H               &

41、#160; ;(DH)+1,并判                                          ;大于等于60?   &

42、#160;       INCBCD CH,24H                 ;(CH)+1,并判                       

43、                   ;大于等于60?    DISPY: LEA BX,BUF2            BCDASC CH           

44、;          ;时值BCD转到ASCII           BCDASC DH                     ;分值BCD转到ASCII   

45、0;       BCDASC DL                     ;秒值BCD转到ASCII           INC BX       

46、0;   MOV AL,'$'           MOV BX,AL           PUSH DX            CURSOR 15,36         &

47、#160;        ;设置光标           STRDSPY BUF2+2                ;显示时,分,秒值          &#

48、160;POP DX           MOV AH,01H           INT 16H           CMP AL,1BH           JZ X 

49、;          XOR AL,AL           JMP TIMER         X:MOV AH,4CH           INT 21H     &

50、#160;     RET     DELY   PROC          PUSH  CX          PUSH CX          MOVE  4600   X1:

51、DEC   CX,0FFFFH    X2:DEC   CX     JNE  X2    DEC  AX    JNE  X1   POP  AX    POP  CX     RET     DELY  ENDP    CLOCK   ENDP   CODE  ENDP        END   START 

温馨提示

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

评论

0/150

提交评论