北交微机原理课设-动画程序设计(小鸟和小车)

上传人:简****9 文档编号:116332905 上传时间:2019-11-16 格式:DOC 页数:14 大小:345.50KB
返回 下载 相关 举报
北交微机原理课设-动画程序设计(小鸟和小车)_第1页
第1页 / 共14页
北交微机原理课设-动画程序设计(小鸟和小车)_第2页
第2页 / 共14页
北交微机原理课设-动画程序设计(小鸟和小车)_第3页
第3页 / 共14页
北交微机原理课设-动画程序设计(小鸟和小车)_第4页
第4页 / 共14页
北交微机原理课设-动画程序设计(小鸟和小车)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《北交微机原理课设-动画程序设计(小鸟和小车)》由会员分享,可在线阅读,更多相关《北交微机原理课设-动画程序设计(小鸟和小车)(14页珍藏版)》请在金锄头文库上搜索。

1、设计课题: 动画程序设计班级: 自动化 120 组员: 指导教师: 付文秀 一设计题目动画程序设计二、设计内容1、主要内容:利用BIOS系统功能调用,进行简单的动画设计。利用BIOS中断的10号、21号功能,进行简单的动画设计,并根据以下提示信息进行选择:(1)小鸟从屏幕飞过。(2)汽车按水平方向从屏幕上开过去。(3)退出。2、基本功能:(1)清屏宏定义观察程序流程图,在显示小鸟图形,汽车图形时,要先清屏,所以在编写程序使用到宏,因为宏定义只需在汇编语言原程序中定义一次,便可以多次反复调用。调用时只需要一条宏指令即可。程序中的清屏定义为: CLEAR MACRO pch,pcl,pdh,pdl

2、,pbh MOV AH,0 MOV AL,02H INT 10HMOV AL,0 MOV CH,pch MOV CL,pcl MOV DH,pdh MOV DL,pdl MOV BH,pbh INT 10HENDM宏指令名为CLEAR,定义了五个形式参数,分别为:pch,pcl,pdh,pdl,pbh,把pch,pcl的值分别传给窗口左上角行号、列号,pdh,pdl的值分别传给窗口右下角行号、列号,pbh的值则传给窗口底部卷入行属性。利用已经定义好的宏,清屏时可以宏调用。宏调用语句为:CLEAR 0,0,24,79,7(2)子程序设计 在接受键盘输入后,判断AL的值,如果是“1”就调用小鸟子程

3、序,如果是“2”就调用汽车子程序,如果是“3”就结束退出。在小鸟子程序中又嵌套了延时子程序,在汽车子程序中又嵌套了多个子程序。(3)显示小鸟字符图形 程序中利用BIOS系统功能中10H中断的09号功能进行小鸟字符图形的显示,程序段如下: MOV AH,9 MOV AL,76H MOV BL,10 INT 10H 要是小鸟字符图形显示的更清晰,则需要延时。循环指令LOOP,当CX不为零时,执行循环转移分支;当CX为零时,退出循环。延时子程序为: DLY PROC NEAR PUSH CX PUSH DX MOV DX,10000 DL1: MOV CX,6801 DL2: LOOP DL2 DE

4、C DX JNZ DL1 POP DX POP CX RET DLY ENDP 上述子程序用两层循环实现延时,内循环实现单位时间延时,外循环次数由寄存器DX决定。 (4)显示汽车字符图形 因为汽车是多字符显示,所以在子程序中还嵌套了显示汽车图形和清屏两个子程序。 MOV CH,0 MOV CL,DI INC DI MOV CHAR,CX MOV POINTER,DI MOV LINE,DH MOV COL,DL 此段程序把CH的值设为了0,又因为CL中存放字符的个数,所以CL=6,DI指向字符图形表中的第一个字符。 三、设计原理及方案 1、设计原理图: 图3-1 主程序 图3-2 小鸟子程序

5、图3-3 汽车子程序 2、设计方案:在屏幕上显示动画的效果可以按以下五步进行:(1)在屏幕上显示图形ASCII码表,选择“V”来显示小鸟,“V”的ASCII码为76H,查表选择彩色文本模式下的IRGB组合成的通用颜色,选择亮绿色,色号为10。显示汽车时用多字符图形显示,用6个字符组合来显示汽车,ASCII码分别为52H、0B1H、0DBH、0DBH、4FH、4FH,显示属性为白色,即色号为7。在设置字符显示位置时,是通过两两字符间的相对坐标来实现的。(2)延时一个时间周期,这样图形更清晰。这里要用到延时子程序及其调用。(3)消除图形在进行小鸟清屏时,可使用清屏宏调用,只需在程序前面进行清屏宏定

6、义。而在进行汽车的清屏时,由于汽车是由对字符图形显示的,所以不采用清屏宏调用,而是通过修改字符显示属性来进行清屏。(4)改变图形的行、列坐标。因为要求小鸟从屏幕飞过,所以小鸟的飞行路径不是水平也不是垂直的,所以要同时改变字符的行、列坐标;而汽车从左至右行驶,所以只需要改变汽车的列坐标。(5)返回第一步,重复上述过程。利用BIOS系统功能中 10H中断的06号功能进行清屏,循环调用09号功能显示字符图形;延迟一段时间后,再循环调用09号功能,设置BL寄存器的值为0(黑底黑字显示字符图形),以达到擦除图形的效果;改变行、列坐标,调用02号功能设置光标位置,重复上述过程。利用DOS中断的01号和02

7、号子功能来完成键盘接收,结果显示。四、汇编源程序代码 DATA SEGMENT INFO1 DB 0DH,0AH,-PLEASE INPUT 1,2, OR 3 (1:bird,2:car,3:exit)- $ BUFA DB 200 DB ? DB 200 DUP(0) BUFB DB 200 DUP(?) CAR DB 7 ;小汽车的字符图形表 DB 52H,7,0,0 DB 0B1H,7,0,1 DB 0DBH,7,0,1 DB 0DBH,7,0,1 DB 4FH,7,1,0 DB 4FH,7,0,-3 DB 2,7,-2,1 CHAR DW ? POINTER DW ? LINE DB

8、 ? COL DB ? DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AH,0 ;设置显示方式为80*25的黑白文体 MOV AL,02H INT 10H LEA DX,INFO1 ;在显示器上显示字符串提示信息 MOV AH,9 INT 21H MOV AH,1 ;从键盘读取字符到AL寄存器 INT 21H CMP AL,31H ;比较AL是否等于1 JNE A CALL BI

9、RD A: CMP AL,32H ;比较AL是否等于2 JNE B CALL QICHE B: CMP AL,33H ;比较AL是否等于3 JNE START MOV AH,4CH ;终止当前程序并返回调用程序 INT 21H CLEAR MACRO pch,pcl,pdh,pdl,pbh ;清屏宏定义 MOV AH, 0 MOV AL,02H INT 10H MOV AH,6 ;调用6号功能 MOV AL,0 ;设置整个屏幕为空白 MOV CH,pch MOV CL,pcl ;窗口左上角行列数 MOV DH,pdh MOV DL,pdl ;窗口左上角行列数 MOV BH,pbh ;正常属性显

10、示 INT 10HENDMBIRD PROC ;小鸟子程序 MOV AX,DATA MOV DS,AX MOV AH,0 MOV AL,02H INT 10H CLEAR 0,0,24,79,7 ;清屏宏调用 MOV AH,0FH ;读当前显示状态 INT 10H MOV DH,10 MOV DL,0 BEGIN:MOV SI,2 MOV CX,1 DISP: CMP DL,80 JAE EXIT1 MOV AH,2 INT 10H MOV AH,9 MOV AL,76H MOV BL,10 INT 10H CALL DLY ;延时 MOV AH,9 MOV AL,DI INT 10H INC DL

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号