第八章并行通信與串行通信_第1頁
第八章并行通信與串行通信_第2頁
第八章并行通信與串行通信_第3頁
第八章并行通信與串行通信_第4頁
第八章并行通信與串行通信_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微微 機機 原原 理理 與與 接接 口口第八章:并行通信和串行通信第八章:并行通信和串行通信皖西學院計算機系皖西學院計算機系并行通信和串行通信并行通信和串行通信并行接口并行接口可編程并行接口芯片可編程并行接口芯片8255A串行通信串行通信可編程串行接口芯片可編程串行接口芯片8251A第八章:并行通信和串行通信第八章:并行通信和串行通信 并行通信和串行通信并行通信和串行通信 并行接口并行接口 可編程并行接口芯片可編程并行接口芯片8255A 串行通信串行通信 可編程串行接口芯片可編程串行接口芯片8251A第八章:并行通信和串行通信第八章:并行通信和串行通信在計算機領域中有兩種數據通信方式:在計算機

2、領域中有兩種數據通信方式:串行通信和并行通信串行通信和并行通信。并行通信:并行通信:數據在多條并行數據在多條并行1 1位寬的傳輸線上同時由源傳送到目的位寬的傳輸線上同時由源傳送到目的。以以1 1字節(jié)字節(jié)的數據為例,在并行傳送中,的數據為例,在并行傳送中,1 1字節(jié)的數據通過字節(jié)的數據通過8 8條并行傳輸線同時由源傳送條并行傳輸線同時由源傳送到目的。到目的。串行通信:串行通信:數據在單條數據在單條1位寬的傳輸線上,一位一位地按順序分時傳送。以位寬的傳輸線上,一位一位地按順序分時傳送。以1字節(jié)為例,字節(jié)為例,在串行傳送中,在串行傳送中,1 1字節(jié)的數據要通過一條傳輸字節(jié)的數據要通過一條傳輸 線分線

3、分8 8次由低位到高次由低位到高位按順序一位一位地傳送位按順序一位一位地傳送。源目的T80 1 1 0 1 0 1 0源01101010目的011010100D7D距離:距離:并行并行近距離傳送(通常小于近距離傳送(通常小于30米)米) 串行串行遠距離傳送(幾米遠距離傳送(幾米數千公里)數千公里)速度:速度:并行快得多。并行快得多。第八章:并行通信和串行通信第八章:并行通信和串行通信 并行通信和串行通信并行通信和串行通信 并行接口并行接口 可編程并行接口芯片可編程并行接口芯片8255A 串行通信串行通信 可編程串行接口芯片可編程串行接口芯片8251A實現并行通信的接口就是并行接口。實現并行通信

4、的接口就是并行接口。輸入輸入/ /輸出固定的并行接口(輸出固定的并行接口(74LS244 / 74LS37374LS244 / 74LS373等)等)輸入輸入/ /輸出可變的可編程并行接口(輸出可變的可編程并行接口(8255A8255A等)等) 對于第一類并行接口,芯片內部只有數據緩沖或鎖存器,沒有控制寄存器對于第一類并行接口,芯片內部只有數據緩沖或鎖存器,沒有控制寄存器或狀態(tài)寄存器。結構簡單,使用不靈活或狀態(tài)寄存器。結構簡單,使用不靈活 對于第二類并行接口,芯片內含有控制寄存器或狀態(tài)寄存器,可通過指令對于第二類并行接口,芯片內含有控制寄存器或狀態(tài)寄存器,可通過指令控制接口的工作方式。結構復雜

5、,使用靈活??刂平涌诘墓ぷ鞣绞?。結構復雜,使用靈活。第八章:并行通信和串行通信第八章:并行通信和串行通信第八章:并行通信和串行通信第八章:并行通信和串行通信 并行通信并行通信 并行接口并行接口 可編程并行接口芯片可編程并行接口芯片8255A 串行通信串行通信 可編程串行接口芯片可編程串行接口芯片8251A第八章:并行通信和串行通信第八章:并行通信和串行通信概述概述 Intel8255A是一種通用的可編程序并行是一種通用的可編程序并行I/O接口芯片,又稱接口芯片,又稱“ “可編程外可編程外設接口芯片設接口芯片” ”,是為,是為Intel8080/8085系列微處理據設計的,也可用于其系列微處理據

6、設計的,也可用于其它系列的微機系統??捎沙绦騺砀淖兤涔δ?,通用性強、使用靈活。它系列的微機系統??捎沙绦騺砀淖兤涔δ?,通用性強、使用靈活。通過通過8255A,CPU可直接同外設相連接,是應用最廣的并行可直接同外設相連接,是應用最廣的并行I/O接口芯接口芯片。片。 含含3個獨立的個獨立的8位并行輸入位并行輸入/輸出端口,各端口均具有數據的控制和輸出端口,各端口均具有數據的控制和鎖存能力??赏ㄟ^編程設置各端口的工作方式和數據傳送方向鎖存能力。可通過編程設置各端口的工作方式和數據傳送方向(入入/出出/雙向雙向)。第八章:并行通信和串行通信第八章:并行通信和串行通信去去CPU去外設去外設8255A的內

7、部結構的內部結構第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的內部結構的內部結構 數據總線緩沖器:數據總線緩沖器:三態(tài)三態(tài)8位雙向緩沖器,與系統數據總線連接的位雙向緩沖器,與系統數據總線連接的緩沖部件;傳送數據、控制字、狀態(tài)字的通道。緩沖部件;傳送數據、控制字、狀態(tài)字的通道。 3個個8位數據端口位數據端口(PA、PB、PC):PA口與口與PB口用作輸入口用作輸入/出的出的數數據端口據端口,PC口也可用作數據傳輸(口也可用作數據傳輸(高低高低4位可分別設置為輸入位可分別設置為輸入/輸出輸出)或作為聯絡信號)或作為聯絡信號,配合配合PA和和PB口使用(口使用(狀態(tài)端口狀態(tài)端口)。

8、 A組、組、B組控制:組控制:這兩組控制電路根據這兩組控制電路根據CPU發(fā)出的控制命令來控發(fā)出的控制命令來控制制8255A的工作方式(的工作方式(控制端口控制端口)。)。1. 讀讀/寫控制邏輯:寫控制邏輯:用來管理數據輸入和輸出、并負責控制用來管理數據輸入和輸出、并負責控制CPU向向控制端口發(fā)送命令。控制端口發(fā)送命令。第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的引腳功能的引腳功能DIP封裝,共封裝,共40個引腳。個引腳。1. 連接系統總線的主要引腳連接系統總線的主要引腳D0D7:數據線,連數據線,連CPU數據總線;數據總線;RESET:復位輸入,接系統總線的復位輸入,接系統

9、總線的RESET; CS:片選信號,接譯碼器;片選信號,接譯碼器;RD:讀命令輸入,接讀命令輸入,接CPU的的RD;WR:寫命令輸入,接寫命令輸入,接CPU的的WR;A0,A1:片內端口地址選擇,根據片內端口地址選擇,根據A0和和A1可可分別對芯片內的分別對芯片內的4個端口進行讀寫操作。個端口進行讀寫操作。WRD0D1D2D3D4D5D6D7VCCPB7RDCSGNDA1A0PA4PA5PA6PA7PB5PB6PB4PB3RESETPB1PB2PB0PC3PC2PC1PC0PC4PC5PC6PC7PA3PA2PA1PA05110153540302521第八章:并行通信和串行通信第八章:并行通信

10、和串行通信8255A的引腳功能的引腳功能A1、A0端口選擇情況,見右表端口選擇情況,見右表 由由CSCS、A1A1、A0A0、RDRD、WRWR引腳的不引腳的不同組合,實現各種不同的功能。見下表:同組合,實現各種不同的功能。見下表:A1 A0端口端口0 00 11 01 1ABC控制口控制口CS A1 A0 RD WR功功 能能 0 0 0 0 1對端口對端口A 讀讀 0 0 1 0 1對端口對端口B 讀讀 0 1 0 0 1對端口對端口C 讀讀0 1非法,不能對控制口讀非法,不能對控制口讀輸輸入入0對端口對端口A 寫寫0對端口對端口B 寫寫0對端口對端口C 寫寫0對控制口對控制口寫寫輸輸出出

11、 1 1 1數據緩沖器為數據緩沖器為三態(tài)三態(tài)斷斷開開 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的引腳功能的引腳功能2. 連接外設端的引腳連接外設端的引腳PA0PA7:A口數據線,接外設;口數據線,接外設;PB0PB7:B口數據線,接外設;口數據線,接外設;PC0PC7:C口數據線或聯絡線,接外設口數據線或聯絡線,接外設或或CPU。WRD0D1D2D3D4D5D6D7VCCPB7RDCSGNDA1A0PA4PA5PA6PA7PB5PB6PB4PB3RESETPB1PB2PB0PC3PC2PC1PC0

12、PC4PC5PC6PC7PA3PA2PA1PA05110153540302521第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工作方式的工作方式方式方式0基本輸入基本輸入/輸出方式(輸出方式(A、B、C口)口)方式方式1選通工作方式(選通工作方式(A、B口)口)方式方式2雙向選通傳送方式(僅雙向選通傳送方式(僅A口)口) 某端口工作于哪一種方式,可通過軟件編程來指定。即向某端口工作于哪一種方式,可通過軟件編程來指定。即向8255的控制口寫入方式控制字來決定其工作方式。的控制口寫入方式控制字來決定其工作方式。第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工作方

13、式的工作方式方式方式0(基本輸入基本輸入/輸出方式輸出方式) 特點:特點:(1)8255A相當于三個獨立的相當于三個獨立的8位數據口。位數據口。(2)各端口既可設置為輸入口,也可設置為輸出口,但不能同)各端口既可設置為輸入口,也可設置為輸出口,但不能同時實現輸入及輸出。時實現輸入及輸出。(3)C端口即可以是一個端口即可以是一個8位的簡單接口,也可以分為兩個獨位的簡單接口,也可以分為兩個獨立的立的4位端口。位端口。(4)設置為輸出口時有鎖存能力,設置為輸入口有緩沖能力。)設置為輸出口時有鎖存能力,設置為輸入口有緩沖能力。 適用于:適用于:無條件輸入輸出方式。無條件輸入輸出方式。第八章:并行通信和

14、串行通信第八章:并行通信和串行通信8255A的工作方式的工作方式方式方式0(基本輸入基本輸入/輸出方式輸出方式) IN AL, 8255數據端口地址數據端口地址 ;讀操作讀操作外設將數據送到外設將數據送到8255輸入緩沖器中;輸入緩沖器中;CPU給出有效的給出有效的8255地址;地址;CPU發(fā)讀命令,將發(fā)讀命令,將8255A輸入緩沖器中數據讀入輸入緩沖器中數據讀入CPU的的AL寄存器中。寄存器中。 OUT 8255數據端口地址數據端口地址, AL ;寫操作寫操作 CPU給出有效的給出有效的8255地址;地址; CPU發(fā)寫命令,將發(fā)寫命令,將CPU的的AL寄存器中數據寫入寄存器中數據寫入8255

15、A輸出鎖存器中。輸出鎖存器中。外設通過輸出鎖存器將數據取走外設通過輸出鎖存器將數據取走第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工作方式的工作方式方式方式1(選通工作方式選通工作方式) 利用一組選通控制信號控制利用一組選通控制信號控制A端口和端口和B端口的數據輸入輸出。端口的數據輸入輸出。特點:特點: A、B口作輸入或輸出口,口作輸入或輸出口,C口分為兩部分,其部分位(口分為兩部分,其部分位(6位)固定用位)固定用作作A口、口、B口的聯絡信號??诘穆摻j信號。C口的剩余位仍可作數據位使用??诘氖S辔蝗钥勺鲾祿皇褂?。A口、口、B口在作為輸入和輸出時,口在作為輸入和輸出時,C

16、口提供的聯絡信號不同??谔峁┑穆摻j信號不同。方式方式1的應用:的應用: 主要用于查詢或中斷控制方式下的輸入輸出。主要用于查詢或中斷控制方式下的輸入輸出。說明:說明:C口除部分位用作聯絡信號外,其余位口除部分位用作聯絡信號外,其余位(2位位)可工作在方式可工作在方式0下,下,作作 為輸入或輸出線。為輸入或輸出線。第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工作方式的工作方式方式方式1(選通工作方式選通工作方式)A或或B口設為方式口設為方式1輸入輸入 C口提供的聯絡信號:口提供的聯絡信號:選通信號選通信號(STB): 由外設輸入。由外設輸入。=0時,時,將外設數據送入將外設數據

17、送入8255的輸入鎖存器。的輸入鎖存器。 A組組對應對應PC4;B組對應組對應PC2。輸入鎖存器滿信號輸入鎖存器滿信號(IBF): 由由8255A輸出。輸出。=1時,表示鎖存器中有未取走的數據,時,表示鎖存器中有未取走的數據, CPU用用IN指令取走數據后,此信號被清指令取走數據后,此信號被清 除。除。 A組對應組對應PC5;B組對應組對應PC1。PA7PA7PA0PA0PC4PC4PC5PC5PC3PC3INTEAINTEAIBFIBFA AINTRINTRA AD7D7D0D0輸入設備輸入設備(到到CPU)RDASTBPB7PB7PB0PB0PC2PC2PC1PC1PC0PC0INTEBI

18、NTEBD7D7D0D0IBFIBFB BINTRINTRB B輸入設備輸入設備(到到CPU)RDBSTB第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工作方式的工作方式方式方式1(選通工作方式選通工作方式)A或或B口設為方式口設為方式1輸入輸入 C口提供的聯絡信號:口提供的聯絡信號:中斷允許位中斷允許位 (INTE): 是否允許發(fā)出是否允許發(fā)出INTR請求。請求。無外部引腳,通過對無外部引腳,通過對PC4/PC2置置1或清或清0 來實現中斷允許控制。來實現中斷允許控制。中斷請求信號中斷請求信號(INTR): 由由8255A輸出。中斷允許輸出。中斷允許時時(INTE=1和和I

19、BF為高電平)為高電平),向,向CPU請求中請求中 斷,讓斷,讓CPU讀走輸入鎖存器中的數據。讀走輸入鎖存器中的數據。 A組對應組對應PC3;B組對應組對應PC0。PA7PA7PA0PA0PC4PC4PC5PC5PC3PC3INTEAINTEAIBFIBFA AINTRINTRA AD7D7D0D0輸入設備輸入設備(到到CPU)RDASTBPB7PB7PB0PB0PC2PC2PC1PC1PC0PC0INTEBINTEBD7D7D0D0IBFIBFB BINTRINTRB B輸入設備輸入設備(到到CPU)RDBSTB左旭坤()19方式方式1輸入工作過程輸入工作過程1. 外設準備好數據,通過外設準

20、備好數據,通過READY引腳向引腳向PC4輸出輸出STB信號(低電平);信號(低電平);2. 8255收到收到STB信號后,通過信號后,通過PA口將外設數據鎖存到數據鎖存器,并使口將外設數據鎖存到數據鎖存器,并使IBF信號信號為高電平;為高電平;3. CPU通過控制字,使通過控制字,使PC4=1,使能,使能8255內部的中斷允許(內部的中斷允許(INTE=1););4. 若采用查詢方式,則若采用查詢方式,則CPU通過判斷通過判斷PC5是否為是否為1,來決定是否用,來決定是否用IN指令到指令到PA口口取數;取完數后,取數;取完數后,PC5自動變低,清除自動變低,清除IBF信號;信號;5. 若采用

21、中斷方式,若采用中斷方式,8255通過通過PC3向向CPU的的INTR發(fā)出中斷請求,發(fā)出中斷請求, CPU接受中斷,接受中斷,執(zhí)行執(zhí)行IN指令,從指令,從8255數據鎖存器讀取數據。數據鎖存器讀取數據。第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工作方式的工作方式方式方式1(選通工作方式選通工作方式)A或或B口設為方式口設為方式1輸出輸出 C口提供的聯絡信號:口提供的聯絡信號:輸出緩沖器滿信號輸出緩沖器滿信號(OBF): 8255A輸出。輸出。=0時,表示輸出緩沖器為滿,此時時,表示輸出緩沖器為滿,此時CPU 不能發(fā)送新數據。不能發(fā)送新數據。A組對應組對應PC7;B組對應組

22、對應PC1響應信號響應信號(ACK): 外設輸入。外設輸入。0時表示時表示外設已從數據端口取走數據。此信號使外設已從數據端口取走數據。此信號使OBF變高。變高。 A組對應組對應PC6;B組對應組對應PC2。PA7PA7PA0PA0PC7PC7PC6PC6PC3PC3INTEAINTEAINTRINTRA AD7D7D0D0輸出設備輸出設備(到到CPU)WRAOBFAACKPB7PB7PB0PB0PC1PC1PC2PC2PC0PC0INTEBINTEBD7D7D0D0INTRINTRB B輸出設備輸出設備(到到CPU)WRBACKBOBF第八章:并行通信和串行通信第八章:并行通信和串行通信825

23、5A的工作方式的工作方式方式方式1(選通工作方式選通工作方式)A或或B口設為方式口設為方式1輸出輸出 C口提供的聯絡信號:口提供的聯絡信號:中斷請求信號中斷請求信號(INTR): 8255輸出。輸出。 =1時請求時請求CPU輸出下一個數據。輸出下一個數據。 A組對應組對應PC3;B組對應組對應PC0。中斷允許位中斷允許位 (INTE): INTE=1和和OBF為高為高電平時,允許產生電平時,允許產生INTR信號。無外部引腳,信號。無外部引腳, 通過對通過對PC7/PC1置置1實現。實現。PA7PA7PA0PA0PC7PC7PC6PC6PC3PC3INTEAINTEAINTRINTRA AD7D

24、7D0D0輸出設備輸出設備(到到CPU)WRAOBFAACKPB7PB7PB0PB0PC1PC1PC2PC2PC0PC0INTEBINTEBD7D7D0D0INTRINTRB B輸出設備輸出設備(到到CPU)WRBACKBOBF第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工作方式的工作方式方式方式2(雙向選通傳送方式雙向選通傳送方式)特點:特點:雙向方式雙向方式既是輸入口,又是輸出口。既是輸入口,又是輸出口。利用利用C口的口的5條線提供傳輸聯絡信號。條線提供傳輸聯絡信號。類似于類似于A口方式口方式1下輸入和輸出的組合。工作時輸入、輸出都能鎖存。下輸入和輸出的組合。工作時輸入

25、、輸出都能鎖存。只有只有A口可工作在方式口可工作在方式2下。下。當當A組工作在方式組工作在方式2時,時,B組可工作在方式組可工作在方式0或方式或方式1下。下。應用:應用: 可用于中斷或查詢輸入輸出方式。可用于中斷或查詢輸入輸出方式。說明:說明: 當當A口工作于方式口工作于方式2時,時,B口可工作于方式口可工作于方式1(此時(此時C口的剩余位剛好用作口的剩余位剛好用作B口選通控制線);口選通控制線);B口也可工作于方式口也可工作于方式0(此時(此時C口的剩余位只能用作方式口的剩余位只能用作方式0下的輸入輸出線)。下的輸入輸出線)。第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工

26、作方式的工作方式方式方式2(雙向選通傳送方式雙向選通傳送方式)C口提供的聯絡信號:口提供的聯絡信號:選通信號選通信號(STB): 由外設輸入。由外設輸入。 =0時,將外設數據送入時,將外設數據送入8255 的輸入鎖存器。的輸入鎖存器。 對應對應PC4。輸入鎖存器滿信號輸入鎖存器滿信號(IBF):由由8255A輸出。輸出。=1時表示時表示 新的數據已寫入緩沖器,新的數據已寫入緩沖器,CPU用用IN指令取走數據后指令取走數據后,此信號被清除。此信號被清除。 對應對應PC5。PA7PA7PA0PA0PC6PC6PC7PC7D7D7D0D0PC4PC4PC5PC5IBFIBFA AINTEA2INTE

27、A2INTEA1INTEA1PC3PC3INTRINTRA AASTBAACKAOBFRDWR第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的工作方式的工作方式方式方式2(雙向選通傳送方式雙向選通傳送方式)C口提供的聯絡信號:口提供的聯絡信號:輸出緩沖器滿信號輸出緩沖器滿信號(OBF):8255A輸出。輸出。=0時表示輸出緩沖器時表示輸出緩沖器 有新數據。有新數據。 對應對應PC7。響應信號響應信號(ACK): 外設輸入。外設輸入。0時表示外設已從數據端口取時表示外設已從數據端口取走數據。此信號使走數據。此信號使OBF變高。變高。 對應對應PC6。中斷請求信號中斷請求信號(IN

28、TR): 8255輸出。輸出。=1提出中斷請求提出中斷請求。 A組對應組對應PC3。中斷允許位中斷允許位 (INTE): 輸入中斷允許信號由對輸入中斷允許信號由對PC4置置1實現;實現; 輸出中斷允許信號由對輸出中斷允許信號由對PC6置置1實現。實現。PA7PA7PA0PA0PC6PC6PC7PC7D7D7D0D0PC4PC4PC5PC5IBFIBFA AINTEA2INTEA2INTEA1INTEA1PC3PC3INTRINTRA AASTBAACKAOBFRDWR左旭坤()25方式方式2輸出工作過程輸出工作過程CPU通過控制字使通過控制字使PC6=1,使能中斷允許位(,使能中斷允許位(IN

29、TE=1););若采用中斷方式,當若采用中斷方式,當8255數據緩沖器空,則通過數據緩沖器空,則通過PC3向向CPU發(fā)中斷請求信號;發(fā)中斷請求信號; CPU接受中斷請求,執(zhí)行接受中斷請求,執(zhí)行OUT指令,將數據送入指令,將數據送入8255數據緩沖器;數據緩沖器;若采用查詢方式,若采用查詢方式,CPU通過測試通過測試PC7是否為是否為1來決定是否用來決定是否用OUT指令將數據指令將數據送入送入8255緩沖器;緩沖器;當外設取完數后,向當外設取完數后,向8255的的PC6發(fā)出發(fā)出ACK信號(低電平),說明外設已取走信號(低電平),說明外設已取走當前數據,當前數據,8255可準備新數據。此信號會清除

30、可準備新數據。此信號會清除OBF信號;信號;第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的初始化的初始化 可以利用軟件編程確定可以利用軟件編程確定8255的的3個端口工作于何種方式下。個端口工作于何種方式下。 8255A的各種工作方式由的各種工作方式由CPU對對8255A寫入控制命令字來設定,寫入控制命令字來設定,這個過程稱為這個過程稱為“初始化初始化”。 8255A有有2種控制命令字:種控制命令字: 方式選擇控制字方式選擇控制字確定確定3個端口的工作方式;個端口的工作方式; C口置位口置位/復位控制字復位控制字確定確定C口某一位的初始狀態(tài),當口某一位的初始狀態(tài),當C口某口某

31、位做為狀態(tài)信號線時適用。位做為狀態(tài)信號線時適用。關于兩個命令字的討論關于兩個命令字的討論a.方式選擇控制字方式選擇控制字是對是對8255A的的3個端口的工作方式及功能進行個端口的工作方式及功能進行指定,即進行初始化,初始化工作要在使用指定,即進行初始化,初始化工作要在使用8255A之前做。之前做。b.C口置位口置位/復位控制字復位控制字只是對只是對C口的輸出進行控制,它可放在初口的輸出進行控制,它可放在初始化程序后的任何地方。始化程序后的任何地方。c.兩種不同命令字的兩種不同命令字的最高位(最高位(D7)分配了不同的標志位,之所以分配了不同的標志位,之所以要設置標志位是為了識別兩個不同的命令。

32、要設置標志位是為了識別兩個不同的命令。第八章:并行通信和串行通信第八章:并行通信和串行通信在命令字中設置標志位是解決多個命令字寫入同個端口經常采在命令字中設置標志位是解決多個命令字寫入同個端口經常采用的方法之一。用的方法之一。第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的初始化的初始化方式選擇控制字方式選擇控制字D7 D6 D5 D4 D3 D2 D1 D0C口低位選擇,口低位選擇,1入入0出出B口口I/O選擇,選擇,1入入0出出B口方式選擇,口方式選擇,0=方式方式0 1=方式方式1B組組C口高位選擇,口高位選擇,1入入0出出A口口I/O選擇,選擇,1入入0出出A口方式選擇

33、口方式選擇00=方式方式0 01=方式方式1 1X=方式方式2D7=1,方式控制字標志方式控制字標志A組組第八章:并行通信和串行通信第八章:并行通信和串行通信8255A的初始化的初始化C口置位口置位/復位控制字復位控制字D7 D6 D5 D4 D3 D2 D1 D0置位置位/復位復位選擇選擇1=置位,置位,0=復位復位D7=0為置為置位位/復位控復位控制字標志制字標志D3 D2 D1 位選擇位選擇 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7無效無效第八章:并行通信和串行通信第八章

34、:并行通信和串行通信8255A的初始化的初始化 8255A8255A初始化編程可以分兩步進行:初始化編程可以分兩步進行: 首先把方式選擇控制字寫入控制口,確定所用端口的工作首先把方式選擇控制字寫入控制口,確定所用端口的工作方式,方式, 如果如果82558255工作工作A A口或口或B B口工作于非方式口工作于非方式0 0下,再通過寫下,再通過寫C C口置口置位位/ /復位控制字來設置相關信號復位控制字來設置相關信號 完成了初始化編程之后,完成了初始化編程之后,CPUCPU就可以用就可以用ININ和和OUTOUT指令通過指令通過8255A8255A與外設交換數據了。與外設交換數據了?!纠?-1

35、8-1】: 8255A8255A的控制器寄存器地址為的控制器寄存器地址為0120H0120H,工作狀態(tài)為,工作狀態(tài)為A A口方式口方式0 0輸輸入,入,B B口方式口方式1 1輸出,輸出,C C口低半字節(jié)輸入,口低半字節(jié)輸入,C C口高半字節(jié)輸出,寫出它的初口高半字節(jié)輸出,寫出它的初始化程序段;如果要把始化程序段;如果要把C C口的口的PC4PC4置位,寫出它的初始化程序段。置位,寫出它的初始化程序段。方式選擇控制字:方式選擇控制字:10010101B=95HC口置位口置位/復位控制字:復位控制字:00001001=09H初始化程序段:初始化程序段: MOVDX,0120H ;8255A控制字

36、寄存器口地址控制字寄存器口地址MOVAL,95H;設置方式選擇控制字;設置方式選擇控制字OUTDX,AL;送入控制字寄存器中;送入控制字寄存器中MOVDX,0120H MOVAL,09H;使;使PC4=1的控制字的控制字OUTDX,AL 第八章:并行通信和串行通信第八章:并行通信和串行通信第八章:并行通信和串行通信第八章:并行通信和串行通信交通燈運行規(guī)則:交通燈運行規(guī)則:(1)開機后所有燈閃爍)開機后所有燈閃爍3次次(2)東西紅燈亮,南北綠燈亮)東西紅燈亮,南北綠燈亮(3)南北綠燈滅,南北黃燈閃)南北綠燈滅,南北黃燈閃(4)南北紅燈亮,東西綠燈亮)南北紅燈亮,東西綠燈亮(5)東西綠燈滅,東西黃

37、燈閃)東西綠燈滅,東西黃燈閃(6)返回第()返回第(2)步)步設計實例設計實例1:方式:方式08255實現交通燈控制實現交通燈控制A口地址:口地址:0040H;B口地址:口地址:0042H;C口地址:口地址:0044H;控制口地址:控制口地址:0046H利用利用8225的的B口低口低4位控制四個路口黃燈;位控制四個路口黃燈;利用利用8255的的C口控制四個路口的紅燈和綠燈;口控制四個路口的紅燈和綠燈;所有端口都工作于方式所有端口都工作于方式0輸出。輸出。硬件設計硬件設計軟件設計軟件設計左旭坤()35軟件設計軟件設計程序設計技巧程序設計技巧利用同一個延時子程序,實現長延時和短延時利用同一個延時子

38、程序,實現長延時和短延時MOV BX,1000 ;短延時,外循環(huán)次數為短延時,外循環(huán)次數為1000CALL DELYMOV BX,15000 ;長延時,外循環(huán)次數為長延時,外循環(huán)次數為15000CALL DELY DELY PROC ;延時子程序延時子程序NEXT2: MOV CX,500 ;內循環(huán)次數固定為內循環(huán)次數固定為500NEXT1: LOOP NEXT1 DEC BX ;外循環(huán)次數由主程序中的外循環(huán)次數由主程序中的BX值決定值決定 JNZ NEXT2 RET DELY ENDP左旭坤()36第八章:并行通信和串行通信第八章:并行通信和串行通信 數碼管按一定速度顯示數碼管按一定速度顯示

39、18數字數字 按下按下1#8#按鍵按鍵 若按鍵號和當前數碼管顯示數字相等,則顯示若按鍵號和當前數碼管顯示數字相等,則顯示“G”,并,并加快數碼管數字變化速度;加快數碼管數字變化速度; 若按鍵號和當前數碼管顯示數字不等,則顯示若按鍵號和當前數碼管顯示數字不等,則顯示“E”,并,并減慢數碼管數字變化速度;減慢數碼管數字變化速度;設計實例設計實例2:方式:方式1反應力測試游戲反應力測試游戲PA口接數碼管,方式口接數碼管,方式0輸出輸出PB口接口接8個按鍵,方式個按鍵,方式1輸入輸入利用查詢方式完成利用查詢方式完成PB口的輸入操作,口的輸入操作,PC口提供的聯絡信號有:口提供的聯絡信號有: PC1IB

40、F(輸入緩沖器滿信號輸入緩沖器滿信號);PC2STB(選通信號選通信號)左旭坤()37第八章:并行通信和串行通信第八章:并行通信和串行通信硬件結構硬件結構PBPB口方式口方式1 1輸入(查詢)工作原理:輸入(查詢)工作原理:當有按鍵按下,與門輸出端變成低電平,作為選通信號當有按鍵按下,與門輸出端變成低電平,作為選通信號送至送至PC2選通信號到來后,會使緩沖器滿信號置位(選通信號到來后,會使緩沖器滿信號置位(PC1=1)CPU通過查詢通過查詢PC1是否為是否為1,決定是否執(zhí)行,決定是否執(zhí)行IN指令從指令從PB口讀取按鍵值口讀取按鍵值左旭坤()38第八章:并行通信和串行通信第八章:并行通信和串行通

41、信軟件流程軟件流程左旭坤()39第八章:并行通信和串行通信第八章:并行通信和串行通信編程技巧編程技巧根據鍵值判斷按鍵號根據鍵值判斷按鍵號鍵值和鍵號對應規(guī)則:鍵值和鍵號對應規(guī)則:1#鍵按下鍵按下PB口讀取鍵值:口讀取鍵值:1111 1110B2#鍵按下鍵按下PB口讀取鍵值:口讀取鍵值:1111 1101B3#鍵按下鍵按下PB口讀取鍵值:口讀取鍵值:1111 1011B8#鍵按下鍵按下PB口讀取鍵值:口讀取鍵值:0111 1111B和和01H相與相與=0和和02H相與相與=0和和04H相與相與=0和和80H相與相與=0 MOV BX,0101H L0: MOV DX,42H IN AL,DX TE

42、ST AL,BL JZ EXIT1 INC BH ROL BL,1 CMP BL,01H JNZ L0 MOV BH,1 JMP L0EXIT1: MOV AL,BH左旭坤()40第八章:并行通信和串行通信第八章:并行通信和串行通信 設計設計16個按鍵,分別表示數字個按鍵,分別表示數字116 按下相應按鍵按下相應按鍵 數碼管顯示對應數字數碼管顯示對應數字設計實例設計實例3:方式:方式0多位數碼管顯示及矩陣鍵盤多位數碼管顯示及矩陣鍵盤左旭坤()41第八章:并行通信和串行通信第八章:并行通信和串行通信矩陣鍵盤原理矩陣鍵盤原理 若使按鍵較多時,通常采用矩陣式若使按鍵較多時,通常采用矩陣式(也稱行列式

43、)鍵盤。(也稱行列式)鍵盤。 矩陣式鍵盤由行線和列線組成,按矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上,其結構鍵位于行、列線的交叉點上,其結構如圖所示。如圖所示。 由圖可知,一個由圖可知,一個44的行、列結構的行、列結構可以構成一個含有可以構成一個含有16個按鍵的鍵盤。個按鍵的鍵盤。 矩陣式鍵盤中,行、列線分別連接到矩陣式鍵盤中,行、列線分別連接到按鍵開關的兩端,行線通過上拉電阻按鍵開關的兩端,行線通過上拉電阻接到接到5V上。當無鍵按下時,行線處上。當無鍵按下時,行線處于高電平狀態(tài);當有鍵按下時,行、于高電平狀態(tài);當有鍵按下時,行、列線將導通,此時,行線電平將由與列線將導通,此時,

44、行線電平將由與此行線相連的列線電平決定。這是識此行線相連的列線電平決定。這是識別按鍵是否按下的關鍵。別按鍵是否按下的關鍵。0123456781213910141511+5 V01230123左旭坤()42第八章:并行通信和串行通信第八章:并行通信和串行通信矩陣鍵盤原理矩陣鍵盤原理0123456781213910141511+5 V01230123按鍵的識別按鍵的識別掃描法掃描法 下面以圖中下面以圖中8號鍵的識別為例來號鍵的識別為例來說明掃描法識別按鍵的過程。說明掃描法識別按鍵的過程。 按鍵按下時,與此鍵相連的行按鍵按下時,與此鍵相連的行線與列線導通,行線在無鍵按下線與列線導通,行線在無鍵按下時

45、處在高電平,顯然,如果讓所時處在高電平,顯然,如果讓所有的列線也處在高電平,那么,有的列線也處在高電平,那么,按鍵按下與否不會引起行線電平按鍵按下與否不會引起行線電平的變化,因此,的變化,因此,必須使所有列線必須使所有列線處在低電平,只有這樣,當有鍵處在低電平,只有這樣,當有鍵按下時,該鍵所在的行電平才會按下時,該鍵所在的行電平才會由高電平變?yōu)榈碗娖?。由高電平變?yōu)榈碗娖?。CPU根據根據行電平的變化,便能判定相應的行電平的變化,便能判定相應的行有鍵按下。行有鍵按下。8號鍵按下時,第號鍵按下時,第2行一定為低電平,然而,第行一定為低電平,然而,第2行為行為低電平時,能否肯定是低電平時,能否肯定是8

46、號鍵按下號鍵按下呢?回答是否定的。呢?回答是否定的。 因為因為9、10、11號鍵按下同樣使第號鍵按下同樣使第2行為低電行為低電平。為進一步確定具體鍵,不能使所有列線在同平。為進一步確定具體鍵,不能使所有列線在同一時刻都處在低電平,一時刻都處在低電平,可在某一時刻只讓一條列可在某一時刻只讓一條列線處于低電平,其余列線均處于高電平,另一時線處于低電平,其余列線均處于高電平,另一時刻,讓下一列處在低電平,依此循環(huán),這種依次刻,讓下一列處在低電平,依此循環(huán),這種依次輪流每次選通一列的工作方式稱為鍵盤掃描。輪流每次選通一列的工作方式稱為鍵盤掃描。采采用鍵盤掃描后,再來觀察用鍵盤掃描后,再來觀察8號鍵按下

47、時的工作過號鍵按下時的工作過程,當第程,當第0列處于低電平時,第列處于低電平時,第2行處于低電平,行處于低電平,而第而第1、2、3列處于低電平時,第列處于低電平時,第2行卻處在高行卻處在高電平,由此可判定按下的鍵應是第電平,由此可判定按下的鍵應是第2行與第行與第0列的列的交叉點,即交叉點,即8號鍵。號鍵。 左旭坤()43第八章:并行通信和串行通信第八章:并行通信和串行通信矩陣鍵盤原理矩陣鍵盤原理PA口低口低4位做行線,接高電平位做行線,接高電平PC口低口低4位做列線位做列線PA工作于方式工作于方式0輸入,輸入,PC工作于方式工作于方式0輸出輸出PA口地址:口地址:40H,PC口地址:口地址:4

48、4H左旭坤()44第八章:并行通信和串行通信第八章:并行通信和串行通信矩陣鍵盤原理矩陣鍵盤原理 CHECK: MOV H,0 ; 行列號變量清行列號變量清0 MOV L,0 MOV AL,0F0H ;所有列輸出低電平所有列輸出低電平 OUT 44H,AL IN AL,40H ;讀行值讀行值 CMP AL,0FFH JZ CHECK ;若都為高電平則無鍵按下,等待若都為高電平則無鍵按下,等待 MOV CX,50 LOOP $ ;延時延時 IN AL,40H ;重讀行值重讀行值 CMP AL,0FFH JZ CHECK ;無鍵按下一直等待無鍵按下一直等待 左旭坤()45第八章:并行通信和串行通信第

49、八章:并行通信和串行通信矩陣鍵盤原理矩陣鍵盤原理 MOV BL,01H MOV BH,0FEH ; 從第一列開始測試,從第一列開始測試,PC0=0 NEXT: MOV AL,BH OUT 44H,AL ;置置PCi為低電平為低電平 NEXTH: IN AL,40H ;讀行值讀行值 TEST AL,BL JZ WAIT0 ;該行有鍵按下,則計算鍵值該行有鍵按下,則計算鍵值 ROL BL,1 ;該行無鍵按下,判斷下一行該行無鍵按下,判斷下一行 CMP BL,10H JZ NEXTL ;當前列狀態(tài)下沒有任何行有鍵按當前列狀態(tài)下沒有任何行有鍵按 ;下,則轉為對下一列的測試下,則轉為對下一列的測試 IN

50、C H ;每判斷一行,行號加每判斷一行,行號加1 JMP NEXTH ;再對下一行進行判斷再對下一行進行判斷 左旭坤()46第八章:并行通信和串行通信第八章:并行通信和串行通信矩陣鍵盤原理矩陣鍵盤原理NEXTL: MOV H,0 ;對下一列測試前,首先對下一列測試前,首先 ;清清0行號行號 MOV BL,01H ;每個列狀態(tài)都要從第一每個列狀態(tài)都要從第一 ;行開始判斷行開始判斷 ROL BH,1 ;對下一列測試,讓下一對下一列測試,讓下一 ;個個PC口輸出低電平口輸出低電平 INC L ;每測試一列,列號加每測試一列,列號加1 JMP NEXT ;返回行判斷程序返回行判斷程序左旭坤()47第八

51、章:并行通信和串行通信第八章:并行通信和串行通信矩陣鍵盤原理矩陣鍵盤原理 WAIT0: IN AL,40H CMP AL,0FFH JNZ WAIT0 ;若有鍵按下,則等該按若有鍵按下,則等該按 ;鍵松開后再計算鍵值鍵松開后再計算鍵值 MOV CX,50 LOOP $ ;延時消抖延時消抖 IN AL,40H CMP AL,0FFH JNZ WAIT0 MOV DH,H ;以下程序計算當前按鍵以下程序計算當前按鍵 MOV DL,L ;鍵值鍵值 SHL DH,1 SHL DH,1 ;行號乘行號乘4 ADD DH,DL ;加列號加列號 INC DH MOV V,DH ;鍵值保存到變量鍵值保存到變量V

52、左旭坤()48第八章:并行通信和串行通信第八章:并行通信和串行通信多片數碼管顯示原理多片數碼管顯示原理PB接數碼管數據線,向數碼管接數碼管數據線,向數碼管發(fā)送顯示碼發(fā)送顯示碼PC6=0 PC7=1,點亮第一片,點亮第一片PC6=1 PC7=0,點亮第二片,點亮第二片PB口地址:口地址:42H共陰極數碼管共陰極數碼管左旭坤()49第八章:并行通信和串行通信第八章:并行通信和串行通信多片數碼管顯示原理多片數碼管顯示原理 CMP AL,0 JZ GEWEI ;若商為若商為0,直接顯示余數,直接顯示余數 MOV AL,80H OUT 44H,AL ;PC6=0,PC7=1,點亮十位點亮十位 MOV B

53、L,DL MOV AL,SI+BX OUT 42H,AL ;取十位顯示碼,送取十位顯示碼,送PB口口 CALL DELY ;延時延時 MOV AL,0 OUT 42H,AL ;關顯示,消除鬼影關顯示,消除鬼影 GEWEI: MOV AL,40H OUT 44H,AL ;PC6=1,PC7=0,點亮個位點亮個位 MOV BL,DH MOV AL,SI+BX OUT 42H,AL ;取個位顯示碼,送取個位顯示碼,送PB口口 CALL DELY ;延時延時 MOV AL,0 OUT 42H,AL ;關顯示,消除鬼影關顯示,消除鬼影LEA SI,LED ;SI指向顯示碼首址指向顯示碼首址 XOR AX

54、,AX MOV AL,V ;鍵值送鍵值送AX MOV BL,10 DIV BLMOV DX,AX XOR BX,BX CMP DX,0 ;若結果為若結果為0,退出,退出 JZ EXIT1第八章:并行通信和串行通信第八章:并行通信和串行通信 并行通信并行通信 并行接口并行接口 可編程并行接口芯片可編程并行接口芯片8255A 串行通信串行通信 可編程串行接口芯片可編程串行接口芯片8251A第八章:并行通信和串行通信第八章:并行通信和串行通信 串行通信線路的工作方式串行通信線路的工作方式單工方式單工方式半雙工方式半雙工方式全雙工方式全雙工方式 左旭坤()52第八章:并行通信和串行通信第八章:并行通信

55、和串行通信 串行通信的數據收發(fā)方式串行通信的數據收發(fā)方式 在串行通信中有兩種基本的通信方式:即在串行通信中有兩種基本的通信方式:即異步通信異步通信和和同步同步通信。通信。串行異步通信串行異步通信 通信的雙方進行異步串行通信時必須遵守異步串行通信的雙方進行異步串行通信時必須遵守異步串行通信控制規(guī)程,也稱異步通信協議,他的特點是通信雙方以通信控制規(guī)程,也稱異步通信協議,他的特點是通信雙方以一個字符(包括一些特定的附加位)作為數據傳輸單位。一個字符(包括一些特定的附加位)作為數據傳輸單位。左旭坤()53第八章:并行通信和串行通信第八章:并行通信和串行通信 串行通信的數據收發(fā)方式串行通信的數據收發(fā)方式

56、 在串行通信中有兩種基本的通信方式:即在串行通信中有兩種基本的通信方式:即異步通信異步通信和和同步同步通信。通信。2. 串行同步通信串行同步通信 串行同步通信是靠同步字符來完成收發(fā)雙方同步的,串行同步通信是靠同步字符來完成收發(fā)雙方同步的,通信雙方用統一時鐘控制通信過程,與異步通信相比一個顯著通信雙方用統一時鐘控制通信過程,與異步通信相比一個顯著的特點是同步通信方式所用的數據格式沒有起始位和停止位,的特點是同步通信方式所用的數據格式沒有起始位和停止位,一次傳送的字符個數是可變的,但字符與字符間不允許有空隙。一次傳送的字符個數是可變的,但字符與字符間不允許有空隙。左旭坤()54第八章:并行通信和串

57、行通信第八章:并行通信和串行通信 串行通信的數據收發(fā)方式串行通信的數據收發(fā)方式 在串行通信中有兩種基本的通信方式:即在串行通信中有兩種基本的通信方式:即異步通信異步通信和和同步同步通信。通信。3. 異步通信和同步通信比較異步通信和同步通信比較同步相對于異步,傳輸效率高(無停止位,起始位)。同步相對于異步,傳輸效率高(無停止位,起始位)。異步相對于同步,實現簡單,接收和發(fā)送兩方的時鐘不需要異步相對于同步,實現簡單,接收和發(fā)送兩方的時鐘不需要嚴格同步。嚴格同步。左旭坤()55第八章:并行通信和串行通信第八章:并行通信和串行通信 串行通信的接口標準串行通信的接口標準 在串行通信中常見的接口電路標準有

58、在串行通信中常見的接口電路標準有RS-232C、RS-422、RS-485等,等,PC機上的兩個機上的兩個COM口就遵從口就遵從RS-232C標準標準RS-232C電平標準電平標準采用負邏輯:采用負邏輯:+3V+15V:邏輯:邏輯“0”; -3V-15V:邏輯:邏輯“1”左旭坤()56第八章:并行通信和串行通信第八章:并行通信和串行通信 串行通信的接口標準串行通信的接口標準 在串行通信中常見的接口電路標準有在串行通信中常見的接口電路標準有RS-232C、RS-422、RS-485等,等,PC機上的兩個機上的兩個COM口就遵從口就遵從RS-232標準標準RS-232C信號定義信號定義有有DB-9

59、和和DB-25兩種信號標準(兩種信號標準(P300)計算機常采用的電平標準為計算機常采用的電平標準為TTL: 2.4V5V:邏輯:邏輯“1”;0V0.4V:邏輯:邏輯“0”當計算機與當計算機與RS-232C器件連接時需要加電平轉換的接口電路,如:器件連接時需要加電平轉換的接口電路,如:MC1488,MC1489,MAX232等等左旭坤()57第八章:并行通信和串行通信第八章:并行通信和串行通信 串行通信的傳輸率串行通信的傳輸率 所謂傳輸率就是指每秒傳輸多少位,習慣稱為波特率,單所謂傳輸率就是指每秒傳輸多少位,習慣稱為波特率,單位位bps。常見波特率:常見波特率:110、300、600、1200

60、、2400、4800、9600、19200、28800、33600,目前最高可達,目前最高可達56Kbps.左旭坤()58第八章:并行通信和串行通信第八章:并行通信和串行通信 串行通信的檢錯技術串行通信的檢錯技術串行數據在傳輸過程中,由于干擾而引起誤碼是難免的,這直串行數據在傳輸過程中,由于干擾而引起誤碼是難免的,這直接影響通信系統的可靠性,對通信中的檢錯能力是衡是一個通接影響通信系統的可靠性,對通信中的檢錯能力是衡是一個通信系統的重要內容。信系統的重要內容。奇偶校驗奇偶校驗 奇偶校驗是最簡單最常用的校驗方法。它的基本原理是在所傳奇偶校驗是最簡單最常用的校驗方法。它的基本原理是在所傳輸的有效數

溫馨提示

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

評論

0/150

提交評論