微机原理课程设计.docx

上传人:b****5 文档编号:8291223 上传时间:2023-01-30 格式:DOCX 页数:12 大小:36.25KB
下载 相关 举报
微机原理课程设计.docx_第1页
第1页 / 共12页
微机原理课程设计.docx_第2页
第2页 / 共12页
微机原理课程设计.docx_第3页
第3页 / 共12页
微机原理课程设计.docx_第4页
第4页 / 共12页
微机原理课程设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

微机原理课程设计.docx

《微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计.docx(12页珍藏版)》请在冰豆网上搜索。

微机原理课程设计.docx

微机原理课程设计

1前言

微机原理是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。

要求学生对微机原理中的基本概念有较深入的了解,能够系统地掌握微型计算机的结构、8086微处理器和指令系统、汇编语言程序设计方法、微机系统的接口电路设计及编程方法等,并具有综合运用所学知识分析问题和解决问题的能力。

本次随机数图程序设计采用汇编语言程序编写,要求设计者具备微机原理的理论知识和实践能力。

微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力。

本课程设计的主要目的是提高实践能力,包括提高汇编等语言的编程能力及对接口等硬件的理解分析能力和设计接口电路的能力,在进行课程设计的过程中,通过让学生体验自己分析解决问题,从而帮助学生系统地掌握微机原理的接口技术的相关知识。

程序使用MF2KP汇编语言软件进行仿真,包括程序输入、调试、运行,最后进行结果分析,验证程序的正确性。

 

2微机工作原理

计算机通过执行一个解题程序来完成一个具体问题的求解,而一个解题程序由若干条指令组成。

因此,要了解计算机如何执行一个程序,必须首先了解控制器为完成一条指令所采取的控制步骤。

控制器完成一条指令的全过程需要三个步骤:

取指令、分析指令、执行指令。

取指令时按照程序所规定的次序,从内存储器取出当前要执行的指令,并送控制器的指令寄存器中;分析指令是对所取的指令进行分析,即根据指令中的操作码确定计算机应进行什么操作;执行指令是根据指令分析的结果,由控制器发出完成操作所需要的一系列控制信号,以便指挥计算机有关部分完成这一操作,同时还要取下一条指令做好准备。

由此可见,控制器的工作过程就是取指令、分析指令和执行指令的过程。

周而复始地重复这一过程,就构成了执行指令序列的自动控制过程。

PC机的工作过程就是执行程序的过程,首先由中央处理器中的控制器发出输入控制命令,将程序通过系统的输入设备并在操作系统的统一控制下送入内存储器,然后又发出控制命令给内存储器,按照程序和数据在内存储器中的存放地址,依次取出并将数据送入中央处理器的运算器中,控制器根据相应的安排向运算器发出运算命令,并将运算后的结果送回内存储器。

最后控制器向输出设备发出输出命令,将内存储器的结果经输出设备输出。

计算机在执行程序的过程中,先将程序中的语句翻译成计算机能够识别的机器指令,再根据指令的顺序逐条执行。

计算机分析指令要完成的动作,执行相应的操作,直到遇到结束程序运行的指令为止。

PC机在运行时往往会遇到一些异常情况(如断电、算术运算溢出或操作错误等)或某些请求(如要求将一行字符打印输出、外存向主存送一批数据等)。

产生这些请求或异常情况事先无法预测,但是一旦发生,微处理器应该立即对它们做出响应,这就要求控制器具有处理这类问题的功能。

通常当这些情况出现时,由相应部件或设备向微处理器发出“中断请求”信号,待执行完当前指令后,微处理器响应该请求,终止当前执行的程序,转去执行中断程序,以便处理这些请求。

当处理完毕后,再返回原程序继续执行。

 

3程序设计

3.1设计思路

由随机数图设计要求可知设计主要分为以下几个步骤:

在屏幕上显示图形、一小段延时、显示下一个随机数图形。

程序分为主程序和子程序。

主程序主要用于初始化、控制每一次出现随机图形函数的循环、延时和清零。

子程序DISP中,实现的是图形显示的要求。

子程序RAND_PALLETTE实现的是调色板的调用。

子程序RAND_COLOR实现的是颜色的随机选取

设计过程中随机行坐标取0到39,纵坐标取100到199,随机长的范围为20到100,随机宽取10到40。

本程序是通过设置简单的有限循环来实现延迟的。

其中AL=0为清窗口,程序中设定的起始点和终止点坐标可以让子程序运行后清除整个屏幕。

 

3.2程序设计框图

由随机数图设计要求可知设计主要分为以下几个步骤:

开始

初始化

屏幕设置

调用调色板

使用随机颜色

显示矩形

延迟

清屏

N

CX=10

Y

结束

图3.1程序流程图

3.3程序代码

DATASEGMENT

LINEDW0;矩形顶点的行

ROWDW0;矩形顶点的列

SWIDTHDW0矩形的长

XKDW0矩形的宽

COLORDB0颜色

DATAENDS

STACKSEGMENT

DB200DUP(0)

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAH,0

MOVAL,04H

INT10H设置320×200彩色图形方式

MOVCX,10设置循环次数

SAN:

CALLRAND_PALLETTE

CALLRAND_COLOR

CALLDISP调用矩形显示

CALLDELAY

CALLCLEAR

LOOPSAN循环显示

MOVAH,4CH

INT21H返回DOS

DISPPROCNEAR

PUSHAX

PUSHCX

PUSHDX

PUSHSI

PUSHDI

MOVAH,0CH指明写点调用

MOVAL,COLOR取点的颜色

CALLRAND_SWIDTH

MOVDI,SWIDTH用于控制行显示循环

CALLRAND_SITE

MOVDX,LINE取点的行坐标

CALLRAND_XK

DISP_2:

MOVSI,XK控制列显示循环

MOVCX,ROW取显示点的列坐标

DISP_1:

INT10H完成点的显示

INCCX列坐标加1

DECSI

JNZDISP_1循环显示完一行的点

INCDX行坐标加1

DECDI

JNZDISP_2循环显示完行

POPDI

POPSI

POPDX

POPCX

POPAX

RET

DISPENDP

RAND_PALLETTEPROCNEAR

PUSHAX

CALLRAND

MOVAL,BL

ADDAX,0FFH

MOVBL,2

DIVBL

MOVAL,AH

MOVAH,0BH

MOVBH,01

MOVBL,AL

INT10H设置调色板

POPAX

RET

RAND_PALLETTEENDP

RAND_COLORPROCNEAR

PUSHCX

PUSHDX

PUSHAX

STI

MOVAH,0读时钟计数器值

INT1AH

MOVAX,DX清高6位

ANDAH,3

MOVDL,4除4,产生0~3余数

DIVDL

MOVBL,AH余数存BL,作随机数

CMPBL,0

JNZA保持随机颜色不为黑色

INCBL

A:

MOVCOLOR,BL

POPAX

POPDX

POPCX

RET

RAND_COLORENDP

RAND_SITEPROC

PUSHAX

CALLRAND

MOVAL,BL

ANDAX,0FFH

MOVBL,40

DIVBL

MOVBL,AH

ANDBX,0FFH

MOVLINE,BX

CALLRAND

MOVAL,BL

ANDAX,0FFH

MOVBL,100

DIVBL

MOVBL,AH

ANDBX,0FFH

ADDBX,100

MOVROW,BX

POPAX

RET

RAND_SITEENDP

 

RAND_SWIDTHPROC随机长子程序

PUSHAX

CALLRAND

MOVAL,BL

ANDAX,0FFH

MOVBL,81

DIVBL

MOVBL,AH

ANDBX,0FFH

ADDBX,20

MOVSWIDTH,BX

POPAX

RET

RAND_SWIDTHENDP

RAND_XKPROC随机宽

PUSHAX

CALLRAND

MOVAL,BL

ANDAX,0FFH

MOVBL,40

DIVBL

MOVBL,AH

ANDBX,0FFH

ADDBX,10

MOVXK,BX

POPAX

RET

RAND_XKENDP

RANDPROC

PUSHCX

PUSHDX

PUSHAX

STI

MOVAH,0读时钟计数器值

INT1AH

MOVAX,DX清高6位

ANDAH,3

MOVDL,200除200,产生0~199余数

DIVDL

MOVBL,AH余数存BL,作随机数

POPAX

POPDX

POPCX

RET

RANDENDP

DELAYPROCNEAR

PUSHCX

PUSHDX

MOVDX,50000

D1:

MOVCX,25000

D2:

LOOPD2

DECDX

JNZD1

POPDX

POPCX

RET

DELAYENDP

CLEARPROCNEAR

PUSHAX

PUSHBX

PUSHCX

PUSHDX

MOVAH,6

MOVAL,0

MOVCH,0

MOVCL,0

MOVDH,24

MOVDL,39

MOVBH,0

INT10H

POPDX

POPCX

POPBX

POPAX

RET

CLEARENDP

CODEENDS

ENDSTART

 

4调试分析与结果

4.1程序调试过程

启动全屏幕编辑软件MF2KI,输入源程序。

输入完毕后,按Ctrl+S保存程序,规定扩展名为*.ASM。

对源程序进行汇编。

源程序进行汇编有三个步骤:

第一个是汇编生成OBJ文件,即二进制目标文件,这是汇编的主要目的。

第二个是连接。

第三个是运行。

汇编过程中,如果源程序有语法错误,则汇编结束后,会指出源程序中的错误,这时可以通过修改源程序中的错误,最后,得到没有语法错误的OBJ文件。

当没有语法错误而又无法得到正确结果时,可用调试来进行验证。

它通过单步、设置断点等多种方式为我们提供非常有效的调试手段。

4.2程序运行结果

调试窗口如下:

图4.1调试窗口图

 

运行结果:

图4.2运行结果图

 

5心得体会

以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。

当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。

但是当真的要做的时候也只好进自己最大的努力去做,做到自己最好的。

我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。

我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。

看着自己做出来的东西,心里面的感觉真的很好。

我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。

但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。

对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也使我有更多的兴趣学习微机原理和其他的汇编。

微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。

讨论某一部分原理时又要涉及到其它部分的工作原理。

这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。

所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。

学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下的是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

这次实验并不是很难,主要的困难来自对程序的理解。

总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。

感谢老师的悉心指导。

 

参考文献

[1]楼顺天.微机原理与接口技术[M].北京:

科学出版社,2006

[2]周明德.微机原理与接口技术.北京:

人民邮电出版社,2009

[3]马维华.微机原理与接口技术.北京:

科学出版社,2005

[4]马瑞芳.王会燃等.微机原理与接口技术要点与解题.西安:

西安交通大学出版社,2006

[5]牟琦.聂建平等.微机原理与接口技术.北京:

清华大学出版社,2006

 

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

当前位置:首页 > 总结汇报 > 学习总结

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

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