freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

小鳥動畫程序課程設計-在線瀏覽

2025-08-08 19:11本頁面
  

【正文】 在小鳥飛翔子程序中,當按鍵為 Q時,調(diào)用結束子程序;當按鍵為 P 時,調(diào)用暫停子程序;當按鍵為 B時,調(diào)用小鳥飛翔并鳴叫子程序;當無按鍵輸入或按鍵為其它時,循環(huán)顯示小鳥并檢測鍵盤輸入。 在小鳥飛翔并鳴叫子程序中,當按鍵為 Q 時,調(diào)用結束子程序;當按鍵為 P時,調(diào)用暫停子程序;當按鍵為 S時,調(diào)用小鳥飛翔子程序;當按鍵為 B時,調(diào)用小鳥鳴叫子程序;當無按鍵輸入或按鍵為其它時,循環(huán)顯示小鳥并檢測鍵盤輸入。 可以 發(fā)現(xiàn),只要實現(xiàn)了上述程序設計即可滿足設計要求。 武漢理工大學《微機原理與接口技術》課程設計說明書 3 圖 1 主程序流程圖 基本模塊方案選擇 此程序的基本模塊是小鳥的圖案顯示和發(fā)聲鳴叫,其飛翔及飛翔時鳴叫均 是 基于此模塊 。 小鳥圖案顯示方案選擇 通過查閱資料,形成小鳥圖像有兩種方法:一種是字符形成小鳥圖像 (即文本方式 );另一種是像素點形成小鳥圖像(即圖形方式)。程序結構圖大致如下: YESNOYESYESYESYESNONONONO有按鍵輸入?顯示提示語句顯示小鳥輸入字符為 Q ?輸入字符為 B ?輸入字符為 P ?輸入字符為 S ?結束子程序飛翔子程序鳴叫子程序暫停子程序開始武漢理工大學《微機原理與接口技術》課程設計說明書 4 MOV AH,09H ;置光標 MOV AL,‘字符 ’ ; 字符 ASCII 碼 MOV BL,7 ; 字符屬性 MOV BH,0 ; 第 0頁 MOV CX,數(shù)量值 ; 字符重復個數(shù) INT 10H 方案二 :用圖形方式形成小鳥圖像,是利用像素來產(chǎn)生彩色圖案,它也是利用 BIOS 中的 INT 10H的功能 00H 來設置圖形方式。 鑒于以上的比較,在小鳥顯示圖像這個環(huán)節(jié)決定采用方案一,以減小操作量。這三幅圖案分別表示小鳥收翅,展翅,拍翅三個畫面 , 并循環(huán)顯示以 達到較好的視覺效果。 小鳥發(fā)聲鳴叫方案選擇 小鳥發(fā)聲程序也是一個比較重要的環(huán)節(jié),中間涉及到揚聲器發(fā)聲部分。下面就這兩種不同的方式確定兩個不同的設計方案。程序直接控制 PPI( 8255 可編程序外圍接口芯片)的輸出控制寄存器( I/O 端口為 61H)的第 一 位,使該位按所需的頻率進行 1 和 0 的交替變化,從而產(chǎn)生一串脈沖控制波形,這些脈沖經(jīng)過放大后驅動揚聲器發(fā)出聲音。軟件實現(xiàn)的程序如下: IN AL, 61H MOV AH, AL 武漢理工大學《微機原理與接口技術》課程設計說明書 5 AND AL, 0FCH ;關斷定時器通道 2的門控 SOUND: XOR AL, 2 ;觸發(fā) 61H端口第 1位 OUT 61H, AL MOV CX, DX ;( DX) =控制脈沖的計數(shù)值 WAIT: LOOP WAIT ;延時循環(huán) DEC BX ;( BX) =脈沖持續(xù)的時間 JNZ SOUND MOV AL, AH OUT 61H, AL ; 恢復 61H 端口 在本方案中,通過程序的方法來控制 PB1,使其在 1 和 0 之間按一定的頻率變,從而產(chǎn)生一串脈沖??刂泼}沖寬度的計數(shù)值的實現(xiàn)程序如下: MOV BX, 100 WAIT: MOV CX,2801 DELAY: LOOP DELAY DEC BX JNZ WAIT 算出了脈沖寬度,再通過高低電平的不斷變換,就可實現(xiàn)不同頻率的脈沖方波。 方案二 : 利用定時器發(fā)聲。 CPU 通過對定時器的通道 2 進行編程,使其 I/O 寄存器接收一個控制聲音頻率的 16 位計數(shù)值,端口 61H 的最低位控制通道 2門控的開斷,以產(chǎn)生特殊的音響。 f=1234DCH247。其武漢理工大學《微機原理與接口技術》課程設計說明書 6 位組合的格式如下: 當通道 2 用于發(fā)聲時,采用的是模式 3,在模式 3 下,輸出線為“ 1”和為“ 0”的時間各占計數(shù)時間的一半,因而產(chǎn)生一系列間隔均勻的脈沖。經(jīng)對比可知,兩種方案都各有優(yōu)缺點。然而它也存在一定的缺點,就是系統(tǒng)不斷地通過軟件來產(chǎn)生方波,系 統(tǒng)資源被占用,無法再做其它事。 所以經(jīng)過分析,小鳥發(fā)聲程序選擇方案二進行設計。 小鳥顯示功能 可以通過調(diào)用 小鳥顯示子程序實現(xiàn),小鳥顯示子程序將在第 節(jié)詳細介紹。每一次調(diào)用前還需將要顯示的圖案的變量地址傳送給寄存器 DI。 顯示方式的設置可以通過調(diào)用 BIOS 的 10H 號中斷的 0 號功能來實現(xiàn) , 這里將顯示方式設置為 80*25 黑白 圖形方式 。 BIOS 的 16H 號中斷用于鍵盤 I/O中斷調(diào)用,為了實現(xiàn)有無字符輸入檢測,這里使用其 1 號功能。通過標志位的判斷,即可執(zhí)行不同的選擇。 每一次有字符輸入后,無論是執(zhí)行何種操作,在比較 判斷之后一定要將鍵盤緩存區(qū)清空,以保證下一次的鍵盤字符檢測能順 利執(zhí)行。 為了便于人機交流,在主程序開始時還設計提示語句顯示功能,這可以通過調(diào)用 DOS的 21H號中斷功能實現(xiàn)。 武漢理工大學《微機原理與接口技術》課程設計說明書 8 圖 2 主程序流程圖 (詳 ) 主程序代碼設計 MAIN PROC mov ah,0 。在顯示器上顯示字符串提示信息 mov ah,9 int 21h lea dx,info2 。顯示小鳥 CALL DISPLAY0 LEA DI,BIRD2 CALL DISPLAY0 LEA DI,BIRD3 CALL DISPLAY0 mov ah,1 。若無輸入則循環(huán)顯示小鳥 CMP AL,39。 JNZ A0 CALL FAR PTR QUIT 。P39。若輸入 P 則暫停 B0:CMP AL,39。 JNZ C0 CALL FLY 。B39。若輸入 B 則小鳥鳴叫 D0: mov ah,0 。若輸入其它字符仍循環(huán)顯示小鳥 RET MAIN ENDP 小鳥飛翔子程序設計 小鳥 飛翔子程序設計思路 因本程序中小鳥顯示圖案是 向前移動的 動畫圖案, 由于小鳥顯示子程序中已包含清屏和 延時操作,故只需在 每一次動態(tài)圖案 后將光標位置前移一格,并循環(huán)顯示即可讓動態(tài)的小鳥圖案向前移動。 為了使小鳥在從飛翔子程序跳到鳴叫子程序或其他子程序中再回來時不改變位置,這里在內(nèi)存中定義一個變量,設為 DXF 用于跟蹤小鳥飛翔的位置。 通過以上步驟,就能實現(xiàn)對小鳥飛翔位置的跟蹤。 其中小鳥動畫圖案顯示在主程序中已作論述,這里不再詳述 武漢理工大學《微機原理與接口技術》課程設計說明書 11 圖 3 小鳥飛翔子 程序流程圖 小鳥飛翔子程序代碼設計 FLY PROC DISP1: LEA DI,BIRD1 。保護 AX 寄存器 結束子程序清空鍵盤緩存C O U N T 1 = 0開始顯示小鳥動畫圖案D L = D L + 1光標前移一格有按鍵輸入?輸入字符為 Q ?輸入字符為 B ?輸入字符為 P ?調(diào)用 16H 中斷功能 0清空鍵盤緩存區(qū)D X F= D X飛翔并鳴叫子程序暫停子程序YESNOYESYESYESNONONO武漢理工大學《微機原理與接口技術》課程設計說明書 12 MOV AX,DXF INC AL MOV DXF,AX 。從鍵盤讀取字符到 AL 寄存器 int 16h JZ DISP1 。Q39。若輸入 Q 則結束 ,退出程序 A1: CMP AL,39。 JNZ B1 MOV COUNT1,0 CALL PAUSE 。B39。清空鍵盤緩存 int 16h CALL FAR PTR FLY_BLEAT 。清空鍵盤緩存 int 16h JMP DISP1 。 0 號定時器用來作為日常通用的時鐘,它每秒約發(fā)出 18次中斷一修正時間; 1號定時器用于 DMA(直接存儲器存?。﹤魉蛿?shù)據(jù),連接到揚聲器上的是 2 號定時器,它實際上武漢理工大學《微機原理與接口技術》課程設計說明書 13 是一個振蕩電路,此電路向揚聲器發(fā)送指定頻率的脈沖,當輸出端口 61H 控制揚聲器為接通狀態(tài)時,就發(fā)出了一定頻率的聲音。 小鳥鳴叫子程 序流程圖設計 通過以上小鳥鳴叫子程序設計思路分析,可設計其詳細流程圖如圖 4 所示。 圖 4 小鳥鳴叫子 程序流程圖 取發(fā)聲頻率和持續(xù)時間數(shù)據(jù)結束子程序清空鍵盤緩存C O U N T 2 = 0開始取頻率和持續(xù)時間數(shù)據(jù)地址設置發(fā)聲時間調(diào)用發(fā)聲子程序有按鍵輸入?輸入字符為 Q ?輸入字符為 S ?輸入字符為 P ?調(diào)用 16H 中斷功能 0清空鍵盤緩存區(qū)D X = D X B飛翔并鳴叫子程序YESNOYESYESYESNONONO暫停子程序顯示小鳥動畫圖案武漢理工大學《微機原理與接口技術》課程設計說明書 14 小鳥鳴叫 子程序代碼設計 BLEAT PROC FAR FREG: LEA SI,MUS_FREG LEA BP,DS:MUS_TIME PUSH BX MOV DI,[SI] MOV DX,DS:[BP] MOV BX,1400 CALL GENSOUND 。顯示小鳥 CALL DISPLAY0 LEA DI,BIRD2 CALL DISPLAY0 LEA DI,BIRD3 CALL DISPLAY0 mov ah,1 。若無輸入則持續(xù)鳴叫等待 CMP AL,39。 JNZ A2 CALL FAR PTR QUIT 。P39。若輸入 P 則暫停 B2: CMP AL,39。 JNZ C2 武漢理工大學《微機原理與接口技術》課程設計說明書 15 mov ah,0 。若輸入 S 則同時飛翔 C2: mov ah,0 。若輸入其它則持續(xù)鳴叫等待 RET BLEAT ENDP 小鳥 飛翔并 鳴叫子程序設計 小鳥 飛翔并 鳴叫子程序設計思路 此模塊的一個簡單的設計思路就是 在 小鳥飛翔子程序中 加入 帶發(fā)聲功能的延時子程序 ,這樣就能實現(xiàn)小鳥同時飛翔并鳴叫功能?;诖?,這里另外設計一個不帶延時的小鳥顯 示子程序,并用它代替原先的小鳥顯示子程序,這樣處理后在滿足小鳥同時飛翔并鳴叫的基礎上,又使小鳥在按 B 前后的飛翔速度相協(xié)調(diào),達到滿意的效果。這里同樣不 對發(fā)聲延時子程序 加以詳述,只在最后的附錄中給出其程序代碼。 武漢理工大學《微機原理與接口技術》課程設計說明書 16 圖 5 小鳥 飛翔并 鳴叫子 程序流程圖 小鳥 飛翔并 鳴叫子程序代碼設計 FLY_BLEAT PROC DISP2: LEA DI,BIRD1 。小鳥向前移動 1 格 MOV DXF,AX POP AX mov ah,1 。若無輸入則持續(xù)飛翔等待 CMP AL,39。 JNZ A3 CALL FAR PTR QUIT 。P39。若輸入 P 則暫停 B3:CMP AL,39。 JNZ C3 CALL BLEAT 。S39。若輸入 S 則小鳥只是飛翔 D3: mov ah,0 。若輸入其它則持續(xù)飛翔鳴叫等待 RET FLY_BLEAT ENDP 暫停子程序設計 暫停子程序設計思路 在 此模塊 中可以通過調(diào)用 BIOS 的 16 號中斷來實現(xiàn)。故只要在調(diào)用 BIOS 的 16 號中斷前將鍵盤緩存區(qū)清空就可實現(xiàn)暫停功能。這里另外在數(shù)據(jù)段中定義 4 個變量,分別對應主程序,小鳥飛翔子程序,小鳥鳴叫子程序和小鳥飛翔并鳴叫子程序,并初始化為 1。到了暫停子程序并按下 C 鍵后,首先對各個變量進行檢測,并執(zhí)行變量為 0 的分支操作 ,并在返回前又將變量置 1, 這樣就使程序能正確地回的暫停停位置。 圖 6 暫停子 程序流程圖 開始清空鍵盤緩存區(qū)
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1