欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    汇编语言课程设计——————电子时钟的设计.doc

    • 资源ID:66768380       资源大小:39.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汇编语言课程设计——————电子时钟的设计.doc

    西安工业大学课程设计用纸 课程名称:汇编语言程序设计课程英文名称:PROGRAMMING BY ASSEMBLE LANGUAGE一设计目的:1.       理解掌握定时/计数器和中断的使用方法。2.       掌握微机常用的输入输出方式及接口技术。3.       掌握一定的汇编语言知识,培养自己的动手操作能力。4.       学习程序设计的基本思路和方法。二程序内容:第一部分:定义显示界面。第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。第三部分:将存在系统内存区的时间数用显示字符串的形式显示出来。第四部分:获取键盘的按键值,以ESC键退出系统返回DOS。三程序设计原理:首先在数据段开辟一显示缓冲区,用来存储系统时间。调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号$。调用DOS字符串显示功能将时间显示 西安工业大学课程设计用纸 出来。并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。调用延时TIME延时中断服务程序,累加到存放秒值的寄存器DL中,并进行十进制调整。在累加的过程中,不断地对时、分、秒值进行比较,秒不能等于60,分不能等于60,时不能等于24。秒等于限制值时,则使秒值为0分值加1;分等于限制值时,则使分值为0时值加1;时等于限制值时,则使时值为0;时、分、秒值都不超过限制值时,就转显示屏输出。时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序。       利用BIOSS设计窗口,选择适当的背景和前景等,使屏幕显示更加完美。程序一旦进入运行,就将不间断地在显示屏显示时间,要想程序停止运行,可同时在键盘按下ESC键返回DOS系统。四程序流程图如下:DATA    SEGMENT                                         ;设置数据段   BUF1    DB 'THE TIME IS NOW: $'   BUF5    DB '         $'   BUF6    DB ' &&&&&&    #     &&&&&& $'   BUF7    DB ' 00 >o o < 00 $'   BUF8    DB ' 00 (:) 00 $'   BUF9    DB ' 00 00 $'   BUF10   DB ' 00 ! 00 $'   BUF3    DB 'CLASS: $'   BUF4    DB 'NAME:hu ling wei $'   BUF2    DB 10           DB 10 DUP(?)           DATA ENDS   STACK   SEGMENT STACK                        ;设置堆栈段           DB 100 DUP(?)           STACK ENDS   CODE    SEGMENT                               ;设置代码段           ASSUME CS:CODE,DS:DATA,SS:STACK   CURSOR  MACRO ROW,CLM                          ;设置光标位置           MOV AH,2            MOV BH,0            MOV DH,ROW            MOV DL,CLM            INT 10H            ENDM    WIN    MACRO ROWL,CLML,ROWR,CLMR,COLOR         ;设置窗口,位置,颜色           MOV AH,6            MOV AL,0            MOV CH,ROWL           MOV CL,CLML           MOV DH,ROWR           MOV DL,CLMR           MOV BH,COLOR           INT 10H           ENDM           ASCBCD MACRO REG           INC BX           INC BX           MOV REG,BX           MOV CL,4           SHL REG,CL           INC BX           MOV AL,BX           AND AL,0FH           OR REG,AL           ENDM           BCDASC MACRO REG           INC BX           INC BX           MOV AL,REG           MOV CL,4           SHR AL,CL           OR AL,30H           MOV BX,AL           INC BX           MOV AL,REG           AND AL,0FH           OR AL,30H           MOV BX,AL           ENDM   INCBCD  MACRO REG,COUNT             ;BCD数加1           MOV AL,REG           INC AL           DAA           MOV REG,AL           CMP AL,COUNT           JNZ DISPY           MOV REG,0           ENDM   STRDSPY MACRO ADRS           LEA DX,ADRS           MOV AH,9            INT 21H           ENDM           CLOCK PROC FAR   START:  PUSH DS            ;显示字符串           MOV AX,0           PUSH AX           MOV AX,DATA           MOV DS,AX            WIN 0,0,24,79,7           WIN 6,9,18,70,B      ;设置窗口           CURSOR 6,25                  ;设置光标           STRDSPY BUF5                 ;显示字符串           CURSOR 7,25                  ;设置光标           STRDSPY BUF6           CURSOR 8,25           STRDSPY BUF7           CURSOR 9,25           STRDSPY BUF8           CURSOR 10,25           STRDSPY BUF9           CURSOR 11,25           STRDSPY BUF10           CURSOR 6,9           STRDSPY BUF3           CURSOR 7,9           STRDSPY BUF4           CURSOR 14,32           STRDSPY BUF1           CURSOR 15,36           LEA DX,BUF2           MOV AH,0AH           INT 21H                       ;从键盘接收当前时间  LEA BX,BUF2           ASCBCD CH                     ;小时值ASCII到BCD                                         ;存CH           ASCBCD DH                     ;分值ASCII到BCD                                         ;存DH           ASCBCD DL                     ;秒值ASCII到BCD                                         ;存DL    TIMER: CALL DELY                     ;延时1秒           INCBCD DL,60H                 ;(DL)+1,并判                                          ;大于等于60?           INCBCD DH,60H                 ;(DH)+1,并判                                          ;大于等于60?           INCBCD CH,24H                 ;(CH)+1,并判                                          ;大于等于60?    DISPY: LEA BX,BUF2            BCDASC CH                     ;时值BCD转到ASCII           BCDASC DH                     ;分值BCD转到ASCII           BCDASC DL                     ;秒值BCD转到ASCII           INC BX           MOV AL,'$'           MOV BX,AL           PUSH DX            CURSOR 15,36                  ;设置光标           STRDSPY BUF2+2                ;显示时,分,秒值           POP DX           MOV AH,01H           INT 16H           CMP AL,1BH           JZ X           XOR AL,AL           JMP TIMER         X:MOV AH,4CH           INT 21H           RET     DELY   PROC          PUSH  CX          PUSH CX          MOVE  4600   X1: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      开始显示提示符从键盘上接收当前时,分,秒时,分,秒值ASCII码转换为BCD码,分别存入CH,DH,DL延时1秒DL加1,DAA调整(DH)>=60H?DL清零,DH加1,DAA调整(DH)>=60H?DH清零,CH加1,DAA调整(CH)>=24H?CH清零时,分,秒值BCD码转换为ASCII码,输出显示六调试过程: 1)编译源文件,命名为HULINGWEI。ASM 2)采用命令格式。MASM HULINGWEI。ASM将生成一个OBJ文件,检查源程序中的错误,并改正。3)键入连接命令:LINK HULINGWEI。OBJ,再次键入HULILNGWEI回车,即可显示结果。 4)时间在运行中出现了不准确性,对程序的循环次调整后,时间能正常运行。七时遇到的问题及解决方法    在课程设计中遇到的最大的困难是如何产生中断,对中断向量表的装载还比较模糊,对中断的初始化、具体设置、中断返回还不是很清楚,程序设计一度陷入停滞状态,不知如何是好。    我们又重新翻阅了杨素行主编的微型计算机系统原理及应用及周明德主编的微型计算机的原理及应用,重点研究了中断,通过对这一章的学习,我们终于对中断有了详细的认识,在设计程序 西安工业大学课程设计用纸 时也容易了很多。八心得体会    这是我第一次用汇编语言来设计一个小程序,历时一周终于完成,其间有不少感触。    1借鉴    鲁迅先生曾说过要"拿来",对,在这次课程设计中,就要"拿来"不少子程序,比如将ASCII码转换成BCD码,将BCD码转换成压缩BCD码,将压缩BCD码转换成ASCII码等,这些子程序的设计是固定的,因此可以直接从指导资料中调用,至于设置光标的子程序,只需要修改几个参数就可以,这大大方便了我们的设计,为我们节省了很多的时间。    2合作    这个时代不欢迎孤独的英雄,因为一个人的能力毕竟有限,惟有善于合作的团队才能发挥出最大的能量。在这次课程设计中,我真正体会到了合作的重要性,我们这个班级在这次程序设计中总在一起,从要实现的功能到流程图的绘制,从程序的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝聚了我们班级的力量。在遇到棘手的问题时,我们总是一起讨论,一起把问题解决;在 西安工业大学课程设计用纸 我遇到不很明白的程序时,是同学们耐心地给我讲解;在我面对有错的程序不知所措时,也是同学们帮我一步步地调试,耐心的指导,直至程序能正常运行。    3指导老师提供的资料很重要    这次课程设计的大部分程序,都可以在王老师提供的资料中找到,这对我们的程序设计很有帮助,从这些资料中,我们可以看出这个时钟程序的基本流程,修改一些程序就可以实现这个时钟的基本功能,添加一些程序就可以实现这个时钟的附加功能,可以说,如果没有王老师提供的源程序,我们将面临很大的困难。    4考核方式很正规    在程序设计完之后,不仅仅是交上设计报告就可以过关,还必须要经过王老师得面试。杨老师在面试时就我们编写的程序提问了几个问题,以考察我们是否真正了解了这个程序,面是很严格,表现不好就不能过关。在这次面试中,我认识到自己对一些细节还不是很清楚,还有待于进一步提高;通过这次课程设计,我明白了做任何事情都要脚踏实地,认真钻研,严格谨慎。    向在这次课程设计中给与指导和帮助的王老师表示衷心的感谢! 九 参考文献。周明德。微型计算机原理及应用。北京。清华大学出版社。2002扬素行。微型计算机系统原理及应用。北京。清华大学出版社。2004

    注意事项

    本文(汇编语言课程设计——————电子时钟的设计.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开