微机原理课设动画心.docx

上传人:b****1 文档编号:2416348 上传时间:2023-05-03 格式:DOCX 页数:34 大小:263.65KB
下载 相关 举报
微机原理课设动画心.docx_第1页
第1页 / 共34页
微机原理课设动画心.docx_第2页
第2页 / 共34页
微机原理课设动画心.docx_第3页
第3页 / 共34页
微机原理课设动画心.docx_第4页
第4页 / 共34页
微机原理课设动画心.docx_第5页
第5页 / 共34页
微机原理课设动画心.docx_第6页
第6页 / 共34页
微机原理课设动画心.docx_第7页
第7页 / 共34页
微机原理课设动画心.docx_第8页
第8页 / 共34页
微机原理课设动画心.docx_第9页
第9页 / 共34页
微机原理课设动画心.docx_第10页
第10页 / 共34页
微机原理课设动画心.docx_第11页
第11页 / 共34页
微机原理课设动画心.docx_第12页
第12页 / 共34页
微机原理课设动画心.docx_第13页
第13页 / 共34页
微机原理课设动画心.docx_第14页
第14页 / 共34页
微机原理课设动画心.docx_第15页
第15页 / 共34页
微机原理课设动画心.docx_第16页
第16页 / 共34页
微机原理课设动画心.docx_第17页
第17页 / 共34页
微机原理课设动画心.docx_第18页
第18页 / 共34页
微机原理课设动画心.docx_第19页
第19页 / 共34页
微机原理课设动画心.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理课设动画心.docx

《微机原理课设动画心.docx》由会员分享,可在线阅读,更多相关《微机原理课设动画心.docx(34页珍藏版)》请在冰点文库上搜索。

微机原理课设动画心.docx

微机原理课设动画心

课程设计任务书

学生姓名:

陶浩专业班级:

自动化1204

指导教师:

石云工作单位:

自动化学院

题目:

可爱小动画程序

初始条件:

本动画先显示一个方框向中间由大变小,最后出现一个红心,按Q退出程序。

要求完成的主要任务:

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

(1)设计任务及要求分析

(2)方案比较及认证说明

(3)系统原理阐述

(4)硬件设计课题需要说明:

硬件原理,电路图,采用器件的功能说明

(5)软件设计课题需要说明:

软件思想,流程图,源程序及程序注释

(6)调试记录及结果分析

(7)总结

(8)参考资料

(9)附录:

芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图

 

摘要

摘要:

编制动画是程序设计中一种非常有趣和有价值的学习过程。

计算机的动画设计是利用计算机图形显示技术来模仿物体活动的效果。

在计算机图形设计中,汇编语言具有潜在的优点,因为显示屏幕上的一个图像由几十个元素组成,处理这些图像元素需要大量的指令。

以速度而论,汇编语言程序远比高级语言快得多。

最高级的图像元素需要大量的指令。

最高级的图形技术,例如动画软件,只有以汇编语言设计才能产生更逼真、更有效的动态画面的效果。

 

本文是着重通过对动画“心”程序的设计实现汇编语言程序设计的编码过程。

介绍了汇编语言程序的编辑以及编译,对于动画“心”程序设计思想和设计流程也做出了全面的叙述,并且做出了动画“心”程序各个功能的实现过程以及详细设计过程,最终实现了动画“心”程序的主要功能,完成了本次的课程设计。

 

关键词:

计算机动画心汇编语言图形显示

1设计任务及要求

本次课程设计有如下要求:

(1)按任意键进入图形显示; 

(2)按空格键重复出现“心”; 

(3)按回车键将重复整个图形; 

(4)按q键退出程序;

2程序设计思想

2.1汇编程序设计过程

一般汇编语言设计总过程流程图如下图1所示:

 

 

汇编语言程序设计要求综合以前所学知识,根据设计具体要求分析问题,将问题分解成一个一个的步骤,每步用汇编语言中的指令性语句,按先后顺序表达,设计一个不仅要满足要求,能正常运行,实现指定功能的程序;还应满足结构化、简明、易读、易调试、易维护、执行速度快、占用存储空间尽量少的好程序。

2.2本程序设计基本思路

本程序主要是利用BIOS功能调用的10H中断类型实现的。

利用其12号功能,设置像素的颜色、坐标和个数,从而画出图形需要的线段,如画方框、画对角线、画水平垂直线,以及采用行、列坐标连续写像素的方法填充图形等。

画完图形之后延时,清屏。

同时,利用DOS系统功能调用的08号功能,从键盘输入字符。

如果是任意键,则进入图形显示;如果是空格键,则改变“心”的大小;如果是其它键,则重新显示整个图形;如果是“q”键,则退出。

3设计方案及程序流程图

3.1设计方案

用基本设计思路拟订出原方案。

先分别编写画方框、画对角线、画水平垂直线,画斜线,画心型;以及清屏、清除心型、延时和显示文本信息的子程序。

然后,通过编写主程序调用这些子程序来实现设计的要求。

3.2方案比较及选取

该课设可以使用点阵法以及坐标法,然而,在考虑使用点阵法的时候发现图案比较复杂,使用点阵法也较为复杂,甚至无法成功完成课设要求,所以,我选择了坐标法,然而,使用坐标法的时候发现,程序依然很复杂,但是没有其他办法了,只有通过坐标法了,在不断的翻阅书籍以及上网查看相关案例,总算完成了程序。

3.3动画心程序流程图

由设计方案画出动画心程序流程图如图2所示:

 

4程序源代码与运行结果

4.1程序源代码

程序源代码见附录。

4.2程序运行结果

用编辑器输入编好的程序源代码转换成目标文件,再将目标文件连接生成可执行文件并运行该程序,得出程序运行结果。

图3为形成可执行文件

 

图3形成可执行文件

 

图4运行结果图——步骤一

 

图5运行结果图——步骤二

图6运行结果图——完整动画心图

 

5调试记录与分析

原程序调试过程:

根据设计原理先分别编写出画方框、画对角线、画水平垂直线,画斜线,画心型;以及清屏、清除心型、延时和显示文本信息的子程序;然后通过主程序调用每个子程序编写成可实现设计要求的完整程序。

在第一次运行程序时提示警告,没有定义堆栈段。

图7第一次运行的错误提示

经过查询资料得知,如果未使用堆栈则不需要定义堆栈段,该警告可以不管。

6附录

完整程序源代码:

DATASEGMENT

FULLDB0

BUFF1DB'WELCOMEYOUTORUNTHISPROGRAMME!

'

DB''

DB'*****PLEASEPRESSANYKEY*****$'

BUFF2DB'MYHEARTBEATSWITHYOURS!

'

DB'*****PLEASEqTOQUIT*****$'

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAH,00

MOVAL,04

INT10H

MOVAH,0BH

MOVBH,00

MOVBL,1

INT10H

MOVAH,0BH

MOVBH,1

MOVBL,2

INT10H

MOVDX,OFFSETBUFF1;显示提示信息

MOVAH,09

INT21H

MOVAH,08

INT21H

CALLCLEAR;清除屏幕上的信息

SSS:

CALLTEXT;显示测试

MOVDI,2

MOVAL,1;画大方框

MOVCX,70

MOVDX,20

MOVBX,160

CALLBOX

MOVCX,71

MOVDX,21

MOVBX,158

AGAIN:

MOVAL,1

MOVDI,0

CALLBOX

CALLDELAY

MOVAL,0

MOVDI,0

CALLBOX

INCCX

INCDX

SUBBX,2

CMPCX,94

JNZAGAIN

MOVDI,0;画这第二个方框

MOVCX,95

MOVDX,45

MOVAL,1

MOVBX,110

CALLBOX

MOVCX,96

MOVDX,46

MOVBX,108

AGAIN_00:

MOVAL,1

MOVDI,0

CALLBOX

CALLDELAY

CALLDELAY

MOVAL,0

MOVDI,0

CALLBOX

INCCX

INCDX

SUBBX,2

CMPCX,114

JNZAGAIN_00

MOVCX,115;画第三个方框

MOVDX,65

MOVAL,1

MOVBX,70

CALLBOX

MOVCX,116

MOVDX,66

MOVBX,68

AGAIN_01:

MOVAL,1

MOVDI,0

CALLBOX

CALLDELAY

CALLDELAY

MOVAL,0

MOVDI,0

CALLBOX

INCCX

INCDX

SUBBX,2

CMPCX,129

JNZAGAIN_01

MOVDI,2

MOVAL,1;画小方框

MOVCX,130

MOVDX,80

MOVBX,40

CALLBOX

MOVDI,2

MOVAL,3;对角线

MOVSI,0

MOVCX,71

MOVDX,21

MOVBX,59

CALLXIE_LINE

MOVCX,171

MOVDX,121

MOVBX,59

CALLXIE_LINE

MOVSI,1

MOVCX,71

MOVDX,179

MOVBX,59

CALLXIE_LINE

MOVCX,171

MOVDX,79

MOVBX,59

CALLXIE_LINE

MOVCX,150;十字线

MOVDX,20

MOVSI,0

MOVBX,60

CALLDRAW_LINE

MOVCX,150

MOVDX,120

MOVBX,60

CALLDRAW_LINE

MOVCX,70

MOVDX,100

MOVSI,1

MOVBX,60

CALLDRAW_LINE

MOVCX,170

MOVDX,100

MOVBX,60

CALLDRAW_LINE

MOVSI,1

MOVCX,70

MOVDX,60

MOVBX,60

CALLMID_LINE

MOVCX,170

MOVDX,110

MOVBX,60

CALLMID_LINE

MOVSI,2

MOVCX,110

MOVDX,20

MOVBX,30

CALLMID_LINE

MOVCX,160

MOVDX,120

MOVBX,30

CALLMID_LINE

MOVSI,3

MOVCX,70

MOVDX,140

MOVBX,60

CALLMID_LINE

MOVCX,170

MOVDX,90

MOVBX,60

CALLMID_LINE

MOVSI,4

MOVCX,110

MOVDX,180

MOVBX,30

CALLMID_LINE

MOVCX,160

MOVDX,80

MOVBX,30

CALLMID_LINE

MOVDI,0

MOVAL,1;再画一次大方框

MOVCX,70

MOVDX,20

MOVBX,160

CALLBOX

MOVDI,0

MOVAL,1;再画一次小方框

MOVCX,130

MOVDX,80

MOVBX,40

CALLBOX

MOVDI,0

MOVCX,95

MOVDX,45

MOVAL,1

MOVBX,110

CALLBOX

MOVCX,115

MOVDX,65

MOVAL,1

MOVBX,70

CALLBOX

MOVDI,1;填充

CALLFILL

CALLFILL_2

CALLFILL_3

MOVCX,149;加粗

MOVDX,120

MOVAL,2

MOVBX,60

MOVSI,0

CALLDRAW_LINE

MOVCX,151

MOVDX,120

MOVAL,2

MOVBX,60

MOVSI,0

CALLDRAW_LINE

HEART_:

;画心形图案

CALLCLS_BOX

CALLHEART

MOVAH,08

INT21H

CMPAL,'q'

JZOK

CMPAL,20H

JZHEART_

CALLCLEAR

JMPSSS

OK:

RET

MAINENDP

FILLPROCNEAR;程序填充

MOVFULL,0

MOVAL,5

MOVCX,160

MOVDX,121

MOVSI,0

MOVBX,60

FILL_Y:

PUSHCX

PUSHDX

PUSHBX

CALLDRAW_LINE

POPBX

POPDX

POPCX

SUBBX,2

INCCX

ADDDX,2

INCFULL

CMPFULL,30

JNEFILL_Y

RET

FILLENDP

FILL_2PROCNEAR

MOVFULL,0

MOVAL,5

MOVCX,140

MOVDX,121

MOVSI,0

MOVBX,60

FILL_Y1:

PUSHCX

PUSHDX

PUSHBX

CALLDRAW_LINE

POPBX

POPDX

POPCX

SUBBX,2

DECCX

ADDDX,2

INCFULL

CMPFULL,30

JNEFILL_Y1

RET

FILL_2ENDP

FILL_3PROCNEAR

MOVAL,1

MOVFULL,0

MOVSI,0

MOVCX,140

MOVDX,121

MOVBX,60

RE_FILL:

PUSHBX

PUSHCX

PUSHDX

CALLDRAW_LINE

POPDX

POPCX

POPBX

INCCX

INCFULL

CMPFULL,9

JNERE_FILL

MOVFULL,0

MOVCX,159

MOVDX,121

MOVBX,60

RE_FILL2:

PUSHBX

PUSHCX

PUSHDX

CALLDRAW_LINE

POPDX

POPCX

POPBX

DECCX

INCFULL

CMPFULL,9

JNERE_FILL2

RET

FILL_3ENDP

DRAW_LINEPROCNEAR;画直线程序

PUSHBX

CMPSI,0

JZV_LINE1

ADDBX,CX

H_LINE:

MOVAH,0CH

INT10H

CMPDI,0

JZAA0

CMPDI,1

JZAA1

CALLDELAY

AA1:

CALLDELAY

AA0:

INCCX

CMPCX,BX

JNEH_LINE

JMPEXIT_LINE

V_LINE1:

ADDBX,DX

V_LINE:

MOVAH,0CH

CMPDI,0

JZBB0

CMPDI,1

JZBB1

CALLDELAY

BB1:

CALLDELAY

BB0:

INT10H

INCDX

CMPDX,BX

JNEV_LINE

EXIT_LINE:

POPBX

RET

DRAW_LINEENDP

XIE_LINEPROCNEAR;画斜线程序

ADDBX,CX

CMPSI,1

JZXIELINE_1

XIELINE_0:

MOVAH,0CH

INT10H

INCDX

INCCX

CMPCX,BX

JNEXIELINE_0

JMPEXIT_XIE

XIELINE_1:

MOVAH,0CH

INT10H

DECDX

INCCX

CMPCX,BX

JNEXIELINE_1

EXIT_XIE:

RET

XIE_LINEENDP

MID_LINEPROCNEAR;画条直线

ADDBX,CX

CMPSI,2

JZMIDLINE_2

CMPSI,3

JZMIDLINE_3

CMPSI,4

JZMIDLINE_4

MIDLINE_1:

MOVAH,0CH

INT10H

INCDX

ADDCX,2

CMPCX,BX

JNEMIDLINE_1

JMPEXIT_LINES

MIDLINE_2:

MOVAH,0CH

INT10H

ADDDX,2

INCCX

CMPCX,BX

JNEMIDLINE_2

JMPEXIT_LINES

MIDLINE_3:

MOVAH,0CH

INT10H

DECDX

ADDCX,2

CMPCX,BX

JNEMIDLINE_3

JMPEXIT_LINES

MIDLINE_4:

MOVAH,0CH

INT10H

SUBDX,2

INCCX

CMPCX,BX

JNEMIDLINE_4

EXIT_LINES:

RET

MID_LINEENDP

BOXPROCNEAR;画方框

PUSHCX

PUSHDX

PUSHCX

PUSHDX

PUSHCX

PUSHDX

PUSHCX

PUSHDX

MOVSI,1

CALLDRAW_LINE;顶部

POPDX

POPCX

ADDCX,BX

MOVSI,0

CALLDRAW_LINE;右边

POPDX

POPCX

MOVSI,0

CALLDRAW_LINE;左边

POPDX

POPCX

MOVSI,1

ADDDX,BX

CALLDRAW_LINE;底部

POPDX

POPCX

RET

BOXENDP

SPACEPROCNEAR;显示一个空间

MOVAH,02

MOVDL,''

INT21H

RET

SPACEENDP

RETURNPROCNEAR;回车

MOVAH,2

MOVDL,0AH

INT21H

MOVDL,0DH

INT21H

RET

RETURNENDP

TEXTPROCNEAR;显示文本信息

MOVBH,0

MOVDH,0

MOVDL,0

MOVAH,2

INT10H

MOVDX,OFFSETBUFF2

MOVAH,09

INT21H

TEXTENDP

HEARTPROCNEAR

MOVCX,136;画心形

MOVDX,93

MOVSI,0

MOVBX,5

MOVAL,2

CALLDRAW_LINE

MOVCX,137;画心形

MOVDX,91

MOVSI,0

MOVBX,9

CALLDRAW_LINE

MOVCX,138;画心形

MOVDX,90

MOVSI,0

MOVBX,12

CALLDRAW_LINE

MOVCX,139;画心形

MOVDX,89

MOVSI,0

MOVBX,14

CALLDRAW_LINE

MOVCX,140;画心形

MOVDX,88

MOVSI,0

MOVBX,16

CALLDRAW_LINE

MOVCX,141;画心形

MOVDX,88

MOVSI,0

MOVBX,17

CALLDRAW_LINE

MOVCX,142;画心形

MOVDX,87

MOVSI,0

MOVBX,19

CALLDRAW_LINE

MOVCX,143;画心形

MOVDX,87

MOVSI,0

MOVBX,20

CALLDRAW_LINE

MOVCX,144;画心形

MOVDX,87

MOVSI,0

MOVBX,21

CALLDRAW_LINE

MOVCX,145;画心形

MOVDX,88

MOVSI,0

MOVBX,21

CALLDRAW_LINE

MOVCX,146;画心形

MOVDX,88

MOVSI,0

MOVBX,22

CALLDRAW_LINE

MOVCX,147;画心形

MOVDX,89

MOVSI,0

MOVBX,22

CALLDRAW_LINE

MOVCX,148;画心形

MOVDX,90

MOVSI,0

MOVBX,22

CALLDRAW_LINE

MOVCX,149;画心形

MOVDX,91

MOVSI,0

MOVBX,22

CALLDRAW_LINE

MOVCX,150;画心形

MOVDX,91

MOVSI,0

MOVBX,22

CALLDRAW_LINE

MOVCX,151;画心形

MOVDX,90

MOVSI,0

MOVBX,22

CALLDRAW_LINE

MOVCX,152;画心形

MOVDX,89

MOVSI,0

MOVBX,22

CALLDRAW_LINE

MOVCX,153;画心形

MOVDX,88

MOVSI,0

MOVBX,22

CALLDRAW_LINE

MOVCX,154;画心形

MOVDX,88

MOVSI,0

MOVBX,21

CALLDRAW_LINE

MOVCX,155;画心形

MOVDX,87

MOVSI,0

MOVBX,21

CALLDRAW_LINE

MOVCX,156;画心形

MOVDX,87

MOVSI,0

MOVBX,20

CALLDRAW_LINE

MOVCX,157;画心形

MOVDX,87

MOVSI,0

MOVBX,19

CALLDRAW_LINE

MOVCX,158;画心形

MOVDX,88

MOVSI,0

MOVBX,17

CALLDRAW_LINE

MOVCX,159;画心形

MOVDX,88

MOVSI,0

MOVBX,16

CALLDRAW_LINE

MOVCX,160;画心形

MOVDX,89

MOVSI,0

MOVBX,14

CALLDRAW_LINE

MOVCX,161;画心形

MOVDX,90

MOVSI,0

MOVBX,12

CALLDRAW_LINE

MOVCX,162;画心形

MOVDX,91

MOVSI,0

MOVBX,9

CALLDRAW_LINE

MOVCX,163;画心形

MOVDX,93

MOVSI,0

MOVBX,5

CALLDRAW_LINE

RET

HEARTENDP

DELAYPROCNEAR;延迟程序

PUSHCX

PUSHDX

MOVDX,25

DL2:

MOVCX,2801

DL3:

LOOPDL3

DECDX

JNZDL2

POPDX

POPCX

RET

DELAYENDP

CLEARPROCNEAR;清屏

MOVAL,0

MOVBX,0

MOVCX,0

MOVDX,0

LINE:

MOVAH,0CH

INT10H

INCCX

CMPCX,320

JNELINE

MOVCX,0

INCDX

CMPDX,200

JNELINE

RET

CLEARENDP

CLS_BOXPROCNEAR

MOVAL,0

MOVBX,0

MOVCX,131

MOVDX,81

S_LINE:

MOVAH,0CH

INT10H

INCCX

CMPCX,170

JNES_LINE

MOVCX,131

INCDX

CMPDX,120

JNES_LINE

RET

CLS_BOXENDP

CODEENDS

ENDSTART

7参考文献

[1]周佩玲、彭虎、傅忠谦,《微机原理与接口技术》.北京:

电子工业出版社2011.8第三版

[2]姚燕南,《微型计算机原理与接口技术》.北京:

高等教育出版社,2004

[3]马瑞芳,《汇编语言程序设计》.西安:

西北工业大学出版社,2002.3第一版

[4]邹逢兴,《计算机硬件技术及应用基础.下册;

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2