资源描述:
《微机原理课程设计_制作奥运五环效果》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南通大学电气工程学院微机原理课程设计报告书软件课题制作奥运五环效果班级学号姓名指导教师日期2011-6-23一、奥运五环效果1.1设计目的1.巩固和加深课堂所学知识;2.学习掌握一般的软件的设计方法和查阅、运用资料的能力;3.通过奥运五环效果的设计与制作,深入了解与掌握DOS环境下图形生成方法。1.2设计内容和要求查找资料,了解汇编语言编写图形方法,中点bresenharm算法原理,成像原理。生成奥运五环效果,并定时中断实现变色或闪烁。1.3设计原理1.3.1DOS环境下图形显示机理BIOS提供了相当丰富的显示功能调用,其显
2、示功能集中在10H号中断中,共有16种不同的功能,每个功能有一个编号,对应的编号为00~0FH。当调用某个显示功能时,应根据需要设置好入口参数,把功能号置入AH寄存器中,然后发中断指令“INT10H”。与图形显示有关的子功能主要集中在如表1几个功能号。在图形方式下,屏幕以像素为单位。中分辨率下,屏幕可分成320*200=64000个像素点,每个像素有四种不同的显示颜色,背景有16种颜色;高分辨率下,屏幕分成640*200=128000个像素点,只支持黑白两色。任何一个图形都可以看作是由点组成的,这些像素点“点亮”或“熄灭”,就构成相应的图形。。1.3.2Brese
3、nham画圆算法Bresenham画圆算法又称中点画圆算法,与Bresenham直线算法一样,其基本的方法是利用判别变量来判断选择最近的像素点,判别变量的数值仅仅用一些加、减和移位运算就可以计算出来。为了简便起见,考虑一个圆心在坐标原点的圆,而且只计算八分圆周上的点,其余圆周上的点利用对称性就可得到。 圆有“八对称性”,如下图所示。 显然,我们只需要知道了圆上的一个点的坐标(x,y),利用八对称性,我们马上就能得到另外七个对称点的坐标。给出圆心的坐标(0,0)和半径R,求圆图像的最佳逼近点。我们求的八分之一圆孤为(0,R)-(R√2,R√2),可知最大位移
4、方向是x方向,x0=0,y0=R,每次对x自增,然后判断y是否减1,直到x>=y为止(从点(0,R)到圆的八分之一处就有这种情况)。误差量由F(x,y)=x^2+y^2-R^2给出。先找递推关系,若当前d=F(x+1,y-0.5)>0,则y须减1,则下一d值为d=F(x+2,y-1.5)=(x+2)^2+(y-1.5)^2-R^2=d+2x-2y+5,若当前d=F(x+1,y-0.5)<0,则y不变,只有x增1,则下一d值为d=F(x+2,y-0.5)=d+2x+3。d的初值,d0=F(1,R-0.5)=1.25-R,则可以对d-0.25进行判断,因为递推关系中只
5、有整数运算,所以d-0.25>0即d>0.25,这和d>0等价,所以d取初值1-R。1.4程序流程图与程序代码1.4.1流程图确定第一个圆的圆心(x0,y0),半径r设置显示方式依次确定正面五环各环的像素值即颜色,调用单环绘制程序,完成正面五环定时中断否?依次确定反面五环各环的像素值即颜色,调用单环绘制程序,完成反面五环1.4.2程序源代码datasegmentmdw?ndb?;像素颜色值rdw30;五环半径x1dw80;第一个圆的圆心y1dw80x2dw?y2dw?x3dw?y3dw?x4dw?y4dw?xdw?ydw?ddw?adw?bdw?dataendsc
6、odesegmentassumecs:code,ds:datamainprocfarstart:movax,datamovds,ax;movsi,0movdi,0movsi,x1movx3,simovsi,y1movy3,simovsi,0callcirculmainendp;*************五环绘制子程序***********circulprocnearpushsimovah,0moval,0dhint10h;*************依次绘制正面五环***********front:movn,0eh;第一个环,黄色movx,0movbx,rmovy,
7、bxmovsi,x3movx1,simovsi,y3movy1,sicallsingle_circlemovn,0ah;第二个环,绿色movx,0movbx,rmovy,bxmovsi,x3movx1,simovsi,y3movy1,siaddy1,bxaddy1,bxshrbx,1addy1,bxcallsingle_circlemovn,04h;第三个环,红色movx,0movbx,rmovy,bxmovsi,x3movx1,simovsi,y3movy1,siaddy1,bxaddy1,bxaddy1,bxaddy1,bxaddy1,bxcallsingle
8、_circ