微机原理与接口课程设计Word格式文档下载.docx

上传人:b****5 文档编号:16345616 上传时间:2022-11-23 格式:DOCX 页数:20 大小:66.93KB
下载 相关 举报
微机原理与接口课程设计Word格式文档下载.docx_第1页
第1页 / 共20页
微机原理与接口课程设计Word格式文档下载.docx_第2页
第2页 / 共20页
微机原理与接口课程设计Word格式文档下载.docx_第3页
第3页 / 共20页
微机原理与接口课程设计Word格式文档下载.docx_第4页
第4页 / 共20页
微机原理与接口课程设计Word格式文档下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

微机原理与接口课程设计Word格式文档下载.docx

《微机原理与接口课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口课程设计Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。

微机原理与接口课程设计Word格式文档下载.docx

1.概述

1.1课程设计的目的

对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。

汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。

因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。

培养学生综合运用所学知识独立完成汇编程序课题的能力。

使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。

提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。

培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

1.2课程设计的任务

通过微型计算机原理与接口技术的课程设计可以让我们学生更深一步的了解课本知识,掌握编译器的编译环境,从而能对自己所写的编程进行不断的改进,最终达到我们想要的结果。

课程设计不但培养了我们的动手能力,还激发了我门对课外知识的兴趣,我们可以从图书馆,找到相关的书籍进行学习,也可以上网查阅到我们想要的东西。

学到我们在书本上学不到的东西,从而开阔我们的视野。

1.3设计的题目

用汇编语言编写一个时钟程序,再微机屏幕上显示当前时间的年、月、日、时、分、秒。

在程序起动后可键入当前时间,回车键按下后,开始计时,微机屏幕上显示当前时间XXXX年XX月XX日XX时XX分XX秒。

并且可以进行对时间的修改等操作。

1.4设计要求

(1)了解并掌握汇编语言设计的一般方法,具备初步的独立分析的设计能力;

(2)初步掌握软件开发过程的问题分析、系统分析、程序编码、测试运行等基本方法和能力;

(3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力。

(4)最后掌握用汇编语言编写程序,画出程序流程图,对程序进行调试。

2.总体方案设计

2.1主程序设计思想

此设计程序要求结构化的显示系统的时间和日期。

程序要求能对时间的年月日和时分秒进行修改并有退出选项的功能。

我们可以设计三个选项以供用户选择:

B对年月日进行修改,C对时分秒进行修改和Esc退出程序。

三个选项分别可以用三个过程实现其功能。

2.2设计原理说明

(1)日期时间显示

先在数据端开一段显示缓冲区,用来存储系统时间。

调用DOS中断,得到系统当前时间,并将其二进制转换成ASCII码。

再分别将小时数、分钟数、秒数存入显示缓冲区。

(2)日期时间修改

在修改时间的时候调用键盘输入输出程序实现日期时钟的修改功能,然后存入结束字符‘$’。

调用DOS字符串显示功能将日期时间显示在显示器上,调用屏幕的I/O中断,定位光标的开始位置,将时间显示在预先定义好的位置。

(3)延时程序

把程序设计成用刷新的方式来不断获取系统的时间,这样就有了会一秒一秒走动的电子时钟。

在此过程需要用到延时程序,所以我们把延时程序单独做成一个子程序,然后在需要的时候调用它,使得时间的显示程序更加精炼。

2.3设计应用的环境

硬件环境:

PC机。

软件环境:

Masm2009。

3.系统分析

看时间已经是我们每天都在干的事情,而且我们身边的电子表,时钟表,手表等都用了不同的方式在显示着时间,这次的课程设计正是我们身边这些时间显示的结合,我们既可以看着它走动,也可以对它进行修改,并且它显示的时间与我们的电脑是同步的,当然你改动它的值,电脑上的时间也会改动。

所以这个设计对我来说是意义很大的。

它既用到了我们微机原理所学的知识,也用到了编译器中涉及到的知识,既可以让我们看见它的实质,也可以从中学到很多编译方面的知识,为我们以后的学习打下了基础。

有了一个小小的设计,我们就会迈进一大步,了解更深的知识。

此次设计也用到了DOS系统方面的知识,让我门对知识有了多角度的认识。

4.软件设计

4.1程序流程图

4.2程序源代码

DATASEGMENT

TNDB'

PLEASEINPUTTHENEWTIME(HH:

MM:

SS):

'

0DH,0AH,'

$'

;

提示输入时间的格式

TBDB'

PLEASEINPUTTHENEWDATE(YYYY:

DD):

提示输入日期的格式

MESSDB'

TIMEIS:

0AH,0DH,'

T_BUFFDB40;

在数据段开一段时间显示缓冲区T_BUFF为名字

DB?

DB40DUP(?

YEARDW?

MONDB?

DAYDB?

HORDB?

小时

MINDB?

分钟

SECDB?

DATAENDS

STACKSEGMENTSTACK

DB100DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK,DS:

DATA;

确定各个逻辑段的类型

START:

DISPLAY:

时间显示部分

MOVAX,SEGDATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVBX,OFFSETT_BUFF;

送T_BUFF的偏移地址到BX

MOVAH,2AH;

调用DOS时间调用功能,功能号:

2AH,年,月,日分别保存在CX,DH,DL中

INT21H

MOVAX,CX;

年设定

CALLBCTD;

调用进制转换子程序

PUSHAX

ANDAH,0F0H;

选取AH高四位

MOVCL,4;

设置右循环的次数

ROLAH,CL;

右循环

ORAH,30H;

加30H得到ACSII码

MOV[BX],AH;

将得到的结果送到T_BUFF缓冲区

INCBX;

BX自加1,指针指向下一个缓冲区的下一个地址

POPAX

ANDAH,0FH;

选取低四位

ORAH,30H

将转换后的低四位值送入缓冲区的第二个地址

INCBX

ANDAL,0F0H;

选取AL高四位

ROLAL,CL;

ORAL,30H;

MOV[BX],AL;

ANDAL,0FH;

ORAL,30H

;

---------------------

MOVAL,'

:

'

显示分隔符号

MOV[BX],AL

-------------------------

MOVAH,2AH

MOVAL,DH;

月设定

MOVAH,0

CALLBCTD

ANDAL,0F0H

MOVCL,4

ROLAL,CL

MOV[BX],AL

POPAX

ANDAL,0FH

-------------------------------------------------------------------------

-------------------------------------------------------------------------

MOVAH,2AH;

日设定

MOVAL,DL

----------------------------------------------------------

/'

INCBX

-------------------------------------------------------

MOVAH,2CH;

2CH,小时,分钟,秒数分别保存在CH,CL,DH中

MOVAL,CH;

小时数设定

MOVAH,2CH

MOVAL,CL;

分钟数设定

MOVAH,2CH;

秒设定

MOVAL,DH

----------------------------------------------------------------------

将字符串的结束位送至显示缓冲区的最后一位

------------------------------------------------------------------------

PUSHBX;

置光标位置,AH=2,BH=0DH跟DL分别为行号与列号,并入栈保护BX

MOVAH,2

MOVBH,0

MOVDH,10

MOVDL,31

INT10H

POPBX

LEADX,T_BUFF;

送T_BUFF偏移地址到DX,并调用DOS显示功能,功能号为9

MOVAH,9

置光标位置

MOVDL,21

LEADX,MESS

MOVAH,9

-----------------------------

CALLDELAY1;

调用精确延时子程序

MOVAH,1;

调用键盘I/O中断功能号1,获取键值到AL

INT16H

CMPAL,'

B'

是B键,转到日期修改程序

JEBORRECT

CMPAL,'

C'

是C键,转到时间修改程序

JECORRECT

是C键,转到时间修改程序

JECORRECT

CMPAL,1BH

JZQUIT;

是ESC键,退出程序

JMPDISPLAY

QUIT:

MOVAH,4CH;

程序终止功能号

RET

-----------------二进制转BCD码子程序--------------

BCTDPROCNEAR

AX输入参数

AX输出参数,存放调整过的BCD码

MOVDX,AX

MOVAX,0

MOVCX,16;

设循环次数

BCTD1:

CLC;

清进位标志C

RCLDX,1;

通过进位的循环右移

ADCAL,AL;

带进位加法

DAA;

加法的十进制调整

XCHGAL,AH;

交换高、低八位

ADCAL,AL

DAA

XCHGAL,AH

LOOPBCTD1;

循环次数保存在CX里

BCTDENDP

---------------精确延迟时间子程序---------------

DELAY1PROC

MOVDX,04FFH;

循环次数

UP:

XORCX,CX

A:

NOP

LOOPA

DECDX

JNZUP

DELAY1ENDP

---------------时间修改子程序------------

CORRECTPROC

CALLINPUT;

调用键盘输入子程序输入数据

MOVCH,HOR

MOVCL,MIN

MOVDH,SEC

ANDDL,0H

MOVAH,2DH

JMPSTART

CORRECTENDP

---------------键盘输入子程序----------

INPUTPROC

PUSHAX;

入栈保护数据

PUSHBX

PUSHCX

PUSHDX

PUSHF

MOVDX,OFFSETTN;

显示修改时间的格式提示

MOVAH,09H

INT21H

MOVDX,OFFSETT_BUFF;

数据缓冲区的数据输入

MOVAH,0AH

ANDDX,0H

LEABX,T_BUFF

INCBX

MOVDH,[BX]

SUBDH,30H

MOVDL,[BX]

SUBDL,30H

MOVCL,10

MOVAL,DH

MULCL

ADDAL,DL

MOVCH,AL

MOVHOR,AL

MOVCL,AL

MOVMIN,AL

MOVDH,AL

MOVSEC,AL

POPF;

出栈恢复数据

POPDX

POPCX

POPBX

POPAX

RET

INPUTENDP

---------------日期修改子程序------------

BORRECTPROC

CALLINPUT2;

MOVCX,YEAR

MOVDH,MON

MOVDL,DAY

MOVAH,2BH

BORRECTENDP

INPUT2PROC

MOVDX,OFFSETTB;

显示修改日期的格式提示

MOVAH,00H

MOVCX,100

MULCX

MOVYEAR,AX

MOVAX,00H

ADDYEAR,AX

MOVMON,AL

MOVDAY,AL

INPUT2ENDP

----------------------------

CODEENDS

ENDSTART

5.系统调试

5.1显示系统时间

5.2按B键修改年月日

说明:

修改日期时,必须将B消除掉,才能按正确的格式修改日期。

然后按下Enter键,系统会保存已修改好的值。

输入的格式为xxxxxxxx,要有空格。

5.3按C键修改具体时间

修改时间时,也要消除C然后输入正确的格式对时间进行修改。

按下enter键自动保存时间。

输入的格式同上。

6.设计总结

为期一周的《微机原理课程设计》结束了,回想起这一周的课程设计,颇有一些感慨。

此次课程设计的题目对我来说并不简单,由于汇编知识的匮乏,在前面几天的时间基本上是把《微机原理与接口技术》上的例题看懂,同时查找一些关于汇编知识的书籍,逐渐才摸索出编写时钟程序设计的思路以及程序模块的具体编写。

尽管这一周的课程设计时间短暂并且困难重重,但是在解决困难的同时我也学到了许多课堂上学不到的东西。

在整个设计过程中,我不但查阅了一些相关的资料,还得到了老师和同学们的帮助,无论在理论和实践能力都得到了很大锻炼,不但使我学到了很多知识,还促使我能深入独立思考一些问题,这对我以后的学习和工作有很大的益处。

当然由于时间仓促,加上我的编写水平有限,这次课程设计也有很多有待改进及完善的地方,还请老师指正,在以后的时间里我会进一步进行学习和完善。

7.参考文献

(1)谭浩强主编的《微型计算机原理与接口技术》(第三版)中国铁道出版社;

(2)雷印胜、贾萍、胡晓鹏等主编的《汇编语言程序设计教程》科学出版社;

(3)詹仁华主编的《汇编语言程序设计习题解答及课程实验、设计辅导》中国电力出版社;

(4)郑初华主编的《汇编语言、微机原理及接口技术》(第二版)电子工业出版社;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1