微机原理与通信接口课程设计概要.docx

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

微机原理与通信接口课程设计概要.docx

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

微机原理与通信接口课程设计概要.docx

微机原理与通信接口课程设计概要

课程设计任务书

学生姓名:

专业班级:

电信0801指导教师:

工作单位:

信息工程学院

题目:

随机数图程序设计

初始条件:

具备数字电路的理论知识;具备微机原理的理论知识和实

践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和

指令系统;熟悉相关常用接口电路的设计使用方法。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等

具体要求

1、编写一个随机数产生子程序

2、在一定的时间间隔时画一个填色矩形

3、矩形颜色和位置由随机数决定

4、程序采用汇编语言在PC机上完成

5、完成符合学校要求的设计说明书

时间安排:

一周,其中2天程序设计,2天程序调试,1天完成课

程设计报告书及答辩

指导教师签名:

年月日

系主任(或责任教师签名:

年月日

目录

摘要....................................................................................................I随机数图程序设计(1

1任务设计分析(1

2设计方案及原理(2

2.1设计思路(2

2.2图像显示原理(2

2.3随机函数(3

2.4随机颜色(3

2.5随机位置和随机长宽(3

2.6延迟和清屏(4

3程序设计流程图(5

4调试过程(7

5程序运行结果(8

6总结体会(9

参考文献(10

摘要

这次课程设计题目是随机数图程序设计,要求显示一个随机颜色,随机边长,随机位置的矩形,在计算机图形设计中,屏幕上的一个图像由大量的图形像素组成。

在图形方式下,显示屏幕上由像素点组成,屏幕按分辨率划分成像素行和列。

可以通过读写屏幕上的各个点的像素,显示出各种单色的图形。

显示时,通过对矩形长宽的限制,调用该范围各点的像素,从而在屏幕上显示出单一颜色的矩形。

但为了满足要求,必须引用随机函数,得到矩形长宽的随机数,除此之外,还要随机得到矩形的位置坐标和颜色。

既然要求显示几何图形,且要求有颜色,就一定得调用相应的中断服务清屏,还必须设定CX的值,使屏幕能够连续显示出一组颜色、边长和位置各不相同的矩形。

最后,通过对个子程序的编写和调用,最终的效果是在屏幕上显示边长、颜色和位置不断变化的彩色矩形。

关键词:

显示随机矩形调用

随机数图程序设计

1任务设计分析

设计任务:

在屏幕上每隔一定的时间间隔出现随机(随机颜色,随机边长,随机位置的矩形。

任务分析:

认真分析题目后可以知道,该题是要求用写像素的方法绘制图形,因此程序中必定涉及到与屏幕设置和颜色填充有关的编程技巧;另外,从题目中可以看到,出现最多的字眼就是“随机”,基本上显示图形的各个属性都要求随机,包括颜色,大小位置,因此有关产生随机数的程序段是必不可少的,且关于显示矩形的颜色,大小,位置的各个子程序都会用到随机数;还有,因为要求是不停显示随机矩形,即在不同位置显示不同矩形时,相互之间不能干扰,且要能看到效果,因此在显示出矩形后必须有延迟和清屏功能的子程序。

2设计方案及原理

2.1设计思路

该设计要求显示一“随机边长、随机位置、随机颜色”的矩形,可以想到这是要求显示一组不同颜色、不同位置且边长不同的矩形。

基本思路是先设计一矩形显示程序,然后应用随机函数,得到四组随机数,分别赋值给矩形的边长,颜色和位置,已达到设计目的。

2.2图像显示原理

本程序设计主要是通过运用显示器中断10H的各种功能实现屏幕显示效果。

程序涉及到的功能原理罗列如下:

功能号00H功能,设置显示器模式。

入口参数:

AH=00H,AL=显示器模式;出口参数:

无。

本设计中AL=04H,即显示模式为320×200,4色。

功能号0BH功能描述:

设置调色板、背景色或边框入口参数。

AH=0BH设置颜色,BH=00H,BL=颜色选择调色板,BH=01H,BL=调色板(320×200、4种颜色的图形模式。

出口参数:

无。

本设计中要用到该中断的调色板设置。

功能号0CH功能描述:

写图形象素。

入口参数:

AH=0CH,AL=象素值,BH=页码(CX、DX=图形坐标列(X、行(Y出口参数:

无。

本程序用这个中断产生随机颜色。

功能号06H和07H功能描述:

初始化屏幕或滚屏。

入口参数:

AH=06H——向上滚屏,07H——向下滚屏,AL=滚动行数(0——清窗口BH=空白区域的缺省属性,(CH、CL=窗口的左上角位置(Y坐标,X坐标,(DH、DL=窗口的右下角位置(Y坐标,X坐标。

出口参数:

无。

本程序采用六号中断来达到清屏的目的。

此外,还要用到BIOS中断INT1AH,功能00H功能描述:

读取时钟“滴答”计数。

入口参数:

AH=00H,出口参数:

AL=00H——未过午夜,否则,表示已过午夜;CX:

DX=时钟“滴答”计数。

本设计中用该中断产生需要的随机数。

显示矩形时,因为屏幕模式为320*200彩色模式,屏幕中每个点都是一个小方块,所有随机的矩形,先由随机数确定它的顶点坐标,然后以该坐标的行值每次加一,同时其列值加一,依次给每个点赋由随机颜色子程序得到的像素值,依此循环,直到该矩形的边长达到由随机边长子程序得到的两个随机值。

这就能显示出一个随机边长,随机颜色,随机位置的矩形。

2.3随机函数

随机数是由读时钟计数器的值然后除以200取余得到的,这种方法可以得到从0到199总共两百个随机数。

2.4随机颜色

首先要设置一个调色板。

采用INT10H中断的0BH号中断可以产生两种模式的调色板,取决于BL的值。

因为每种模式产生三种彩色和黑色,所以两个模式总共可以产生六种彩色和一个黑色。

本设计在调色板子程序中调用随机数使BL随机获得0或1值,如此便可以随机调用两种模式的七种颜色。

在颜色显示子程序中,调用随机数子程序后,除以四求余得到0到3中的一个数,然后在矩形显示子程序中由该数得到对应的像素值,并将其写入规定的点中。

为了使矩形不为黑色,在随机颜色子程序中用条件转移语句跳过黑色所对应的值。

因此,在运行程序时将看到有六种随机颜色的矩形。

2.5随机位置和随机长宽

这些随机值都是通过调用随机数子程序根据不同要求除以不同的数,来得到不同范围的随机数。

需要注意的是,为保证矩形显示完整,不超过屏幕边界且显示的是矩形块,随机行坐标取0到39,纵坐标取100到199,随机长的范围为20到100,随机宽取10到40。

2.6延迟和清屏

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

清屏实际上是通过使用显示中断6号功能对屏幕进行初始化。

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

3程序设计流程图

在方案确定后,此程序将有五个子程序,其中延迟和清屏等程序都相对比较简单,因此流程图将由主程序流程图和矩形显示子程序流程图组成。

主程序流程图:

开始

初始化

屏幕设置

调用调色板

调用随机颜色

显示矩形

延迟

清屏

N

次数是否到10

Y

结束

图1主程序流程图

矩形显示流程图:

图2矩形显示流程图

随机确定左上角的顶点坐标随机确定矩形的宽完成矩形释放原有变量结束

随机确定矩形的长随机确定矩形颜色保存原有变量值开始

开始结束

4调试过程

程序调试过程比较麻烦,在开始的时候先写一个矩形显示的子程序,然后再引入随机函数,将矩形的边长,颜色,位置设为随机数。

最后,将这些子程序有效地联系起来。

这个过程中,会出现很多问题。

比如,矩形框的变化显示时间不能太快,需要设置合适的时间。

再有就是,矩形显示时,有时会分割显示在屏幕的两端或是矩形显示在整个屏幕上,还会出现矩形的边长太小等情况。

这就需要对矩形坐标点的随机值和矩形边长的随机值进行限制,选取合适的取值范围。

除此之外,程序调试时,有时会没有图形显示。

这是因为图形显示的时间为黑色。

所以,也必须保证矩形的随机颜色不能为黑色。

5程序运行结果

程序调试完毕后,经过编译运行,会在屏幕上显示一组颜色、位置和边长都随机变化的矩形,显示完毕后,自动退出界面。

程序运行结果如下图所示:

图3程序运行效果

6总结体会

通过这次课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。

不仅如此,通过这次课程设计,巩固了我以往学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握各个指令的功能,特别是循环指令。

而且,我还学会了子程序的定义及调用,以及正确地运用DEBUG指令。

在整个程序的编写中,调试占了很大部分的时间。

要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握DEBUG命令,这对程序的调试是非常重要的。

通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,提高了自己独立阅读、编制和调试一定规模的汇编语言程序的能力。

参考文献

[1]邵玉祥.汇编语言程序设计.北京:

科学出版社,2007

[2]孙德文.微型计算机技术.北京:

高等教育出版社,2001

[3]沈美明.IBM-PC汇编语言程序设计.北京:

清华大学出版社,1993

[4]吴秀清.微型计算机原理与接口技术.合肥:

中国科学技术大学出版社,2002

[5]周佩玲.微机原理与接口技术.北京:

电子工业出版社,2008

附录:

相关程序:

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

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

当前位置:首页 > 总结汇报 > 其它

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

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