微機(jī)原理課程設(shè)計(jì)制作奧運(yùn)五環(huán)效果_第1頁
微機(jī)原理課程設(shè)計(jì)制作奧運(yùn)五環(huán)效果_第2頁
微機(jī)原理課程設(shè)計(jì)制作奧運(yùn)五環(huán)效果_第3頁
微機(jī)原理課程設(shè)計(jì)制作奧運(yùn)五環(huán)效果_第4頁
微機(jī)原理課程設(shè)計(jì)制作奧運(yùn)五環(huán)效果_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、南通大學(xué)電氣工程學(xué)院微機(jī)原理課程設(shè)計(jì)報(bào) 告 書軟件課 題 制作奧運(yùn)五環(huán)效果 班 級(jí) 學(xué) 號(hào) 姓 名 指導(dǎo) 教師 日 期 2011-11-23 一、奧運(yùn)五環(huán)效果1.1 設(shè)計(jì)目的1.鞏固和加深課堂所學(xué)知識(shí);2.學(xué)習(xí)掌握一般的軟件的設(shè)計(jì)方法和查閱、運(yùn)用資料的能力;3.通過奧運(yùn)五環(huán)效果的設(shè)計(jì)與制作,深入了解與掌握dos環(huán)境下圖形生成方法。1.2 設(shè)計(jì)內(nèi)容和要求查找資料,了解匯編語言編寫圖形方法,中點(diǎn)bresenharm算法原理,成像原理。生成奧運(yùn)五環(huán)效果,并定時(shí)中斷實(shí)現(xiàn)變色或閃爍。1.3 設(shè)計(jì)原理1.3.1 dos環(huán)境下圖形顯示機(jī)理bios 提供了相當(dāng)豐富的顯示功能調(diào)用,其顯示功能集中在10h 號(hào)中斷

2、中,共有16 種不同的功能,每個(gè)功能有一個(gè)編號(hào),對(duì)應(yīng)的編號(hào)為000fh。當(dāng)調(diào)用某個(gè)顯示功能時(shí),應(yīng)根據(jù)需要設(shè)置好入口參數(shù),把功能號(hào)置入ah寄存器中,然后發(fā)中斷指令“int10h”。與圖形顯示有關(guān)的子功能主要集中在如表1 幾個(gè)功能號(hào)。在圖形方式下,屏幕以像素為單位。中分辨率下,屏幕可分成320*200=64000個(gè)像素點(diǎn),每個(gè)像素有四種不同的顯示顏色,背景有16種顏色;高分辨率下,屏幕分成640*200=128000 個(gè)像素點(diǎn),只支持黑白兩色。任何一個(gè)圖形都可以看作是由點(diǎn)組成的,這些像素點(diǎn)“點(diǎn)亮”或“熄滅”,就構(gòu)成相應(yīng)的圖形。1.3.2 bresenham畫圓算法bresenham畫圓算法又稱中點(diǎn)

3、畫圓算法,與bresenham 直線算法一樣,其基本的方法是利用判別變量來判斷選擇最近的像素點(diǎn),判別變量的數(shù)值僅僅用一些加、減和移位運(yùn)算就可以計(jì)算出來。為了簡(jiǎn)便起見,考慮一個(gè)圓心在坐標(biāo)原點(diǎn)的圓,而且只計(jì)算八分圓周上的點(diǎn),其余圓周上的點(diǎn)利用對(duì)稱性就可得到。 圓有“八對(duì)稱性”,如下圖所示。 顯然,我們只需要知道了圓上的一個(gè)點(diǎn)的坐標(biāo) (x, y) ,利用八對(duì)稱性,我們馬上就能得到另外七個(gè)對(duì)稱點(diǎn)的坐標(biāo)。 給出圓心的坐標(biāo)(0, 0)和半徑,求圓圖像的最佳逼近點(diǎn)。 我們求的八分之一圓孤為(0, r) -(r2,r2),可知最大位移方向是x方向,x0 = 0, y0 = r,每次對(duì)x自增,然后判斷y是否減1

4、,直到x = y為止(從點(diǎn)(0, r)到圓的八分之一處就有這種情況)。誤差量由(x, y) = x2 + y2 - r2給出。 先找遞推關(guān)系,若當(dāng)前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 - r2 = d + 2x - 2y + 5,若當(dāng)前d = f(x + 1, y - 0.5) 0即d 0.25,這和d 0等價(jià),所以d取初值1 - r。1.4 程序流程圖與程序代碼1.41 流程圖確定第一個(gè)圓的圓心(x0,y0),半徑r設(shè)置顯示方式依次確定正面五環(huán)各環(huán)的像素值即顏色,調(diào)

5、用單環(huán)繪制程序,完成正面五環(huán)定時(shí)中斷否?依次確定反面五環(huán)各環(huán)的像素值即顏色,調(diào)用單環(huán)繪制程序,完成反面五環(huán)1.42 程序源代碼data segment m dw ? n db ? ;像素顏色值 r dw 30 ;五環(huán)半徑 x1 dw 80 ;第一個(gè)圓的圓心 y1 dw 80 x2 dw ? y2 dw ? x3 dw ? y3 dw ? x4 dw ? y4 dw ? x dw ? y dw ? d dw ? a dw ? b dw ? data ends code segment assume cs:code,ds:data main proc far start: mov ax,data

6、mov ds,ax ;mov si,0 mov di,0 mov si,x1 mov x3,si mov si,y1 mov y3,si mov si,0 call circulmain endp ;*五環(huán)繪制子程序* circul proc near push si mov ah,0 mov al,0dh int 10h ;*依次繪制正面五環(huán)* front: mov n,0eh;第一個(gè)環(huán),黃色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si call single_circle mov n,0ah;第二個(gè)環(huán),

7、綠色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add y1,bx add y1,bx shr bx,1 add y1,bx call single_circle mov n,04h;第三個(gè)環(huán),紅色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add y1,bx add y1,bx add y1,bx add y1,bx add y1,bx call single_circle mov n,09h;第四個(gè)環(huán),藍(lán)色 mo

8、v x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add x1,bx add y1,bx shr bx,1 shr bx,1 add y1,bx call single_circle mov n,08h; 第五個(gè)環(huán),灰色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add x1,bx add y1,bx add y1,bx add y1,bx shr bx,1 add y1,bx shr bx,1 add y1,bx call s

9、ingle_circle jmp back;*繪制背面面各環(huán)* back: mov n,04h;第一個(gè)環(huán),紅色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si call single_circle mov n,08;第二個(gè)環(huán),灰色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add y1,bx add y1,bx shr bx,1 add y1,bx call single_circle mov n,09h;第三個(gè)環(huán),藍(lán)色

10、mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add y1,bx add y1,bx add y1,bx add y1,bx add y1,bx call single_circle mov n,0ah;第四個(gè)環(huán),綠色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add x1,bx add y1,bx shr bx,1 shr bx,1 add y1,bx call single_circle mov n,0eh; 第五個(gè)

11、環(huán),黃色 mov x,0 mov bx,r mov y,bx mov si,x3 mov x1,si mov si,y3 mov y1,si add x1,bx add y1,bx add y1,bx add y1,bx shr bx,1 add y1,bx shr bx,1 add y1,bx call single_circle pop sicall delayjmp frontcircul endp ;*逐步進(jìn)給調(diào)整坐標(biāo),單環(huán)繪制* single_circle proc near mov si,1 sub si,r mov d,si ;d=1-r,x=0 lin3: mov si,x ;

12、si=x mov di,y ;di=y=r add si,x1 add di,y1 mov dx,si ;dx=si+x1 mov cx,di ;cx=di+y1 mov si,x ; mov di,y cmp si,di ;比較x與y,xy則八分之一圓弧繪制結(jié)束 jg lin call hua ;xy cmp d,0 ; jge lin1 ;mov si,2 mov ax,0 mov ax,si imul x mov si,ax add si,3 add d,si lin2: inc x jmp lin3 lin1: mov si,2 mov ax,0 mov ax,si mov di,x

13、sub di,y imul di mov si,ax add si,5 add d,si dec y jmp lin2 lin: ret single_circle endp huadian proc near ;寫像素,al=顏色值,bh=頁號(hào) mov ah,0ch mov al,n mov bh,0 int 10h ret huadian endp ;*八分法繪制圓環(huán)* hua proc near call huadian ;畫第一點(diǎn) (x,y) mov x2,dx mov y2,cx sub dx,x1 sub cx,y1 xchg dx,cx add dx,x1 add cx,y1 c

14、all huadian ;畫對(duì)稱點(diǎn)(y,x) mov dx,x2 mov cx,y2 sub cx,y1 sub dx,x1 xchg dx,cx mov m,dx add m,dx sub dx,m add dx,x1 add cx,y1 call huadian ;畫點(diǎn)(-y,x) sub cx,y1 mov m,cx add m,cx sub cx,m add cx,y1 call huadian ;畫點(diǎn)(-y,-x) mov dx,x2 mov cx,y2 sub dx,x1 sub cx,y1 mov m,cx add m,cx sub cx,m add cx,y1 add dx,x

15、1 call huadian ;畫點(diǎn) (x,-y) sub dx,x1 mov m,dx add m,dx sub dx,m add dx,x1 call huadian ;畫點(diǎn)(-x,-y) mov dx,x2 mov cx,y2 sub dx,x1 sub cx,y1 mov m,dx add m,dx sub dx,m add dx,x1 add cx,y1 call huadian ;畫點(diǎn) (-x,y) mov dx,x2 mov cx,y2 sub dx,x1 sub cx,y1 xchg dx,cx mov m,cx add m,cx sub cx,m add dx,x1 add cx,y1 call huadian ;畫點(diǎn) (y,-x) call delay ret hua endp ;*延時(shí)* delay proc near push dx push cx mov

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論