并行接口芯片8255A內(nèi)部結(jié)構(gòu)和引腳功能概述
8255A芯片 Intel 8086/8088 系列的可編程外設(shè)接口電路(Programmable Peripheral Interface)簡稱 PPI,型號為8255(改進(jìn)型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。
8255A是一種可編程的并行I/O接口。與簡單I/O接口不同,可編程的I/O接口通常有多種工作模式,單片機(jī)可以通過程序設(shè)置其具體的工作模式或狀態(tài)。
8255A的內(nèi)部結(jié)構(gòu)和引腳
8255A的功能結(jié)構(gòu)和引腳如圖5-18所示。
圖5-18 8255A的功能結(jié)構(gòu)圖和引腳圖
a)功能結(jié)構(gòu)圖b)引腳圖
1.8255A的功能結(jié)構(gòu)
(1)并行I/O口
8255A有3個8位并行的I/O口,即A口、B口和C口,這些I/O口又被分為A組和B組,分別由A組控制器和B組控制器控制,其中:A組由A口的8位和C口的高4位構(gòu)成;B組由B口的8位和C口的低4位構(gòu)成。
(2)數(shù)據(jù)總線緩沖器
8255A的數(shù)據(jù)總線緩沖器是雙向、三態(tài)的緩沖器。通過該緩沖器,8255A既可以接收來自于單片機(jī)的控制命令字,也可以將自身的信息傳送給單片機(jī)。更重要的是,利用該緩沖器,單片機(jī)可以與8255A的A口、B口和C口之間進(jìn)行數(shù)據(jù)交換,從而擴(kuò)展單片機(jī)自身的并行I/O口。
(3)讀寫控制邏輯
單片機(jī)可以通過讀寫控制邏輯對8255A進(jìn)行操作,如:對8255A進(jìn)行復(fù)位操作或向8255A的A口發(fā)送數(shù)據(jù)等。
2.8255A的引腳功能
本小節(jié)將結(jié)合單片機(jī)與8255A的連接圖(見圖5-19),以及表5-10所示的8255A端口選擇和操作功能,講解8255A的引腳功能。
圖5-19 8255A與單片機(jī)的引腳連接
(1)并行I/O端口
PA、PB和PC分別是8255A的A口、B口和C口所對應(yīng)的8位并行輸入/輸出引腳。通常PA、PB和PC與單片機(jī)的外設(shè)相連,負(fù)責(zé)與單片機(jī)的外設(shè)交換數(shù)據(jù)。
(2)數(shù)據(jù)總線D7~D0
D7~D0是8255A的8位雙向數(shù)據(jù)總線引腳,與單片機(jī)的數(shù)據(jù)總線相連。單片機(jī)通過該引腳向8255A發(fā)送控制命令。另外,單片機(jī)可以通過D7~D0與8255A的A、B或C口交換數(shù)據(jù)。
(3)讀寫信號RD和WR
低電平有效的RD和WR引腳分別是8255A的讀信號和寫信號引腳,并分別與MCS-51單片機(jī)的RD和WR引腳相連。當(dāng)RD為低電平時,單片機(jī)從8255A讀取數(shù)據(jù),8255A D7~D0引腳上的數(shù)據(jù)傳輸方向?yàn)橛?255A至單片機(jī)。反之,當(dāng)WR為低電平時,數(shù)據(jù)傳輸方向?yàn)橛蓡纹瑱C(jī)到8255A。
與訪問簡單I/O接口相同,MCS-51單片機(jī)通過MOVX指令訪問可編程的8255A。執(zhí)行“MOVX A,@DPTR”或“MOVX A,@Ri”指令時,MCS-51單片機(jī)讀取8255A并行端口上的數(shù)據(jù),此時單片機(jī)的RD引腳為低電平。執(zhí)行“MOVX@DPTR,A”或“MOVX@Ri,A”指令時,MCS-51單片機(jī)寫數(shù)據(jù)到8255A,此時單片機(jī)的WR引腳為低電平。
(4)地址線A0和A1
8255A有4個I/O端口,包括:A口、B口、C口和接收單片機(jī)控制命令的控制字寄存器。當(dāng)單片機(jī)訪問8255A時,8255A引腳A0和A1的狀態(tài)決定了單片機(jī)訪問的具體是哪一個端口,見表5-10。
(5)片選信號CS
片選信號CS低電平有效,該引腳為低電平時8255A才能夠工作。通常,該引腳與單片機(jī)的地址線相連,用于單片機(jī)對8255A的選擇控制。在圖5-19所示電路中,當(dāng)單片機(jī)的P2.7引腳輸出低電平時,8255A被單片機(jī)選中并工作。
(6)復(fù)位引腳RESET
復(fù)位引腳RESET高電平有效。8255A復(fù)位時,其控制寄存器將被清0,其所有的并行I/O端口PA、PB和PC均被設(shè)置為輸入。
如圖5-19所示,當(dāng)單片機(jī)讀取外設(shè)數(shù)據(jù)時,外設(shè)數(shù)據(jù)首先進(jìn)入8255A的某個指定數(shù)據(jù)端口(由地址選定的A口、B口或C口),然后通過8255A的數(shù)據(jù)總線(D7~D0)進(jìn)入單片機(jī);而單片機(jī)向外設(shè)發(fā)送數(shù)據(jù)時,單片機(jī)的數(shù)據(jù)首先通過數(shù)據(jù)總線(D7~D0)到達(dá)8255A某個指定數(shù)據(jù)端口,然后通過這個端口送給外設(shè)。由此可知,8255A僅是單片機(jī)與外設(shè)之間數(shù)據(jù)傳輸?shù)耐ǖ?,并不會對?shù)據(jù)本身產(chǎn)生任何影響。