《微机原理及接口课程设计报告简单的动画设计》由会员分享,可在线阅读,更多相关《微机原理及接口课程设计报告简单的动画设计(13页珍藏版)》请在金锄头文库上搜索。
1、微机原理及接口课程设计报告课题名称简单的动画设计学院自动控制与机械控制学院专业通信技术班级一班成员学号时间2011年12月31至1月10目 录一设计任务(含有设计要求、设计目的、设计任务)二设计方案 (包括设计思想,程序流程图、程序代码)三程序的调试与运行 四设计总结五. 创新得意之处参考文献一、设计任务1程设计的目的更深入的了解汇编这门语言,并从中学到东西掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力。提高我们对学习认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。培养我们从资料文献、科学实验中获得知识的能力,提高我们从别人经验中找到解决问题的新途径的悟性,初步培养工
2、程意识和创新能力。培养我们勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。学习汇编语言综合应用程序设计方法,提高汇编语言实际应用能力,充分了解计算机硬件和软件,完成理论到实践的推进过程。2课程设计要求(1)根据微机软、硬件条件,每人选定一个具有一定综合性的程序设计题目A对题目进行模块分析B 系统设计实用,功能全面C 按时 按量 完成任务(2)按时间上机完成调试任务3设计任务在DOS环境中编程完成以下任务:(1) 以滚动方式输出下车动态行驶图形(2) 小车在公路上动态行驶,从屏幕左侧驶向屏幕右侧后,在到达屏幕右侧后,公路下降。(3) 段距离并改
3、变颜色,然后小车继续由左向右行驶(4) 当下降到屏幕底部时,再返回到屏幕顶部重复上述过程(5) 直到有键按下时,程序运行结束(6) 设计说明书:设计思想、参考程序的程序流程图和源程序4设备IBMPC微型计算机一台二、设计方案1、设计思想 主程序思想:使用BIOS中断调中显示器控制用子程序,要求显示动态效果图像 即为一辆小车在公路上动态行驶,到达屏幕右方时,公路下降并改变颜色,小车又从左向右行驶 以此循环,直至有键按下时 结束程序。铺设公路模拟小车小车行驶在公路2、主程序流程框图 开始定义相关变量定义公路颜色定义小车的颜色定义列变量设置车体模型设置显示方式(320200)选择调色板设置公路颜色设
4、置小车颜色写像素点计算公路坐标计算行坐标画公路画车模设置行坐标设置列坐标设置背景颜色取车模首地址 画一个点读当前点写当前右边的点画完8个点转?N列加1取下一个字节车模信息车模信息完转?YN设置移动总次数行坐标加一修改列坐标有键按下?清除公路和车模恢复文本显示方式结束YN23、源程序代码data segmentline 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
5、00000010b,01010000b db 00000110b,01011000b db 01111111b,11111110b db 11111111b,11111111b db 11111011b,11101111b db 00001010b,00101000b db 00000100b,00010000bdata endscode segment assume cs:code,ds:datastart: 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
6、;选择1号调色板 mov bl,0 int 10hll: mov al,color ;设置公路颜色 inc al cmp al,3 jbe tt2 sub al,3tt: mov color1,al ;设置小车颜色 cmp al,1 jz tt3 inc al cmp al,3 jz tt2tt3: inc altt2: mov color,al mov ax,line ;计算机行坐标 add ax,10 cmp ax,180 jbe tt1 sub ax,180tt1: mov line,ax mov ah,0ch ;写像素 mov dx,line add dx,8 ;计算公路坐标 mov
7、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 ptrsi,1 mov al,0 ;此位为0,
8、置背景颜色 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 ;小车最右点的列坐标送cxr
9、epet1: push cx ;小车横向有16个点,外加1个空白点 mov count2,16+1repet2: mov dx,line ;车模向右移动1 个像素位 mov count3,8repet3: 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 ;修改列坐标
10、 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 21hclears proc near push ax push cx push bx mov ax,0c00h mov bx,10cls0: mov cx,0cls1: int 10h inc cx cmp cx,320 jnz cls1 inc dx dec bx jnz