實(shí)驗(yàn)四DMA傳送實(shí)驗(yàn)_第1頁(yè)
實(shí)驗(yàn)四DMA傳送實(shí)驗(yàn)_第2頁(yè)
實(shí)驗(yàn)四DMA傳送實(shí)驗(yàn)_第3頁(yè)
實(shí)驗(yàn)四DMA傳送實(shí)驗(yàn)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)四DMA 傳送實(shí)驗(yàn)一實(shí)驗(yàn)?zāi)康模赫莆?DMA 方式的工作原理和8237 的編程使用方法。二實(shí)驗(yàn)要求:1. 按照實(shí)驗(yàn)指導(dǎo)第 61 頁(yè)的實(shí)驗(yàn)接線圖連接硬件線路2. 對(duì)照【例】的程序清單鍵入源程序,經(jīng)匯編和連接后運(yùn)行程序三實(shí)驗(yàn)電路四實(shí)驗(yàn)程序 :DISP MACRO VARMOV AH,09HMOV DX,OFFSET VARINT 21HENDMSCANKEY MACROLOCAL LLLLLL:MOV AH,01HINT 16HJZ LLLMOV AH,0INT 16HENDMDATA SEGMENT; 宏定義; 將形參中所存的以結(jié)尾的字符串顯示在屏幕上; 宏定義; 為標(biāo)號(hào) LLL建立唯一的從?

2、0001H到 ?FFFFH的符號(hào); 等待是否有鍵按下; 無(wú)則繼續(xù)等待; 否則讀出鍵值TEXT DB THE QUICK BROWN FOX JUMPS OVER LAZY DOGDB 0DH,0AHDB THE QUICK BROWN FOX JUMPS OVER LAZY DOGDB 0DH,0AHDB THE QUICK BROWN FOX JUMPS OVER LAZY DOGDB 0DH,0AH,$COUNT EQU $-TEXT;TEXT的總長(zhǎng)度BUF DB COUNT DUP(?)MESG DB TO MAKE A DMA REQUEST!DB THEN STRIKE ANY KE

3、Y!,0DH,0AH,$DATA ENDSSTACK SEGMENT STACK STACKDB 256 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKBEG:MOV AX,DATAMOV DS,AXCALL I8237R; 主程序部分; 裝入數(shù)據(jù)段;DMA通道 1讀出初始化DISP MESGSCANKEYLAST1: IN AL,08HAND AL,02HJZ LAST1CALL I8237W; 顯示操作提示; 等待直到有鍵按下, 讀出鍵值; 讀 DMA狀態(tài)寄存器; 傳送是否結(jié)束; 否則繼續(xù)等待傳送結(jié)束;DMA通道 1寫

4、入初始化DISP MESGSCANKEYLAST2: IN AL,08HAND AL,02HJZ LAST2DISP BUF; 顯示操作提示; 等待直到有鍵按下, 讀出鍵值; 讀 DMA狀態(tài)寄存器; 傳送是否結(jié)束; 否則繼續(xù)等待傳送結(jié)束; 顯示 BUF中 DMA讀寫傳送的最后結(jié)果MOV AH,4CHINT 21HI8237R PROC; 結(jié)束程序并返回DOS;DMA通道 1讀出初始化MOV AL,05HOUT 0AH,ALMOV AL,01001001BOUT 0BH,AL; 通道 1屏蔽觸發(fā)器置 1; 通道 1方式字 , 單字節(jié)寫傳送; 自動(dòng)加 1變址 , 不自動(dòng)預(yù)置MOV AL,0OUT

5、0CH,ALMOV AX,DATAMOV BX,OFFSET TEXTCALL ADDRMOV; 先/ 后觸發(fā)器置 0;AX為 TEXT的段基址;BX為 TEXT的有效地址; 計(jì)算輸出 TEXT單元的20位物理地址RETI8237R ENDPI8237W PROCMOV AL,05HOUT 0AH,ALMOV AL,01000101BOUT 0BH,ALMOV AL,0OUT 0CH,ALMOV AX,DATAMOV BX,OFFSET BUFCALL ADDRMOVRETI8237W ENDPADDRMOV PROCMOV CX,0004HLL:SAL AX,1RCL CH,1DEC CLJ

6、NZ LLADD AX,BXJNC NEXT11INC CHNEXT11: OUT 02H,ALMOV AL,AHOUT 02H,ALMOV AL,CHOUT 83H,ALMOV AX,COUNT-1OUT 03H,ALMOV AL,AHOUT 03H,ALMOV AL,01OUT 0AH,ALRETADDRMOV ENDPCODE ENDSEND BEG;DMA通道 1寫入初始化; 通道 1屏蔽觸發(fā)器置1; 通道 1方式字 , 單字節(jié)寫傳送; 自動(dòng)加 1變址 , 不自動(dòng)預(yù)置; 先/ 后觸發(fā)器置 0;AX 為 BUF的段基址;BX 為 BUF的有效地址; 計(jì)算并輸出 BUF單元的 20位物理地

7、址; 計(jì)算并輸出某地址; 計(jì)算用 AX:BX表示的物理地址; 將移位時(shí)的溢出計(jì)入CH; AX=AX*4+BX; 低 8位存入通道 1基本地址寄存器; 中 8位存入通道 1基本地址寄存器; 高 4位存入通道 1頁(yè)面寄存器; 要傳送的字節(jié)數(shù)減1傳給基本字節(jié)寄存器; 解除通道 1屏蔽五 實(shí)驗(yàn)分析:分析 DMA時(shí)序。1讀過(guò)程按下 DMA按鍵,通過(guò)端子向DMA通道 1 發(fā)硬件 DMA請(qǐng)求,系統(tǒng)DMA控制器向CPU發(fā)總線請(qǐng)求信號(hào), CPU在執(zhí)行完當(dāng)前總線周期后向系統(tǒng) DMA控制器發(fā)總線響應(yīng)信號(hào),隨即把總線控制權(quán)交給 DMA控制器, 此時(shí) /DACK1有效。然后 DMA控制器將通道 1 的頁(yè)面地址寄存器及當(dāng)

8、前地址寄存器中的內(nèi)容放到地址總線上去,并發(fā)出存儲(chǔ)器讀命令,讀出內(nèi)存單元中的 text內(nèi)容送往數(shù)據(jù)總線。由于 /DACK1有效,通過(guò)J4 短路線選中 6116 和雙向總線驅(qū)動(dòng)器74LS245, /IOW 有效,通過(guò) J3 短路線 , 使 6116 的 /WE有效,從而把數(shù)據(jù)總線上的數(shù)據(jù)通過(guò)74LS245 寫入到 6116 的 0號(hào)單元,完成一次DMA讀傳送。此時(shí)通道 1 當(dāng)前地址寄存器自動(dòng)加1,當(dāng)前字節(jié)寄存器自動(dòng)減1。另外通過(guò) U38 和 JS 引線向分頻器輸入一個(gè)進(jìn)位脈沖,使分頻器計(jì)數(shù)一次,Q10Q0輸出選擇 6116 的下一個(gè)單元。 再反復(fù)上述讀過(guò)程直到當(dāng)前字節(jié)寄存器為FFFFH為止,讀過(guò)程

9、結(jié)束。2 寫過(guò)程按下 DMA按鍵,通過(guò)端子向DMA通道 1 發(fā)硬件 DMA請(qǐng)求,系統(tǒng) DMA控制器向CPU發(fā)總線請(qǐng)求信號(hào),CPU在執(zhí)行完當(dāng)前總線周期后向系統(tǒng)DMA控制器發(fā)總線響應(yīng)信號(hào),隨即把總線控制權(quán)交給DMA控制器, 此時(shí) /DACK1有效。然后 DMA控制器將通道1 的頁(yè)面地址寄存器及當(dāng)前地址寄存器中的內(nèi)容放到地址總線上去,并發(fā)出存儲(chǔ)器讀命令,讀出內(nèi)存單元中的text內(nèi)容送往數(shù)據(jù)總線。由于/DACK1有效,通過(guò)J4 短路線選中 6116 和雙向總線驅(qū)動(dòng)器74LS245, /IOR 有效,通過(guò)J2 短路線 , 使 6116 的 /RD有效, 從而讀出 6116 當(dāng)前單元的內(nèi)容,通過(guò) 74LS

10、245 寫入到系統(tǒng)數(shù)據(jù)總線,完成一次 DMA寫傳送。 此時(shí)通道1 當(dāng)前地址寄存器自動(dòng)加1,當(dāng)前字節(jié)寄存器自動(dòng)減1。另外通過(guò) U38 和 JS 引線向分頻器輸入一個(gè)進(jìn)位脈沖,使分頻器計(jì)數(shù)一次,Q10Q0輸出選擇 6116 的下一個(gè)單元。再反復(fù)上述讀過(guò)程直到當(dāng)前字節(jié)寄存器為FFFFH為止,寫過(guò)程結(jié)束。4 4LS393 在本實(shí)驗(yàn)中的作用作為一個(gè)分頻器,在本實(shí)驗(yàn)中起到了選定存儲(chǔ)器6116地址的作用。這是通過(guò)輸入譯碼后的進(jìn)位時(shí)鐘實(shí)現(xiàn)的。5 DMA傳送過(guò)程及特點(diǎn)DMA 傳送方式是在內(nèi)存與外設(shè)之間開辟專用的數(shù)據(jù)通道, 這個(gè)數(shù)據(jù)通道在 DMA 制器的控制下直接進(jìn)行數(shù)據(jù)交換而不通過(guò) CPU,不用 I/O 指令。這樣,數(shù)據(jù)傳送的速度上限取決于存儲(chǔ)器的存儲(chǔ)速度。因而 DMA 方式主要用于速度要求比較高的場(chǎng)合。控六實(shí)驗(yàn)小結(jié):這次實(shí)驗(yàn)其實(shí)要讓我們自己來(lái)考慮設(shè)計(jì)實(shí)現(xiàn)的話是非常困難的,好在書上已經(jīng)給了我們實(shí)驗(yàn)電路和原程序代碼,所以我們只要將書上的例子看明白的就可以做了,不過(guò),這樣一來(lái), 也可能有些人連書上的程序都不看而直接敲入代碼運(yùn)行通過(guò),這樣就什么都沒(méi)有學(xué)到,沒(méi)有達(dá)到實(shí)驗(yàn)的效果了。我做這個(gè)實(shí)驗(yàn)時(shí)到了最后一周了,許多實(shí)驗(yàn)板已經(jīng)壞了,有時(shí)候即使實(shí)驗(yàn)步驟完全正確由于板子的原因也做不出來(lái)。我就被害的夠慘的了,插了幾次線, 還是不出來(lái),最后到別人的板子上去一試就成了。但我覺(jué)得,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論