




已閱讀5頁,還剩19頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學 號: 0121411371305課 程 設 計題 目霓虹燈顯示程序設計學 院自動化學院專 業自動化卓越工程師班 級自動化ZY1402姓 名潘江寶指導教師李道遠2016年12月2日課程設計任務書學生姓名: 潘江寶 _ 專業班級: 自動化ZY1402 指導教師: 李道遠 工作單位: 自動化學院 題 目: 顯示姓名字樣的程序 初始條件:編寫顯示“自己姓名”字樣的程序,每隔1秒鐘變一次顏色(變三次)。按Q退出程序。要求完成的主要任務: (包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)(1) 設計任務及要求分析(2) 方案比較及認證說明(3) 系統原理闡述(4) 硬件設計課題需要說明:硬件原理,電路圖,采用器件的功能說明(5) 軟件設計課題需要說明:軟件思想,流程圖,源程序及程序注釋(6) 調試記錄及結果分析(7) 總結(8) 參考資料(9) 附錄:芯片資料或程序清單,軟件演示屏幕拷貝圖或硬件實物圖時間安排:11月20日11月23日:收集資料,方案選擇11月23日11月30日:整體流程,程序細節,調試程序12月1日12月7日: 課程設計報告撰寫12月8日:交報告,程序演示,答辯指導教師簽名: 年 月 日系主任(或責任教師)簽名: 年 月 日目錄摘要IABSTRACTII1設計任務及要求分析11.1設計任務目的分析11.2具體要求分析12方案比較及認證說明22.1方案設計22.2方案選擇23 系統原理闡述34 設計思路及匯編程序44.1 主程序設計44.2 子程序yanse1設計54.3 子程序disp的設計54.4 子程序delay的設計64.5 退出程序及中斷指令調用64.6 源程序代碼75調試記錄及結果分析17總結20參考文獻21微機原理與接口技術課程設計說明書摘要隨著現代科學技術的發展,計算機的應用越來越廣泛,軟件技術應用于生活的各個領域。而軟件的開發離不開編程,因此,微機原理與接口技術的應用也更加深入了。微機原理課程設計,目的在于檢測我們這一學期微機原理課程學習的成果,加深我們對匯編語言中各種指令的理解與應用,提高我們動腦思考、動手操作的能力。最后通過emu8086仿真軟件編譯運行來實現設計要求。本次微機課設,要求設計一個顯示自己姓名字樣的程序,通過編寫匯編程序,學習子程序的編寫與調用,以及BIOS和DOS中斷指令的調用,掌握基本的編程方法,實現用字符點陣顯示漢字并能實現顏色變換,完成設計要求,鍛煉自己的能力。關鍵字:匯編 子程序 中斷ABSTRACTWith the development of modern science and technology, the application of the computer is more and more widely. Software technique is applied to all areas of life. And software development cannot leave the programming, Therefore, the application of microcomputer principle and interface technology are also more deeply. Microcomputer principle curriculum design, the purpose is to test the findings of our microcomputer principle course this semester, to deepen our understanding of all kinds of instructions in assembly language and application, and improve our brain thinking and hands-on ability. At last, by using emu8086 simulation software compile operation to achieve the design requirements.This computer classes set to design a display name on your programs, by writing assembler, learning to write and call subroutine, and call the BIOS and DOS interrupt instruction. Mastering the basic programming methods, realizing the character dot matrix display Chinese characters and be able to achieve color transformation, to complete the design requirements, exercise their abilities.Keywords: assembly subroutine interruptI微機原理與接口技術課程設計說明書1設計任務及要求分析1.1設計任務目的分析通過課程設計任務書明確本次設計要求是通過匯編編程,在屏幕上能夠顯示“自己姓名”的字樣,并能夠實現在一定時間間隔后變換一次顏色,共需要變色三次,最后按Q或q鍵退出程序,根據實際調試過程完成課程設計報告。1.2具體要求分析對課程設計任務書的要求進行具體分析,大致可以分成四個模塊實現功能要求:顯示模塊、變色模塊、延時模塊以及退出程序模塊。顯示模塊可以實現在屏幕上輸出“自己姓名”的字樣,即顯示“潘江寶”三個字;變色模塊可以實現將顯示的名字從一種顏色轉換到另一種顏色;延時模塊可以保證一種顏色顯示完成后,在進行下一次變色之前有一定的時間間隔;退出模塊是在完成主要功能后顯示提示信息,并根據用戶按鍵退出程序的模塊。通過上述分析,將程序分成若干模塊可以使程序更加具有條理性,同時分模塊編程及調試方便我們對程序的修改。根據實際要求,編寫好各模塊程序后,通過主程序的調用和相應的中斷指令完整的實現設計要求,即在屏幕上顯示“孟德輝”三個字,并能夠變換顏色三次,完成實驗報告。172方案比較及認證說明2.1方案設計通過對設計要求的認真分析,主要提出以下兩種可行方案。方案一:在數據段進行定義。用字符構造出“潘江寶”字樣存入數據段緩存區中,在主程序運行時直接調用輸出到屏幕上,再通過設置文本與背景顏色進行顏色之間的轉換,達到設計要求。其優點是可以快速輸出,快速變色;但其缺點是若要輸出的文字過多,在數據段定義比較麻煩,而且需要占用較多的緩存。方案二:利用字模軟件產生“潘江寶”三個字的字模,將字模數據定義到數據段中,在程序運行中調用響應的字模數據循環輸出,可以實現在屏幕上顯示由字符組成的漢字。方案二的優點是設計方法簡單,占用緩存較小,可以輸出較多的漢字;其缺點是輸出速度慢,顏色轉換過程也比較繁瑣。2.2方案選擇通過分析比較,雖然方案一在本次課程設計中設計更簡單,但方法不具有普遍性,不夠使用;盡管方案二較方案一運行速度慢,但可操作性好,所以在本次課程設計中采用方案二進行相關的設計,以下將對方案二進行詳細的說明。3 系統原理闡述本次課程設計題目較簡單,設計思路及方法比較簡單,但過程比較繁瑣,主要是運用本學期微機原理課程學習的知識,用基本的匯編語句進行屏幕輸出顯示以及變色等功能。程序主要以顯示模塊為主,再輔助以顏色設置、光標設置等中斷指令,實現字符的輸出構成漢字文字。完成一次顯示后,通過改變寄存器BL的值改變輸出顏色,將光標移動到起始位置再次進行一次輸出,但是顏色不同。如此循環三次,完成主要的設計要求,然后根據提示信息輸入退出程序。在程序設計中,顯示、延時等模塊主要有子程序完成,主程序就比較簡單,這樣設計可以使程序的條理性更加清晰,方便調試。 微機原理與接口技術課程設計說明書4 設計思路及匯編程序4.1 主程序設計根據程序設計要求及方案分析,首先對屏幕進行初始化設置,然后對數據段的相關數據進行調用。程序的主要流程是將數據段中pan字在屏幕的輸出起始地址送給SI,將字模數據的偏移地址送給寄存器BL,然后調用子程序yanse1將第一種顏色的pan字輸出到屏幕上;用同樣的方式輸出jiang字和bao字。第一次顯示完成后,經過一段延時,用上述同樣的方法依次調用子程序yanse2進行第二次輸出,調用子程序yanse3進行第三次輸出,調用子程序yanse4進行第四次輸出。三次變色完成后,屏幕上將出現提示信息:按Q或q退出程序。程序運行完成,基本實現設計要求。在子程序調用改變顏色的過程中,四個子程序基本相同,只是輸出顏色有所不同。主程序流程圖見圖1. 圖1 主程序流程圖4.2 子程序yanse1設計由主程序的設計可以看出,子程序yanse2、yanse3、yanse4與子程序yanse1基本相同,只是顏色賦值不同,這里只對子程序yanse1進行詳細說明,其余的跟這個相同。根據字模點陣的設計,本次課程設計一個漢字采用的是1616的點陣,該子程序的設計主要是對行循環的設計,程序中調用的子程序disp是對列循環的設計。圖2 子程序yanse1的流程圖子程序yanse1的設計過程主要是設置循環次數16,將字模第一行的數據送給bx,然后調用子程序disp,指針到下一行的數據位置,判斷是否循環完成16次,若完成返回主程序,否則繼續循環,直到一個漢字點陣的16行輸出完成。 子程序yanse1的流程圖見圖2.4.3 子程序disp的設計對于1616的漢字字模點陣,每一行都有16個點,要對每個點的輸出狀態進行判斷就要循環十六次。每一行的字模數據在計算機內是以16位二進制數保存的,每進行一次循環,對此二進制數左移一位,判斷CF標志位是1還是0,若是1則輸出*,是0則輸出空格,這樣就可以保證每一個點的輸出狀態。依次循環16次,完成一行的輸出,然后取下一行的數據進行循環輸出,從而實現一個完整漢字的輸出。圖3 子程序disp的流程圖子程序diap的流程圖見圖3.4.4 子程序delay的設計該延時程序采用的是bx,cx雙重循環耗時,同時給bx,cx賦值可以提高延時時間,但由于程序運行較慢,在實際調試過程中,bx,cx賦值都很小,節約運行時間。子程序delay的流程圖見圖4.圖4 子程序delay的流程圖4.5 退出程序及中斷指令調用程序退出指令比較簡單,主要是調用DOS中斷的21h中斷指令,實現程序退出。退出指令的流程圖見圖5.在本次課程設計中,主要用到的中斷指令是BIOS的10h中斷與DOS的21h中斷:1)int 10h的2號功能圖5 退出指令的流程圖入口參數:AH=2(功能號),BH=頁號,DH=行號,DL=列號。 出口參數:無。根據DX確定了光標位置。2)int 21h的9號功能格式:LEADX,待顯示字符串首偏移地址MOVAH,9INT21H功能:將當前數據區中以結尾的字符串送顯示器顯示。 3)int 21h的4ch號功能格式:MOVAH,4CH INT21H功能:終止當前程序并返回調用程序4.6 源程序代碼data segment qs1 dw 10h+0*0aah ;字符輸出位置 qs2 dw 40h+0*0a0h qs3 dw 70h+0*0a0h pan db 0x00,0x78,0x27,0xC0,0x12,0x48,0x11,0x50,0x87,0xFC,0x41,0x50,0x42,0x48,0x14,0x06,0x13,0xF8,0x22,0x48,0xE2,0x48,0x23,0xF8,0x22,0x48,0x22,0x48,0x23,0xF8,0x02,0x08;/*潘,0*/ jiang db 0x00,0x00,0x20,0x00,0x17,0xFC,0x10,0x40,0x80,0x40,0x40,0x40,0x48,0x40,0x08,0x40,0x10,0x40,0x10,0x40,0xE0,0x40,0x20,0x40,0x20,0x40,0x2F,0xFE,0x20,0x00,0x00,0x00;/*江,1*/ bao db 0x02,0x00,0x01,0x00,0x7F,0xFE,0x40,0x02,0x80,0x04,0x00,0x00,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x20,0x01,0x10,0xFF,0xFE,0x00,0x00;/*寶,2*/ exit1 db input Q or q to exit $data endsSTACK SEGMENT PARA STACK STACK DB 100 DUP(0)STACK ENDScode segment assume cs:code,ss:stack,ds:data ;確定各個邏輯段的類型main proc farstart: push ds ;初始化設置 xor ax,ax push ax mov ax,data mov ds,ax xianshi: ;顯示字和變換顏色 push ds ;入棧保護數據 MOV AX,0B800H ;寫顯存顯示 MOV ES,AX MOV SI,QS1 MOV BX,OFFSET pan ;把pan的偏移地址給bx call yanse1 ;調用子程序 MOV SI,QS2 MOV BX,OFFSET jiang ;把jiang的偏移地址給bx call yanse1 MOV SI,QS3 MOV BX,OFFSET bao ;把bao的偏移地址給bx call yanse1 pop ds call delay push ds MOV AX,0B800H ;寫顯存顯示 MOV ES,AX MOV SI,QS1 MOV BX,OFFSET pan call yanse2 ;換一個顏色 MOV SI,QS2 MOV BX,OFFSET jiang call yanse2 MOV SI,QS3 MOV BX,OFFSET bao call yanse2 pop ds call delay push ds MOV AX,0B800H ;寫顯存顯示 MOV ES,AX MOV SI,QS1 MOV BX,OFFSET pan call yanse3 ;換一個顏色 MOV SI,QS2 MOV BX,OFFSET jiang call yanse3 MOV SI,QS3 MOV BX,OFFSET bao call yanse3 pop ds call delay push ds MOV AX,0B800H ;寫顯存顯示 MOV ES,AX MOV SI,QS1 MOV BX,OFFSET pan call yanse4 ;換一個顏色 MOV SI,QS2 MOV BX,OFFSET jiang call yanse4 MOV SI,QS3 MOV BX,OFFSET bao call yanse4 pop ds call delay mov ah,2 mov dx,1501h int 10h lea dx,exit1 mov ah,9 int 21h x: mov ax,0c07h int 21h cmp al,Q jz exit cmp al,q jz exit loop xdelay proc near ;延時子程序 push cx push bx mov bx,0001h ;bx,cx雙重循環耗時 wait0: mov cx,000fh wait1: loop wait1 dec bx jnz wait0 pop bx pop cx retdelay endp yanse1 PROC NEAR MOV CX,16 ;每次讀入2字節,需讀16次 (共32字節) N1: MOV AX,BX XCHG AH,AL CALL DISP INC BX INC BX ADD SI,0A0H-32 ;下一行 LOOP N1 retyanse1 ENDPDISP PROC NEAR ;每次顯示2個字節共16位,循環16次 PUSH CX MOV CX,16 N2: ROL AX,1 JC DISP1 MOV DL, JMP DISP_K DISP1: MOV DL, * DISP_K: MOV ES:SI,DL MOV DL,01 ;顏色屬性 INC SI MOV ES:SI,DL INC SI LOOP N2 POP CX RETdisp endpyanse2 PROC NEAR ;只換了顏色 MOV CX,16 ;每次讀入2字節,需讀16次 (共32字節) N3: MOV AX,BX XCHG AH,AL CALL DISP12 INC BX INC BX ADD SI,0A0H-32 ;下一行 行 LOOP N3 retyanse2 ENDPDISP12 PROC NEAR ;每次顯示2個字節共16位,循環16次 PUSH CX MOV CX,16 N4: ROL AX,1 JC DISP2 MOV DL, JMP DISP_O DISP2: MOV DL,* ;屬性 DISP_O: MOV ES:SI,DL MOV DL,04 ;屬性 INC SI MOV ES:SI,DL INC SI LOOP N4 POP CX RETdisp12 endp yanse3 PROC NEAR ;只換了顏色 MOV CX,16 ;每次讀入2字節,需讀16次 (共32字節) N5: MOV AX,BX XCHG AH,AL CALL DISP13 INC BX INC BX ADD SI,0A0H-32 ;下一行 行 LOOP N5 retyanse3 ENDPDISP13 PROC NEAR ;每次顯示2個字節共16位,循環16次 PUSH CX MOV CX,16 N6: ROL AX,1 JC DISP3 MOV DL, JMP DISP_3 DISP3: MOV DL,* ;屬性 DISP_3: MOV ES:SI,DL MOV DL,07 ;屬性 INC SI MOV ES:SI,DL INC SI LOOP N6 POP CX RETdisp13 endpyanse4 PROC NEAR ;只換了顏色 MOV CX,16 ;每次讀入2字節,需讀16次 (共32字節) N7: MOV AX,BX XCHG AH,AL CALL DISP14 INC BX INC BX ADD SI,0A0H-32 ;下一行 行 LOOP N7 retyanse4 ENDPDISP14 PROC NEAR ;每次顯示2個字節共16位,循環16次 PUSH CX MOV CX,16 N8: ROL AX,1 JC DISP4 MOV DL, JMP DISP_4 DISP4: MOV DL,* ;屬性 DISP_4: MOV ES:SI,DL MOV DL,0ah ;屬性 INC SI MOV ES:SI,DL INC SI LOOP N8 POP CX RETdisp14 endpexit proc near mov ah,4ch int 21h retexit endp code endsend start5調試記錄及結果分析第一遍顯示結果如圖6.圖6 第一次顯示結果第二次輸出變色為紅色,如圖7.圖7 第二次顯示結果 第二次變色為白色,如圖8.圖8 第三次輸出結果 第三次變成綠色及提示信息如圖9.圖9 第四次輸出結果根據提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中小學學校教材教輔征訂管理工作方案
- 2025年度企業IT外包合作協議樣本 電腦維修服務合同
- 2025健身房轉讓合同樣本
- 2025年短期貸款合同標準范本
- 2025城市供氣合同范本
- 2025物業公司綠化管理合同
- 2025監理人在提升合同執行效率中的關鍵角色
- 2025 林地買賣合同模板
- 2025建筑工程合同的分類范文
- 蔬菜質量檢測中心合作協議
- MOOC 基于計算思維的Python程序設計-河北工程大學 中國大學慕課答案
- JJG 621-2012 液壓千斤頂行業標準
- JTG∕T F30-2014 公路水泥混凝土路面施工技術細則
- 施工工地環保知識培訓課件
- 康復醫學基礎知識培訓
- 深圳科技館(新館)展教工程常設展區整體展教方案
- 研發成果商業化轉化模板
- 《幼兒舞蹈創編與教學I-IV》課程標準
- 施工圖設計組織實施方案樣本
- 高中歷史中外歷史綱要下新教材習題答案
- 惡性腫瘤患者康復期營養管理專家共識
評論
0/150
提交評論