機電-第8章可編程接口芯片_第1頁
機電-第8章可編程接口芯片_第2頁
機電-第8章可編程接口芯片_第3頁
機電-第8章可編程接口芯片_第4頁
機電-第8章可編程接口芯片_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章微機接口技術(shù)及其應(yīng)用目錄8.1并行I/O接口8.2串行通信接口8.3定時/計數(shù)器技術(shù)目錄8.4A/D與D/A接口2024-02-031第8章微機接口技術(shù)及其應(yīng)用8.1并行I/O接口8.1.1并行I/O接口

并行輸入/輸出就是把一個字符的幾個位同時進行傳輸。它具有傳輸速度快、效率高的優(yōu)點。并行通訊所用的電纜較多,不適合長距離傳輸。所以,并行通訊總是用在數(shù)據(jù)傳輸率要求較高,而傳輸?shù)木嚯x較短的場合。實現(xiàn)并行輸入/輸出的接口就是并行接口。通常,一個并行接口可設(shè)計為輸出接口,如連接一臺打印機。也可設(shè)計為輸入接口,如連接鍵盤。還可設(shè)計成雙向通訊接口,既作為輸入接口又作為輸出接口,如連接像磁盤驅(qū)動器這樣的需雙向通路的設(shè)備。2/3/20242第8章微機接口技術(shù)及其應(yīng)用CPU數(shù)據(jù)總線控制寄存器輸入緩沖/寄存器輸出緩沖/寄存器狀態(tài)寄存器I/O設(shè)備控制狀態(tài)信號數(shù)據(jù)狀態(tài)控制并行接口端口地址圖8-1并行接口電路示意圖2/3/20243第8章微機接口技術(shù)及其應(yīng)用圖8-1是典型的并行接口和外設(shè)連接的示意圖。從圖中可以看到,并行接口左邊是與CPU連接的總線,右邊用一個通道和輸入設(shè)備相連,另一個通道和輸出設(shè)備相連,輸入和輸出都有獨立的信號交換聯(lián)絡(luò)控制線。在并行接口內(nèi)部用控制寄存器來寄存CPU對它的控制命令,用狀態(tài)寄存器來提供各種工作狀態(tài)供CPU查詢,此外,還有供輸出和輸入數(shù)據(jù)用的輸出數(shù)據(jù)鎖存器和輸入數(shù)據(jù)緩沖器。并行接口的工作原理如下:在輸入過程中,當外設(shè)把數(shù)據(jù)送到數(shù)據(jù)輸入線上時,通過“數(shù)據(jù)輸入準備好”狀態(tài)線通知接口取數(shù)。接口在把數(shù)據(jù)鎖存到輸入緩沖器的同時,把數(shù)據(jù)輸入回答線置“1”,用來通知外設(shè),接口的數(shù)據(jù)輸入緩沖器“滿”,禁止外設(shè)再送數(shù)據(jù)。2/3/20244第8章微機接口技術(shù)及其應(yīng)用并且把內(nèi)部狀態(tài)寄存器中“輸入準備好”狀態(tài)位置“1”,以便CPU對其進行查詢或向CPU申請中斷。在CPU讀取接口中的數(shù)據(jù)后,接口將自動清除“輸入準備好”狀態(tài)位和“數(shù)據(jù)輸入回答”信號,以便外設(shè)輸入下一個數(shù)據(jù)。在輸出過程中,當數(shù)據(jù)輸出緩沖器“空閑”時,接口中“輸出準備好”狀態(tài)位置“1”。在接收到CPU的數(shù)據(jù)后,“輸出準備好”狀態(tài)位復(fù)位。數(shù)據(jù)通過輸出線送到外設(shè),同時,由“數(shù)據(jù)輸出準備好”信號線通知外設(shè)取數(shù)據(jù)。當外設(shè)接收一個數(shù)據(jù)時,回送一個“數(shù)據(jù)輸出回答”信號,通知接口準備下一次輸出數(shù)據(jù)。接口將撤消“數(shù)據(jù)輸出準備好”信號并再一次置“輸出準備好”狀態(tài)位為“1”,以便CPU輸出下一個數(shù)據(jù)。2/3/20245第8章微機接口技術(shù)及其應(yīng)用8.1.2可編程并行輸入/輸出接口8255A

8255A是Intel公司生產(chǎn)的一種可編程并行輸入/輸出接口芯片。它的通用性強,可以方便地和微機連接,用來擴展輸入/輸出口。8255A有3個8位并行端口,根據(jù)不同的初始化編程,可以分別定義為輸入或輸出方式,以完成CPU與外設(shè)的數(shù)據(jù)傳送。1.8255A的結(jié)構(gòu)

8255A的內(nèi)部結(jié)構(gòu)如圖8-2所示。它由并行I/O端口、控制電路、數(shù)據(jù)總線緩沖器和讀/寫控制邏輯等幾個部分組成。(1)并行I/O端口A、B、C。2/3/20246第8章微機接口技術(shù)及其應(yīng)用數(shù)據(jù)總線緩沖器讀/寫控制邏輯A組端口A(8)A組端口C(4)B組端口B(8)B組端口C(4)A組控制B組控制8位內(nèi)部數(shù)據(jù)總線DBI/OPA7~PA0I/OPC7~PC4I/OPC3~PC0I/OPB7~PB0CPU接口內(nèi)部邏輯

外設(shè)接口RDWRA0A1RESETCS圖8-28255A內(nèi)部結(jié)構(gòu)2/3/20247

A、B、C口都是8位的,可以選擇作為輸入或輸出,但在結(jié)構(gòu)和功能上有所不同。A口含有一個8位數(shù)據(jù)輸出鎖存/緩沖器和一個8位數(shù)據(jù)輸入鎖存器。B口含有一個8位數(shù)據(jù)輸入/輸出鎖存/緩沖器和一個8位的數(shù)據(jù)輸入緩沖器(不鎖存)。C口含有一個8位數(shù)據(jù)輸出緩沖器和一個8位數(shù)據(jù)輸入緩沖器(不鎖存)。當數(shù)據(jù)傳送不需要聯(lián)絡(luò)信號時,這三個端口都可以用作輸入或輸出口。當A口、B口工作在需要聯(lián)絡(luò)信號輸入、輸出方式時,C口可以分別為A口和B口提供狀態(tài)和控制信息。

第8章微機接口技術(shù)及其應(yīng)用2/3/20248(2)A組和B組控制電路。

8255A的三個端口在使用時分為A、B組。A組包括A口8位和C口的高4位,B組包括B口8位和C口的低4位。兩組的控制電路中有控制寄存器,根據(jù)寫入的控制字決定兩組的工作方式,也可以對C口的每一位置“1”或清“0”。(3)數(shù)據(jù)總線緩沖器。

數(shù)據(jù)總線緩沖器是三態(tài)雙向8位緩沖器,是8255A與CPU數(shù)據(jù)總線的接口。數(shù)據(jù)的輸入/輸出、控制字和狀態(tài)信息的傳送,都是通過這個緩沖器進行的。由于8255A的數(shù)據(jù)總線是三態(tài)的,所以D0~D7可以直接與CPU的數(shù)據(jù)總線相連。第8章微機接口技術(shù)及其應(yīng)用2/3/20249(4)讀/寫控制邏輯。

8255A的讀/寫控制邏輯的作用是從CPU的地址和控制總線上接收有關(guān)信號,轉(zhuǎn)變成各種控制命令送到數(shù)據(jù)緩沖器以及A組、B組控制電路,從而管理三個端口、控制寄存器和數(shù)據(jù)總線之間的傳送操作。2.8255A的引腳功能

8255A采用40腳雙列直插式封裝,引腳如圖8-3所示。下面分別介紹各個引腳的功能。第8章微機接口技術(shù)及其應(yīng)用2/3/202410第8章微機接口技術(shù)及其應(yīng)用

408255A2021PA4PA5PA6PA7WRRESETD0D11D2D3D4D5D6D7VCCPC7PC6PB5PB4PB3PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PC2圖8-38255A的引腳2/3/202411第8章微機接口技術(shù)及其應(yīng)用(1)D7~D0:8255A的雙向三態(tài)數(shù)據(jù)線,和系統(tǒng)的數(shù)據(jù)總線相連,用來讀寫數(shù)據(jù)和寫入控制字。(2)A1、A0:端口選擇線,用于選擇8255A的三個數(shù)據(jù)端口和一個控制端口。當A1A0為00時:選擇端口A;為01時,選擇端口B;為10時,選擇端口C;為11時,選擇控制端口。在8088系統(tǒng)中,A1、A0直接與系統(tǒng)地址總線的A1、A0連接即可。在8086系統(tǒng)中存在奇偶地址的問題,一般將8255A的數(shù)據(jù)線與系統(tǒng)的低8位數(shù)據(jù)總線相連,8255A的A1、A0與系統(tǒng)地址總線的A1、A0連接,而用系統(tǒng)地址總線的A0=0作為該8255A的片選條件之一。

2/3/202412第8章微機接口技術(shù)及其應(yīng)用(3):片選信號,低電平有效。當為低電平時8255A才能接受CPU的讀寫。與地址譯碼器輸出端相連。(4):讀信號,低電平有效,當為低電平時允許CPU從8255A讀取各端口的數(shù)據(jù)。(5):寫信號,低電平有效,當為低電平時8255A才能接受寫入數(shù)據(jù)或控制字。(6)RESET:復(fù)位信號,高電平有效。當為高電平時,8255A所有的寄存器清0,所有的輸入/輸出引腳均呈高祖態(tài),直到寫入控制字為止。2/3/202413第8章微機接口技術(shù)及其應(yīng)用與I/O設(shè)備相連接的信號線:(1)PA7~PA0:端口A數(shù)據(jù)線。(2)PB7~PB0:端口B數(shù)據(jù)線。(3)PC7~PC0:端口C數(shù)據(jù)線。3.8255A控制字

控制字是用來設(shè)置8255A的工作方式,8255A有兩個控制字:方式選擇控制字和C口按位置位/復(fù)位控制字。對8255A的編程就是向控制寄存器端口寫入控制字,通過表8-1來看,8255A只有一個控制寄存器端口地址(A1A0=11),這兩個控制字寫入同一端口地址(A1A0=11),為了進行區(qū)分,控制字的D7位作為標志位,D7=1表示是工作方式控制字;D7=0表示是按位置位/復(fù)位控制字。

2/3/202414第8章微機接口技術(shù)及其應(yīng)用表8-1信號組合實現(xiàn)的各種端口操作D7~D0呈高阻狀態(tài)未被選中,不工作×××1D7~D0呈高阻狀態(tài)11×數(shù)據(jù)總線→控制寄存器端口11數(shù)據(jù)總線→端口C10數(shù)據(jù)總線→端口B01數(shù)據(jù)總線→端口A輸出(寫)0100端口C→數(shù)據(jù)總線10端口B→數(shù)據(jù)總線01端口A→數(shù)據(jù)總線輸入(讀)10000功能說明操作WRRDA1、A0CS2/3/202415第8章微機接口技術(shù)及其應(yīng)用

(1)工作方式控制字

8255A有三種工作方式:方式0、方式1、方式2。工作方式控制字的作用是確定三個數(shù)據(jù)口在哪種方式下工作以及在該方式下式輸入還是輸出。工作方式控制字的格式如圖8-4所示。

(2)C口按位置位/復(fù)位控制字端口C設(shè)置為輸出方式時,常常用于控制目的,用來發(fā)送控制信號。此時,可利用按位置位/復(fù)位控制字的作用,使C口的某一引腳輸出特定的電平狀態(tài)(高電平或低電平),而不影響端口C的其他位的狀態(tài)??刂谱值母袷饺鐖D8-5所示。

2/3/202416D6D5D4D3D2D1D01B組PC3~PC00:輸出1:輸入B組PB8~PB00:輸出1:輸入B組方式選擇0:方式01:方式1A組PC7~PC40:輸出1:輸入A組PA7~PA00:輸出1:輸入A組方式選擇00:方式001:方式11×:方式2標志位=1A組控制B組控制圖8-48255A工作方式控制字

第8章微機接口技術(shù)及其應(yīng)用2/3/202417【例8.1】設(shè)某片8255A的各端口處于如下工作方式:端口A工作于方式1輸出;端口B工作于方式0輸入;端口C的高4位輸出,低4位輸入。根據(jù)8255A的方式選擇控制字格式(圖8.3)可寫出該片的方式選擇控制字為:10100011B或0A3H?!窘狻吭O(shè)此8255A芯片的A端口、B端口、C端口、控制端口地址為208H、209H、20AH、20BH,則其初始化程序為MOV DX,20BH;8255A控制端口MOV AL,0A3H;寫入控制字OUT DX,AL;送到控制端口第8章微機接口技術(shù)及其應(yīng)用2/3/202418第8章微機接口技術(shù)及其應(yīng)用D7D6D5D4D3D2D1D01=置位0=復(fù)位位選擇000C口0位001C口1位…111C口7位未用位(一般取0)標志位=0圖8-5C口按位置位/復(fù)位控制字格式2/3/202419【例8.2】

設(shè)8255A的A端口、B端口、C端口、控制端口地址為60H、61H、62H、63H,以下的程序段可實現(xiàn)對端口C的PC2復(fù)位和PC5置位,即MOV AL,00000100B(04H)OUT 63H,AL;復(fù)位PC2MOV AL,00001011B(0BH)OUT 63H,AL;置位PC5第8章微機接口技術(shù)及其應(yīng)用2/3/202420第8章微機接口技術(shù)及其應(yīng)用4.8255A的工作方式

(1)方式0:基本I/O在方式0下,A、B、C三個端口均用作輸入/輸出,這種輸入/輸出只是簡單的輸入/輸出,是一種不使用專用控制信號線的簡單輸入/輸出方式,無聯(lián)絡(luò)信號。如圖8-6所示。

A口

8255AC口

B口系統(tǒng)總線PA7~PA0PA7~PA0PA7~PA0PA7~PA0圖8-68255A工作方式02/3/202421第8章微機接口技術(shù)及其應(yīng)用在這種方式下,三個端口都可以由程序規(guī)定為輸入或輸出方式,但不能既作為輸入又作為輸出,也沒有提供固定的聯(lián)絡(luò)信號。C口分為高4位和低4位,可以分別設(shè)置為輸入或輸出方式。各端口在輸出方式下有鎖存功能,輸入不鎖存。當以工作方式0輸入時,外設(shè)先將數(shù)據(jù)送到8255A的某個端口,CPU執(zhí)行一條輸入指令,有效將該端口的數(shù)據(jù)送入CPU。當以工作方式0輸出時,CPU執(zhí)行一條輸出指令,有效,將數(shù)據(jù)送到8255A的某個端口,然后由外設(shè)取走。工作方式0適合于數(shù)據(jù)的無條件傳送,也可以人為指定某些位作為狀態(tài)信息線,進行查詢式傳送。2/3/202422若用于查詢傳送,可用端口A、B、C三個中的任一位充當查詢信號,其余位可作為獨立的端口位用于與外設(shè)連接,進行數(shù)據(jù)信息的傳送。在方式0下,C口的高低4位可分別設(shè)定為輸入或輸出,但CPU的IN或OUT指令必須至少以一個字節(jié)為單位進行讀寫,所以必須采取適當?shù)钠帘未胧?。如?-2。

第8章微機接口技術(shù)及其應(yīng)用2/3/202423【例8.4】

設(shè)8255A端口A、B、C和控制端口地址80H、82H、84H、86H,選用C端口高4位中PC7作為輸出設(shè)備的狀態(tài)位,C端口低4位中PC1作為輸出設(shè)備的選通位。寫入方式選擇控制字8AH設(shè)定各端口的工作在輸出一個數(shù)據(jù)前,先通過輸入PC7,查詢輸出設(shè)備狀態(tài),準備好則從端口A輸出,并由PC1發(fā)出選通脈沖信號通知輸出設(shè)備準備接受數(shù)據(jù)。此題為一種方式0下自定義的聯(lián)絡(luò)信號,接口圖如圖8.5所示。

MOV AL,8AH OUT 86H,ALNEXT: IN AL,84H TEST AL,80H JZ NEXT;查詢外設(shè)是否準備就緒

MOV AL,CL OUT 80H,AL;將數(shù)據(jù)輸出到端口A MOV AL,02H OUT 84H,AL;復(fù)位PC1 INC AL OUT 84H,AL;置位PC1,向端口C發(fā)送選通脈沖信號第8章微機接口技術(shù)及其應(yīng)用2/3/202424第8章微機接口技術(shù)及其應(yīng)用(2)方式1:帶選通的輸入/輸出這種方式僅A口和B口工作在這種方式下,A口或B口可以作為輸入或輸出,但不能既是輸入又是輸出。不論是輸入還是輸出,都要利用C口的某些引腳作為聯(lián)絡(luò)信號,并且這些聯(lián)絡(luò)信號和端口C的各引腳保持固定的關(guān)系,它們不能用程序加以改變。C口未被占用的位仍可用于輸入或輸出(控制字的D3位決定)。端口A、B工作方式1時聯(lián)絡(luò)信號的對應(yīng)關(guān)系見表8-3。

2/3/202425第8章微機接口技術(shù)及其應(yīng)用表8-38255A芯片工作在方式1時的通信聯(lián)絡(luò)信號端口聯(lián)絡(luò)線輸入輸出端口A方式1PC7I/OOBFAPC6I/OACKAPC5IBFAI/OPC4STBAI/OPC3INTRAINTRA端口B方式1PC2STBBACKBPC1IBFBOBFBPC0INTRBINTRB2/3/202426第8章微機接口技術(shù)及其應(yīng)用8255A工作在方式1時,具有以下特點:①端口A、B均可工作在方式1的輸入或輸出方式。②端口A、B若只有一個工作在方式1,而另一個工作在方式0,則端口C中有3位作為方式1的聯(lián)絡(luò)信號,端口C其余位均可工作在方式0的輸入或輸出方式。③端口A、B都工作在方式1,則需要端口C中6位作為其聯(lián)絡(luò)信號,剩下的2位還可工作在方式0的I/O方式。如圖8-7所示,方式1下8255A的各端口的輸入結(jié)構(gòu)圖。2/3/202427第8章微機接口技術(shù)及其應(yīng)用方式1輸入:A口1PC4,51=輸入0=輸出WROBFAACKAINTRAI/OD7~D0PA7~PA0INTEAPC7PC6PC3PC4、PC5&2011I/O×××A組控制字1WROBFBACKBINTRBD7~D0PB7~PB0INTEBPC1PC1PC0&××××11×B組控制字方式1輸入:B口圖8-7方式1下8255A的各端口的輸入結(jié)構(gòu)2/3/202428方式1輸入過程如圖8.7所示。圖8.78255A方式1輸入過程2/3/202429方式1輸入的具體工作過程如下:(1)當外設(shè)將數(shù)據(jù)送至端口A或端口B的數(shù)據(jù)線上后,就向8255A發(fā)出負脈沖,使選通信號為低,8255A將輸入數(shù)據(jù)送至輸入鎖存器鎖存。(2)8255A在選通信號有效之后將數(shù)據(jù)線的數(shù)據(jù)鎖存在指定的數(shù)據(jù)鎖存器中,其后將輸入緩沖器滿信號IBF變成高電平,輸出給外設(shè),不再接收外設(shè)送來的新數(shù)據(jù)。(3)選通信號結(jié)束后,其電位由低變高,若此時IBF信號和INTE信號也同時為高電平,INTR變?yōu)橛行В駽PU發(fā)出中斷請求信號,通知CPU輸入的數(shù)據(jù)已鎖存進輸入緩沖器,等待CPU讀取。(4)CPU接收中斷請求,發(fā)出讀信號,讀取數(shù)據(jù),并在讀信號的下降沿,INTR信號復(fù)位,撤銷中斷請求。(5)CPU讀結(jié)束,在讀信號的上升沿,IBF復(fù)位,則允許外設(shè)發(fā)送新的數(shù)據(jù)。2/3/202430第8章微機接口技術(shù)及其應(yīng)用

1PC4,51=輸入0=輸出WROBFAACKAINTRAI/OD7~D0PA7~PA0INTEAPC7PC6PC3PC4、PC5&2010I/O×××A組控制字1WROBFBACKBINTRBD7~D0PB7~PB0INTEBPC1PC1PC0&××××10×B組控制字方式1輸出:B口如圖8-8所示,方式1下8255A的各端口的輸出結(jié)構(gòu)圖。

圖8-8方式1下8255A的各端口的輸出結(jié)構(gòu)2/3/202431方式1輸出過程如圖8.9所示。圖8.98255A方式1輸出過程2/3/202432方式的具體工作過程如下:(1)CPU響應(yīng)中斷請求,發(fā)出信號,將輸出的數(shù)據(jù)送入指定端口的輸出數(shù)據(jù)緩沖器中。信號的上升沿使中斷請求信號INTR復(fù)位。(2)CPU輸出結(jié)束時,信號的上升沿使有效,表示輸出緩沖器滿,通知外設(shè)可以接收數(shù)據(jù)。(3)當外設(shè)開始接收數(shù)據(jù),便發(fā)出信號,作為響應(yīng)回答信號。的下降沿使無效。(4)若CPU允許中斷,則在的上升沿后,INTR有效,向CPU發(fā)出中斷請求,通知CPU輸出緩沖器中的數(shù)據(jù)已經(jīng)被外設(shè)取走,可以輸出新的數(shù)據(jù)到緩沖器中。第8章微機接口技術(shù)及其應(yīng)用2/3/202433第8章微機接口技術(shù)及其應(yīng)用(3)方式2:帶選通的雙向輸入/輸出方式2是雙向傳送方式,一般既可作為輸入設(shè)備,又可作為輸出設(shè)備的并行外設(shè)進行數(shù)據(jù)交換,并且輸入、輸出數(shù)據(jù)不會同時進行。方式2類似于方式1輸入和輸出的組合。設(shè)定為方式2后,端口C的5位作為指定的控制/聯(lián)絡(luò)信號。方式2下端口A的結(jié)構(gòu)如圖8-9所示,各聯(lián)絡(luò)信號含義見表8-4。

2/3/202434第8章微機接口技術(shù)及其應(yīng)用1B組方式0=方式01=方式11××I/OI/OI/O×D7D6D5D4D3D2D1D0INTRAOBFAACKASTBAIBFAI/ORDWRPA7~PA0INTE1PC7PC6PC4PC2、PC0&PC3PC5INTE2&≥1B口0=輸出1=輸入PC2~PC00=輸出1=輸入圖8-9方式2下8255A端口A的結(jié)構(gòu)2/3/202435第8章微機接口技術(shù)及其應(yīng)用表8-48255A芯片端口A方式2時的聯(lián)絡(luò)信號聯(lián)絡(luò)線聯(lián)絡(luò)信號信號含義PC7端口A輸出緩沖器滿信號PC6端口A外設(shè)收到數(shù)據(jù)的應(yīng)答信號PC5IBFA端口A輸入緩沖器滿信號PC4端口A外設(shè)數(shù)據(jù)輸入選通信號PC3INTRA中斷請求信號PC2I/O數(shù)據(jù)線或B組聯(lián)絡(luò)線PC1I/O數(shù)據(jù)線或B組聯(lián)絡(luò)線PC0I/O數(shù)據(jù)線或B組聯(lián)絡(luò)線

注:當端口B工作在方式1時,表中的PC2~PC0仍作為聯(lián)絡(luò)信號含義與表8-3相同。

2/3/202436【例8.5】8255A端口A作為數(shù)據(jù)輸出端口工作于方式0,接了8個發(fā)光二極管,端口B作為數(shù)據(jù)輸入端口工作于方式0,要求單撥PB4對應(yīng)的開關(guān)K4時,發(fā)光二極管全亮;K4撥回原位又全滅。單撥PB7對應(yīng)的開關(guān)K7,單個發(fā)光二極管從VD0~VD7循環(huán)亮燈,K6回原位全滅。設(shè)8255A端口地址為203H~206H。

【解】端口A、端口B都工作于方式0,因此采用無條件傳送方式,端口A用于數(shù)據(jù)輸出,端口B用于數(shù)據(jù)輸入,因此得到8255A的方式選擇控制字為10000010B=82H。程序為

STACK SEGMENTDW 100DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKMAIN: MOV AL,82H;8255A控制字

MOV DX,206H OUT DX,AL;8255A初始化NEXT: MOV DX,204H IN AL,DX;讀B口數(shù)據(jù)

TEST AL,10H;測試PB4 JNZ LIT ;PB4=1,轉(zhuǎn)LIT,發(fā)光二極管全亮 MOV AL,00H;否則全滅 JMP TRLTLIT: MOV AL,0FFHTRLT: MOV DX,203H OUT DX,AL MOV DX,204H

IN AL,DX;讀B口數(shù)據(jù)

TEST AL,80H;測試PB7

JNZ CONT0

;PB7=1,轉(zhuǎn)CONT,發(fā)光二極管循環(huán)點亮

MOV AL,00H;否則全滅

MOV DX,203H OUT DX,AL JMP NEXTCONT0: MOV BL,01HCONT1: MOV AL,BL MOV DX,203H OUT DX,AL CALL DELAY;調(diào)用延時程序 SHL BL,1 JNZ CONT1 JMP NEXT CODE ENDSEND MAIN2/3/202437第8章微機接口技術(shù)及其應(yīng)用8.2串行通信接口8.2.1串行通信基本概念

微型計算機與一些常用的外部設(shè)備(如電傳打字機、CRT終端等)之間的數(shù)據(jù)交換,往往需要采用串行通訊方式。在遠程計算機通訊中,串行通訊更是一種不可缺少的通訊方式。串行通訊是指數(shù)據(jù)一位一位地順序傳送,只占用一條傳輸線,它可由兩種方式來實現(xiàn):一種是將8位通道中的一位依靠軟件來實現(xiàn)串行數(shù)據(jù)傳送;另一種是通過專用的通訊接口,將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)。2/3/202438第8章微機接口技術(shù)及其應(yīng)用

1.串行通信的分類按照串行數(shù)據(jù)的格式,串行通信可分為異步傳送和同步傳送兩類。同步通信靠同步信號、識別同步字符來實現(xiàn)數(shù)據(jù)的發(fā)送和接收,而異步通信是一種利用字符的再同步技術(shù)的通信方式。(1)異步傳送方式:異步傳送的數(shù)據(jù)以字符為單位。傳送時,各個字符可以是連續(xù)傳送的,也可以是間斷傳送的,這完全由發(fā)送方根據(jù)需要來決定。異步傳送的另一個特點是,雙方各自用自己的時鐘源來控制發(fā)送和接收。由于字符的發(fā)送是隨機進行的,對于接收方來說,要判別何時是新的一個字符開始。因而,在異步通信時,必須對字符規(guī)定一定的格式。異步通信字符格式如圖8-11所示。2/3/202439第8章微機接口技術(shù)及其應(yīng)用100/10/10/10/11110…0/1起始位8位數(shù)據(jù)奇偶校驗位停止位起始位第n個字符第n+1個字符0/10/10/10/10/1圖8-11異步通信字符格式

2/3/202440第8章微機接口技術(shù)及其應(yīng)用(2)同步傳送方式:同步傳送以許多字符或許多位組織成的數(shù)據(jù)塊為傳送單位,是一種連續(xù)傳送數(shù)據(jù)的方式。通信開始以后,發(fā)送端連續(xù)發(fā)送字符,接收端也連續(xù)接收字符,直到一個數(shù)據(jù)塊傳送結(jié)束。同步傳送時,字符與字符之間沒有間隙,也不用起始位和停止位,僅在數(shù)據(jù)塊開始時用同步字符SYNC來指示,其數(shù)據(jù)格式如圖8-12所示。2/3/202441第8章微機接口技術(shù)及其應(yīng)用數(shù)據(jù)1數(shù)據(jù)2…數(shù)據(jù)n校驗字符1校驗字符2數(shù)據(jù)塊同步字符同步字符圖8-12同步通信字符格式

2/3/202442第8章微機接口技術(shù)及其應(yīng)用8.2.2可編程串行通信接口芯片—8251A1.8251A的特點和內(nèi)部結(jié)構(gòu)Intel8251A是可編程的串行通信接口芯片,它的主要特點如下:(1)可用于串行異步通信和串行同步通信。(2)對于異步通信,每個字符5~8位數(shù)據(jù)位,1個啟動位,1個位作為奇/偶效驗。并能根據(jù)編程為每個數(shù)據(jù)增加1位、1位半或2位停止位,可以檢查家啟動位,自動檢測和處理停止位。(3)對于同步通信,可設(shè)為單同步、雙同步或者外同步,同步字符可由用戶自行設(shè)定。(4)異步通信的時鐘頻率可設(shè)為波特率的1倍、16倍或64倍。2/3/202443第8章微機接口技術(shù)及其應(yīng)用(5)可以設(shè)定奇校驗或偶校驗,也可以不設(shè)校驗。校驗位的插入、檢錯及剔除都由芯片本身完成。(6)異步通信時,波特率的可選范圍為0~9600波特,同步通信時,波特率的可選范圍為0~56K波特。(7)提供與外部設(shè)備特別是調(diào)制解調(diào)器的聯(lián)絡(luò)信號,便于直接和通信線路相連接。(8)接收、發(fā)送數(shù)據(jù)分別有各自的緩沖器,可以進行全雙工通信。2/3/202444第8章微機接口技術(shù)及其應(yīng)用數(shù)據(jù)總線緩沖器讀/寫控制邏輯發(fā)送器及發(fā)送控制接收器及接受控制調(diào)制/解調(diào)控制D7~D0RESETC/DCLKRDWRCSTXDTXRDYTXETXCRXDRXRDYSYNDETRXCDTRDSRRTSCTS圖8-148251A結(jié)構(gòu)圖2/3/202445第8章微機接口技術(shù)及其應(yīng)用2.8251A的外部引腳8251A是一個采用NMOS工藝制造的28引腳雙列直插式封裝的組件,其外部引腳如圖8-15所示。D2D3RXDGNDD4D5D6D7TXCWRCSR/DRDRXRDYD1D0VCCRXCDTRRTSDSRRESETCLKTXDTXEMPTYCTSSYNDET/BRKDETTXRDY12814158251A圖8-158251A的引腳2/3/202446第8章微機接口技術(shù)及其應(yīng)用4.8251A的控制字寄存器和狀態(tài)字寄存器8251A內(nèi)除具有可讀寫的數(shù)據(jù)寄存器外,還具有只可寫的控制字寄存器和只可讀的狀態(tài)寄存器,CPU對它們的操作見表8-5。(1)控制字寄存器控制字寄存器寄存方式控制字和命令控制字。①方式控制字:方式控制字確定8251A的通信方式(同步/異步)、校驗方式(奇校驗/偶校驗/不校驗)、數(shù)據(jù)位數(shù)(5/6/7/8位)及波特率參數(shù)等。方式控制字的格式如圖8-16所示。它應(yīng)在復(fù)位后寫入,且只需寫入一次。

2/3/202447第8章微機接口技術(shù)及其應(yīng)用CSC/DRDWR操作0110CPU向8251A寫入控制命令字01CPU從8251A讀取狀態(tài)信息010CPU向8251A寫入數(shù)據(jù)信息01CPU從8251A讀取數(shù)據(jù)信息×11高阻態(tài),不進行任何讀寫操作1×××高阻態(tài),不進行任何讀寫操作表8-5CPU對8251A的讀寫操作控制

2/3/202448第8章微機接口技術(shù)及其應(yīng)用D7D6D5D4D3D2D1D0通信方式及波特率00同步×101異步×110異步×1611異步×62數(shù)據(jù)位數(shù)005位016位107位118位校驗方式×0不校驗01奇校驗11偶校驗00無效011位停止位101位半停止位112位停止位×0內(nèi)同步01雙同步字符11單同步字符同步方式?YN圖8-168251A方式控制字的格式2/3/202449第8章微機接口技術(shù)及其應(yīng)用②命令控制字:命令控制字使8251A處于規(guī)定的狀態(tài)以準備發(fā)送或接收數(shù)據(jù)。命令控制字的格式如圖8-17所示。它應(yīng)在方式控制字寫入后寫入,用于控制8251A的工作,可以多次寫入。方式控制字和命令控制字本身無特征標志,也沒有獨立的端口地址,8251A是根據(jù)寫入先后次序來區(qū)分這兩者的:先寫入者為方式控制字,后寫入者為命令控制字。所以CPU對8251A初始化編程時必須按一定的順序?qū)懭敕绞娇刂谱趾兔羁刂谱帧?/p>

2/3/202450第8章微機接口技術(shù)及其應(yīng)用ENIRRISERSBRKRXEDRTTXEN1進行搜索方式1內(nèi)部復(fù)位1請求發(fā)送1清除錯誤標志發(fā)送斷點字符允許接收1數(shù)據(jù)終端準備好允許發(fā)送1允許0禁止1允許0禁止1迫使TXD為低0正常工作圖8-178251A命令控制字格式

2/3/202451第8章微機接口技術(shù)及其應(yīng)用(2)狀態(tài)控制字CPU可通過指令讀出8251A狀態(tài)控制字,以了解8251A當時的工作狀態(tài),做出是否進行新的數(shù)據(jù)傳送的決定。狀態(tài)控制字放在狀態(tài)寄存器中,CPU只能讀狀態(tài)寄存器而不能寫狀態(tài)寄存器。狀態(tài)控制字的格式如圖8-18所示。

DSRSYNDETFEOEPETXERXRDYTXRDY數(shù)據(jù)裝置準備好1已達到同步0未達到同步幀校驗錯標志溢出錯標志1奇偶錯1接收器準備好1發(fā)送器準備好圖8-188251A狀態(tài)字格式

2/3/202452第8章微機接口技術(shù)及其應(yīng)用5.8251A的初始化編程8251A復(fù)位裝入方式控制字同步方式?輸入同步字符雙同步字符方式?輸入命令字復(fù)位8251A?傳送數(shù)據(jù)傳送完?輸入第日二個同步字符YYNNNYYN2/3/202453第8章微機接口技術(shù)及其應(yīng)用8.3定時/計數(shù)器技術(shù)8.3.1定時/計數(shù)器的基本概念微型計算機系統(tǒng)常常需要一種器件為處理機和外部設(shè)備提供時間間隔標志,或?qū)ν獠枯斎朊}沖進行計數(shù),這種器件稱為定時/計數(shù)器。2/3/2024548.3.2可編程定時器/計數(shù)器8253Intel-8253就是在微機系統(tǒng)中應(yīng)用最廣的定時/計數(shù)器芯片,它是一種可編程芯片,工作方式、定時時間和輸出信號形式等均可編程設(shè)置,使用十分方便。1.8253的內(nèi)部結(jié)構(gòu)和主要特征8253芯片是一個雙列直插式器件,具有24個引腳,主要特性有:(1)采用NMOS工藝,用單一的+5V電源供電。(2)芯片內(nèi)具有三個獨立的16位減法計數(shù)器(或稱計數(shù)器通道),每個計數(shù)器又可分為兩個8位的計數(shù)器。(3)計數(shù)頻率為0~5MHZ。(4)兩種計數(shù)方式:二進制或BCD方式計數(shù)。(5)每個計數(shù)器有6種工作方式都可由程序設(shè)計,即可對系統(tǒng)時鐘脈沖計數(shù)實現(xiàn)定勢,又可對外部事件進行計數(shù)。(6)可由軟件或硬件控制開始計數(shù)或停止計數(shù)。第8章微機接口技術(shù)及其應(yīng)用2/3/202455第8章微機接口技術(shù)及其應(yīng)用2.8253的內(nèi)部結(jié)構(gòu)

8253的結(jié)構(gòu)由計數(shù)器、控制寄存器、讀/寫控制邏輯和數(shù)據(jù)緩沖器等四部分組成,圖8-20所示。

圖8-208253的內(nèi)部結(jié)構(gòu)2/3/202456第8章微機接口技術(shù)及其應(yīng)用4.8253的引腳。8253為24腳雙列直插式封裝結(jié)構(gòu),其引腳按功能分為與CPU接口引腳和與外設(shè)接口引腳兩類。如圖8-21所示。12482531213D7D6D5D4D3D2D1D0CLK0OUT0GATE0GNDVCCWRRDCSA1A0CLK2OUT2GATE2CLK1GATE1OUT1圖8-218253引腳圖2/3/202457第8章微機接口技術(shù)及其應(yīng)用5.8253控制字使用8253芯片時,必須確定每個計數(shù)器的工作方式和預(yù)置的初值。計數(shù)器的工作方式由控制字確定,程序中使用OUT指令將控制字寫入命令寄存器,設(shè)定8253的工作方式??刂谱值母袷饺鐖D8-22所示。2/3/202458第8章微機接口技術(shù)及其應(yīng)用圖8-228253的控制字格式D7D0D6D5D4D3D2D12/3/2024598253的工作方式01、000:方式0(計數(shù)結(jié)束產(chǎn)生中斷)性質(zhì):寫入控制字,OUT端為低電平,計數(shù)初值裝入該計數(shù)器后,等待到GATE輸入高電平時,計數(shù)器開始遞減計數(shù)。在整個計數(shù)過程中,OUT保持低電平,當計數(shù)器減為0時,OUT輸出高電平。①設(shè)定工作方式(0)②設(shè)定計數(shù)初值(4)③

硬件啟動(GATE=1)④計數(shù)值(4)送入計數(shù)器⑤計數(shù)過程(-1)⑥計數(shù)結(jié)束(0)特點:計數(shù)器只計一遍。計數(shù)過程GATE控制,GATE=0暫停計數(shù),GATE=1接著計數(shù)。裝入計數(shù)值為8位時,立即開始計數(shù);裝入16位計數(shù)值時,在寫入第一個字節(jié)后停止計數(shù),等第二個字節(jié)寫入后開始新的計數(shù)。2/3/2024602、001:方式1(可編程單拍脈沖)性質(zhì):寫入控制字,OUT端為高電平,計數(shù)初值裝入該計數(shù)器后,在GATE信號的上升沿后的下一個CLK脈沖的下降沿開始計數(shù),OUT變?yōu)榈碗娖?。在整個計數(shù)過程中,OUT保持低電平,當計數(shù)器減為0時,OUT變?yōu)楦唠娖剑敵鲆粋€單脈沖,若GATE信號再由低變高,可再產(chǎn)生一個單脈沖,相當一個單穩(wěn)態(tài)。①設(shè)定工作方式(1)②設(shè)定計數(shù)初值(4)[3硬件啟動(GATE=1)]④計數(shù)值(4)送入計數(shù)器⑤計數(shù)過程(--1)⑥計數(shù)結(jié)束(0)特點:GATE上升沿觸發(fā),計數(shù)值可重復(fù)使用。8253的工作方式12/3/2024613、010:方式2(分頻器或脈沖信號發(fā)生器)性質(zhì):8253相當于一個分頻脈沖產(chǎn)生器,若計數(shù)值為N,則每輸入N個CLK脈沖,輸出一個脈沖,脈沖寬度等于N*CLK周期。特點:計數(shù)初值裝入計數(shù)器后,由GATE信號控制,若GATE信號為0時,暫停計數(shù),當變?yōu)楦唠娖降南乱粋€CLK脈沖又開始重新計數(shù)。計數(shù)過程中,CPU可隨時改變計數(shù)值,當計數(shù)器減為0時,又按新的計數(shù)值分頻。8253的工作方式22/3/2024624、011:方式3(方波發(fā)生器)性質(zhì):輸出周期性方波,若計數(shù)值為N,則輸出的方波周期是N個CLK周期。CPU寫入控制字后OUT變高,寫完計數(shù)值后自動開始計數(shù),輸出保持高電平。當計到一半計數(shù)值時,輸出變低,直到計數(shù)到0,輸出又變?yōu)楦?,重新開始計數(shù)。特點:計數(shù)初值裝入計數(shù)器,由GATE信號控制,若GATE=0暫停計數(shù),GATE=1允許計數(shù)。計數(shù)過程中,新裝入值不影響原計數(shù)過程。計數(shù)為偶數(shù),計數(shù)器減2,到0,OUT改變,計數(shù)值重新裝入,反復(fù)工作。當N為奇數(shù)時,在前半波多計一個CLK脈沖,因此,輸出占空比為的近似方波。8253的工作方式32/3/202463例:要求計數(shù)器0工作于方式3,輸出方波的頻率為2KHz,計數(shù)脈沖的頻率為2.5MHz,采用BCD計數(shù),試寫出初始化程序段。設(shè)8253的端口地址為:80H~83H。N=(1/2KHz)/(1/2.5MHz)=2.5MHz/2KHz=1250MOVAL,37HOUT83H,ALMOVAL,50HOUT80H,ALMOVAL,12HOUT80H,AL000111113.初始化程序段:1.分頻系數(shù)計算:2.8253的方式控制字為:2/3/2024645、100:方式4(軟件觸發(fā)選通)寫入控制字,OUT端為高電平,寫入計數(shù)初值后立即開始計數(shù)(相當軟件觸發(fā)啟動),計數(shù)器計到0時,OUT變?yōu)榈碗娖?經(jīng)過一個CLK脈沖周期,OUT又變高,計數(shù)器停止計數(shù),只有寫入新計數(shù)值才能開始新的計數(shù)。要求GATE一直為高電平。8253的工作方式42/3/2024656、101:方式5(硬件觸發(fā)選通)寫入控制字,OUT變高,寫入計數(shù)初值后,由GATE信號的上升沿觸發(fā)開始計數(shù)。計到0后,OUT變?yōu)榈碗娖健=?jīng)一個CLK周期后,OUT又變?yōu)楦唠娖剑⑼V褂嫈?shù),等下次GATE觸發(fā)才能再計數(shù)。8253的工作方式52/3/2024667.8253工作方式小結(jié)(1)方式2、4、5的輸出波形是相同的,都是寬度為一個CLK時鐘周期的負脈沖,但方式2可自動連續(xù)工作,方式4由軟件觸發(fā)啟動,方式5由硬件觸發(fā)啟動。(2)方式1與方式5工作過程相同,但輸出波形不同,方式1輸出的是寬度為N個CLK脈沖的低電平有效的脈沖(計數(shù)過程中輸出為低),而方式5輸出的是寬度為一個CLK脈沖的負脈沖(計數(shù)過程中輸出為高)。(3)輸出端OUT的初始狀態(tài),方式0在寫入方式字CW后輸出為低,其余方式,寫入控制字后,輸出均為高。(4)任一種方式,均是在寫入計數(shù)初值之后,才能開始計數(shù),方式0、2、3、4都是在寫入計數(shù)初值之后,開始計數(shù)的,而方式1和方式5需要外部觸發(fā)啟動,才開始計數(shù)。2/3/2024678253-

工作方式與輸出波形圖

方式功能輸出波形觸發(fā)性質(zhì)0計數(shù)結(jié)束產(chǎn)生中斷寫初值后,經(jīng)N+1個時鐘周期OUT端變?yōu)楦唠娖?GATE=0停止計數(shù)軟觸發(fā)單次負脈沖1可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器輸出寬度為N個時鐘周期的負脈沖,只要有新的GATE脈沖,重新計數(shù)硬觸發(fā)單次負脈沖2分頻器輸出寬度為一個時鐘周期的負脈沖,自動觸發(fā)連續(xù)的脈沖波3方波發(fā)生器N為偶數(shù),占空比為1/2;N為奇數(shù),N+1/2個正脈沖,N-1/2個負脈沖自動觸發(fā)連續(xù)的方波4軟件觸發(fā)的選通信號寫入初值后,經(jīng)N個時鐘周期,OUT變低一個時鐘周期軟觸發(fā)單次單拍負脈沖5硬件觸發(fā)的選通信號門控觸發(fā)后,經(jīng)N個時鐘周期,OUT變低一個時鐘周期硬觸發(fā)單次單拍負脈沖2/3/2024688253-各工作方式特點比較

工作方式GATE=0或下降沿GATE上升沿GATE高電平改變計數(shù)值方式0禁止計數(shù)―允許計數(shù)立即有效方式1―啟動計數(shù)―外部觸發(fā)有效方式2禁止計數(shù)并置OUT為高電平初始化計數(shù)允許計數(shù)計數(shù)到1有效方式3禁止計數(shù)并置OUT為高電平初始化計數(shù)允許計數(shù)計數(shù)到0有效方式4禁止計數(shù)―允許計數(shù)立即有效方式5―啟動計數(shù)―外部觸發(fā)有效2/3/202469四、8253的應(yīng)用編程舉例1.寫入通道控制字,規(guī)定通道的工作方式;(A1A0=11)2.寫入計數(shù)值(由控制字的D7D6確定通道號)。①若規(guī)定只寫入低8位,則寫入的為計數(shù)值的低8位,高8位自動置0;②若規(guī)定只寫入高8位,則寫入的為計數(shù)值的高8位,低8位自動置0;③若是16位計數(shù)值,則分兩次寫入,先寫入低8位,再寫入高8位。2/3/

溫馨提示

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

評論

0/150

提交評論