微機系統(tǒng)與接口實驗報告34_第1頁
微機系統(tǒng)與接口實驗報告34_第2頁
微機系統(tǒng)與接口實驗報告34_第3頁
微機系統(tǒng)與接口實驗報告34_第4頁
微機系統(tǒng)與接口實驗報告34_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微機系統(tǒng)與接口(含實驗)實驗報告 學號 東南大學微機系統(tǒng)與接口(含實驗)實驗報告實驗三TPC 裝置系統(tǒng),I/O 與存儲器實驗四(1) 簡單輸入輸出(2)中斷姓 名: 學 號: 專 業(yè): 電類強化班 實 驗 室: 計算機硬件技術 實驗時間: 2015年04月21日 報告時間: 2015年4月30日評定成績: 審閱教師: 一. 實驗目的與內容(概述)實驗目的:(實驗三)1)了解掌握TPC 實驗系統(tǒng)的基本原理和組成結構,學會測試檢查TPC-PCI 總線轉接卡地址;2)正確掌握I/O 地址譯碼電路的工作原理,學會動態(tài)調試程序DEBUG/TD 的直接I/O 操作方法;3)學會利用I/O 指令單步調試檢查

2、硬件接口功能,學會利用示波器檢測I/O 指令執(zhí)行時總線情況;4) 進一步熟悉8086/8088 及PC 機的分段存儲特性,了解存儲器擴展原理,完成編程及測試;(實驗四【1】)5) 進一步掌握TPC實驗裝置的基本原理和組成結構;6) 掌握利用I/O指令單步調試檢查硬件接口功能,學會利用示波器檢測I/O指令執(zhí)行時總線情況;7)掌握簡單并行輸入輸出接口的工作原理及使用方法,進一步熟悉掌握輸入輸出單元功能和使用。(實驗四【2】)8)掌握PC 機中斷處理系統(tǒng)的基本原理;9)學會編寫中斷服務程序。實驗內容:(三)(1)觀察了解TPC-2003A 實驗系統(tǒng)的基本原理和組成結構,測試基本單元電路功能,熟悉各部

3、分輔助電路的使用;(2)通過Win/XP 控制臺硬件信息或測試程序檢查TPC-PCI 總線轉接卡地址,并記錄;(3)按圖3.3-5 的I/O 地址譯碼測試參考電路連線,分析電路原理,分別利用動態(tài)調試程序直接I/O操作功能和單步功能測試;(4)編程利用片選負脈沖控制指示燈(如L7)閃爍發(fā)光(亮、滅、亮、滅、),時間間隔通過軟件延時實現(xiàn);(5)修改延時參數(shù),使亮(約1秒)與滅的時間間隔分別為1 秒、5 秒和8 秒,記錄延時程序對應參數(shù)BX,CX;輸出接口輸出,根據8個發(fā)光二極管發(fā)光的情況驗證編程從鍵盤輸入一個字符或數(shù)字,將其ASCII碼通過正確性。(四(1))(1) 按簡單并行輸出接口參考電路圖連

4、接線路(74LS273插通用插座,74LS32用實驗臺上的“或門”)。74LS273 為八D觸發(fā)器,8個D輸入端分別接數(shù)據總線D0D7,8個Q輸出端接LED顯示電路L0L7;(2) 編程從鍵盤輸入一個字符或數(shù)字,將其ASC碼通過這個輸出接口輸出,根據8個發(fā)光二極管發(fā)光情況驗證正確性;(3) 按簡單并行輸入接口參考電路圖連接電路(74LS244插通用插座,74LS32用實驗臺上的“或門”)。74LS244為八緩沖器,8個數(shù)據輸入端分別接邏輯電平開關輸出K0K7,8個數(shù)據輸出端分別接數(shù)據總線D0D7;(4) 用邏輯電平開關K0K7 預置一字母的ASC碼,編程輸入這個ASC碼,并將其對應字母在屏幕上

5、顯示出來。(標準ASCII 碼的范圍為20HFFH);(四(2)完成簡單中斷電力路,直接用手動產生單脈沖作為中斷請求信號(只需連接一根導線),要求每按一次開關產生一次中斷,在屏幕上顯示一次“TPC pci card interrupt”,8 次中斷后程序退出。二. 基本實驗原理(或基本原理)(實驗三)1. 在Windows環(huán)境下獲得板卡資源的方法,分三步完成:(1) 參考實驗指導書安裝接口卡及其驅動程序; (2)啟動微機并打開“控制面板”->“系統(tǒng)”->“設備管理器”,找到“微機教學實驗系統(tǒng)”,打開“TPC”,點擊資源看到占用的存儲器和中斷資源,找到兩個輸入輸出

6、范圍,范圍大小是0ffH的是PCI接口芯片上的設置寄存器組占用的I/O地址空間,另一個范圍大小是07fH的是TPC設備的I/O地址空間;兩個內存范圍,一個范圍大小是0ffH的是PCI接口芯片占用的mem地址空間,另一個范圍大小是0fffffH的是TPC設備的mem地址空間。(3)用記錄下的實際基址值替換每個匯編程序頭中定義行中的值,并重新編譯鏈接即可。2.實驗電路圖見3.3-5,實驗電路中D 觸發(fā)器CLK 端輸入脈沖時,上升沿使Q 端鎖存輸出高電平L7發(fā)光,CD 端為低電平時L7 滅:在Windows 環(huán)境下獲取板卡資源:ioport equ 0b800H-0280H (TPC 設備的I/O

7、基址)參考程序:程序名:decode.asmioport equ 0b800h-0280h ;tpc 卡中設備的IO 地址outport1 equ ioport+2a0h ;CLK 端譯碼輸出端選為地址Y4outport2 equ ioport+2a8h ;CD 端對應譯碼輸出選為地址Y5stacks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ss:stacksmain proc farstart: mov ax,stacksmov ss,axmov dx,outport1 ;Y4,置位,CLK 端寫out

8、 dx,alcall delay ;調延時子程序mov dx,outport2 ;Y5,清空CD 端寫out dx,alcall delay ;調延時子程序mov ah,1int 16hje start ;ZF=1,無鍵輸入mov ah,4chint 21h ;返回DOS 操作系統(tǒng)main endpdelay proc near ;延時子程序mov bx,20000ZZZ: mov cx,0ZZ: loop ZZdec bxjne ZZZretdelay endpcode endsend start(實驗四【1】) 1.按下圖方式接線,輸出參考流程圖如下 簡單并行輸出程序:ioportequ

9、0b800h-0280h ;tpc卡中設備的io地址ls273equ ioport+2a8h ;譯碼輸出端地址Y5片選ls273stacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ss:stacksmain proc farstart:mov ax,stacksmov ss,axmov ah,2 ;回車符mov dl,0dhint 21hmov ah,1 ;等待鍵盤輸入int 21hcmp al,27 ;判斷是否為ESC鍵je exit ;若是則退出mov dx,ls273 ;若不是,從2A8H輸出

10、其ASCII碼out dx,aljmp start ;轉startexit: mov ah,4ch ;返回DOSint 21hmain endpcode endsend start2.接線方式和輸入參考流程圖如下: 簡單并行輸入程序:ioportequ 0b800h-0280h ;tpc卡中設備的io地址ls244equ ioport+2a0h ;譯碼地址Y4片選ls244stacks segment stack db 100 dup (?)stacks endscode segment assume cs:code,ss:stacksmain proc farstart:mov ax,sta

11、cks mov ss,ax mov dx,ls244 ;從2A0輸入一數(shù)據in al,dxmov dl,al ;將所讀數(shù)據保存在DL中mov ah,02int 21hmov dl,0dh ;顯示回車符int 21hmov dl,0ah ;顯示換行符int 21hmov ah,06 ;是否有鍵按下mov dl,0ffhint 21hjnz exitje start ;若無,則轉startexit: mov ah,4ch ;返回DOSint 21hmain endpcode endsend start(實驗四【2】)1.PC 機用戶可使用的硬件中斷只有可屏蔽中斷,由8259 中斷控制器管理。中斷控

12、制器用于接收外部中斷請求信號,經過優(yōu)先級判別等處理后向CPU 發(fā)出可屏蔽中斷請求。IBMPC、PC/XT 機內有一片8259 中斷控制器對外可以提供8 個中斷源:中斷源 中斷類型號 中斷功能IRQ0 08H 時鐘IRQ1 09H 鍵盤IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盤IRQ6 0EH 軟盤IRQ7 0FH 并行打印機8個中斷源的中斷請求信號線IRQ0IRQ7 在主機的62 線ISA 總線插座中可以引出,系統(tǒng)已設定中斷請求信號為“邊沿觸發(fā)”,普通結束方式。對于PC/AT 及286 以上微機內又擴展了一片8259中斷控制,IRQ2用于兩

13、片8259之間級連,對外可以提供16個中斷源:中斷源 中斷類型號 中斷功能IRQ8 070H 實時時鐘IRQ9 071H 用戶中斷IRQ10 072H 保留IRQ11 O73H 保留IRQ12 074H 保留IRQ13 075H 協(xié)處理器IRQ14 076H 硬盤IRQ15 077H 保留PCI 總線中的中斷線只有四根,INTA#、INTB#、INTC#、INTD#,它們需要通過PNP 設置與某一根中斷相連接才能進行中斷申請。TPC-2003A 實驗系統(tǒng)有一信號IRQ 為對應PCI 接口卡的中斷請求信號,具體中斷號由系統(tǒng)分配,可通過資源讀取程序portr.exe(純DOS 版)讀取。2.程序流

14、程圖見下圖所示:參考程序如下:data segmentioportequ 0b800h-0280h ;tpc卡中設備的io地址int_vect EQU 0bH ;中斷0-7 的向量為:08h-0fh,中斷8-15 的向量為:70h-77hirq_mask_2_7 equ 11110111b ;中斷掩碼,中斷0-7 時從低至高相應位為零,中斷8-15 時第2 位為零irq_mask_9_15 equ 11111111b;中斷0-7 時全一,中斷8-15 時從低至高相應位為零ioport_cent equ 0cc00h ;tpc 卡中9054 芯片的io 地址csreg dw ?ipreg dw

15、? ;舊中斷向量保存空間irq_times dw ? ;中斷計數(shù)num dw ?msg1 db 0dh,0ah,'TPC pci card Interrupt',0dh,0ah,'$'msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$'msg3 db 0dh,0ah,'Press DMC to interrupt 10 times and exit!',0dh,0ah,'$'data endsstacks segmentdb 100 dup (?)

16、stacks endscode segmentassume cs:code,ds:data,ss:stacks,es:datamain proc far;Enable Local Interrupt Input.386start:climov ax,datamov ds,axmov es,axmov ax,stacksmov ss,axmov dx,ioport_cent+68h ;設置 tpc 卡中9054 芯片io 口,使能中斷in ax,dxor ax,0900hout dx,axmov al,int_vect ;保存原中斷向量mov ah,35hint 21hmov ax,esmov

17、csreg,axmov ipreg,bxmov ax,cs ;設置新中斷向量mov ds,axmov dx,offset int_procmov al,int_vectmov ah,25hint 21hin al, 21h ;設置中斷掩碼and al, irq_mask_2_7out 21h, alin al, 0a1hand al, irq_mask_9_15out 0a1h, almov ax,datamov ds,axmov dx,offset msg2mov ah,09hint 21hmov dx,offset msg3mov ah,09hint 21hmov irq_times,8m

18、ov num,8stiloop1: cmp irq_times,0 ;等待中斷并判斷中斷8 次后退出jz exitmov ah,1int 16hjnz exit ;按任意鍵退出call dispjmp loop1exit: climov bl, irq_mask_2_7 ;恢復中斷掩碼not blin al, 21hor al, blout 21h, almov bl, irq_mask_9_15not blin al, 0a1hor al, blout 0a1h, almov dx,ipreg ;恢復原中斷向量mov ax,csregmov ds,axmov ah,25hmov al,int

19、_vectint 21hmov dx,ioport_cent+68h ;設置 tpc 卡中9054 芯片io 口,關閉中斷in ax,dxand ax,0f7ffhout dx,axmov ax,4c00hint 21hmain endpdisp proc nearpush dspush dxpush cxpush axmov cx,irq_timesmov ax,cxmov bx,numcmp ax,bx jz disp1mov ax,data ;顯示提示信息mov ds,axmov dx,offset msg1mov ah,09hint 21hmov num,cxdisp1:pop axp

20、op cxpop dxpop dsretdisp endpint_proc proc far ;中斷處理程序dec irq_timesmov al,20h ;Send EOIout 0a0h,alout 20h,almov cx,0ffffh loop2: nop loop loop2iretint_proc endpcode endsend start三. 方案實現(xiàn)與測試(或調試)(實驗三)1、查看并替換TPC 擴展卡 I/O 和存儲基地址步驟 1:參照實驗指導書安裝接口卡及其驅動程序; 步驟 2:啟動微機并打開“控制面板”-“系統(tǒng)”-“設備管理器”,找到“微機原理教學實驗系統(tǒng)” ,打開“T

21、PC”,點擊“資源”看到占用的存儲和中斷資源,找到兩個輸入/輸出范圍,其中一個范圍大小是 0ffH 的是 PCI 接口芯片上的設置寄存器組占用的 I/O 地址空間,另一個范圍大小是 07fH 的是 TPC 設備的 I/O 地址空間;兩個內存范圍,一個范圍大小是 0ffH 的是PCI 接口芯片占用的 mem地址空間,另一個范圍大小是 0fffffH 的是 TPC 設備的 mem 地址空間。Tpc屬性如下圖,由圖可知,實驗中TPC 設備的 I/O 地址空間起始地址為0B800H。步驟 3:用記錄下的實際基址值替換每個匯編程序頭中的定義行中的值,并重新編譯鏈接即可代碼為:ioport equ 0b8

22、00h-0280houtport1 equ ioport+2a0houtport2 equ ioport+2a8h2. 動態(tài)調試程序DEBUG/TD的直接I/O操作方法。 (1)命令行方式下直接啟動,在命令符-后直接鍵入ObC00 01回車即可,其中01H為輸出量,bC00H為端口地址。 實驗現(xiàn)象:將輸出接到8×8點陣顯示,會看到一排的點陣燈被點亮。修改輸出代碼,將看到其他的行或列或某個點的燈被點亮。(忘記拍圖,請老師見諒)(2)TD模式下,將光標置于代碼區(qū)右擊可得到代碼區(qū)局部菜單,選則Out byte,編輯輸出的地址和內容即可。3.(1)將試驗箱安裝好

23、,并按原理圖搭接譯碼電路。(2)先用調試工具軟件直接 I/O,觀察輸出結果,再編寫相應程序。程序主要算法:利用delay子程序進行延時操作,控制LED的亮滅。delay proc near ;延時子程序 mov bx,2000 /此句控制延時長短ZZZ: mov cx,0 ZZ: loop ZZ dec bx jne ZZZ ret delay endp實驗現(xiàn)象:可以發(fā)現(xiàn)L7周期性亮滅,我將Q與非Q分別連至多個燈,讓這些燈均周期性亮滅,附圖如下(3)修改延時長度,即bx中保存的數(shù)值,再進行匯編調試,可以調節(jié)LED的亮滅周期,隨數(shù)值的增大而延長或數(shù)值的減小而縮短。實驗四(1)1.利用工具軟件確定

24、本機PCI擴展卡地址等參數(shù); 內存范圍    FDC00000-FDCFFFFF 輸入/輸出范圍 BC00-BCFF 輸入/輸出范圍 B800-B8CF 2.根據所獲得的地址修改兩段程序開頭如下: ioport  equ 0B800h-0280h tpc卡中設備的io地址 ls273  equ ioport+2a8h   譯碼輸出端地址Y5片選ls273 ioport&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論