微機原理及接口技術期末復習課_第1頁
微機原理及接口技術期末復習課_第2頁
微機原理及接口技術期末復習課_第3頁
微機原理及接口技術期末復習課_第4頁
微機原理及接口技術期末復習課_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機原理及接口技術期末復習課(njupt)(重要應用舉例)一。接口電路原理圖的分析。二。CPU對接口電路的操作涉及的程序設計。三。中斷部分涉及的程序設計四。定時器部分程序設計主要為對8254的初始化編程五。串口部分主要程序設計是針對8250芯片的直接對端口操作方式下的初始化和查詢方式的數(shù)據(jù)發(fā)送和接收編程六。8255部分程序設計主要是對8255的初始化和方式0,1下對8255的數(shù)據(jù)端口的操作。七。用戶使用PC系統(tǒng)的芯片和外擴芯片的差異。八。串行異步通信波形分析一。接口電路原理圖的分析。1。從原理圖中分析出其中的端口和端口類型(數(shù)據(jù),狀態(tài),控制)如果電路為可編程芯片(8254,8255等)構成,則可以直接得到其中的端口和類型;如果電路由門電路等分立元件構成,則需要依據(jù)電路的構成來具體分析其中的端口和類型(例如對教材上P.223,224的查詢方式輸入/輸出接口電路的分析)。2。從原理圖中分析譯碼電路,以確定其中的端口的地址。譯碼電路的分析方法為:列出地址列表的全部狀態(tài)變化,從中尋找出端口對應的地址。

[舉例]

設ISA總線外擴了以下的數(shù)碼管顯示電路,針對該接口電路編程,演示8字循環(huán)左移。[舉例]

設ISA總線外擴了以下的數(shù)碼管顯示電路,針對該接口電路編程,演示8字循環(huán)左移。IOW8位同相驅(qū)動器

8位鎖存器(段選).a~h段

6位反相驅(qū)動器

8位鎖存器(位選)口地址譯碼器A0ISA:D0~D7ISA:D0~D7

或非

CS

口地址譯碼器

段選鎖存器其口地址=201H,203H,205H,207H

執(zhí)行:MOVDX,201HMOVAL,字形碼

OUTDX,ALA8A6A4AENA7A5A3A9CS如左,當口地址=200H~207H時,CS=0

位選鎖存器。口地址=200H,202H,204H,206H

執(zhí)行MOVDX,200HMOVAL,01HOUTDX,AL;使第一位數(shù)碼管共陰極=低電平列表分析過程:AENA9A8A7A6A5A4A3A2A1A001000000XX0->位選01000000XX1->段選硬件電路:

D7~D0RDWRGATE0A1GATE1A0CLK0CLK1

OUT0CSOUT1

8254

D7~D0IORIOWA1A0

A9A4A3

A87652AEN+52兆8KHZ方波1.6KHZ連續(xù)脈沖[舉例]列表分析過程:AENA9A8A7A6A5A4A3A2A1A001000011000->定時器001000011001->定時器101000011010->定時器201000011011->控制口二。CPU對接口電路的操作涉及的程序設計。大綱要求掌握CPU對接口電路的四種操作方式中的三種:無條件傳送,查詢,中斷。1.無條件傳送編寫程序時直接采用OUT指令對端口寫數(shù)據(jù),IN指令從端口讀數(shù)據(jù)。注意:端口地址超過8位時,要用DX間址.

如:MOVDX,210HOUTDX,AL

2。查詢使用查詢方式對端口操作時,無論是讀還是寫數(shù)據(jù)口,先都需要讀取狀態(tài)口的數(shù)據(jù),以判別此時CPU是否可以從數(shù)據(jù)口讀到數(shù)據(jù)或CPU是否可以向數(shù)據(jù)口寫數(shù)據(jù)。總結:對于可編程芯片8250,8255

對8250,在發(fā)送數(shù)據(jù)前,讀通信線狀態(tài)寄存器(狀態(tài)口)獲取發(fā)送保持或移位寄存器(數(shù)據(jù)口)是否空閑;在接收數(shù)據(jù)前,讀通信線狀態(tài)寄存器(狀態(tài)口)獲取接收緩沖寄存器(數(shù)據(jù)口)是否已經(jīng)收到1幀數(shù)據(jù)。對8255,方式1時,CPU讀取A口或B口(數(shù)據(jù)口)前,讀取PC口(視為狀態(tài)口,雖然沒有作為聯(lián)絡線的PC引腳仍然可作I/O用),判別IBF是否為1,CPU向A口或B口(數(shù)據(jù)口)寫數(shù)據(jù)前,讀取PC口(狀態(tài)口),判別OBF是否為1。注意:對可編程芯片(8250,8255)在采用查詢方式操作時,一般需要禁止該芯片提出中斷請求??偨Y:對8250,需要向中斷允許寄存器和MODEM控制寄存器寫對應的控制字以禁止8250提出中斷。(請仔細閱讀P320.例10.3.1中對8250的初始化子程序)對8255,需要使用C口按位置1/0命令字寫往控制口以使得PC口的對應位置0以禁止A口或B口提出中斷請求。(請仔細閱讀P347.例11.2.1對8255初始化的子程序(采用查詢方式的))三。中斷部分涉及的程序設計中斷部分涉及到的程序設計主要是1。主程序的編寫包括

※主程序的結構

※中斷向量的置換(讀中斷向量和寫中斷向量)

※硬件中斷通路的開放和屏蔽。涉及到是否要對中斷

8259寫中斷屏蔽字的問題2。中斷服務程序的編寫,其中根據(jù)置換的中斷類型不同,需要解決是否要對中斷管理器8259寫中斷結束命令字的問題?!鞒绦虻慕Y構。由于中斷是隨機發(fā)生的,所以主程序中并不能確定中斷何時發(fā)生,與普通程序相比較。與中斷服務程序配套的主程序增加了中斷向量置換和有可能有的硬件中斷通路的打開,在程序結束返回系統(tǒng)前,也需要將系統(tǒng)恢復原狀的操作,即恢復系統(tǒng)中斷向量,重新關閉硬件中斷通路?!袛嘞蛄康闹脫Q(讀中斷向量和寫中斷向量)使用兩個DOS功能調(diào)用進行。[INT21H的35H子功能]功能:讀出n型中斷向量入口:AL=中斷類型碼出口:ES:BX=n型中斷向量[INT21H的25H子功能]功能:寫入n型中斷向量入口:DS=中斷服務程序所在代碼段的段基址

DX=中斷服務程序入口的偏移地址

AL=中斷類型碼,[舉例]在定時中斷程序設計中涉及到的對1C中斷向量的操作READ1CPROC;保存系統(tǒng)1CH型中斷向量

MOVAX,351CHINT21HMOVWORDPTROLD1C,BXMOVWORDPTROLD1C+2,ESRETREAD1CENDP;--------------------------------WRITE1CPROC;寫入用戶1CH型中斷向量

PUSHDSMOVAX,CODEMOVDS,AXMOVDX,OFFSETSERVICEMOVAX,251CHINT21HPOPDSRETWRITE1CENDP;---------------------------------RESETPROC;恢復系統(tǒng)1CH型中斷向量

MOVDX,WORDPTROLD1CMOVDS,WORDPTROLD1C+2;注意與上一句順序不能倒換

MOVAX,251CHINT21HRETRESETENDPCODEENDSENDBEG※硬件中斷通路的打開。對由系統(tǒng)機主/從8259管理的接口電路硬件中斷,在使用中斷方式對接口操作時,需要打開硬件中斷的通道。對于日時鐘08H(或其中的1CH),默認下主8259已經(jīng)打開,無需再進行開放操作。對于用戶中斷71H(或其中的0AH),需要打開主8259的IR2和從8259的IR1。使用向主/從8259寫對應的中斷屏蔽字的方法就可實現(xiàn)通道的開放操作。[舉例]打開71H用戶中斷的通道I8259PROCINAL,21HANDAL,11111011BOUT21H,AL;開放從8259中斷

INAL,0A1HANDAL,11111101BOUT0A1H,AL;開放用戶中斷

RETI8259ENDP注意:有時還需要打開接口電路自身的中斷允許,以使得接口電路能送出中斷請求信號。對于串口8250芯片,需要向中斷允許寄存器和MODEM控制寄存器寫對應的命令字以完成使8250能送出中斷請求。對于8255芯片,工作在方式1時,需要使用C口按位置1/0命令字寫往控制口以使得PC口的對應位置1以開放A口或B口的中斷請求。(請仔細閱讀P347.例11.2.1對8255初始化的子程序(采用中斷方式的))2。中斷服務程序的編寫中斷服務程序結構SERVICEPROC保護現(xiàn)場的語句中斷服務程序里具體完成的事情{對主/從8259寫中斷結束命令字}僅在需要時有這樣的操作恢復現(xiàn)場的語句

IRETSERVICEENDP保護現(xiàn)場和恢復現(xiàn)場通常是利用堆棧完成對那些主程序中用到,在中斷服務程序中也會用到的寄存器進行保護,使得它們都可以在主程序和中斷服務程序中正常使用,而避免發(fā)生其中的數(shù)值被互相修改的問題。如PUSHA,POPA,但注意一定要成對使用。對8259寫中斷結束命令字決定于被置換掉的原有的硬件中斷服務程序是否需要這樣的操作。總結為:置換日時鐘08H中斷,需要在用戶自己的中斷服務程序中對主8259寫中斷結束命令字。置換日時鐘引發(fā)的1CH中斷,不需要在用戶自己的中斷服務程序中對主8259寫中斷結束命令字。置換用戶中斷引發(fā)的71中斷,需要在用戶自己的中斷服務程序中對主從8259寫中斷結束命令字。置換用戶中斷引發(fā)的0A中斷,需要在用戶自己的中斷服務程序中對主8259寫中斷結束命令字。◎請仔細閱讀中斷一章的課件中補充的利用日時鐘中斷設計定時程序以及教材P347.例11.2.1利用用戶中斷設計的程序以完成對中斷部分程序設計的掌握。四。定時器部分程序設計主要為對8254的初始化編程步驟:1.根據(jù)被使用的定時計數(shù)器的工作方式,數(shù)據(jù)寫入方式(低8位,高8位,低8位和高8位),數(shù)據(jù)寫入的數(shù)制類型(二進制,BCD碼)確定方式選擇命令字,寫入到8254控制口。

2.根據(jù)計數(shù)初值=fclk

/fout計算出計數(shù)初值,按照確定的數(shù)據(jù)寫入方式,將其寫入到8254對應的定時計數(shù)器端口。注意:1.每次設定工作方式和寫入初值只能對8254中1個定時計數(shù)器完成初始化。如果要對2個或3個定時計數(shù)器都進行初始化,這樣的操作過程要重復進行2次或3次。

2.注意寫入的計數(shù)初值是二進制還是BCD碼。二進制還是BCD碼是由程序員來指定的。[舉例]設8254的口地址為40H~43H,要求2#計數(shù)器工作在方式3,計數(shù)初值=4000,請寫出2#的初始化程序段。解1:設初值為二進制,初值寫入順序為先低8位后高8位。

MOVAL,10110110BOUT43H,ALMOVAX,4000

溫馨提示

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

評論

0/150

提交評論