微型計(jì)算機(jī)簡單并行接口實(shí)驗(yàn) | 您所在的位置:網(wǎng)站首頁 › 屬牛都是哪些年份 › 微型計(jì)算機(jī)簡單并行接口實(shí)驗(yàn) |
一、實(shí)驗(yàn)?zāi)康?/p> 掌握簡單并行接口的工作原理及使用方法。 二、實(shí)驗(yàn)設(shè)備與環(huán)境 TPC-2003A通用微機(jī)接口實(shí)驗(yàn)箱,windows XP運(yùn)行環(huán)境。 三、實(shí)驗(yàn)內(nèi)容、程序清單及運(yùn)行結(jié)果 1. 實(shí)驗(yàn)內(nèi)容 1)按下面圖2簡單并行輸出接口電路圖連接線路(74LS273插通用插座,74LS32用實(shí)驗(yàn)臺(tái)上的“或門”)。74LS273為八D觸發(fā)器(通過CLR引腳決定是否進(jìn)行鎖存,將輸入端來自數(shù)據(jù)總線的數(shù)據(jù)鎖存到Q1-Q8的輸出端,輸出到發(fā)光二極管,點(diǎn)亮對(duì)應(yīng)的燈,上升沿有效,或門,從低電平到高電平,才能產(chǎn)生上升沿),8個(gè)D輸入端分別接數(shù)據(jù)總線D0~D7,8個(gè)Q輸出端接LED顯示電路L0~L7。 2)編程從鍵盤輸入一個(gè)字符或數(shù)字,將其ASCⅡ碼通過這個(gè)輸出接口輸出,根據(jù)8個(gè)發(fā)光二極管發(fā)光情況驗(yàn)證正確性。 3)按下面圖3簡單并行輸入接口電路圖連接電路(74LS244插通用插座,74LS32用實(shí)驗(yàn)臺(tái)上的“或門”)。74LS244為八緩沖器,8個(gè)數(shù)據(jù)輸入端分別接邏輯電平開關(guān)輸出K0~K7,8個(gè)數(shù)據(jù)輸出端分別接數(shù)據(jù)總線D0~D7。 4)用邏輯電平開關(guān)預(yù)置某個(gè)字母的ASCⅡ碼,編程輸入這個(gè)ASCⅡ碼,并將其對(duì)應(yīng)字母在屏幕上顯示出來。 2. 編程提示 上述并行輸出接口的地址為2A8H,并行輸入接口的地址為2A0H,通過上述并行接口電路輸出數(shù)據(jù)需要3條指令: ? MOV AL, 數(shù)據(jù) MOV DX,2A8H ? OUT DX,AL 通過上述并行接口輸入數(shù)據(jù)需要2條指令: ? MOV DX,2ADH IN AL,DX。 3. 流程圖 4. 程序清單 1)參考程序1: code segment assume cs:code start: mov ah,2 ;回車符 CPU執(zhí)行數(shù)據(jù)傳送指令,傳輸給ah寄存器,ah寄存器獲得立即數(shù) ? mov dl,0dh CPU繼續(xù)執(zhí)行數(shù)據(jù)傳送指令,將立即數(shù)0dh傳送給dl寄存器 ? int 21h CPU執(zhí)行中斷指令,根據(jù)中斷類型碼獲得類型號(hào)21h,CPU執(zhí)行dos功能調(diào)用中斷子程序,根據(jù)入口參數(shù)ah所提供的功能號(hào)2,CPU轉(zhuǎn)到 顯示一個(gè)字符的子模塊,根據(jù)入口參數(shù)dl所提供的數(shù)據(jù)為0dh(0dh是回車符號(hào)的ASCII碼),其結(jié)果顯示一個(gè)回車符(有入口,入口是dl寄存器,沒有出口) ? mov ah,1 ;等待鍵盤輸入 CPU執(zhí)行數(shù)據(jù)傳送指令,將立即數(shù)1傳送給ah寄存器 ? int 21h CPU繼續(xù)執(zhí)行中斷子程序,根據(jù)中斷類型號(hào)21h轉(zhuǎn)到dos功能調(diào)用中斷服務(wù)子程序中,CPU在執(zhí)行dos功能調(diào)用的中斷服務(wù)子程序時(shí),根據(jù)入口參數(shù)ah寄存器所提供的功能號(hào)為1轉(zhuǎn)到等待鍵盤輸入的子模塊,當(dāng)按下一個(gè)鍵時(shí),其鍵的ASCII碼值通過出口參數(shù)al寄存器返回(沒有入口,只有出口,al寄存器是出口)。 ? cmp al,27 ;判斷是否為ESC鍵 比較指令,相當(dāng)于減法指令,不影響結(jié)果,只允許標(biāo)志位ZF,若按下的鍵為ESC鍵,ZF=1,若不是ESC鍵,ZF=0 ? je exit ; 若是則退出 條件轉(zhuǎn)移指令,若ZF為1,條件滿足,轉(zhuǎn)到標(biāo)號(hào)為exit處 ? mov dx,2a8h ;若不是,從2A8H輸出其ASCII碼 ? out dx,al CPU執(zhí)行IO的寫指令,將al寄存器所提供的值(按鍵的ASCII碼值)寫到端口地址02a8所指定的8D觸發(fā)器中(相當(dāng)于存儲(chǔ)器),通過輸出端輸出到發(fā)光二極管,點(diǎn)亮對(duì)應(yīng)的燈。接下來結(jié)合時(shí)序圖和程序原理圖分析該指令執(zhí)行的結(jié)果。 ? jmp start ;轉(zhuǎn)start exit: mov ah,4ch ;返回DOS 繼續(xù)執(zhí)行數(shù)據(jù)傳送指令,將立即數(shù)4ch傳送給ah寄存器 ? int 21h CPU執(zhí)行中斷指令,根據(jù)提供的類型號(hào)為21h,CPU執(zhí)行dos功能調(diào)用的中斷服務(wù)子程序,CPU在執(zhí)行dos功能調(diào)用的中斷服務(wù)子程序時(shí),根據(jù)入口參數(shù)ah所提供的功能號(hào)為4ch,轉(zhuǎn)到返回dos的子模塊,結(jié)果返回到作系統(tǒng)。若按下其他鍵(不是ESC),條件不滿足,CPU順序執(zhí)行,將立即數(shù)02a8傳送給dx寄存器 code ends ? end 2)參考程序2: code segment assume cs:code start: mov dx,2a0h ;從2A0H輸入一數(shù)據(jù) ? in al,dx ? mov dl,al ;將所讀數(shù)據(jù)保存在DL中 ? mov ah,02 ;顯示ASCII碼為DL的字符 ? int 21h ? mov dl,0dh ;顯示回車符 ? int 21h ? mov dl,0ah ;顯示換行符 ? int 21h ? mov ah,1 ;是否有鍵按下 ? int 16h ? je start ;若無,則轉(zhuǎn)start exit: mov ah,4ch ;返回DOS ? int 21h code ends ? end
四、實(shí)驗(yàn)結(jié)論、實(shí)驗(yàn)體會(huì) 答辯:1、本次實(shí)驗(yàn)是簡單并行接口輸出實(shí)驗(yàn)。2、按照原理圖連接好線路,打開實(shí)驗(yàn)箱電源,通過集成開發(fā)環(huán)境將簡單并行接口輸出實(shí)驗(yàn)程序,進(jìn)行編輯,輸入,然后進(jìn)行編譯,生成目標(biāo)代碼,點(diǎn)擊運(yùn)行,從鍵盤上輸入一個(gè)字符,其ASCII碼的值通過簡單并行輸出接口輸出到發(fā)光二極管,點(diǎn)亮對(duì)應(yīng)的燈。結(jié)合原理圖,時(shí)序圖,程序代碼著手分析其運(yùn)行的結(jié)果。CPU首先從Start開始執(zhí)行指令…,接下來結(jié)合時(shí)序圖和程序原理圖分析該指令執(zhí)行的結(jié)果。CPU執(zhí)行IO的寫指令進(jìn)入T1時(shí)刻,產(chǎn)生16位的有效地址,8088… 以上是唐老師上課的筆記。未完不待續(xù) |
今日新聞 |
推薦新聞 |
專題文章 |
CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有 |