西安航空职业技术学院.docx_第1页
西安航空职业技术学院.docx_第2页
西安航空职业技术学院.docx_第3页
西安航空职业技术学院.docx_第4页
西安航空职业技术学院.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

西安建筑科技大学华清学院课程设计(论文)课程名称: 微型计算机原理与接口技术 题 目: 基于汇编语言的“电子时钟”模拟显示程序 院 (系): 华清学院机械电子工程系 专业班级: 电信0902 姓 名: 李浩瀚 学 号: 40 指导教师: 张爱萍 2011年 1月 11 日引 言微机原理和接口技术是一门实践性强的学科,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。在进行课程设计的过程中,可以让学生体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。本次课程设计主要依靠软件来模拟仿真,没有硬件设备。其基本目的是:培养理论联系实际的正确设计思路,训练综合运用已经学过的理论和实际知识去分析和解决实际问题的能力。帮助学生全面消化已学的相关课程内容,深刻理解微机原理与接口技术课程的内涵,从硬件的角度掌握微机的组成、接口部件的结构和彼此之间的联系,从软件的角度理解和应用微机系统的运行机制。进行基本技能训练。例如编程、上机、调试硬件和软件系统。课程设计的任务是使学生利用学校现有条件,自己动手设计完成一个典型的应用小系统。目 录一设计任务1二系统设计方案及原理1三程序的调试及运行结果23四收获与心得体会26五参考文献27基于汇编语言的“电子时钟”模拟显示程序第一部分、设计任务基于汇编语言的“电子时钟”模拟显示程序第二部分、系统设计方案及原理 1. 设计方案及原理2. 程序设计流程图程序设计主要依靠子程序的不断调用来实现不同的功能,从而完成霓虹灯效果的显示。流程图如下图一 图1程序流程图 3. 电子时钟程序data segmentmess1 db *ASM ASSIGNMENT* ,0ah,0dh db ,0ah,0dh db *ELECTRONIC CLOCK* ,0ah,0dh db ,0ah,0dh db ,0ah,0dh db *Press C or c to correct the time* ,0ah,0dh db ,0ah,0dh db *Press ESC button to exit* ,0ah,0dh,$tn db Please input the new time (hh:mm:ss):,0dh,0ah,$mess2 db *Time is:,0ah,0dh,$t_buff db 40 ;在数据段开一段时间显示缓冲区db ?db 40 dup (?)hor db ?min db ?sec db ?fg db 0data endsstack segment db 100 dup(?)stack endscode segment assume cs:code,ss:stack,ds:data ;确定各个逻辑段的类型start: call clear ;调用清屏子程序display: ;时间显示部分 mov ax,data mov ds,ax mov bx,offset t_buff ;送t_buff的偏移地址到BX mov ah,2ch ;调用DOS时间调用功能,功能号:2cH,小时,分钟,秒数分别保存在CH,CL,DH中 int 21h mov al,ch ;小时数设定 mov ah,0 call bctd ;调用进制转换子程序 push ax and al,0f0h ;选取al高四位 mov cl,4 ;设置右循环的次数 rol al,cl ;右循环 or al,30h ;加30h得到ACSII码 mov bx,al ;将得到的结果送到t_buff缓冲区 inc bx ;BX自加1,指针指向下一个缓冲区的下一个地址 pop ax and al,0fh ;选取低四位 or al,30h mov bx,al ;将转换后的低四位值送入缓冲区的第二个地址 inc bx ;- mov al,: ;显示分隔符号 mov bx,al inc bx ;- mov ah,2ch int 21h mov al,cl ;分钟数设定 mov ah,0 call bctd push ax and al,0f0h mov cl,4 rol al,cl or al,30h mov bx,al inc bx pop ax and al,0fh or al,30hmov bx,al inc bx ;- mov al,: ;显示分隔符号 mov bx,al inc bx ;- mov ah,2ch ;秒设定 int 21h mov al,dh mov ah,0 call bctd push ax and al,0f0h mov cl,4 rol al,cl or al,30h mov bx,al inc bx pop ax and al,0fh or al,30h mov bx,al inc bx ;- mov al,$ ;将字符串的结束位送至显示缓冲区的最后一位 mov bx,al ;- push bx ;置光标位置 ,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX mov ah,2 mov bh,0 mov dh,17 mov dl,41 int 10h pop bx lea dx,t_buff ;送t_buff偏移地址到DX,并调用DOS显示功能,功能号为9 mov ah,9 int 21h push bx ;置光标位置 mov ah,2 mov bh,0 mov dh,0 mov dl,0 int 10h pop bx lea dx,mess1 mov ah,9 int 21h push bx ;置光标位置 mov ah,2 mov bh,0 mov dh,17 mov dl,21 int 10h pop bx lea dx,mess2 mov ah,9 int 21h ;- call delay1 mov ah,1 ;调用键盘I/O中断功能号1,获取键值到AL int 16h cmp al,c ;是c键,转到时间修改程序 je Cor cmp al,C ;是C键,转到时间修改程序 je Cor cmp al,1bh jz quit ;是ESC键,退出程序 jmp display quit: mov ah,4ch ;程序终止功能号 int 21h ret Cor: call correct ;调用时间修改子程序;-bctd proc near ;二进制转BCD码子程序;AX输入参数;AX输出参数,存放调整过的BCD码 mov dx,ax mov ax,0 mov cx,16 ;设循环次数bctd1: clc ;清进位标志C rcl dx,1 ;通过进位的循环右移 adc al,al ;带进位加法 daa ;加法的十进制调整 xchg al,ah ;交换高、低八位 adc al,al daa xchg al,ah loop bctd1 ;循环次数保存在CX里 retbctd endp;-clear proc near push ax ;入栈保护现场 push bx push cx push dx mov ax,0600h ;ah=06(滚动)al=00(全屏空白) mov bh,3eh ;设置背景颜色(2)和前景颜色(e) sub cx,cx mov dx,5f5fh int 10h pop dx ;出栈恢复现场 pop cx pop bx pop ax retclear endp;-delay1 PROC ;精确延迟时间子程序 MOV DX,04ffh ;循环次数up: XOR CX,CXa: NOP LOOP a DEC DX JNZ up RETdelay1 ENDP;- correct proc ;时间修改子程序 call input ;调用键盘输入子程序输入数据 mov ch,hor mov cl,min mov dh,sec and dl,0h mov ah,2dh int 21h jmp start ret correct endp;- input proc ;键盘输入子程序 push ax ;入栈保护数据 push bx push cx push dx pushfmov dx,offset tn ;显示修改时间的格式提示mov ah,09hint 21hmov dx,offset t_buff ;数据缓冲区的数据输入mov ah,0ahint 21hand dx,0hlea bx,t_buffinc bxinc bxmov dh,bxsub dh,30hinc bxmov dl,bxsub dl,30hmov cl,10mov al,dhmul cladd al,dlmov ch,almov hor,alinc bxinc bxmov dh,bxsub dh,30hinc bxmov dl,bxsub dl,30hmov cl,10mov al,dhmul cladd al,dlmov cl,almov min,alinc bxinc bxmov dh,bxsub dh,30hinc bxmov dl,bxsub dl,30hmov cl,10mov al,dhmul cladd al,dlmov dh,almov sec,alpopf ;出栈恢复数据pop dx pop cxpop bxpop axretinput endp;-code ends end start第三部分、程序的调试以及运行结果将本程序在在MF2KP环境下输入汇编程序,编译、连接运行便可得到本次课程设计所得到的电子时钟的效果显示。如下图所示:第四部分、收获与心得体会两周的课设就这样匆匆结束了,突然感觉时间变得如此之短,而同时,所需要掌握、学习的东西又那么多。微机原理与接口是一门很有趣的课程,任何一个计算机系统都是一个复杂整体,学习计算机原理是要设计到整体的每一部分,讨论某一部分原理时又要设计到其他部分的工作原理。这样一来,不仅不能再短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新的问题”的循环中,直到课程结束时,才算基本弄懂本次课设的原理。在这两周里我学到了许多的知识,通过编程前对此次课程设计任务的分析,以及原理和方案的设计,都充分的锻炼了我的逻辑思维能力,通过对汇编语言中的顺序、选择、循环、调用以及各种强制跳转或者条件转移指令的应用,巩固了所学的知识,让我觉得获益匪浅,首先,通过自己对程序的不断推敲修改,加深了自己对汇编语言的学习,更加熟悉了汇编语言中的各种指令的应用,巩固了一学期所学的东西;其次,在此次课程设计中我们也遇到了许多的问题,但是我们通过在小组之间的讨论及在图书馆和网上查询的资料,还有向老师求助都将其一一解决了,也锻炼了我们的独立思考能力及实际动手能力;再次,我们也学到了只有将理论及实践联系起来,才能得到正确的结果,才能更扎实的学到知识,空想永远不会得到想要的结果,只有通过实践以及不断的实践,才能得到与理论相符合的结果;最后,也锻炼了我们的团结协作精神,本次课程设计中,我们充分的发挥了这种精神,所以课程设计任务才能更圆满的完成。课程设计是一个锻炼我们综合能力

温馨提示

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

评论

0/150

提交评论