資源描述:
《c章微機和外設(shè)CPU與外設(shè)間的數(shù)據(jù)傳送方式》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1微型計算機技術(shù)第10c章微機和外設(shè)__CPU與外設(shè)間的數(shù)據(jù)傳送方式2一、無條件傳送方式二、條件傳送方式(查詢方式)三、中斷傳送方式四、DMA傳送方式(DirectMemoryAccess)有以下幾種傳送方式:3概述1。無條件傳送(CPU與外設(shè)同步工作):外部控制過程各種動作時間是固定的,而且是已知的。2。查詢方式(CPU與外設(shè)不同步工作):傳送前,先查詢外設(shè)狀態(tài),準備好才傳送,否則CPU處于等待狀態(tài)。3。中斷方式:外設(shè)與CPU處于并行工作,一旦外設(shè)準備好,外設(shè)向CPU發(fā)中斷申請,條件具備,CPU暫停原程序執(zhí)行,響應(yīng)中斷,外設(shè)與C
2、PU之間交換數(shù)據(jù)。4。DMA方式(高速I/O及成組交換數(shù)據(jù)):CPU放棄對總線的控制權(quán),由硬件實現(xiàn)存儲器與外設(shè)之間交換數(shù)據(jù),稱直接存取存儲器。4一、無條件傳送方式(同步傳送方式)?實現(xiàn)方法CPU不查詢外設(shè)工作狀態(tài),與外設(shè)速度的匹配通過在軟件上延時完成,在程序中直接用I/O指令,完成與外設(shè)的數(shù)據(jù)傳送?特點1.適用于外設(shè)動作時間已知,在CPU與外設(shè)進行數(shù)據(jù)傳送時,外設(shè)保證已準備好的情況2.軟硬件十分簡單。5例1無條件輸入接口接口電路,即硬件上保證:只在CPU執(zhí)行從200H端口輸入數(shù)據(jù)時,三態(tài)門處于工作狀態(tài),使輸入設(shè)備的數(shù)據(jù)送上總線側(cè),
3、而CPU執(zhí)行其它指令時,三態(tài)門均處于高阻狀態(tài),使輸入設(shè)備的數(shù)據(jù)線與總線側(cè)斷開三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線IOR地址譯碼地址線200H000D7~D0A15~A0與非PC總線6無條件輸入編程:從端口200H讀入256個字節(jié)到內(nèi)存緩沖區(qū)buffer中。、、、MOVAX,SEGbufferMOVDS,AX;取緩沖區(qū)LEADI,buffer;首地址MOVCX,100H;傳送個數(shù)MOVDX,200H;端口地址next:;延時等待INAL,DX;讀入數(shù)據(jù)CALLdelayMOV[DI],AL;送緩沖區(qū)INCDI;修改指針LOOPnext、、、;延
4、時子程delayPROCPUSHCXMOVCX,80Hcc:LOOPccPOPCXRETdelayENDP7例2無條件輸出:編程控制系統(tǒng)板上揚聲器發(fā)聲。4765321061H端口8253與門放大器揚聲器01控制其它外設(shè)揚聲器控制電路圖:T個數(shù)發(fā)聲原理:向揚聲器發(fā)送一串脈沖信號,推動揚聲器內(nèi)紙盆振動,發(fā)出聲音脈沖的頻率,控制音高;脈沖的個數(shù),控制音長81.使61H端口的0位輸出0,控制8253輸出1。2.使61H端口的1位按所需頻率交替輸出0和1,產(chǎn)生所需的聲音。編程方法:4765321061H端口8253與門放大器揚聲器01控制其
5、它外設(shè)揚聲器控制電路圖:9codeSEGMENTASSUMECS:codestart:MOVBX,3000H;控制脈沖個數(shù)MOVDX,6000H;控制脈沖周期INAL,61H;讀入61H端口數(shù)據(jù)ANDAL,11111100b;D0為0,8253輸出1sound:XORAL,00000010bOUT61H,AL;61H端口的D1交替為0和1MOVCX,DXdelay:LOOPdelay;延時DECBX;控制脈沖數(shù)JNZsoundINT03H;程序斷點codeENDSENDstart發(fā)聲程序:61H端口8253與門放大器揚聲器01控制
6、其它外設(shè)T個數(shù)10二、條件傳送方式(查詢傳送方式)?實現(xiàn)方法:在與外設(shè)進行傳送數(shù)據(jù)前,CPU先查詢外設(shè)狀態(tài),當外設(shè)準備好后,才執(zhí)行I/O指令,實現(xiàn)數(shù)據(jù)傳送?特點:1.CPU通過不斷查詢外設(shè)狀態(tài),實現(xiàn)與外設(shè)的速度匹配2.CPU的工作效率低11?查詢傳送方式,編程流程:NY從狀態(tài)端口讀入狀態(tài)信息從數(shù)據(jù)端口傳送一個數(shù)據(jù)外設(shè)準備好否?12例1查詢方式輸入假設(shè)外設(shè)的狀態(tài)端口為21CH,其中D4=1時,表示外設(shè)數(shù)據(jù)準備好外設(shè)的數(shù)據(jù)端口為218H。實現(xiàn)從外設(shè)讀入50H個字節(jié)到內(nèi)存緩沖區(qū)buffer中。21CH端口狀態(tài)端口218H端口數(shù)據(jù)端口地址
7、譯碼數(shù)據(jù)緩沖控制電路輸入外備CPU地址線數(shù)據(jù)線控制線13查詢方式輸入接口狀態(tài)端口D4=1表示外設(shè)準備好三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線218H數(shù)據(jù)端口地址譯碼地址線狀態(tài)端口地址譯碼鎖存器IORRQD三態(tài)緩沖器+5vD421CHSTBPC總線IORA15~A0D7~D0&&MOVDX,218HINAL,DXMOVDX,21CHINAL,DX14從21CH狀態(tài)端口讀入外設(shè)狀態(tài)信息從218H數(shù)據(jù)端口讀入一個字節(jié)數(shù)據(jù)YND4=1,外設(shè)準備好否?N50H個數(shù)據(jù)傳送結(jié)束?Y編程從外設(shè)讀入50H個字節(jié)到內(nèi)存緩沖區(qū)buffer中15、、、MOVAX,SE
8、Gbuffer;取緩沖區(qū)首地址MOVDS,AXLEADI,bufferMOVCX,50H;傳送個數(shù)next:MOVDX,21CHask:INAL,DX;從狀態(tài)端口讀入狀態(tài)信息TESTAL,00010000B;檢測D4位JZask;D4=0,繼續(xù)查詢