汽车动画设计.docx

上传人:b****8 文档编号:28094623 上传时间:2023-07-08 格式:DOCX 页数:15 大小:19.98KB
下载 相关 举报
汽车动画设计.docx_第1页
第1页 / 共15页
汽车动画设计.docx_第2页
第2页 / 共15页
汽车动画设计.docx_第3页
第3页 / 共15页
汽车动画设计.docx_第4页
第4页 / 共15页
汽车动画设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

汽车动画设计.docx

《汽车动画设计.docx》由会员分享,可在线阅读,更多相关《汽车动画设计.docx(15页珍藏版)》请在冰豆网上搜索。

汽车动画设计.docx

汽车动画设计

汽车动画设计

1概述

电子计算机是20世纪科学技术最卓越的成就之一。

计算机技术的发展所带来的信息技术的飞速发展,给人类社会带来了进步,是人们的生产、生活发生了深刻的变化。

计算机知识与应用技术已经成为了人类知识生活十分重要的组成部分。

自从1946年世界上第一台电子计算机由美国宾夕法尼亚大学研制成功,时至今日计算机已经进入了第五代计算机时代。

在此过程中计算机经历了电子管、晶体管、集成电路、超大规模集成电路四个阶段,现在各国都在致力开发第五代即智能计算机。

以微处理器为核心的微型计算机,也从4位、8位、16位发展到32位、64位,计算机的应用范围也从最初的科学计算发展到目前的无所不及。

微型计算机是第四代计算机的典型代表。

随着VLSI技术的发展,构成微型计算机的核心单元CPU不断更新换代,但是计算机的原理基本上没有变。

所以通过学习8086CPU的系统结构、基本原理、指令系统、中断及接口等知识,也可以在实践中掌握和运用计算机知识。

2程序设计过程

2.1程序设计方法步骤

程序设计首先要将问题分解成一个一个的步骤,每步都可以用汇编语言中的指令性语句,按照先后顺序表达。

设计一个好的程序,不仅要满足设计要求,能正常运行,实现预定功能,还应满足:

1)结构化、简明、易读、易调试、易维护;

2)执行速度快;

3)占用存储空间尽量少。

汇编语言程序设计步骤如下:

1)分析问题,抽象出问题的数学模型,确定解决问题的合理算法;

2)将问题分解成若干模块,理清各部分之间关系;

3)绘制流程图或写出程序步骤,可以从粗到细地把算法逐步具体化;

4)分配存储空间及工作单元,根据流程图编写程序;

5)静态检查,仔细阅读程序尽量找出诸如语法、逻辑等错误;

6)上机调试。

2.2设计任务及要求

运用汇编语言编写程序完成以下任务:

1、运行可执行程序,显示汽车来过。

2、设计适当的背景变化。

3、按Q键退出程序。

要完成以上任务,首先要掌握汇编语言的结构、指令及语句格式分类,还要熟悉BIOS及DOS的功能调用,如在设计的程序中用到的对屏幕操作的“INT10H”,对键盘操作的“INT16H”等。

2.3汽车图形绘制

小汽车的图形是由一些字母和符号组成,字符图形表如下:

CARDB7;

DB52H,7,0,0

DB0B1H,7,0,1

DB0DBH,7,0,1

DB0DBH,7,0,1

DB4FH,7,1,0

DB4FH,7,0,-3

DB2,7,-2,1

2.4程序流程图

2.4.1主程序流程图

通过对题目任务的分析,画出主程序流程图如图1所示:

 

AL是否为C

汽车子程序运行

AL是否为Q

程序结束

运动子程序运行

设置屏幕显示方式,并从键盘读取字符存入AL

开始

建立汽车字符图形表,并初始化

 

N

N

Y

 

Y

 

图1主程序流程图

2.4.2子程序流程图

汽车子程序流程图如图2所示:

运动子程序流程图如图3所示:

结束

开始

入栈保护

设置屏幕显示方式

设置色彩组颜色

清屏宏调用

CAR的首址DI

汽车显示位置

运动子程序运行

显示字符

DI+4指向下一个字符

结束

开始

入栈保护

设置显示方式

字符个数存放入CL

DI指向字符图形表

改变行列坐标

取字符并字符属性

 

图2汽车子程序流程图图3运动子程序流程图

3源程序代码

题目源程序如下:

DATASEGMENT

INFO1DB0DH,0AH,'INPUTcORq:

(c:

car,q:

exit)$'

CARDB7;小汽车的字符图形表

DB52H,7,0,0

DB0B1H,7,0,1

DB0DBH,7,0,1

DB0DBH,7,0,1

DB4FH,7,1,0

DB4FH,7,0,-3

DB2,7,-2,1

CHAR_CNTDW?

POINTERDW?

LINE_ONDB?

COL_ONDB?

DATAENDS

STACKSEGMENTstack

DB200DUP(0)

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAH,DATA

MOVDS,AH

MOVAH,0;设置显示方式为320*200彩色图形方式

MOVAH,4

INT10H

LEDDX,INFO1;在显示器上显示字符串提示信息

MOVAH,9

INT21H

MOVAH,0;从键盘读取字符到AL寄存器

INT16H

CMPAL,43H;比较AL是否等于c

JNEA

CALLQICHE

A:

CMPAL,63H

JNEB

CALLQICHE

B:

CMPAL,51H

JNED

JMPE

D:

CMPAL,71H

JNESTART

E:

MOVAH,4CH;终止当前程序并返回调用程序

INT21H

CLEARMACROpch,pcl,pdh,pdl,pbh;清屏宏定义

MOVAH,0

MOVAL,4

INT10H

MOVAH,6;调用6号功能

MOVAL,0;设置整个屏幕为空白

MOVCH,pch

MOVCL,pcl;窗口左上角(0行,0列)

MOVDH,pdh

MOVDL,pdl;窗口右下角(24行,79列)

MOVBH,pbh;正常属性显示

INT10H

ENDM

DLYPROCNEAR;延时子程序

PUSHCX

PUSHDX

MOVDX,10000

DL1:

MOVCX,6801

DL2:

LOOPDL2

DECDX

JNZDL1

POPDX

POPCX

RET

DLYENDP

QICHEPROCNEAR;汽车子程序

PUSHAX

PUSHBX

PUSHCX

PUSHDX

MOVAH,0

MOVAL,4

INT10H

MOVAH,0BH;设置彩色组颜色为绿、红、黄

MOVBH,01

MOVBL,00

INT10H

CLEAR0,0,24,79,7;清屏宏调用

LEADI,CAR;DI指向字符图形表

MOVDH,5;从第5行5列位置开始显示汽车

MOVDL,0

CALLMOVE_SHAPE

RET

QICHEENDP

MOVE_SHAPEPROCNEAR

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHDI

MOVAH,0FH;取当前显示方式

INT10H

SUBCH,CH

MOVCL,[DI];CL放字符个数

INCDI;DI指向字符图形表中的第一个字符

MOVCHAR_CNT,CX

MOVPOINTER,DI

MOVLINE_ON,DH

MOVCOL_ON,DL

PLOT_NEXT:

ADDDH,[DI+2];改变行列坐标

ADDDL,[DI+3]

CMPDL,80;出屏否?

JBMOV_CRSR

POPDI

POPDX

POPCX

POPBX

POPAX

JMPEXIT2

MOV_CRSR:

MOVAH,2

INT10H

MOVAL,[DI];取字符值

MOVBL,[DI+1];取字符属性

PUSHCX

MOVCX,1

MOVAH,09;显示字符

INT10H

POPCX

ADDDI,4;DI指向下一个字符

LOOPPLOT_NEXT

CALLDLY

CALLERASE

JMPSHORTPLOT_NEXT

EXIT2:

RET

MOVE_SHAPEENDP

ERASEPROCNEAR

MOVCX,CHAR_CNT

MOVDI,POINTER

MOVDH,LINE_ON

MOVDL,COL_ON

ERASE_NEXT:

ADDDH,[DI+2]

ADDDL,[DI+3]

MOVAH,2

INT10H

MOVAL,[DI]

MOVBL,0

PUSHCX

MOVCX,1

MOVAH,9

INT10H

POPCX

ADDDI,4

LOOPERASE_NEXT

MOVCX,CHAR_CNT

MOVDI,POINTER

MOVDH,LINE_ON

INCCOL_ON

MOVDL,COL_ON

RET

ERASEENDP

CODEENDS

ENDSTART

4程序调试

在设计完每个模块后,都单独的运行调试,发现有问题则找到问题并且解决后再进行下一步的设计工作。

在每个模块单独的调试中基本上没有遇到什么大的问题,只是有一些语法上的错误,在各个模块分别设计完成后,将它们按照通信关系组合在一起,一步步再进行调试。

程序调试过程中遇到了一些问题。

执行中断时屏幕上显示提示字符后,无法显示小车。

经过检查思考后发现,在程序中将模块间的关系搞混乱了,重新调整各个模块间的关系,以及中断处理的关系后,程序能够正确的执行了,进行运算检验,程序都可以正确的执行。

通过调试,发现了设计中存在的漏洞,经过修改,成功地完成了设计任务的要求。

 

总结

通过这次为期两周的微机原理课程设计,我深深的感觉到这次的课设是比较难的,比较复杂的,让我深深的感觉到自己的不足。

这次课设是一次具有挑战性的实践课程,在整个课程设计过程中我遇到很多困难。

首先是在处理题目上遇到一些问题,在理解题意分析时,出现偏差,导致错误,从中明白到要做到理论联系实际是相当困难的。

而且在写报告过程中发现自己对于课本的理论知识的理解是多么的匮乏,以致在报告中对于理论的阐述和自己的见解是很寥少的。

但是正是这次极具挑战性的课设,使我得到了锻炼和学习。

通过对于汇编语言的应用,我学会了一些编程方法,知道了课堂知识运用与实践的困难,而这些对自身的以后的学习都有很大帮助。

通过这次的课程设计我学会了很多东西,了解到理论联系实际是多么重要,同时又是多么的困难,还有平时学习一定要认真踏实,把理论知识要弄懂要理解消化为自己的知识,同时要学会在理论学习时善于思考,多得一些自己的想法和思路,并且多读一些课外书,开阔视野增长一些课外知识。

感谢这次课设过程中给予我帮助同学和老师,并且感谢学校给予我们这次机会提高自己的实践能力。

这次的课设终于结束了,我感到什么事都不应该轻易放弃,只要努力就会有结果。

再次深深的感谢老师对于我的帮助与指导,使我学到这么多东西,也再次感谢给予我帮助的同学们!

 

参考文献

[1]彭虎,周佩玲.傅忠谦编著.2006.微机原理与接口技术.第二版.北京:

电子工业出版社

[2](美)RandallHyde著.陈曙晖译.毛希平校.2005.汇编语言编程艺术.北京:

清华大学出版社

[3](美)KipR.Irvine著.温玉杰、张家生、罗云彬等译.罗云彬校.2004.Intel汇编语言程序设计.第四版.北京:

电子工业出版社

[4]金汉均、金洋编著.2007.5.汇编语言程序设计.武汉:

武汉大学出版社

[5]荆淑霞编著.2005.9.微机原理与汇编语言程序设计.北京:

清华大学出版社,北京交通大学出版社

 

附录1:

INT10H中断

功能号:

00H

功能:

设置显示模式

入口参数:

AH=00H

AL=显示模式

显示模式列表:

显示模式显示模式属性

00H40×2516色文本

01H40×2516色文本

02H80×2516色文本

04H320×2004色

05H320×2004色

06H640×2002色

07H80×252色文本

08H160×20016色

09H320×20016色

0AH640×2004色

0BH保留

0CH保留

0DH320×20016色

0EH640×20016色

0FH640×3502色(单色)

10H640×3504色

11H640×4802色

12H640×48016色

13H320×200256色

功能号:

02H

功能:

用文本坐标下设置光标位置

入口参数:

AH=02H

BH=显示页码

DH=行(Y坐标)

DL=列(X坐标)出口参数:

功能号:

09H

功能:

在当前光标处按指定属性显示字符

入口参数:

AH=09H

AL=字符

BH=显示页码

BL=属性(文本模式)或颜色(图形模式)

CX=重复输出字符的次数出口参数:

功能号:

0BH

功能:

设置调色板、背景色或边框

入口参数:

AH=0BH

设置颜色:

BH=00H,BL=颜色

选择调色板:

BH=01H,BL=调色板(320×200、4种颜色的图形模式)出口参数:

功能号:

0FH

功能:

读取显示器模式

入口参数:

AH=0FH

出口参数:

AH=屏幕字符的列数

AL=显示模式(参见功能00H中的说明)

BH=页码

 

附录2:

INT16H中断

功能号:

00H和10H

功能:

从键盘读入字符

入口参数:

AH

=00H—读键盘

=10H—读扩展键盘,可根据0000:

0496H单元的内容判断:

扩展键盘是否有效

出口参数:

AH=键盘的扫描码

AL=字符的ASCII码

本文来自新动力影视传媒转载请注明

 

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

当前位置:首页 > 法律文书 > 调解书

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

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