微機(jī)系統(tǒng)與接口實(shí)驗(yàn)報(bào)告34_第1頁
微機(jī)系統(tǒng)與接口實(shí)驗(yàn)報(bào)告34_第2頁
微機(jī)系統(tǒng)與接口實(shí)驗(yàn)報(bào)告34_第3頁
微機(jī)系統(tǒng)與接口實(shí)驗(yàn)報(bào)告34_第4頁
微機(jī)系統(tǒng)與接口實(shí)驗(yàn)報(bào)告34_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、微機(jī)系統(tǒng)與接口(含實(shí)驗(yàn))實(shí)驗(yàn)報(bào)告 學(xué)號(hào) 東南大學(xué)微機(jī)系統(tǒng)與接口(含實(shí)驗(yàn))實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三TPC 裝置系統(tǒng),I/O 與存儲(chǔ)器實(shí)驗(yàn)四(1) 簡(jiǎn)單輸入輸出(2)中斷姓 名: 學(xué) 號(hào): 專 業(yè): 電類強(qiáng)化班 實(shí) 驗(yàn) 室: 計(jì)算機(jī)硬件技術(shù) 實(shí)驗(yàn)時(shí)間: 2015年04月21日 報(bào)告時(shí)間: 2015年4月30日評(píng)定成績(jī): 審閱教師: 一. 實(shí)驗(yàn)?zāi)康呐c內(nèi)容(概述)實(shí)驗(yàn)?zāi)康模海▽?shí)驗(yàn)三)1)了解掌握TPC 實(shí)驗(yàn)系統(tǒng)的基本原理和組成結(jié)構(gòu),學(xué)會(huì)測(cè)試檢查TPC-PCI 總線轉(zhuǎn)接卡地址;2)正確掌握I/O 地址譯碼電路的工作原理,學(xué)會(huì)動(dòng)態(tài)調(diào)試程序DEBUG/TD 的直接I/O 操作方法;3)學(xué)會(huì)利用I/O 指令單步調(diào)試檢查

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

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

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

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

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

7、基址)參考程序:程序名:decode.asmioport equ 0b800h-0280h ;tpc 卡中設(shè)備的IO 地址outport1 equ ioport+2a0h ;CLK 端譯碼輸出端選為地址Y4outport2 equ ioport+2a8h ;CD 端對(duì)應(yīng)譯碼輸出選為地址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 ;調(diào)延時(shí)子程序mov dx,outport2 ;Y5,清空CD 端寫out dx,alcall delay ;調(diào)延時(shí)子程序mov ah,1int 16hje start ;ZF=1,無鍵輸入mov ah,4chint 21h ;返回DOS 操作系統(tǒng)main endpdelay proc near ;延時(shí)子程序mov bx,20000ZZZ: mov cx,0ZZ: loop ZZdec bxjne ZZZretdelay endpcode endsend start(實(shí)驗(yàn)四【1】) 1.按下圖方式接線,輸出參考流程圖如下 簡(jiǎn)單并行輸出程序:ioportequ

9、0b800h-0280h ;tpc卡中設(shè)備的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 ;轉(zhuǎn)startexit: mov ah,4ch ;返回DOSint 21hmain endpcode endsend start2.接線方式和輸入?yún)⒖剂鞒虉D如下: 簡(jiǎn)單并行輸入程序:ioportequ 0b800h-0280h ;tpc卡中設(shè)備的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ù)據(jù)in al,dxmov dl,al ;將所讀數(shù)據(jù)保存在DL中mov ah,02int 21hmov dl,0dh ;顯示回車符int 21hmov dl,0ah ;顯示換行符int 21hmov ah,06 ;是否有鍵按下mov dl,0ffhint 21hjnz exitje start ;若無,則轉(zhuǎn)startexit: mov ah,4ch ;返回DOSint 21hmain endpcode endsend start(實(shí)驗(yàn)四【2】)1.PC 機(jī)用戶可使用的硬件中斷只有可屏蔽中斷,由8259 中斷控制器管理。中斷控

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

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

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

15、? ;舊中斷向量保存空間irq_times dw ? ;中斷計(jì)數(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 ;設(shè)置 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 ;設(shè)置新中斷向量mov ds,axmov dx,offset int_procmov al,int_vectmov ah,25hint 21hin al, 21h ;設(shè)置中斷掩碼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 ;恢復(fù)中斷掩碼not blin al, 21hor al, blout 21h, almov bl, irq_mask_9_15not blin al, 0a1hor al, blout 0a1h, almov dx,ipreg ;恢復(fù)原中斷向量mov ax,csregmov ds,axmov ah,25hmov al,int

19、_vectint 21hmov dx,ioport_cent+68h ;設(shè)置 tpc 卡中9054 芯片io 口,關(guān)閉中斷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三. 方案實(shí)現(xiàn)與測(cè)試(或調(diào)試)(實(shí)驗(yàn)三)1、查看并替換TPC 擴(kuò)展卡 I/O 和存儲(chǔ)基地址步驟 1:參照實(shí)驗(yàn)指導(dǎo)書安裝接口卡及其驅(qū)動(dòng)程序; 步驟 2:?jiǎn)?dòng)微機(jī)并打開“控制面板”-“系統(tǒng)”-“設(shè)備管理器”,找到“微機(jī)原理教學(xué)實(shí)驗(yàn)系統(tǒng)” ,打開“T

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論