




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、設(shè)計(jì)課題: 動(dòng)畫(huà)程序設(shè)計(jì)班級(jí): 自動(dòng)化 120 組員: 指導(dǎo)教師: 付文秀 一設(shè)計(jì)題目動(dòng)畫(huà)程序設(shè)計(jì)二、設(shè)計(jì)內(nèi)容1、主要內(nèi)容:利用BIOS系統(tǒng)功能調(diào)用,進(jìn)行簡(jiǎn)單的動(dòng)畫(huà)設(shè)計(jì)。利用BIOS中斷的10號(hào)、21號(hào)功能,進(jìn)行簡(jiǎn)單的動(dòng)畫(huà)設(shè)計(jì),并根據(jù)以下提示信息進(jìn)行選擇:(1)小鳥(niǎo)從屏幕飛過(guò)。(2)汽車(chē)按水平方向從屏幕上開(kāi)過(guò)去。(3)退出。2、基本功能:(1)清屏宏定義觀察程序流程圖,在顯示小鳥(niǎo)圖形,汽車(chē)圖形時(shí),要先清屏,所以在編寫(xiě)程序使用到宏,因?yàn)楹甓x只需在匯編語(yǔ)言原程序中定義一次,便可以多次反復(fù)調(diào)用。調(diào)用時(shí)只需要一條宏指令即可。程序中的清屏定義為: 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,定義了五個(gè)形式參數(shù),分別為:pch,pcl,pdh,pdl,pbh,把pch,pcl的值分別傳給窗口左上角行號(hào)、列號(hào),pdh,pdl的值分別傳給窗口右下角行號(hào)、列號(hào),pbh的值則傳給窗口底部卷入行屬性。利用已經(jīng)定義好的宏,清屏?xí)r可以宏調(diào)用。宏調(diào)用語(yǔ)句為:CLEAR 0,0,24,79,7(2)子程序設(shè)計(jì) 在接受鍵盤(pán)輸入后,判斷AL的值,如果是“1”就調(diào)用小鳥(niǎo)子程
3、序,如果是“2”就調(diào)用汽車(chē)子程序,如果是“3”就結(jié)束退出。在小鳥(niǎo)子程序中又嵌套了延時(shí)子程序,在汽車(chē)子程序中又嵌套了多個(gè)子程序。(3)顯示小鳥(niǎo)字符圖形 程序中利用BIOS系統(tǒng)功能中10H中斷的09號(hào)功能進(jìn)行小鳥(niǎo)字符圖形的顯示,程序段如下: MOV AH,9 MOV AL,76H MOV BL,10 INT 10H 要是小鳥(niǎo)字符圖形顯示的更清晰,則需要延時(shí)。循環(huán)指令LOOP,當(dāng)CX不為零時(shí),執(zhí)行循環(huán)轉(zhuǎn)移分支;當(dāng)CX為零時(shí),退出循環(huán)。延時(shí)子程序?yàn)椋?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 上述子程序用兩層循環(huán)實(shí)現(xiàn)延時(shí),內(nèi)循環(huán)實(shí)現(xiàn)單位時(shí)間延時(shí),外循環(huán)次數(shù)由寄存器DX決定。 (4)顯示汽車(chē)字符圖形 因?yàn)槠?chē)是多字符顯示,所以在子程序中還嵌套了顯示汽車(chē)圖形和清屏兩個(gè)子程序。 MOV CH,0 MOV CL,DI INC DI MOV CHAR,CX MOV POINTER,DI MOV LINE,DH MOV COL,DL 此段程序把CH的值設(shè)為了0,又因?yàn)镃L中存放字符的個(gè)數(shù),所以CL=6,DI指向字符圖形表中的第一個(gè)字符。 三、設(shè)計(jì)原理及方案 1、設(shè)計(jì)原理圖: 圖3-1 主程序 圖3-2 小鳥(niǎo)子程序
5、圖3-3 汽車(chē)子程序 2、設(shè)計(jì)方案:在屏幕上顯示動(dòng)畫(huà)的效果可以按以下五步進(jìn)行:(1)在屏幕上顯示圖形ASCII碼表,選擇“V”來(lái)顯示小鳥(niǎo),“V”的ASCII碼為76H,查表選擇彩色文本模式下的IRGB組合成的通用顏色,選擇亮綠色,色號(hào)為10。顯示汽車(chē)時(shí)用多字符圖形顯示,用6個(gè)字符組合來(lái)顯示汽車(chē),ASCII碼分別為52H、0B1H、0DBH、0DBH、4FH、4FH,顯示屬性為白色,即色號(hào)為7。在設(shè)置字符顯示位置時(shí),是通過(guò)兩兩字符間的相對(duì)坐標(biāo)來(lái)實(shí)現(xiàn)的。(2)延時(shí)一個(gè)時(shí)間周期,這樣圖形更清晰。這里要用到延時(shí)子程序及其調(diào)用。(3)消除圖形在進(jìn)行小鳥(niǎo)清屏?xí)r,可使用清屏宏調(diào)用,只需在程序前面進(jìn)行清屏宏定
6、義。而在進(jìn)行汽車(chē)的清屏?xí)r,由于汽車(chē)是由對(duì)字符圖形顯示的,所以不采用清屏宏調(diào)用,而是通過(guò)修改字符顯示屬性來(lái)進(jìn)行清屏。(4)改變圖形的行、列坐標(biāo)。因?yàn)橐笮▲B(niǎo)從屏幕飛過(guò),所以小鳥(niǎo)的飛行路徑不是水平也不是垂直的,所以要同時(shí)改變字符的行、列坐標(biāo);而汽車(chē)從左至右行駛,所以只需要改變汽車(chē)的列坐標(biāo)。(5)返回第一步,重復(fù)上述過(guò)程。利用BIOS系統(tǒng)功能中 10H中斷的06號(hào)功能進(jìn)行清屏,循環(huán)調(diào)用09號(hào)功能顯示字符圖形;延遲一段時(shí)間后,再循環(huán)調(diào)用09號(hào)功能,設(shè)置BL寄存器的值為0(黑底黑字顯示字符圖形),以達(dá)到擦除圖形的效果;改變行、列坐標(biāo),調(diào)用02號(hào)功能設(shè)置光標(biāo)位置,重復(fù)上述過(guò)程。利用DOS中斷的01號(hào)和02
7、號(hào)子功能來(lái)完成鍵盤(pán)接收,結(jié)果顯示。四、匯編源程序代碼 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 ;小汽車(chē)的字符圖形表 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
8、 ? LINE DB ? 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 ;設(shè)置顯示方式為80*25的黑白文體 MOV AL,02H INT 10H LEA DX,INFO1 ;在顯示器上顯示字符串提示信息 MOV AH,9 INT 21H MOV AH,1 ;從鍵盤(pán)讀取字符到AL寄存器 INT 21H CMP AL,31H ;比較AL是否等于1 JNE
9、 A CALL BIRD A: CMP AL,32H ;比較AL是否等于2 JNE B CALL QICHE B: CMP AL,33H ;比較AL是否等于3 JNE START MOV AH,4CH ;終止當(dāng)前程序并返回調(diào)用程序 INT 21H CLEAR MACRO pch,pcl,pdh,pdl,pbh ;清屏宏定義 MOV AH, 0 MOV AL,02H INT 10H MOV AH,6 ;調(diào)用6號(hào)功能 MOV AL,0 ;設(shè)置整個(gè)屏幕為空白 MOV CH,pch MOV CL,pcl ;窗口左上角行列數(shù) MOV DH,pdh MOV DL,pdl ;窗口左上角行列數(shù) MOV BH,
10、pbh ;正常屬性顯示 INT 10HENDMBIRD PROC ;小鳥(niǎo)子程序 MOV AX,DATA MOV DS,AX MOV AH,0 MOV AL,02H INT 10H CLEAR 0,0,24,79,7 ;清屏宏調(diào)用 MOV AH,0FH ;讀當(dāng)前顯示狀態(tài) 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 ;延時(shí) MOV AH,9 MOV AL,DI I
11、NT 10H INC DL DEC SI JNZ DISP JMP BEGIN EXIT1:RET BIRD ENDP QING PROC NEAR MOV AH,6 MOV AL,0 MOV CX,0 MOV DH,24 MOV DL,79 MOV BH,7 INT 10H RET QING ENDP DLY PROC NEAR ;延時(shí)子程序 PUSH CX PUSH DX MOV DX,10000 DL1: MOV CX,6801 DL2: LOOP DL2 DEC DX JNZ DL1 POP DX POP CX RET DLY ENDP QICHE PROC NEAR ;汽車(chē)子程序 M
12、OV AH,0 MOV AL,02 INT 10H CLEAR 0,0,24,79,7 ;清屏宏調(diào)用 LEA DI,CAR ;DI指向字符圖形表 MOV DH,5 ;從第5行0列位置開(kāi)始顯示汽車(chē) MOV DL,0 CALL MOVE RET QICHE ENDP MOVE PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI MOV AH,0FH ;取當(dāng)前顯示方式 INT 10H MOV CH,0 MOV CL,DI ;CL放字符個(gè)數(shù) INC DI ;DI指向字符圖形表 MOV CHAR,CX MOV POINTER,DI MOV LINE,DH
13、MOV COL,DL PLOT_NEXT: ADD DH,DI+2 ;改變行列坐標(biāo) ADD DL,DI+3 CMP DL,80 ;是否出屏 JB MOV_CRSR POP DI POP DX POP CX POP BX POP AX RET MOV_CRSR: MOV AH,2 INT 10H MOV AL,DI ;取字符值 MOV BL,DI+1 ;取字符屬性 MOV AH,09 ;顯示字符 INT 10H ADD DI,4 ;DI指向下一個(gè)字符 LOOP PLOT_NEXT CALL DLY CALL ERASE JMP SHORT PLOT_NEXT MOVE ENDP ERASE PR
14、OC NEAR MOV CX,CHAR MOV DI,POINTER MOV DH,LINE MOV DL,COL ERASE_NEXT: ADD DH,DI+2 ;修改光標(biāo)的行坐標(biāo) ADD DL,DI+3 ;修改光標(biāo)的列坐標(biāo) MOV AH,2 INT 10H ;設(shè)置光標(biāo)位置 MOV AL,DI MOV BL,0 ;設(shè)置字符屬性為0,為黑色 PUSH CX MOV CX,1 ;設(shè)置字符顯示次數(shù)為1 MOV AH,9 INT 10H POP CX ADD DI,4 ;指向下一個(gè)要用來(lái)擦除的字符 LOOP ERASE_NEXT MOV CX,CHAR MOV DI,POINTER MOV DH,L
15、INE INC COL MOV DL,COL RET ERASE ENDP CODE ENDS END START五、實(shí)施結(jié)果1、初始界面,如圖5-2所示:圖5-12、輸入1,小鳥(niǎo)從屏幕飛過(guò)界面,如圖5-2所示:圖5-23、輸入2,汽車(chē)按水平方向從屏幕上開(kāi)過(guò)去界面,如圖5-3所示:圖5-34、輸入3,退出界面,如圖5-4所示:圖5-4六、心得與體會(huì) 在老師布置了微機(jī)原理與接口技術(shù)課程設(shè)計(jì)的研討題目后,我們小組首先進(jìn)行了集體討論,從12個(gè)課題中選擇了一個(gè)比較感興趣的課題動(dòng)畫(huà)程序設(shè)計(jì)。確定這個(gè)課題之后,組內(nèi)便開(kāi)始分工,大家查閱相關(guān)書(shū)籍,上網(wǎng)查找各種資料,初步確定了設(shè)計(jì)方案,對(duì)整個(gè)程序的流程有了大概
16、的順序,對(duì)程序先實(shí)現(xiàn)什么再實(shí)現(xiàn)什么有了一個(gè)初步計(jì)劃。因?yàn)樾≤?chē)使用多字符圖形組合來(lái)顯示,所以首先定義出小車(chē)的字符圖形表。然后就是在運(yùn)行程序是要用鍵盤(pán)輸入指令1、2、3,以顯示不同的運(yùn)行結(jié)果,此時(shí)就要對(duì)從鍵盤(pán)輸入信息和在顯示器上顯示信息進(jìn)行定義。因?yàn)樵陲@示小鳥(niǎo)圖形和汽車(chē)圖形時(shí),要先清屏,所以在編寫(xiě)程序要進(jìn)行清屏宏定義以供調(diào)用。接下來(lái)就編寫(xiě)小鳥(niǎo)子程序,為使小鳥(niǎo)字符圖形顯示的更清晰,則需要編寫(xiě)延時(shí)子程序。最后一大塊,便是編寫(xiě)汽車(chē)子程序。得出完整程序后,便在計(jì)算機(jī)上運(yùn)行,初次運(yùn)行時(shí)程序中出現(xiàn)了好幾處錯(cuò)誤。有幾處粗無(wú)是“錯(cuò)誤的中文標(biāo)注”因?yàn)樵谥形臉?biāo)注后忘記切換回英文鍵盤(pán),島主程序中出現(xiàn)了不合法的中文字符。還有就是單引號(hào)不慎寫(xiě)成了雙引號(hào)等。根據(jù)計(jì)算機(jī)提示的錯(cuò)誤行數(shù),很容易找到錯(cuò)誤,在組員的齊心協(xié)力下,我們終于把所有的錯(cuò)誤都解決了,最后運(yùn)行通過(guò)!通過(guò)本次微機(jī)原理與接口技
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 我的中國(guó)夢(mèng)作文100字篇
- 二零二五年度燃?xì)庑孤﹫?bào)警器安裝合同
- 二零二五年度餐飲單位市場(chǎng)拓展合作合同
- 二零二五年度房屋出租中介服務(wù)合同(含租賃合同解除條件)
- 2025年度餐飲廚師營(yíng)養(yǎng)健康食譜開(kāi)發(fā)合同
- 二零二五年度果園果樹(shù)種植與農(nóng)業(yè)科技創(chuàng)新合作承包經(jīng)營(yíng)合同
- 二零二五年度國(guó)際文化交流項(xiàng)目合作協(xié)議
- 2025年度電商平臺(tái)游戲點(diǎn)卡充值代理合同范本
- 二零二五年度個(gè)人新能源汽車(chē)貸款合同
- TCECA-G 0310-2024 離網(wǎng)制氫靈活消納與柔性化工系統(tǒng)開(kāi)發(fā)規(guī)范
- 產(chǎn)科腹部四步觸診要點(diǎn)
- 2024年3月時(shí)政熱點(diǎn)(一)
- 2024天津市衛(wèi)生健康委員會(huì)所屬天津市衛(wèi)生健康促進(jìn)中心選聘3人(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 咨詢(xún)行業(yè)人工智能應(yīng)用研究
- SLT 478-2021 水利數(shù)據(jù)庫(kù)表結(jié)構(gòu)及標(biāo)識(shí)符編制總則
- 2024年春學(xué)期人教版小學(xué)道德與法治六年級(jí)下冊(cè)教學(xué)計(jì)劃附教學(xué)進(jìn)度表
- MIL-STD-1916抽樣計(jì)劃表(抽樣數(shù))大
- 中考數(shù)學(xué)一輪復(fù)習(xí)各章節(jié)復(fù)習(xí)有答案完美版
- 2024 年袋鼠數(shù)學(xué)競(jìng)賽 等級(jí)E(中國(guó)區(qū))
- 【《海信電器企業(yè)作業(yè)成本法下的物流成本核算分析》8500字】
評(píng)論
0/150
提交評(píng)論