




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、微型計算機原理與應用實驗報告教師:候葉學號:04123075姓名:顏秦鑫 2015.12.11實驗一 8259中斷實驗一、實驗目的 1掌握PC機中斷處理系統的基本原理。2掌握外部擴展中斷源的設計方法。3學會編寫中斷服務程序。二、實驗原理PC機用戶可使用的硬件中斷只有可屏蔽中斷,由8259中斷控制器管理。中斷控制器用于接收外部的中斷請求信號,經過優先級判別等處理后向CPU發出可屏蔽中斷請求。三、實驗內容實驗要求實現8259控制器的IR1、IR7兩路中斷都可以通過IRQ向PC機發起中斷請求,用SP1、SP2單次脈沖模擬兩個中斷源。IR1中斷時,在它的中斷服務程序中編程顯示“IR1 OK AND E
2、XIT!”; IR7中斷時,在它的中斷服務程序中編程顯示“IR7 OK AND EXIT!”。采用查詢方式完成。圖1-1 擴展中斷電路四、實驗步驟1、連接線路8259地址線D0D7用排線和JD1連接起來,8259片選信號CS接Y1,讀寫控制信號RD和WR分別接LOR 和LOW,手動脈沖信號SP1 和SP2分別接中斷信號輸入端IR1 和IR3,IRQ接INT.2、編寫程序3、匯編、編譯、連接及運行五、實驗程序;*;* 中斷 *;*;data segmentioportequ 0ff00h-0280h MY8259_ICW1 EQU ioport +280H ;實驗系統中8259的ICW1端口地址
3、MY8259_ICW2 EQU ioport +281H ;實驗系統中8259的ICW2端口地址MY8259_ICW3 EQU ioport +281H ;實驗系統中8259的ICW3端口地址MY8259_ICW4 EQU ioport +281H ;實驗系統中8259的ICW4端口地址MY8259_OCW1 EQU ioport +281H ;實驗系統中8259的OCW1端口地址MY8259_OCW2 EQU ioport +280H ;實驗系統中8259的OCW2端口地址MY8259_OCW3 EQU ioport +280H ;實驗系統中8259的OCW3端口地址msg1 db 0dh,
4、0ah,'DVCC pci card Interrupt',0dh,0ah,'$' msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$' msg3 db 0dh,0ah,'IR1 ok and exit!',0dh,0ah,'$' msg4 db 0dh,0ah,'IR7 ok and exit!',0dh,0ah,'$' msg5 db 0dh,0ah,'ok!',0dh,0ah,'$
5、9;data endsstacks segmentdb 100 dup (?)stacks endscode segment assume cs:code,ds:data,ss:stacks,es:datastart: mov ax,data mov ds,ax mov es,ax mov ax,stacks mov ss,ax mov ax,data mov ds,ax mov dx,offset msg1 mov ah,09h int 21h start1: MOV DX,MY8259_ICW1 ;初始化實驗系統中8259的ICW1 MOV AL,13H ;邊沿觸發、單片8259、需要IC
6、W4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化實驗系統中8259的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化實驗系統中8259的ICW4 MOV AL,09H ;非自動結束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化實驗系統中8259的OCW1 MOV AL,7DH ;打開IR1和IR7的屏蔽位 OUT DX,AL QUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3發送查詢命令 MOV AL,0CH OUT DX,AL NOPNOPNOP MOV DX,MY8
7、259_OCW3 IN AL,DX ;讀出查詢字 TEST AL,80H ;判斷中斷是否已響應 JZ QUERY ;沒有響應則繼續查詢 and al,07h CMP AL,01H JE IR1ISR ;若為IR1請求,跳到IR1處理程序 CMP AL,07H JE IR7ISR ;若為IR7請求,跳到IR3處理程序 JMP EOIQUERY1: mov dl,0ffh ;判斷是否有按鍵 mov ah,06h int 21h jz start1 ;若無,則繼續 mov ah,4ch ;否則返回 int 21hIR1ISR: mov dx,offset msg3;IR1處理,顯示字符串'I
8、R1 ok and exit' mov ah,09h int 21h JMP EOIIR7ISR: mov dx,offset msg4;IR3處理,顯示字符串'IR7 ok and exit' mov ah,09h int 21h EOI: MOV DX,MY8259_OCW2 ;向實驗系統中8259發送中斷結束命令 MOV AL,20H OUT DX,AL jmp start code endsend start6、 實驗結果 按下sp1,進入中斷IR1,顯示器顯示“IR1 OK OR EXIT!”;按下sp2進入中斷IR7,顯示器顯示“IR7 OK OR EXIT
9、!”。七、實驗中遇到的問題及解決方法 這次實驗因為一開始比較簡單,實驗二開始時沒有弄懂原理,走了一些彎路,但與同學交流后就非常清楚了。實驗二 8255及綜合一、實驗目的掌握8255方式0的工作原理及使用方法。二、實驗原理實驗電路如圖,8255C口接邏輯電平開關K0K7,A口接LED顯示電路L0L7。圖2-1三、實驗內容 11) 編程從8255C口輸入數據,再從A口輸出;2) 編程從8255B口輸入數據,再從A口輸出;3) 編程從8255A口輸入數據,再從C口輸出。2. 將8255與8259結合起來。 當程序響應IR1中斷時候,發光二極管的高四位滅(或亮),同時屏幕顯示“IR1 ok and e
10、xit”,當程序響應IR3中斷時候,發光二極管的低四位滅(或亮),同時屏幕顯示“IR13ok and exit”。四、實驗步驟1、連接線路實驗一:8255地址線D0D7用排線和JD1連接起來,8255片選信號CS接Y1,讀寫控制信號RD和WR分別接LOR 和LOW,邏輯電平開關K0K7和LED顯示電路L0L7按要求分別接A口B口或C口。實驗二:8255和8259的地址線串接起來,其他和實驗一以及8259中斷實驗接線一樣。2、編寫程序3、匯編、編譯、連接及運行五、實驗程序1、1)C口入,A口出io8255 equ 0ff00h-0280hio8255a equ ioport+288hio8255
11、b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255 ;設8255為C口輸入,A口輸出mov al,89hout dx,alinout: mov dx,io8255c;從C口輸入一數據in al,dxmov dx,io8255a;從A口輸出剛才自C口所輸入的數據out dx,almov dl,0ffh; 判斷是否有按鍵mov ah,06hint 21hjz inout;若無,則繼續自C口輸入,A口輸出mov ah,4ch;否則返回DOSint 21hcode endsend
12、start2)B口入,A口出io8255 equ 0ff00h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255c mov al,82hout dx,alinout: mov dx,io8255bin al,dxmov dx,io8255aout dx,almov dl,0ffhmov ah,06hint 21hjz inoutmov ah,4chDOSint 21hcode endsend start3
13、)A入,C出ioportequ 0ff00H-0280hio8255aequ ioport+288hio8255bequ ioport+28bhio8255cequ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255b mov al,90hout dx,al inout: mov dx,io8255a in al,dxmov dx,io8255c out dx,al mov dl,0ffh mov ah,06hint 21hjz inout mov ah,4ch int 21hcode endsend start2、8255與82
14、59的結合程序data segment int_vect EQU 073H ;中斷0-7的向量為:08h-0fh,中斷8-15的向量為:70h-77h irq_mask_2_7 equ 011111011b ;中斷掩碼,中斷0-7時從低至高相應位為零,中斷8-15時 ;第2位為零 irq_mask_9_15 equ 011110111b;中斷0-7時全一,中斷8-15時從低至高相應位為零 ioport_cent equ 0c000h;DVCC 卡中9054芯片的io地址 ioportequ 0c400h-0280h MY8259_ICW1 EQU ioport +280H ;實驗系統中8259
15、的ICW1端口地址 MY8259_ICW2 EQU ioport +281H ;實驗系統中8259的ICW2端口地址 MY8259_ICW3 EQU ioport +281H ;實驗系統中8259的ICW3端口地址 MY8259_ICW4 EQU ioport +281H ;實驗系統中8259的ICW4端口地址 MY8259_OCW1 EQU ioport +281H ;實驗系統中8259的OCW1端口地址 MY8259_OCW2 EQU ioport +280H ;實驗系統中8259的OCW2端口地址 MY8259_OCW3 EQU ioport +280H ;實驗系統中8259的OCW3端
16、口地址 csregdw? ipregdw? ;舊中斷向量保存空間 irq_timesdw00h ;中斷計數 msg1 db 0dh,0ah,'DVCC pci card Interrupt',0dh,0ah,'$' msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$' msg3 db 0dh,0ah,'IR1 ok and exit!',0dh,0ah,'$' msg4 db 0dh,0ah,'IR3 ok and exit!',0
17、dh,0ah,'$'data endsstacks segmentdb 100 dup (?)stacks endscode segment assume cs:code,ds:data,ss:stacks,es:datastart:;Enable Local Interrupt Input.386 cli mov ax,data mov ds,ax mov es,ax mov ax,stacks mov ss,ax mov dx,ioport_cent+68h ;設置 DVCC 卡中9054芯片io口,使能中斷 in ax,dx or ax,0900h out dx,ax m
18、ov al,int_vect ;保存原中斷向量 mov ah,35h int 21h mov ax,es mov csreg,ax mov ipreg,bx mov ax,cs ;設置新中斷向量 mov ds,ax mov dx,offset int_proc mov al,int_vect mov ah,25h int 21h in al, 21h ;設置中斷掩碼 and al, irq_mask_2_7 out 21h, al in al, 0a1h and al, irq_mask_9_15 out 0a1h, al mov ax,data mov ds,ax mov dx,offset
19、 msg1 mov ah,09h int 21h mov dx,offset msg2 mov ah,09h int 21h MOV DX,MY8259_ICW1 ;初始化實驗系統中8259的ICW1 MOV AL,13H ;邊沿觸發、單片8259、需要ICW4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化實驗系統中8259的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化實驗系統中8259的ICW4 MOV AL,01H ;非自動結束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化實驗系統中82
20、59的OCW1 MOV AL,0F5H ;打開IR1和IR3的屏蔽位 OUT DX,AL stiloop1: mov ah,1 ;等待中斷 int 16h jnz exit ;按任意鍵退出 jmp loop1exit: cli mov bl, irq_mask_2_7 ;恢復中斷掩碼 not bl in al, 21h or al, bl out 21h, al mov bl, irq_mask_9_15 not bl in al, 0a1h oral, bl out 0a1h, al mov dx,ipreg ;恢復原中斷向量 mov ax,csreg mov ds,ax mov ah,25
21、h mov al,int_vect int 21h mov dx,ioport_cent+68h ;設置 DVCC 卡中9054芯片io口,關閉中斷 in ax,dx and ax,0f7ffh out dx,ax mov ax,4c00h int 21hint_proc proc far cli push ax push dx push dsQUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3發送查詢命令 MOV AL,0CH OUT DX,AL NOP NOP NOP MOV DX,MY8259_OCW3 IN AL,DX ;讀出查詢字 TEST AL,80H ;判斷
22、中斷是否已響應 JZ QUERY ;沒有響應則繼續查詢 AND AL,07H CMP AL,01H JE IR1ISR ;若為IR1請求,跳到IR1處理程序 CMP AL,03H JE IR3ISR ;若為IR3請求,跳到IR3處理程序 JMP EOIIR1ISR: mov dx,offset msg3 ;IR1處理,顯示字符串'IR1 ok and exit' mov ah,09h int 21h JMP EOIIR3ISR: mov dx,offset msg4 ;IR3處理,顯示字符串'IR3 ok and exit' mov ah,09h int 21h
23、EOI: MOV DX,MY8259_OCW2 ;向實驗系統中8259發送中斷結束命令 MOV AL,20H OUT DX,AL mov al,20h ;Send EOI out 0a0h,al out 20h,al pop ds pop dx pop ax sti iretint_proc endpcode ends end start6、 實驗結果 實驗1:通過開關的變化在某個口輸入的數據當連線正確時通過預設的口在LED燈上顯示出來。 實驗2:當程序響應IR1中斷時,發光二極管的高四位滅了又亮,并在屏幕上顯示"IR1 OK OR EXIT!,當程序響應IR3中斷時,發光二極管的低
24、四位滅了又亮,并在屏幕上顯示"IR3 OK OR EXIT!”。七、實驗中遇到的問題及解決方法實驗1主要就是對端口設定的理解要明確,不然很容易出錯;實驗2需要修改程序,這里比較容易出現問題,最后通過和其他同學對照才完成了程序的修改。實驗三 8253一、實驗目的掌握8253的基本工作原理和編程方法。二、實驗原理及內容1圖3-1是本實驗程序的接線圖,將計數器0設置為方式0,計數器初值為N(N0FH,本程序中為0FH),用手動逐個輸入單脈沖,編程使計數值在屏幕上顯示,并同時用L0或邏輯筆觀察OUT0電平變化,初始時OUT0為高電平,當輸入N個脈沖時,OUT0變為低電平,當輸入N+1個脈沖后
25、OUT0變高電平)。 2按圖3-2連接電路,將計數器0、計數器1分別設置為方式3,計數初值設為1000,用電平指示燈L0或邏輯筆觀察OUT1輸出電平的變化,要求輸出頻率1HZ的分頻信號。圖 3-1圖3-2三、實驗步驟1、連接線路 實驗1:時鐘端clk0接SP1,8253片選信號cs接Y0,地址線接JD1。 實驗2:clk0接1MHZ脈沖,out0接clk1,也就是說級聯起來,其他接線同實驗。2、編寫程序3、匯編、編譯、連接及運行四、參考程序1、 ;*;* 8253方式0計數器實驗 *;*; ioportequ 0ff00h-0280hio8253kequ ioport+283hio8253ae
26、qu ioport+280hcode segmentassume cs:codestart: mov al,00010000B ;設置8253通道0為工作方式2,二進制計數 mov dx,io8253k out dx,al mov dx,io8253a ;送計數初值為08H mov al,05h out dx,allll: in al,dx ;讀計數初值 call disp ;調顯示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch ;退出 int 21hdisp proc near ;顯示子程序 push dx and al,0fh ;首先取低四位 mov dl,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 村級財務制度培訓與優化提升
- 七年級生物下冊 第四單元 生物圈中的人 第七章 人類活動對生物圈的影響第一節 分析人類活動破壞生態環境的實例教學設計 (新版)新人教版
- 人教版 (2019)選擇性必修 第二冊Unit 1 Science and Scientists教案及反思
- 2024云南曲靖福牌彩印有限公司招聘2人筆試參考題庫附帶答案詳解
- 三年級信息技術上冊 第3課 可愛的小老鼠教學設計 遼師大版(三起)
- 人教精通版四年級下冊Unit 3 What subject do you like bestLesson 14教案
- 上海市金山區九年級歷史上冊 第二單元 近代社會的確立與動蕩 第11課 開辟新時代的“宣言”教學設計 北師大版
- 2024中核匯海招聘筆試參考題庫附帶答案詳解
- 人教版四年級上冊語文教案設計(教學反思參考3)去年的樹學案-學案下載
- 內蒙古版四下綜合實踐 第三單元 主題活動四《自主選題:橋梁知多少》教案+素材
- 煤炭公司規矩管理制度
- 直銷隊管理制度
- 江蘇省無錫市錫山區2025屆初三下學期4月份中考模擬訓練(一)英語試題含答案
- 2024年初級藥師考試實效試題及答案
- 2024-2025學年蘇教版七年級生物下冊知識點復習提綱
- 室速的觀察及護理
- 新湘教版三年級美術下冊教案
- 急救中心擔架工考核管理辦法
- 自考中國近代史押題及答案
- 四川2025年03月四川省攀枝花市仁和區事業單位春季引進15名人才筆試歷年參考題庫考點剖析附解題思路及答案詳解
- 4月15日全民國家安全教育日主題宣傳教育課件
評論
0/150
提交評論