




已閱讀5頁,還剩14頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
微機原理與接口技術實驗報告學院:計算機與通信工程學院專業:計算機科學與技術班級:學號:姓名: 實驗一 8259中斷控制器應用實驗一、實驗目的 1.掌握PC機中斷處理系統的基本原理。 2. 掌握可編程中斷控制器8259的應用編程方法。 二、實驗內容 1PC機內中斷實驗。使用單次脈沖模擬中斷產生。驗證中斷處理程序,在顯示器屏幕上顯示一行預設定的字符串。 2PC機內中斷嵌套實驗。使用單次脈沖模擬兩個中斷源的中斷產生,填寫中斷處理程序,體會中斷嵌套的過程。 3擴展多中斷源查詢方式應用實驗。利用實驗平臺上8259控制器作為中斷擴展源,編寫程序對8259控制器的中斷請求進行處理。三、實驗步驟 1.實驗1-1:PC機內中斷應用實驗(1)按接線圖連好接線,調用程序源代碼8259-1.asm,觀察實驗現象,屏幕顯示結果截圖如下:(2) 自設計實驗。改變接線方式,將單次脈沖連到USB核心板上的IRQ10插孔上,參考本實驗代碼,編程實現IRQ10中斷。(注意:考慮PC機內中斷級聯的方式,參看前面的原理說明),代碼如下:DATA SEGMENT MESS DB IRQ10 ,0DH,0AH, $DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART: MOV AX, CS MOV DS, AX MOV DX,OFFSET INT10 MOV AX,2572H ;設置IRQ10對應的中斷向量 INT 21H IN AL,21H;讀取中斷屏蔽寄存器 AND AL,0F3H ;開放IRQ3中斷和從片 OUT 21H,AL IN AL,0A1H ;從片的中斷屏蔽寄存器 AND AL,0FBH ;開放IRQ10中斷 OUT 0A1H,AL MOV CX,10 STIWAIT: JMP WAITINT10: MOV AX, DATA ;中斷服務程序 MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上顯示每次中斷的提示信息 INT 21H MOV AL, 20H ; 發出EOI結束中斷到PC內主片的地址20H OUT 20H, AL LOOP NEXT IN AL, 21H ;讀中斷屏蔽寄存器,獲取中斷屏蔽字 OR AL, 08H ;關閉IRQ3中斷 OUT 21H, AL ;將中斷屏蔽字送到中斷屏蔽寄存器 STI ;置中斷標志位 MOV AH, 4CH ;返回DOS INT 21HNEXT: IRET ;中斷返回CODE ENDSEND START調用程序代碼,觀察實驗現象,屏幕顯示截圖如下: 2.實驗1-2:PC機內中斷嵌套實驗 實驗要求: (1)按接線圖連好接線,調用程序源代碼8259-2.asm,做如下操作,觀察屏幕顯示結果并分析產生該現象的原因: A 按下連接IRQ的單次脈沖按鍵,屏幕上會顯示10個3,在屏幕上10次顯示未結束之前,按下連接IRQ10的單次脈沖按鍵,觀察現象;按下IRQ時屏幕上會顯示10個3,此時按下IRQ10,會直接在屏幕上顯示10個10,然后結束后再顯示剩余的3B 按下連接IRQ10的單次脈沖按鍵,屏幕上會顯示10個10,在屏幕上10次顯示未結束之前,按下連接IRQ3的單次脈沖按鍵,觀察現象。 在屏幕上顯示10個10的過程中按下IRQ無反應,等到10個10全部顯示完畢后才再顯示10個3出現這種現象的原因是IRQ10的中斷優先級高于IRQ3 屏幕截圖:(2) 程序所有代碼及注釋:DATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTART: .386 CLI MOV AX,CS MOV DS,AX MOV DX,OFFSET INT10 ;采用間接修改法,設置中斷向量 MOV AX,2572H ;設置IRQ10對應的中斷向量 INT 21H MOV DX,OFFSET INT3 ;采用間接修改法,設置中斷向量 MOV AX,250BH ;設置IRQ3對應的中斷向量 INT 21H IN AL,21H ;讀中斷屏蔽寄存器,21H是該寄存器的端口號 AND AL,0F3H ;開放中斷,允許從片和IRQ3 OUT 21H,AL IN AL,0A1H ;讀中斷屏蔽寄存器,0A1H是該寄存器的端口 AND AL,0FBH ;開放中斷IRQ10 OUT 0A1H,AL MOV CX,10 ;記中斷循環次數為10次 STIWAIT: JMP WAITINT10: CLI ;中斷服務程序 PUSHAD PUSHFD MOV CX,10 ;記中斷循環次數為10次NEXT10_1: MOV DX,31H MOV AH,02H ;輸出DL INT 21H MOV DX,30H MOV AH,02H ;輸出DL INT 21H MOV DX,20H ;發出EOI結束中斷到PC內主片的地址20H MOV AH,02H ;輸出DL,3 INT 21H CALL DELAY1 ;等待 LOOP NEXT10_1 MOV DX,0DH MOV AH,02H ;輸出DL, INT 21H MOV DX,0AH ;發出EOI結束中斷到PC內從片占用的是0A0H端口 MOV AH,02H ;輸出DL,發生中斷后輸出10 INT 21H MOV AL,20H ;將中斷屏蔽字送到中斷屏蔽寄存器 OUT 0A0H,AL ;從片 OUT 20H,AL ;主片 POPFD ;關中斷,出棧,返回 POPAD STI IRETINT3: CLI ;中斷服務程序 PUSHAD PUSHFD MOV CX,10 ;記中斷循環次數為10次NEXT3_1: MOV DX,33H MOV AH,02H ;輸出DL INT 21H MOV DX,20H ;發出EOI結束中斷到PC內主片的地址20H MOV AH,02H ;輸出DL,3 INT 21H CALL DELAY1 ;等待 LOOP NEXT3_1 MOV DX,0DH MOV AH,02H ;輸出DL, INT 21H MOV DX,0AH ;發出EOI結束中斷到PC內從片占用的是0A0H端口 MOV AH,02H ;發生中斷輸出DL,10 INT 21H MOV AL,20H OUT 20H,AL ;將中斷屏蔽字送到中斷屏蔽寄存器 OUT 0A0H,AL POPFD ;出棧,關中斷,返回 POPAD STI IRETDELAY1 PROC ;控制等待部分 PUSHAD PUSHFD MOV CX,0FHDELAY_LOOP1: MOV BX,0FFFFHDELAY_LOOP2: DEC BX NOP JNZ DELAY_LOOP2 LOOP DELAY_LOOP1 POPFD POPAD RETDELAY1 ENDPCODE ENDS END START 3.實驗1-3:擴展多中斷應用實驗調用程序源碼文件8259-3.asm,在程序源代碼中劃橫線的位置,請按照所學8259工作原理填寫并驗證,然后將所填內容寫在實驗報告中,并分析所填數據的形成原理。屏幕截圖:程序代碼及與案例說明:;*; 8259中斷查詢方式應用實驗;請根據所學原理推斷橫線處需填寫的源代碼;*I8259_1 EQU 2B0H ; 8259的ICW1端口地址I8259_2 EQU 2B1H ; 8259的ICW2端口地址I8259_3 EQU 2B1H ; 8259的ICW3端口地址,ICW3,ICW4,OCW1都寫入奇地址中I8259_4 EQU 2B1H ; 8259的ICW4端口地址O8259_1 EQU 2B1H ; 8259的OCW1端口地址O8259_2 EQU 2B0H ; 8259的OCW2端口地址,OCW2,OCW3寫入偶地址O8259_3 EQU 2B0H ; 8259的OCW3端口地址DATA SEGMENT MES1 DB YOU CAN PLAY A KEY ON THE KEYBOARD!,0DH, 0AH, 24H MES2 DD MES1 MESS1 DB HELLO! THIS IS INTERRUPT * 0 *!,0DH,0AH,$ MESS2 DB HELLO! THIS IS INTERRUPT * 1 *!,0DH,0AH,$ MESS3 DB HELLO! THIS IS INTERRUPT * 2 *!,0DH,0AH,$ MESS4 DB HELLO! THIS IS INTERRUPT * 3 *!,0DH,0AH,$ MESS5 DB HELLO! THIS IS INTERRUPT * 4 *!,0DH,0AH,$ MESS6 DB HELLO! THIS IS INTERRUPT * 5 *!,0DH,0AH,$ MESS7 DB HELLO! THIS IS INTERRUPT * 6 *!,0DH,0AH,$ MESS8 DB HELLO! THIS IS INTERRUPT * 7 *!,0DH,0AH,$DATA ENDSSTACKS SEGMENT DB 100 DUP(?)STACKS ENDSSTACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACKS, ES:DATA.386START: MOV AX,DATA MOV DS, AX MOV ES, AX MOV AX, STACKS MOV SS, AX MOV DX, I8259_1 ;初始化8259的ICW1 MOV AL, 13H ;邊沿觸發、單片8259、需要ICW4,查表得到控制字 OUT DX,AL MOV DX,I8259_2 ;初始化8259的ICW2 MOV AL,0B0H OUT DX,AL MOV AL,03H OUT DX,AL MOV DX, O8259_1 ;初始化8259的中斷屏蔽操作命令字 MOV AL, 000H ;打開屏蔽位,將全部屏蔽位打開 OUT DX,AL QUERY: MOV AH,1 ;判斷是否有按鍵按下 INT 16H JNZ QUIT ;有按鍵則退出 MOV DX,O8259_3 ;向8259發送查詢命令 MOV AL,6CH ;01101100 OUT DX,AL IN AL,DX ;讀出查詢字 TEST AL,80H ;判斷中斷是否已響應,響應后對應位置0 JZ QUERY ;沒有響應則繼續查詢 AND AL,07H CMP AL,00H JE IR0ISR ;若為IR0請求,跳到IR0處理程序 CMP AL,01H JE IR1ISR ;若為IR1請求,跳到IR1處理程序 CMP AL,02H JE IR2ISR ;若為IR2請求,跳到IR2處理程序 CMP AL,03H JE IR3ISR ;若為IR3請求,跳到IR3處理程序 CMP AL,04H JE IR4ISR ;若為IR4請求,跳到IR4處理程序 CMP AL,05H JE IR5ISR ;若為IR5請求,跳到IR5處理程序 CMP AL,06H JE IR6ISR ;若為IR6請求,跳到IR6處理程序 CMP AL,07H JE IR7ISR ;若為IR7請求,跳到IR7處理程序 JMP QUERYIR0ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS1 ;顯示提示信息 MOV AH,09 INT 21H JMP EOIIR1ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS2 ;顯示提示信息 MOV AH,09 INT 21H JMP EOIIR2ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS3 ;顯示提示信息 MOV AH,09 INT 21H JMP EOIIR3ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS4 ;顯示提示信息 MOV AH,09 INT 21H JMP EOIIR4ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS5 ;顯示提示信息 MOV AH,09 INT 21H JMP EOIIR5ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS6 ;顯示提示信息 MOV AH,09 INT 21H JMP EOIIR6ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS7 ;顯示提示信息 MOV AH,09 INT 21H JMP EOIIR7ISR: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS8 ;顯示提示信息 MOV AH,09 INT 21HEOI: MOV DX,O8259_2 ;向8259發送中斷結束命令 MOV AL, 20H ;00100000 OUT DX, AL JMP QUERYQUIT: MOV AX,4C00H ;結束程序退出 INT 21HCODE ENDS END START實驗二 8254定時/計數器應用實驗一、實驗目的 1. 掌握 8254 的工作方式及應用編程。 2. 掌握 8254 典型應用電路的接法。 二、實驗內容 1計數應用實驗。應用8254的計數功能,用開關模擬計數,使每當按照計數初值的次數按動單次脈沖后,觀察LED的變化。 2. 自設計實驗。參考實驗一的程序, 編寫程序,以1MHz為時鐘源,應用8254的定時功能,將其分頻為1Hz。以LED燈作為輸出顯示。三、實驗步驟 1.實驗2-1:計數器應用實驗程序代碼填補:IO8254_MODE EQU 283H ;8254控制寄存器端口地址IO8254_COUNT0EQU 280H ;8254計數器0端口地址 STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV DX, IO8254_MODE ;初始化8254工作方式 MOV AL,16H ;計數器0,方式3,填入控制字:00010110 OUT DX, AL MOV DX, IO8254_COUNT0 ;裝入計數初值 MOV AL,04H ;初值為4,04H OUT DX,AL MOV AX,4C00H ;返回到DOS INT 21H CODE ENDS END START此時按兩次后燈亮,再按兩次后燈滅。如果令計數器0工作在方式0,其實驗現象為:按五次后燈變亮,之后不在熄滅。 2.實驗2-2:自設計實驗 實驗要求: 參考實驗一的程序和接線,自行設計接線圖以及程序代碼,實現,以1MHz為時鐘源,應用8254的定時功能,將其分頻為1Hz。以LED燈作為輸出顯示。使用計數器0和計數器1兩個計數器,設置其均工作于方式3,計數初值為1000,通過兩個計數器級聯,1000*1000=106達到分頻的目的。程序代碼如下:IO8254_MODE EQU 283H ;8254控制寄存器端口地址IO8254_COUNT0EQU 280H ;8254計數器0端口地址IO8254_COUNT1EQU 281H ;8254計數器1端口地址 STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV DX, IO8254_MODE ;初始化8254工作方式 MOV AL,37H ;計數器0,方式3 00110111 MOV DX,IO8254_COUNT0 ;裝入計數初值MOV AX,03E8H;1000D=0000 0011 1110 1000B=03E8HMOV AL,03HOUT DX,ALMOV AL,AHOUT DX,ALMOV DX, IO8254_MODE ;初始化8254工作方式MOV AL,76H ;計數器1, 方式3 01110110 OUT DX, AL MOV DX,IO8254_COUNT1 ;裝入計數初值 MOV AX,03E8H ;1000D=0000 0011 1110 1000B=03E8HMOV AL,03H OUT DX,AL MOV AL,AH OUT DX,ALMOV AX,4C00H ;返回到DOS INT 21HCODE ENDS END START接線圖如下:實驗三 8255并口控制器應用實驗一、實驗目的 1. 掌握 8255 的工作方式及應用編程。2. 掌握 8255 典型應用電路的接法。 二、實驗內容 1. 基本輸入輸出實驗。編寫程序,自行設定A、B、C三個口中某一個口為輸入,某一個為輸出,完成撥動開關到數據燈的數據傳輸。要求只要開關撥動,數據燈的顯示就改變。 2. 自設計實驗。自行設計能實現A口工作在方式一輸入,B口工作在方式一輸出的電路并完成程序的編制和在實驗箱上的驗證,要求,利用控制信號控制數據的輸入。三、實驗步驟1.實驗3-1:可編程并行接口8255方式0應用實驗編寫程序,自行設定A、B、C三個口中某一個口為輸入,某一個為輸出,完成撥動開關到數據燈的數據傳輸。要求只要開關撥動,數據燈的顯示就改變。根據原理補全代碼中缺失的部分,根據自己的設計,補全接線圖,并將代碼和對應的接線圖寫在實驗報告中。 說明:運行源程序8255.asm,按接線圖接線,實現并行數據傳輸功能。設定B口為輸入,接到開關上,A口為輸出接到LED燈上。程序源代碼:IO8255_MODE EQU 28BHIO8255_A EQU 288HIO8255_B EQU 289HIO8255_C EQU 28AHCODE SEGMENTASSUME CS: CODESTART: MOV DX, IO8255_MODE ;8255初始化 MOV AL, 90H;B口輸入,A口輸出 10010000 OUT DX, ALINOUT: MOV DX, IO8255_B ;讀入數據IN AL,DXMOV DX,IO8255_A ;輸出數據 OUT DX,AL MOV DL,0FFH ;判斷是否有按鍵MOV AH, 06HINT 21HJZ INOUT ;若無,則繼續MOV AH,4CH ;否則返回INT 21HCODE ENDSEND START接線圖如下:2.實驗3-2:自設計試驗自行設計完成本實驗,要求,8255A口工作在方式一輸入,B口工作在方式一輸出,利用方式一的控制信號,使數據從輸入到輸出人為可控。在實驗報告中畫出接線圖,并說明設計的原理,給出對應的程序代碼。實現方案:方式一的控制信號即為PC2和PC4,將PC2和PC4分別接到高低電平,控制A輸入,觀察B輸出的改變。程序源代碼:IO8255_MODE EQU 28BHIO8255_A EQU 288HIO8255_B EQU 289HIO8255_C EQU 28AHCODE SEGMENTASSUME CS: CODESTART: MOV DX, IO8255_MODE ;8255初始化 MOV AL, 0B4H;A口方式一輸入,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 彌漫大B細胞型淋巴瘤的臨床護理
- 砌體施工工藝流程詳解
- 小兒柞蠶蛹性腦病綜合征的臨床護理
- 《現代企業管理信息系統》課件
- 網絡安全技能培訓
- 2022-2023學年湖南省長沙市長沙縣三年級上學期期末語文試卷及答案
- 2025合同最短期限規定
- 關于主任就職表態發言稿模版
- 2025年通過即時通訊軟件訂立的合同是否有效
- 瞹拼音啟蒙創意畫課件
- 礦山地質災害危險性評估要點
- 泰勒斯威夫特英文介紹演示文稿
- 超星爾雅學習通《帶您走進西藏》章節測試答案
- 施工監理投標報價單
- 陽江海上風電項目建議書
- 大學本科畢業設計畢業論文-網上藥店管理系統的設計與實現
- DBJ∕T 13-264-2017 福建省石砌體結構加固技術規程
- 洞口縣黃橋鎮污水處理廠入河排污口設置論證報告
- T∕CGMA 081001-2018 整體式高速齒輪傳動裝置通用技術規范
- 核事故現場處置中的洗消問題
- FeNO測定及應用
評論
0/150
提交評論