《微机原理及接口》课程设计报告-简单的动画设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计任务
1.程设计的目的
更深入的了解汇编这门语言,并从中学到东西
掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力。

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

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

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

学习汇编语言综合应用程序设计方法,提高汇编语言实际应用能力,充分了解计算机硬件和软件,完成理论到实践的推进过程。

2.课程设计要求
(1)根据微机软、硬件条件,每人选定一个具有一定综合性的程序设计题目
A对题目进行模块分析
B 系统设计实用,功能全面
C 按时按量完成任务
(2)按时间上机完成调试任务
3.设计任务
在DOS环境中编程完成以下任务:
(1)以滚动方式输出下车动态行驶图形
(2)小车在公路上动态行驶,从屏幕左侧驶向屏幕右侧后,在到达屏幕右侧后,公路下降。

(3)段距离并改变颜色,然后小车继续由左向右行驶
(4)当下降到屏幕底部时,再返回到屏幕顶部重复上述过程
(5)直到有键按下时,程序运行结束
(6)设计说明书:设计思想、参考程序的程序流程图和源程序
4.设备
IBM—PC微型计算机一台
二、设计方案
1、设计思想
主程序思想:使用BIOS中断调中显示器控制用子程序,要求显示动态效果图像即为一辆小车在公路上动态行驶,到达屏幕右方时,公路下降并改变颜色,小车又从左向右行驶以此循环,直至有键按下时结束程序。

2、主程序流程框图
3、源程序代码
data segment
line dw 10 ;定义行变量
color db 1 ;定义公路颜色
color1 db 0 ;定义小车颜色
corlum dw 2 ;定义列变量
count1 dw 0
count2 dw 0
count3 dw 0 ;车体模型
car_8 db 00000011b,11100000b
db 00000010b,01010000b
db 00000110b,01011000b
db 01111111b,11111110b
db 11111111b,11111111b
db 11111011b,11101111b
2
db 00001010b,00101000b
db 00000100b,00010000b
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,80
mov ah,0fh
int 10h
mov ax,0004h
int 10h
mov ah,0bh
mov bh,1 ;选择1号调色板
mov bl,0
int 10h
ll: mov al,color ;设置公路颜色
inc al
cmp al,3
jbe tt2
sub al,3
tt: mov color1,al ;设置小车颜色
cmp al,1
jz tt3
inc al
cmp al,3
jz tt2
tt3: inc al
tt2: mov color,al
mov ax,line ;计算机行坐标
add ax,10
cmp ax,180
jbe tt1
sub ax,180
tt1: mov line,ax
mov ah,0ch ;写像素
mov dx,line
add dx,8 ;计算公路坐标
mov cx,0
mov al,color ;设置公路颜色
repet: mov bx,3
push ax
int 10h ;画公路
pop ax
inc cx
cmp cx,319 ;未到屏幕最右转
jnz repet
mov ah,0ch ;画车模
mov dx,line ;设置行坐标
mov cx,corlum ;设置列坐标
mov si,offset car_8 ;取车模首坐标
mov count1,8 ;8行
retry1: mov count2,2 ;每行2字节
retry2: mov count3,8 ;每字节8位
retry3: rol byte ptr[si],1
mov al,0 ;此位为0,置背景颜色
jnc next
mov al,color1 ;此位为1,置背景颜色next: push ax
push cx
int 10h ;画一个点
pop cx
pop ax
inc cx ;列加1
dec count3
jnz retry3 ;未画完8个点转
inc si ;取下一个字节的车模信息
dec count2
jnz retry2 ;车模信息未转完
inc dx
mov cx,corlum
dec count1
jnz retry1 ;未画完8行转
mov count1,320-18 ;设置移动总次数
mov cx,corlum
add cx,15 ;小车最右点的列坐标送cx
repet1: push cx ;小车横向有16个点,外加1个空白点mov count2,16+1
repet2: mov dx,line ;车模向右移动1 个像素位
mov count3,8
repet3: mov ah,0dh
int 10h ;读当前点
mov ah,0ch
push cx
inc cx
int 10h ;写当前右边的点
pop cx
inc dx ;行坐标加1
dec count3 ;车模向右移动1个像素位未完转
jnz repet3
dec cx ;修改列坐标
dec count2 ;小车移动1个车体位未完转
jnz repet2
pop cx
inc cx ;修改列坐标
mov ah,1
int 16h
jnz exit ;有键按下,转退出
dec count1
jnz repet1
mov dx,line ;清除公路和车模
call clears
jmp ll ;无键按下,继续执行
exit: mov ah,0 ;恢复文本显示方式
mov al,2
int 10h
mov ah,4ch
int 21h
clears proc near
push ax
push cx
push bx
mov ax,0c00h
mov bx,10
cls0: mov cx,0
cls1: int 10h
inc cx
cmp cx,320
jnz cls1
inc dx
dec bx
jnz cls0
pop bx
pop cx
pop ax
ret
clears endp
code ends
end start
三.程序的调试与运行
1、程序的调试
程序的分析、代码的编写完成后,开始对代码进行编译和调试,我们采用DOS 环境对所编代码进行调式、编译。

打开EMU8086压缩文件,新建EXE模板,把源程序输入在新建模板中,之后进行保存,编译。

当源程序出现语法错误时,就不能进行编译,调试过程中出现的错误如下:
(1)编译后出现语法错误:(22)duplicate declaration of:DATA
解决方法:将新建时自动生成的代码段删去,即可。

(2)编译后打开生成的EXE文件,运行时只有公路出现但是颜色在改变,从上铺到下。

解决方法:对源程序中tt: mov color1,al ;设置小车颜色
进行更改,改为mov color1,al,则编译后生成的exe文件就能运行处动画效果。

2、程序的运行
在程序调试完成的基础上,程序则能准确地运行,运行效果如下:以滚动方式输出下车动态行驶图形
小车在公路上动态行驶,从屏幕左侧驶向屏幕右侧后,在到达屏幕右侧后,公路下降。

段距离并改变颜色,然后小车继续由左向右行驶
当下降到屏幕底部时,再返回到屏幕顶部重复上述过程
直到有键按下时,程序运行结束。

四.设计总结
1、设计的特点与不足
小车速度过快,但可调试解决,还存在第一条公路上,小车运行不正常。

不能独立增加一段程序代码,解决小车运行速度及车体颜色和小车颜色;
2、收获与体会
通过这次为期近两周的微机原理课程设计,我深深感觉到这次的课程是比较难的,比较复杂的,让我深深的感觉到自己的不足。

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

刚开始选题的时候,我们觉得这个题目很有意思!但刚开始下手的时候,我们一组成员都是一头雾水,不知道该怎么做,老师上课也没有仔细讲过、所以只好自己查阅相关资料。

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

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

搞完这次课程设计,我更加明白数学和逻辑推理对程序的重要性,找到简单、合适及高效的算法可以大大节约程序运行的时间和空间,优化了程序,提高了运行的效率,这对于一个优秀的程序员来说是非常重要的。

但是正是这次的课程设计我学会了很多东西,了解到理论实际是多么的重要,同时又是多么的困难,还有平时学习一定要认真踏实,把理论知识消化成自己的东西,并且要善于思考,多一些自己的想法和思路。

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

我觉得什么事都不应该轻易放弃,只要努力就会又结果!
五、创新得意之处
不添加任何程序代码,在源程序中改变某条指令就可改变小车颜色和公路颜色。

参考文献
1.《微机原理与接口技术》李兰友编清华大学出版社2009
2.《微机原理与应用》潘名莲编电子科技大学出版社1995
3.《新编深入DOS编程》求伯君编学苑出版社1994 ........忽略此处.......。

相关文档
最新文档