第七M(jìn)CS單片機(jī)的并行接口(上)_第1頁(yè)
第七M(jìn)CS單片機(jī)的并行接口(上)_第2頁(yè)
第七M(jìn)CS單片機(jī)的并行接口(上)_第3頁(yè)
第七M(jìn)CS單片機(jī)的并行接口(上)_第4頁(yè)
第七M(jìn)CS單片機(jī)的并行接口(上)_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第7章章MCS-51單片機(jī)的單片機(jī)的并行接口并行接口 p7.1 MCS-5l內(nèi)部?jī)?nèi)部IO口及其應(yīng)用口及其應(yīng)用 p7.2 MCS-5l并行并行IO口的擴(kuò)展口的擴(kuò)展 ()p7.3 MCS-51內(nèi)部?jī)?nèi)部定時(shí)計(jì)數(shù)器定時(shí)計(jì)數(shù)器及其應(yīng)用及其應(yīng)用 p7.4 并行口應(yīng)用并行口應(yīng)用單片機(jī)顯示鍵盤系統(tǒng)單片機(jī)顯示鍵盤系統(tǒng) 1并口并口是相對(duì)于是相對(duì)于串口串口而言的。而言的。1.1. 并行接口并行接口并行通信并行通信: : 各位數(shù)據(jù)都是并行傳輸?shù)模宰止?jié)(或字)為單位與各位數(shù)據(jù)都是并行傳輸?shù)模宰止?jié)(或字)為單位與I/OI/O設(shè)備或被控對(duì)象進(jìn)行數(shù)據(jù)交換。設(shè)備或被控對(duì)象進(jìn)行數(shù)據(jù)交換。 并行通信由并行接口來(lái)完成并行通

2、信由并行接口來(lái)完成, ,并行接口是連接并行接口是連接CPUCPU與并行與并行外設(shè)的通道。外設(shè)的通道。特點(diǎn):特點(diǎn): 傳輸速度快;硬件開(kāi)銷大;只適合近距離傳輸。一個(gè)并傳輸速度快;硬件開(kāi)銷大;只適合近距離傳輸。一個(gè)并行接口中包括狀態(tài)信息、控制信息和數(shù)據(jù)信息。行接口中包括狀態(tài)信息、控制信息和數(shù)據(jù)信息。 狀態(tài)信息狀態(tài)信息 表示外設(shè)當(dāng)前所處的工作狀態(tài)。表示外設(shè)當(dāng)前所處的工作狀態(tài)。 例如:例如:準(zhǔn)備好信號(hào)表示輸入設(shè)備已經(jīng)準(zhǔn)備好信息;準(zhǔn)備好信號(hào)表示輸入設(shè)備已經(jīng)準(zhǔn)備好信息; 忙信號(hào)忙信號(hào)(BUSY)表示輸出設(shè)備正在輸出信息,等于指示表示輸出設(shè)備正在輸出信息,等于指示CPU要處于等待狀要處于等待狀態(tài)。態(tài)。 控制信

3、息控制信息 控制信息是由控制信息是由CPU發(fā)出的,用于控制外設(shè)接口的工作方式以及外設(shè)的啟動(dòng)發(fā)出的,用于控制外設(shè)接口的工作方式以及外設(shè)的啟動(dòng)和停機(jī)信息等。和停機(jī)信息等。 數(shù)據(jù)信息數(shù)據(jù)信息 CPU與并行外設(shè)數(shù)據(jù)交換的內(nèi)容。與并行外設(shè)數(shù)據(jù)交換的內(nèi)容。 狀態(tài)信息、控制信息和數(shù)據(jù)信息,通常都是通過(guò)數(shù)據(jù)總線傳送,這些信狀態(tài)信息、控制信息和數(shù)據(jù)信息,通常都是通過(guò)數(shù)據(jù)總線傳送,這些信息在外設(shè)接口中分別存取在不同的端口中。息在外設(shè)接口中分別存取在不同的端口中。對(duì)于一個(gè)外設(shè)接口,常常需要幾個(gè)端口才能滿足和協(xié)調(diào)外部設(shè)備的對(duì)于一個(gè)外設(shè)接口,常常需要幾個(gè)端口才能滿足和協(xié)調(diào)外部設(shè)備的工作與要求,圖工作與要求,圖10.1是

4、一個(gè)典型的并行接口與是一個(gè)典型的并行接口與CPU、外設(shè)的連接圖。、外設(shè)的連接圖。圖圖10.1 并行接口與并行接口與CPU、外設(shè)的連接、外設(shè)的連接控制寄存器控制寄存器狀態(tài)寄存器狀態(tài)寄存器輸入緩沖寄存器輸入緩沖寄存器輸出緩沖寄存器輸出緩沖寄存器CPU總線系統(tǒng)總線系統(tǒng)輸輸入入設(shè)設(shè)備備輸輸出出設(shè)設(shè)備備數(shù)據(jù)總線數(shù)據(jù)總線輸出數(shù)據(jù)準(zhǔn)備好輸出數(shù)據(jù)準(zhǔn)備好輸入數(shù)據(jù)準(zhǔn)備好輸入數(shù)據(jù)準(zhǔn)備好中斷請(qǐng)求中斷請(qǐng)求地地 址址譯碼器譯碼器復(fù)位復(fù)位地址總線地址總線AENCSA0A1IORIOW輸入數(shù)據(jù)輸入數(shù)據(jù)輸入數(shù)據(jù)準(zhǔn)備好輸入數(shù)據(jù)準(zhǔn)備好輸入應(yīng)答輸入應(yīng)答輸出數(shù)據(jù)輸出數(shù)據(jù)輸出數(shù)據(jù)準(zhǔn)備好輸出數(shù)據(jù)準(zhǔn)備好輸出應(yīng)答輸出應(yīng)答 2. 2. 并行接口

5、的組成并行接口的組成 狀態(tài)寄存器狀態(tài)寄存器 狀態(tài)寄存器用來(lái)存放外設(shè)的信息,狀態(tài)寄存器用來(lái)存放外設(shè)的信息,CPUCPU通過(guò)訪問(wèn)這個(gè)寄存器通過(guò)訪問(wèn)這個(gè)寄存器來(lái)了解某個(gè)外設(shè)的狀態(tài)。來(lái)了解某個(gè)外設(shè)的狀態(tài)。 控制寄存器控制寄存器 并行接口中有一個(gè)控制寄存器,并行接口中有一個(gè)控制寄存器,CPUCPU對(duì)外設(shè)的操作命令都寄對(duì)外設(shè)的操作命令都寄存在控制寄存器中。存在控制寄存器中。 數(shù)據(jù)緩沖寄存器數(shù)據(jù)緩沖寄存器 在并行接口中還設(shè)置了輸入緩沖寄存器和輸出緩沖寄存器,在并行接口中還設(shè)置了輸入緩沖寄存器和輸出緩沖寄存器,緩沖器是用來(lái)暫存數(shù)據(jù),可以保證輸入,輸出數(shù)據(jù)的可靠性。緩沖器是用來(lái)暫存數(shù)據(jù),可以保證輸入,輸出數(shù)據(jù)的

6、可靠性。因?yàn)橥庠O(shè)與因?yàn)橥庠O(shè)與CPUCPU交換數(shù)據(jù),交換數(shù)據(jù),CPUCPU的速度遠(yuǎn)遠(yuǎn)高于外設(shè)的速度。的速度遠(yuǎn)遠(yuǎn)高于外設(shè)的速度。7.1 MCS-5l內(nèi)部?jī)?nèi)部IO口口及其應(yīng)用及其應(yīng)用6 51單片機(jī)內(nèi)部有單片機(jī)內(nèi)部有4個(gè)個(gè)8位雙向位雙向IO(輸入輸出輸入輸出)口???。它們的內(nèi)部結(jié)構(gòu)圖在前面作過(guò)介紹。從特性上看,這它們的內(nèi)部結(jié)構(gòu)圖在前面作過(guò)介紹。從特性上看,這4個(gè)端口還有所差別。個(gè)端口還有所差別。P0口:作一般口:作一般I/O口口;低低8位地址位地址/數(shù)據(jù)分時(shí)復(fù)用功能。數(shù)據(jù)分時(shí)復(fù)用功能。P1口:作一般口:作一般I/O接口。接口。P2口:作一般口:作一般I/O接口接口;高高8位地址。位地址。P3口:作一般

7、口:作一般I/O接口;接口;每根口線有第二功能。每根口線有第二功能。I/O接口的功能是:接口的功能是:2、對(duì)輸入設(shè)備的三態(tài)緩沖、對(duì)輸入設(shè)備的三態(tài)緩沖 外設(shè)傳送數(shù)據(jù)時(shí)要占用總線,不外設(shè)傳送數(shù)據(jù)時(shí)要占用總線,不傳送數(shù)據(jù)時(shí)必須對(duì)傳送數(shù)據(jù)時(shí)必須對(duì)總線呈高阻狀態(tài)總線呈高阻狀態(tài)。利用。利用I/O接口的三態(tài)緩沖功能,可接口的三態(tài)緩沖功能,可以實(shí)現(xiàn)以實(shí)現(xiàn)I/O設(shè)備與數(shù)據(jù)總線的隔離,便于其它設(shè)備的設(shè)備與數(shù)據(jù)總線的隔離,便于其它設(shè)備的總線掛接??偩€掛接。1、對(duì)單片機(jī)輸出的數(shù)據(jù)鎖存、對(duì)單片機(jī)輸出的數(shù)據(jù)鎖存 鎖存數(shù)據(jù)線上瞬間出現(xiàn)的數(shù)據(jù),以解決單片機(jī)與鎖存數(shù)據(jù)線上瞬間出現(xiàn)的數(shù)據(jù),以解決單片機(jī)與I/O設(shè)備的速度協(xié)調(diào)問(wèn)題。

8、設(shè)備的速度協(xié)調(diào)問(wèn)題。3、信號(hào)轉(zhuǎn)換、信號(hào)轉(zhuǎn)換 信號(hào)類型(數(shù)字與模擬、電流與電壓)、信號(hào)電信號(hào)類型(數(shù)字與模擬、電流與電壓)、信號(hào)電平(高與低、正與負(fù))、信號(hào)格式(并行與串行)等平(高與低、正與負(fù))、信號(hào)格式(并行與串行)等的轉(zhuǎn)換。的轉(zhuǎn)換。4、時(shí)序協(xié)調(diào)、時(shí)序協(xié)調(diào) 不同的不同的I/O設(shè)備定時(shí)與控制邏輯是不同的設(shè)備定時(shí)與控制邏輯是不同的,并與,并與CPU的時(shí)序往往是不一致的,這就需要的時(shí)序往往是不一致的,這就需要I/O接口進(jìn)行接口進(jìn)行時(shí)序的協(xié)調(diào)。時(shí)序的協(xié)調(diào)。 P0-P3口進(jìn)一步說(shuō)明:口進(jìn)一步說(shuō)明:94個(gè)并行個(gè)并行I/O口口“輸出有鎖存,輸入有緩沖輸出有鎖存,輸入有緩沖”;輸入數(shù)據(jù)時(shí)都要輸入數(shù)據(jù)時(shí)都要“

9、先寫(xiě)先寫(xiě)1”;P0口作通用口作通用I/O口,輸出級(jí)是開(kāi)漏電路,作輸出口應(yīng)接上口,輸出級(jí)是開(kāi)漏電路,作輸出口應(yīng)接上拉電阻;作地址拉電阻;作地址/數(shù)據(jù)總線不需要上拉電阻;數(shù)據(jù)總線不需要上拉電阻;P1P3口不需要上拉電阻;口不需要上拉電阻;1、51的的I/O口口直接用于直接用于輸出輸出10p都是準(zhǔn)雙向口。都是準(zhǔn)雙向口。p1、直接用于、直接用于輸出輸出 作作輸出口輸出口時(shí)有時(shí)有鎖存鎖存功能。功能。輸出操作:輸出操作:以以P0P3為為目的操作數(shù)目的操作數(shù)的的傳送指令傳送指令。例如:例如:MOV P1,AMOV P1,R1MOV P1,R1MOV P1,#55Hp51單片機(jī)沒(méi)有專門的輸入輸出指令。單片機(jī)沒(méi)

10、有專門的輸入輸出指令。2、51的的I/O口口直接用于直接用于輸入輸入11p2、直接用于、直接用于輸入輸入 作作輸入口輸入口時(shí)帶有時(shí)帶有輸入緩沖器輸入緩沖器,但但沒(méi)有沒(méi)有輸入鎖存器輸入鎖存器。因此要輸入的數(shù)據(jù)必須一直保持在引腳上,直到把數(shù)因此要輸入的數(shù)據(jù)必須一直保持在引腳上,直到把數(shù)據(jù)讀走。據(jù)讀走。在輸入數(shù)據(jù)之前,要先寫(xiě)在輸入數(shù)據(jù)之前,要先寫(xiě)“1” MOV P0, #0FFH MOV A, P0用讀引腳用讀引腳的的傳送指令傳送指令。例如:例如:MOV A, P1MOV R2,P13、對(duì)鎖存器的、對(duì)鎖存器的“讀讀-修改修改-寫(xiě)寫(xiě)”12有一類指令是對(duì)有一類指令是對(duì)IO口輸出鎖存器中的數(shù)據(jù)進(jìn)行操作,口

11、輸出鎖存器中的數(shù)據(jù)進(jìn)行操作,如對(duì)端口數(shù)據(jù)進(jìn)行邏輯操作。這一類指令是如對(duì)端口數(shù)據(jù)進(jìn)行邏輯操作。這一類指令是先讀出先讀出端口鎖端口鎖存器中的內(nèi)容,存器中的內(nèi)容,再再按指令的規(guī)定進(jìn)行操作,按指令的規(guī)定進(jìn)行操作,最后最后將操作的將操作的結(jié)果結(jié)果寫(xiě)回寫(xiě)回端口鎖存器,稱之為端口鎖存器,稱之為“讀一修改一寫(xiě)讀一修改一寫(xiě)”指令。指令。 這類指令這類指令不是不是對(duì)端口對(duì)端口引腳引腳上的數(shù)據(jù)進(jìn)行操作。若要上的數(shù)據(jù)進(jìn)行操作。若要對(duì)引腳上數(shù)據(jù)進(jìn)行操作則只能對(duì)引腳上數(shù)據(jù)進(jìn)行操作則只能先讀入先讀入到到CPU,然后,然后再再進(jìn)進(jìn)行運(yùn)算。行運(yùn)算。4、MCS-51內(nèi)部?jī)?nèi)部IO口口應(yīng)用應(yīng)用13所有所有4個(gè)個(gè)IO口都是可以口都是可

12、以位尋址位尋址的,就是說(shuō),其中每一的,就是說(shuō),其中每一位位都可以都可以用做用做輸入輸入或或輸出輸出。由于由于MCS-51的的IO 口只有數(shù)據(jù)口而沒(méi)有狀態(tài)口或控制口只有數(shù)據(jù)口而沒(méi)有狀態(tài)口或控制口,在實(shí)際使用時(shí),可以用口,在實(shí)際使用時(shí),可以用I0口的某一位口的某一位(或幾位或幾位)來(lái)來(lái)作為狀態(tài)信息的傳送者,或者是命令的控制位。作為狀態(tài)信息的傳送者,或者是命令的控制位。例:例:P1口八個(gè)燈作跑馬燈口八個(gè)燈作跑馬燈 。?。?例:例:P1口八個(gè)燈作跑馬燈口八個(gè)燈作跑馬燈 ?14 start: MOV A,#0FFH; CLR C; MOV R2,#08h;循環(huán)八次。循環(huán)八次。 loop1:RLC A;帶

13、進(jìn)位左移。帶進(jìn)位左移。 MOV P1,A;輸出到輸出到P1口。口。 CALL delay;延時(shí)一段時(shí)間延時(shí)一段時(shí)間 DJNZ R2,LOOP1;反復(fù)循環(huán)反復(fù)循環(huán) MOV R2,#07h;再往回循環(huán)。再往回循環(huán)。 loop2:RRC A;帶進(jìn)位右移帶進(jìn)位右移 MOV P1,A;輸出到輸出到P1口???。 CALL delay;延時(shí)一段時(shí)間延時(shí)一段時(shí)間 DJNZ R2,loop2;反復(fù)循環(huán)反復(fù)循環(huán) LJMP start;重新開(kāi)始重新開(kāi)始;延時(shí)子程序延時(shí)子程序delay:MOV r3,#20 d1:MOV R4,#20 d2:MOV R5,#248 DJNZ R5,$ DJNZ R4,d2 DJNZ

14、R3,d1 RET END 設(shè):設(shè):LED燈共陽(yáng)極燈共陽(yáng)極 P0口輸出功能應(yīng)用舉例口輸出功能應(yīng)用舉例 例例 P0口做通用口做通用I/O輸出口,控制輸出口,控制8只發(fā)光二極管只發(fā)光二極管從左到右依次點(diǎn)亮,再?gòu)挠业阶笠来吸c(diǎn)亮,電路從左到右依次點(diǎn)亮,再?gòu)挠业阶笠来吸c(diǎn)亮,電路圖如圖所示。圖如圖所示。P00P01P02P03P04P05P06P07RP1L1L2L3L4L5L6L7L8VCC1234567891KP0P0口控制發(fā)光二極管電路口控制發(fā)光二極管電路#include unsigned char i; unsigned char temp; unsigned char a,b;void dela

15、y(void) /循環(huán)間隔時(shí)間 unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-); void main(void)while(1) temp=0 xfe; P0=temp;delay(); for(i=1;i8;i+) a=temp(8-i); P0=a|b; delay(); for(i=1;ii; b=temp(8-i); P0=a|b; delay(); P00P01P02P03P04P05P06P07RP1L1L2L3L4L5L6L7L8VCC1234567891KP0P0口控制發(fā)光二極管電路口控

16、制發(fā)光二極管電路 例例: P3.5口做通用口做通用I/O輸出口,控制蜂鳴器斷續(xù)輸出口,控制蜂鳴器斷續(xù)發(fā)聲,電路圖如圖所示。發(fā)聲,電路圖如圖所示。BELLVCCU13R181KL21Q98550R194.7KP35蜂鳴器電路蜂鳴器電路 #include sbit BEEP=P35; /蜂鳴器端口蜂鳴器端口 void delayms(unsigned char ms) / 毫秒延時(shí)子程序毫秒延時(shí)子程序 unsigned char i; while(ms-) for(i = 0; i 120; i+); void main(void) /主程序主程序 while(1) /循環(huán)程序循環(huán)程序 delay

17、ms(250); BEEP =1; /啟動(dòng)蜂鳴器啟動(dòng)蜂鳴器 delayms(250);BEEP =0; /熄滅蜂鳴器熄滅蜂鳴器 P2口輸入、口輸入、P1口輸出功能應(yīng)用舉例口輸出功能應(yīng)用舉例 例例 利用利用8個(gè)撥動(dòng)開(kāi)關(guān),把個(gè)撥動(dòng)開(kāi)關(guān),把8位數(shù)據(jù)送到位數(shù)據(jù)送到P2口,程序讀入,口,程序讀入,然后送然后送P1口顯示。如圖所示:口顯示。如圖所示:P101P112P123P134P145P156P167P178RST/VPD9P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P35/T115P36/WR16P37/RD17XTAL218XTAL119GND20P

18、2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/PROG30EA/VPP31P0732P0633P0534P0435P0336P0237P0138P0039VCC40U12AT89C51Y112MHZC1830pfC1930pfVCCC1722ufR2010kRSTL1L2L3L4L5L6L7L8RSTVCCVCCG19DIR1A12B118A23B217A34B316A45B415A56B514A67B613A78B712A89B811U?74LS245R1330R2330R3330R4330R5330R6330R7330R8330123J?

19、CON3123J?CON3123J?CON3123J?CON3123J?CON3123J?CON3123J?CON3123J?CON3VCC#include#define key P2#define led P1void main()while(1)led=key;7.1 為什么需要為什么需要I/O擴(kuò)展擴(kuò)展原始數(shù)據(jù)或現(xiàn)場(chǎng)信息要利用輸入設(shè)備輸入到單片機(jī)原始數(shù)據(jù)或現(xiàn)場(chǎng)信息要利用輸入設(shè)備輸入到單片機(jī)中,單片機(jī)對(duì)輸入的數(shù)據(jù)進(jìn)行處理加工后,還要輸中,單片機(jī)對(duì)輸入的數(shù)據(jù)進(jìn)行處理加工后,還要輸出給輸出設(shè)備。常用的輸入設(shè)備有出給輸出設(shè)備。常用的輸入設(shè)備有鍵盤、開(kāi)關(guān)及各鍵盤、開(kāi)關(guān)及各種傳感器種傳感器等,常用的輸

20、出設(shè)備有等,常用的輸出設(shè)備有LED(或或LCD)顯顯示器、微型打印機(jī)及各種執(zhí)行機(jī)構(gòu)示器、微型打印機(jī)及各種執(zhí)行機(jī)構(gòu)等。等。 80C51單片機(jī)內(nèi)部有四個(gè)并行口和一個(gè)串行口,對(duì)單片機(jī)內(nèi)部有四個(gè)并行口和一個(gè)串行口,對(duì)于簡(jiǎn)單的于簡(jiǎn)單的I/O設(shè)備可以直接連接。當(dāng)系統(tǒng)較為復(fù)雜時(shí),設(shè)備可以直接連接。當(dāng)系統(tǒng)較為復(fù)雜時(shí),往往要借助往往要借助I/O接口電路(簡(jiǎn)稱接口電路(簡(jiǎn)稱I/O接口)完成單片接口)完成單片機(jī)與機(jī)與I/O設(shè)備的連接。現(xiàn)在,許多設(shè)備的連接?,F(xiàn)在,許多I/O接口已經(jīng)系列接口已經(jīng)系列化、標(biāo)準(zhǔn)化,并具有可編程功能。化、標(biāo)準(zhǔn)化,并具有可編程功能。輸入輸入/輸出及其控制方式輸出及其控制方式擴(kuò)展擴(kuò)展I/O接口的

21、原因:接口的原因:?jiǎn)纹瑱C(jī)本身接口功能有限單片機(jī)本身接口功能有限。單片機(jī)控制應(yīng)用中的單片機(jī)控制應(yīng)用中的復(fù)雜接口要求復(fù)雜接口要求。 1、速度差異大、速度差異大 2、設(shè)備種類繁多、設(shè)備種類繁多 3、數(shù)據(jù)信號(hào)形式多樣、數(shù)據(jù)信號(hào)形式多樣擴(kuò)展擴(kuò)展I/O接口電路的接口電路的功能功能 1、速度協(xié)調(diào)、速度協(xié)調(diào) 2、輸出數(shù)據(jù)鎖存、輸出數(shù)據(jù)鎖存 3、輸入數(shù)據(jù)三態(tài)緩沖、輸入數(shù)據(jù)三態(tài)緩沖 4、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)換7.2 MCS-5l并行并行IO口口的擴(kuò)展的擴(kuò)展21 常用并口擴(kuò)展方法:常用并口擴(kuò)展方法: 用三態(tài)緩沖器和鎖存器擴(kuò)展簡(jiǎn)單用三態(tài)緩沖器和鎖存器擴(kuò)展簡(jiǎn)單I/O口???。 用專用并口芯片擴(kuò)展用專用并口芯片擴(kuò)展I/O口(口

22、(8255,8155等)等) 注意:注意: MCS-51沒(méi)有沒(méi)有專門的專門的外設(shè)操作指令外設(shè)操作指令和控制信號(hào),和控制信號(hào),將外設(shè)看將外設(shè)看作外部數(shù)據(jù)存儲(chǔ)單元來(lái)訪問(wèn)作外部數(shù)據(jù)存儲(chǔ)單元來(lái)訪問(wèn),因此擴(kuò)展外設(shè)占用外部,因此擴(kuò)展外設(shè)占用外部RAM存存儲(chǔ)器的地址空間,使用訪問(wèn)儲(chǔ)器的地址空間,使用訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器外部數(shù)據(jù)存儲(chǔ)器指令對(duì)外設(shè)進(jìn)行指令對(duì)外設(shè)進(jìn)行操作。操作。7.2.1 用用三態(tài)緩沖器三態(tài)緩沖器和和鎖存器鎖存器擴(kuò)展并口擴(kuò)展并口221、8031和和三態(tài)緩沖器三態(tài)緩沖器連接擴(kuò)展連接擴(kuò)展輸入口輸入口設(shè)計(jì)原則設(shè)計(jì)原則輸入口具有緩沖作用輸入口具有緩沖作用緩沖器。緩沖器。輸出口具有鎖存作用輸出口具有鎖存作用鎖

23、存器。鎖存器。/1G狀態(tài)狀態(tài)輸入輸入/輸出輸出1高阻高阻隔離隔離0驅(qū)動(dòng)驅(qū)動(dòng)輸出輸入輸出輸入 74LS244三態(tài)緩沖器功能表三態(tài)緩沖器功能表7.2 單片機(jī)單片機(jī)簡(jiǎn)單簡(jiǎn)單I/O擴(kuò)展擴(kuò)展一、利用一、利用TTL、CMOS集成電路來(lái)擴(kuò)展集成電路來(lái)擴(kuò)展1、用鎖存器擴(kuò)展簡(jiǎn)單的、用鎖存器擴(kuò)展簡(jiǎn)單的8位輸出口位輸出口 8031 P2.7 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 /WR74LS377/ED7 Q7D6 Q6D5 Q5D4 Q4D3 Q3D2 Q2D1 Q1D0 Q0/CP 輸出設(shè)備輸出設(shè)備D7D6D5D4D3D2D1D074LS377為為8D鎖存器,八入八出

24、,一時(shí)鐘鎖存器,八入八出,一時(shí)鐘CP,一鎖存允許一鎖存允許/E。/E = 0時(shí),時(shí),CP 的上升沿,輸入數(shù)據(jù)并鎖存。的上升沿,輸入數(shù)據(jù)并鎖存。MOV DPTR,#7FFFH ;指向指向74LS377MOV A,#data ;取輸出的數(shù)據(jù)取輸出的數(shù)據(jù)MOVX DPTR,A ;通過(guò)通過(guò)74LS377送出數(shù)據(jù)送出數(shù)據(jù)P2.7接接 /E , 所以,所以,74LS377的口地址為的口地址為7FFFH。P0口是數(shù)據(jù)總線口,作口是數(shù)據(jù)總線口,作I / O口用時(shí)只能分時(shí)使用,為此,輸出口用時(shí)只能分時(shí)使用,為此,輸出數(shù)據(jù)時(shí)需要鎖存數(shù)據(jù)時(shí)需要鎖存。2、用鎖存器擴(kuò)展簡(jiǎn)單的八位輸入口、用鎖存器擴(kuò)展簡(jiǎn)單的八位輸入口 外

25、設(shè)與單片機(jī)在傳輸數(shù)據(jù)速度上存在著一定的差異,為了外設(shè)與單片機(jī)在傳輸數(shù)據(jù)速度上存在著一定的差異,為了 保證數(shù)據(jù)能被單片機(jī)正確地接收,應(yīng)采取以下電路:保證數(shù)據(jù)能被單片機(jī)正確地接收,應(yīng)采取以下電路:輸入設(shè)備輸入設(shè)備STBIN7IN6IN5IN4IN3IN2IN1IN0 8031 P2.6 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.00INTRD 74LS373 GQ7 D7Q6 D6Q5 D5Q4 D4Q3 D3Q2 D2Q1 D1Q0 D0E1在在STB的下降沿的下降沿,將數(shù)據(jù)鎖存入將數(shù)據(jù)鎖存入74LS373/E控制著控制著74LS373的輸出的輸出,由由P2.6

26、和和/RD相或控制相或控制,所以所以74LS373的口地址為的口地址為BFFFH。例、設(shè)將上圖例、設(shè)將上圖74LS373中數(shù)據(jù)送入中數(shù)據(jù)送入8031片內(nèi)數(shù)據(jù)存儲(chǔ)器中首地片內(nèi)數(shù)據(jù)存儲(chǔ)器中首地址為址為50H的數(shù)據(jù)區(qū)。寫(xiě)出相應(yīng)中斷系統(tǒng)初始化及中斷服務(wù)程序。的數(shù)據(jù)區(qū)。寫(xiě)出相應(yīng)中斷系統(tǒng)初始化及中斷服務(wù)程序。中斷系統(tǒng)初始化程序:中斷系統(tǒng)初始化程序:PINT:SETB IT0 ;/INT0選為下降沿觸發(fā)方式選為下降沿觸發(fā)方式 SETB EA ;CPU開(kāi)中斷開(kāi)中斷 MOV R0,#50H ;置數(shù)據(jù)區(qū)首址置數(shù)據(jù)區(qū)首址 SETB EX0 ;/INT0中斷允許中斷允許中斷服務(wù)程序:中斷服務(wù)程序: ORG 0003H

27、PINT0: AJMP INT0 ORG 1000HINT0: MOV DPTR,#0BFFFH ;指向指向74LS373擴(kuò)展輸入擴(kuò)展輸入口口 MOVX A,DPTR ;8031讀入數(shù)據(jù)讀入數(shù)據(jù) MOV R0,A ;輸入數(shù)據(jù)送數(shù)據(jù)區(qū)輸入數(shù)據(jù)送數(shù)據(jù)區(qū) INC R0 RETI3、用三態(tài)門擴(kuò)展、用三態(tài)門擴(kuò)展8位輸入并行口位輸入并行口74LS244是是8位三態(tài)門,當(dāng)位三態(tài)門,當(dāng)/1G、/2G均為低電平時(shí),允許輸入均為低電平時(shí),允許輸入數(shù)據(jù);否則,為高阻態(tài)。數(shù)據(jù);否則,為高阻態(tài)。輸入設(shè)備輸入設(shè)備IN7IN6IN5IN4IN3IN2IN1IN0 8031 P2.6 P0.7 P0.6 P0.5 P0.4

28、P0.3 P0.2 P0.1 P0.0RD1G2 74LS244 1Y1 1A11Y2 1A21Y3 1A31Y4 1A42Y1 2A12Y2 2A22Y3 2A32Y4 2A4G1G27.2.2 可編程通用并行接口可編程通用并行接口8255A30 在與外設(shè)相連時(shí),根據(jù)不同的初始化編程可用于在與外設(shè)相連時(shí),根據(jù)不同的初始化編程可用于無(wú)條無(wú)條件傳送、查詢式傳送、中斷式傳送件傳送、查詢式傳送、中斷式傳送,以完成單片機(jī)與外設(shè),以完成單片機(jī)與外設(shè)的數(shù)據(jù)交換。的數(shù)據(jù)交換。 8255是一種是一種8位位并行并行I/O接口芯片,接口芯片,8255有有3個(gè)個(gè)8位的并位的并行口:行口:PA、PB、PC,3種工作方

29、式種工作方式。其中,。其中,PC口口具有具有按按位位進(jìn)行操作功能。進(jìn)行操作功能。1、 8255的內(nèi)部結(jié)構(gòu)和引腳I/OI/OI/OI/OD7D0PA7PA0PC7PC4PC3PC0PB7PB0CS數(shù)據(jù)總線緩沖A組控制讀/寫(xiě)控制邏輯A0A1RESETWRRDA組端口A(8)A組端口C(4)B組端口B(8)B組控制上半部B組端口C(4)下半部31雙向三態(tài)雙向三態(tài)輸入輸出輸入輸出都鎖存都鎖存輸入三態(tài)輸入三態(tài)輸出鎖存輸出鎖存和和CPU相連相連和外設(shè)相連和外設(shè)相連內(nèi)部控制電路內(nèi)部控制電路控制控制寄存器寄存器3種工作方式種工作方式3個(gè)個(gè)8位的并行口位的并行口PA、PB、PC1個(gè)個(gè)控制寄存器控制寄存器8255

30、的引腳RESET8255APA0PA1PA2PA3PB0PB1PB2PC0PC1PC2PC3PC4PC5PC6PC7RDA0A1CSGNDD0D1D2D3D4D5D6D7PA4PA5PA6PA7PB3PB4PB5PB6PB7WRVCC4321181920141516171312111059867343332313029282740393837212223242536352632(1)I/O(1)I/O口線(口線(2424條)條) PA0PA7、PB0PB7、PC0PC7為為24條雙向總線,用于條雙向總線,用于8255和外設(shè)之間傳送數(shù)據(jù)。和外設(shè)之間傳送數(shù)據(jù)。PA7PA0:PA口的并行口的并行I/

31、O數(shù)據(jù)數(shù)據(jù)線,雙向三態(tài)。線,雙向三態(tài)。PB7PB0: PB口的并行口的并行I/O數(shù)據(jù)數(shù)據(jù)線,雙向三態(tài)線,雙向三態(tài)PC7PC0: PC口的并行口的并行I/O數(shù)據(jù)數(shù)據(jù)線,雙向三態(tài)。線,雙向三態(tài)。端口端口C既可作為既可作為8位位I/O口,又可作為兩個(gè)口,又可作為兩個(gè)4位位I/O口,口,還常用來(lái)配合還常用來(lái)配合A口和口和B口工作,作口工作,作為控制信號(hào)輸出、或作為狀態(tài)信為控制信號(hào)輸出、或作為狀態(tài)信號(hào)輸入。號(hào)輸入。 8255的引腳33 (2)D0D7為數(shù)據(jù)總線,用于傳送CPU和8255之間的數(shù)據(jù)、命令和狀態(tài)字。(3)RESET:復(fù)位信號(hào),輸入高電平有效。復(fù)位后,8255所有內(nèi)部寄存器清0,所有口被置為輸

32、入方式。 (4)CS:片選線,輸入,低電平有效。當(dāng)為低電平時(shí)8255 被選中。 (5)RD:讀信號(hào)線,輸入,低電平有效。當(dāng)為低電平時(shí),所選的8255處于讀狀態(tài), 控制8255把指定口的數(shù)據(jù)信息或狀態(tài)信息輸出到數(shù)據(jù)總線D0D7上。 (6)WR:寫(xiě)信號(hào)線,輸入,低電平有效。當(dāng)為低電平時(shí)控制8255把數(shù)據(jù)總線D0D7的數(shù)據(jù)信息或控制信息寫(xiě)入指定口或寄存器中。 (二二) 控制邏輯控制邏輯這是兩組根據(jù)這是兩組根據(jù)CPU的編程的編程命令控制命令控制8255A工作的電路,工作的電路,控制寄存器用來(lái)接收控制寄存器用來(lái)接收CPU送來(lái)送來(lái)的命令字,以決定的命令字,以決定A組、組、B組組的工作方式,或?qū)Φ墓ぷ鞣绞剑?/p>

33、或?qū)口的每一口的每一個(gè)位執(zhí)行位操作。個(gè)位執(zhí)行位操作。A組控制B組控制內(nèi)部總線內(nèi)部總線(三三) 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是雙向三態(tài)的是雙向三態(tài)的8位緩沖器位緩沖器, 用用作作8255A和系統(tǒng)數(shù)據(jù)總線的接口。和系統(tǒng)數(shù)據(jù)總線的接口。 1)傳送系統(tǒng)對(duì)傳送系統(tǒng)對(duì)8255A的控制字;的控制字; 2)傳送各端口的輸入、輸出數(shù)據(jù)。傳送各端口的輸入、輸出數(shù)據(jù)。緩沖器數(shù)據(jù)總線DBoooRDWRA0A1RESETCS讀/寫(xiě)控制邏輯內(nèi)部總線內(nèi)部總線至數(shù)據(jù)端口至控制寄存器(四四) 讀讀/寫(xiě)控制邏輯寫(xiě)控制邏輯控制總線的開(kāi)放與關(guān)閉;控制總線的開(kāi)放與關(guān)閉;控制信息傳送的路徑和方向??刂菩畔魉偷穆窂胶头较?。(五五) 端

34、口尋址端口尋址A1 A0RDWRCS功能00010端口 A 數(shù)據(jù)總線01010端口 B 數(shù)據(jù)總線10010端口 C 數(shù)據(jù)總線00100數(shù)據(jù)總線 端口 A01100數(shù)據(jù)總線 端口 B10100數(shù)據(jù)總線 端口 C11100數(shù)據(jù)總線 控制字寄存器8255A端口選擇表端口選擇表(六六) 方式選擇方式選擇8255ABCBDBRD WRD7D0 A0 A1 CSPBPAPC88I/OI/O44PB7 PB0PA7 PA0PC3 PC0PC7 PC4I/OI/O88I/OI/OPB7 PB0PA7 PA0PBPAPC控制或I/O控制或I/O88I/OI/OPB7 PB0PA7 PA0PBPAPCI/O控制方

35、式方式0:基本輸入輸出:基本輸入輸出方式方式1:選通輸入輸出:選通輸入輸出方式方式2:雙向傳送:雙向傳送二、二、8255A的控制字的控制字1、方式選擇控制字、方式選擇控制字8255A有有3種基本的工作方式種基本的工作方式,在對(duì),在對(duì)8255A進(jìn)行初始化編程時(shí),進(jìn)行初始化編程時(shí),應(yīng)向控制寄存器寫(xiě)入方式選擇控制字,以規(guī)定各端口的工作方式。應(yīng)向控制寄存器寫(xiě)入方式選擇控制字,以規(guī)定各端口的工作方式。方式選擇控制字格式方式選擇控制字格式D7 D6 D5 D4 D3 D2 D1 D0下下C口口 I/O1=輸入輸入0=輸出輸出B口口I/O1=輸入輸入0=輸出輸出B組方式組方式0=方式方式0 1=方式方式1上

36、C口I/O1=輸入輸入0=輸出輸出特征位特征位 D7=1A組方式組方式: 00=方式方式0 01=方式方式1 1x=方式方式2A口口I/O1=輸入輸入0=輸出輸出例:在一個(gè)例:在一個(gè)8031系統(tǒng)中,有一片系統(tǒng)中,有一片8255芯片,其各個(gè)端口的地芯片,其各個(gè)端口的地址分別為址分別為0F8H0FBH,現(xiàn)要求各個(gè)端口的工作方式為:現(xiàn)要求各個(gè)端口的工作方式為:端口端口A 方式方式0 輸入輸入端口端口B 方式方式1 輸出輸出端口端口C(上半部)上半部) PC7 PC4 輸出輸出端口端口C(下半部)下半部) Bit3 輸入輸入要求:進(jìn)行初始化編程要求:進(jìn)行初始化編程10011001分析:根據(jù)分析:根據(jù)8

37、255工作模式可確定方式控制字工作模式可確定方式控制字95H初始化編程:初始化編程:MOV A,#95HMOV R0, #0FBHMOVX R0, A2、C口按位置位口按位置位/復(fù)位控制字復(fù)位控制字端口端口C常用作控制或應(yīng)答信號(hào),通過(guò)對(duì)常用作控制或應(yīng)答信號(hào),通過(guò)對(duì)8255A的控制口寫(xiě)入按位的控制口寫(xiě)入按位置位置位/復(fù)位控制字,可使復(fù)位控制字,可使C口的任一個(gè)引腳的輸出單獨(dú)置口的任一個(gè)引腳的輸出單獨(dú)置1或置或置0。C口按位置位口按位置位/復(fù)位控制字格式復(fù)位控制字格式D7 D6 D5 D4 D3 D2D1 D01 置位置位 0 復(fù)位復(fù)位無(wú)關(guān)位無(wú)關(guān)位特征位特征位 D7 = 0000 選中選中PC0

38、001 選中選中PC1 111 選中選中PC7位選位選擇擇例:要使端口例:要使端口C的的bit3置位的控制字為:置位的控制字為:00000111B; MOV A,00000111B MOV R0, #0FBH MOVX R0, A 而使端口而使端口C的的bit3復(fù)位的控制字為:復(fù)位的控制字為:00000110B ; MOV A,00000110B MOV R0, #0FBH MOVX R0, A三、三、8255A的工作方式的工作方式1、方式、方式 0基本輸入輸出方式基本輸入輸出方式適用于不需要應(yīng)答信號(hào)的簡(jiǎn)單適用于不需要應(yīng)答信號(hào)的簡(jiǎn)單I/O場(chǎng)合。場(chǎng)合。A口和口和B口可作為口可作為8位端口,位端口

39、,C口的高口的高4位和低位和低4位可作為兩位可作為兩個(gè)個(gè)4位的端口,且每個(gè)端口均可作為輸入口或輸出口用。位的端口,且每個(gè)端口均可作為輸入口或輸出口用。數(shù)據(jù)輸出有鎖存,數(shù)據(jù)輸出有鎖存,輸入無(wú)鎖存輸入無(wú)鎖存。例如例如:要求要求8255A的的A口和口和B口均工作于方式口均工作于方式0, A口和下口和下C口口作輸入口作輸入口, B口和上口和上C口作輸出口口作輸出口,設(shè)設(shè)8255A各端口地址為各端口地址為40H43H, 可用下列指令來(lái)設(shè)置這種工作方式:可用下列指令來(lái)設(shè)置這種工作方式:MOV A,91H;方式控制字方式控制字10010001BMOV R0, #43H MOVX R0, A ;方式控制字送控

40、制寄存器方式控制字送控制寄存器 方式方式0 0一般用于無(wú)條件傳送的場(chǎng)合一般用于無(wú)條件傳送的場(chǎng)合,不需要應(yīng)答式聯(lián)絡(luò)信號(hào),不需要應(yīng)答式聯(lián)絡(luò)信號(hào),外設(shè)總是處于準(zhǔn)備好的狀態(tài)。外設(shè)總是處于準(zhǔn)備好的狀態(tài)。 也可以用作查詢式傳送也可以用作查詢式傳送,查詢式傳送時(shí),需要有應(yīng)答信號(hào)。,查詢式傳送時(shí),需要有應(yīng)答信號(hào)??梢詫⒖梢詫 A端口、端口、B B端口作為數(shù)據(jù)口使用。端口作為數(shù)據(jù)口使用。C C端口則可用來(lái)輸出一些端口則可用來(lái)輸出一些控制信息,或輸入外設(shè)的狀態(tài)。利用控制信息,或輸入外設(shè)的狀態(tài)。利用C C端口配合端口配合A A端口和端口和B B端口完端口完成查詢式的成查詢式的I/OI/O操作。操作。 當(dāng)當(dāng)A A端

41、口和端口和B B端口以方式端口以方式1 1進(jìn)行輸入輸出時(shí),必須利用進(jìn)行輸入輸出時(shí),必須利用C C端口端口提供的固定的選通和應(yīng)答信號(hào)提供的固定的選通和應(yīng)答信號(hào), ,該方式也稱選通輸入該方式也稱選通輸入/ /輸出方式。輸出方式。 方式方式1 1的基本定義是:的基本定義是: 分成分成A A組和組和B B組,每組包含一個(gè)組,每組包含一個(gè)8 8位的數(shù)據(jù)端口和位的數(shù)據(jù)端口和1 1個(gè)個(gè)4 4位的控位的控制制/ /數(shù)據(jù)端口。數(shù)據(jù)端口。 可作輸入,也可作輸出,且輸入和輸出都可以可作輸入,也可作輸出,且輸入和輸出都可以被鎖存。被鎖存。 2. 2. 方式方式1-1-選通輸入選通輸入/ /輸出方式輸出方式規(guī)定:規(guī)定:

42、PCPC3 3PCPC5 5分配給分配給A A端口作聯(lián)絡(luò)線,端口作聯(lián)絡(luò)線,PCPC0 0PCPC2 2分配給分配給B B端口作聯(lián)絡(luò)線,端口作聯(lián)絡(luò)線, C C端口剩下的端口剩下的2 2位位PCPC7 7、PCPC6 6可作為簡(jiǎn)單的輸入可作為簡(jiǎn)單的輸入/ /輸出線使用。輸出線使用。 1) 1) 選通的輸入方式選通的輸入方式方式方式1選通輸入下對(duì)應(yīng)的控制信號(hào)圖選通輸入下對(duì)應(yīng)的控制信號(hào)圖(a) 對(duì)對(duì)A端口;端口;(b) 對(duì)對(duì)B端口端口1011I/O1011I/O 11111D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0A組工作于方式組工作于方式1輸入的

43、控制字輸入的控制字A組和組和B組工作于方式組工作于方式1輸入的控制字輸入的控制字B組工作于方式組工作于方式1輸入的控制字輸入的控制字方式方式1B端口為輸入端口為輸入PC7、PC61輸入輸入0輸出輸出PC7、PC61輸入輸入0輸出輸出A端口為輸入端口為輸入方式方式1STBAIBFAINTRAI/OPC4PC5PC3INTEA&PC7PC6PA7PA02RD8PC2PC1PC0INTEB&PB7PB0RD8INTRBIBFBSTBB(a)(b)方式方式1 1選通輸入方式下各控制信號(hào)的意義:選通輸入方式下各控制信號(hào)的意義: STB(Strobe)STB(Strobe):選通輸入信號(hào),

44、低電平有效。選通輸入信號(hào),低電平有效。A A組方式控制字中組方式控制字中對(duì)應(yīng)對(duì)應(yīng)PC4PC4;B B組方式控制字中對(duì)應(yīng)組方式控制字中對(duì)應(yīng)PC2PC2。 IBF(Input Buffer Full)IBF(Input Buffer Full):輸入緩沖器滿信號(hào),高電平有效。輸入緩沖器滿信號(hào),高電平有效。 是是8255A8255A送給外設(shè)的聯(lián)絡(luò)信號(hào),送給外設(shè)的聯(lián)絡(luò)信號(hào),A A組方式控制字中對(duì)應(yīng)組方式控制字中對(duì)應(yīng)PC5PC5;B B組組方式控制字中對(duì)應(yīng)方式控制字中對(duì)應(yīng)PC1PC1,該信號(hào)可供,該信號(hào)可供CPUCPU查詢。查詢。 該信號(hào)在選通輸入信號(hào)該信號(hào)在選通輸入信號(hào)STBSTB變低后,變低后,30

45、0 ns300 ns時(shí)間內(nèi)即變?yōu)橛袝r(shí)間內(nèi)即變?yōu)橛行У母唠娖健T谛У母唠娖?。在RDRD信號(hào)撤消后的信號(hào)撤消后的300 ns300 ns時(shí)間內(nèi)時(shí)間內(nèi)IBFIBF信號(hào)才撤消,信號(hào)才撤消,變?yōu)闊o(wú)效的低電平,這樣保證了數(shù)據(jù)傳輸?shù)目煽啃?。變?yōu)闊o(wú)效的低電平,這樣保證了數(shù)據(jù)傳輸?shù)目煽啃?。INTR(Interrupt Request)INTR(Interrupt Request):中斷請(qǐng)求信號(hào),高電平有效。中斷請(qǐng)求信號(hào),高電平有效。A A組組方式控制字中對(duì)應(yīng)方式控制字中對(duì)應(yīng)PC3PC3;B B組方式控制字中對(duì)應(yīng)組方式控制字中對(duì)應(yīng)PC0PC0。當(dāng)。當(dāng)STBSTB信號(hào)信號(hào)撤消變?yōu)楦唠娖胶?,并且撤消變?yōu)楦唠娖胶螅⑶?/p>

46、IBFIBF信號(hào)也為高電平,信號(hào)也為高電平,INTRINTR信號(hào)變?yōu)橛行盘?hào)變?yōu)橛行У母唠娖?。效的高電平?當(dāng)當(dāng)CPUCPU發(fā)出的發(fā)出的RDRD信號(hào)有效后,信號(hào)有效后,400 ns400 ns的時(shí)間內(nèi)的時(shí)間內(nèi)INTRINTR信號(hào)將撤信號(hào)將撤消,變?yōu)榈碗娖健O?,變?yōu)榈碗娖?。INTE(Interrupt Enable)INTE(Interrupt Enable):中斷允許信號(hào),高電平有效。中斷允許信號(hào),高電平有效。否則否則屏蔽中斷請(qǐng)求。屏蔽中斷請(qǐng)求。 INTEINTE的狀態(tài)的狀態(tài)是用軟件通過(guò)是用軟件通過(guò)由由C C端口置端口置1/1/置置0 0控制字來(lái)控制控制字來(lái)控制的,的,在在A A組中,使組中,使

47、PC4PC4置置“1 1”后后INTEAINTEA變高;在變高;在B B組中,使組中,使PCPC2 2置置“1 1”后后INTEBINTEB變高,變高,A A端口和端口和B B端口才允許中斷。如果端口才允許中斷。如果PCPC4 4和和PCPC2 2都置都置“0 0”,與之對(duì)應(yīng)的與之對(duì)應(yīng)的INTEINTE信號(hào)為低,則禁止中斷。信號(hào)為低,則禁止中斷。 輸入緩沖器滿狀態(tài),可供輸入緩沖器滿狀態(tài),可供CPUCPU來(lái)查詢。在選通輸入信號(hào)結(jié)束來(lái)查詢。在選通輸入信號(hào)結(jié)束后向后向CPUCPU發(fā)出中斷請(qǐng)求發(fā)出中斷請(qǐng)求信號(hào),信號(hào),INTRINTR變高變高( (中斷允許情況下中斷允許情況下) ) 在中斷服務(wù)程序中在中

48、斷服務(wù)程序中CPUCPU發(fā)出讀信號(hào)發(fā)出讀信號(hào)RDRD,RDRD的下降沿清除中斷的下降沿清除中斷請(qǐng)求。當(dāng)讀信號(hào)結(jié)束后,使輸入緩沖器滿信號(hào)請(qǐng)求。當(dāng)讀信號(hào)結(jié)束后,使輸入緩沖器滿信號(hào)IBFIBF變低,變低,IBFIBF變變低表明輸入緩沖器已空,低表明輸入緩沖器已空,通知外設(shè)可以輸入新的數(shù)據(jù)通知外設(shè)可以輸入新的數(shù)據(jù)。選通輸入方式的工作過(guò)程:選通輸入方式的工作過(guò)程: 當(dāng)外設(shè)數(shù)據(jù)已送到當(dāng)外設(shè)數(shù)據(jù)已送到8255A8255A某個(gè)端口的數(shù)據(jù)線上時(shí),就發(fā)出選某個(gè)端口的數(shù)據(jù)線上時(shí),就發(fā)出選通輸入信號(hào)通輸入信號(hào)STBSTB,將數(shù)據(jù)通過(guò),將數(shù)據(jù)通過(guò)A A端口或端口或B B端口鎖存到端口鎖存到8255A8255A的數(shù)據(jù)輸?shù)?/p>

49、數(shù)據(jù)輸入寄存器。入寄存器。STBSTB信號(hào)變低將信號(hào)變低將使使輸入緩沖器滿信號(hào)輸入緩沖器滿信號(hào)IBFIBF變高變高。輸入緩。輸入緩沖器滿意味著將阻止外設(shè)輸入新的數(shù)據(jù)。沖器滿意味著將阻止外設(shè)輸入新的數(shù)據(jù)。49A口口方式方式1 選通選通輸入輸入工作示意圖工作示意圖/RD選通的輸入方式選通的輸入方式CPUCPU如何讀取數(shù)據(jù)?如何讀取數(shù)據(jù)?1 1、采用查詢式輸入,、采用查詢式輸入,CPUCPU先查詢先查詢IBFIBF是否為高?是否為高? 若若IBFIBF為高,為高,8255A8255A的輸入緩沖器就為滿,則的輸入緩沖器就為滿,則CPUCPU可從可從8255A8255A讀入數(shù)據(jù)。讀入數(shù)據(jù)。2 2、采用中

50、斷方式傳送數(shù)據(jù),先用、采用中斷方式傳送數(shù)據(jù),先用C C端口置端口置1/1/置置0 0的控制字使相應(yīng)的控制字使相應(yīng)的端口允許中斷,也就是要使的端口允許中斷,也就是要使PC4PC4或或PC2PC2置置1 1。 這種方式的工作過(guò)程與選通輸入的情況相類似。對(duì)應(yīng)的這種方式的工作過(guò)程與選通輸入的情況相類似。對(duì)應(yīng)的C C端口也是端口也是固定分配固定分配。規(guī)定:規(guī)定:PCPC3 3、PCPC6 6、PCPC7 7分配給分配給A A端口;端口;PCPC2 2、PCPC1 1、PCPC0 0分配給分配給B B端口,端口,剩下的剩下的2 2位位PCPC4 4、PCPC5 5可作為簡(jiǎn)單的輸入可作為簡(jiǎn)單的輸入/ /輸出

51、線使用。輸出線使用。 當(dāng)控制字的當(dāng)控制字的D D3 3位為位為“1 1”時(shí),時(shí),PCPC4 4、PCPC5 5作輸入;當(dāng)控制字的作輸入;當(dāng)控制字的D D3 3位為位為“0 0”時(shí),時(shí),PCPC4 4、PCPC5 5作輸出。作輸出。 2) 2) 選通的輸出方式選通的輸出方式方式方式l輸出時(shí)輸出時(shí)C端口對(duì)端口對(duì)A、B端口的控制圖端口的控制圖(a) 對(duì)對(duì)A端口;端口;(b) 對(duì)對(duì)B端口端口1010I/O1010I/O 10110D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0A組工作于方式組工作于方式1輸出的控制字輸出的控制字A組和組和B組工作于方式組

52、工作于方式1輸出的控制字輸出的控制字B組工作于方式組工作于方式1輸出的控制字輸出的控制字方式方式1B端口為輸出端口為輸出PC5、PC41輸入輸入0輸出輸出PC5、PC41輸入輸入0輸出輸出A端口為輸出端口為輸出方式方式1ACKAOBFAINTRAI/OPC6PC7PC3INTEA&PC5PC4PA7PA02WR8PC2PC1PC0INTEB&PB7PB0WR8INTRBOBFBACKB(a)(b) 方式方式1 1選通輸出方式各控制信號(hào)的意義:選通輸出方式各控制信號(hào)的意義: OBF(Output Buffer Fu11)OBF(Output Buffer Fu11):輸出緩沖器滿

53、信號(hào),低電平有效。輸出緩沖器滿信號(hào),低電平有效。A A組方式控制字中對(duì)應(yīng)組方式控制字中對(duì)應(yīng)PCPC7 7;B B組方式控制字中對(duì)應(yīng)組方式控制字中對(duì)應(yīng)PCPC1 1,由,由8255A8255A向向外設(shè)發(fā)出低電平的外設(shè)發(fā)出低電平的OBFOBF信號(hào)。信號(hào)。 輸出指令寫(xiě)信號(hào)輸出指令寫(xiě)信號(hào)WRWR的上升沿出現(xiàn)后,將的上升沿出現(xiàn)后,將OBFOBF信號(hào)置成有效低電信號(hào)置成有效低電平,當(dāng)應(yīng)答信號(hào)平,當(dāng)應(yīng)答信號(hào)ACKACK變?yōu)橛行У碗娖胶?,變?yōu)橛行У碗娖胶?,OBFOBF信號(hào)撤消變?yōu)楦唠娖?,信?hào)撤消變?yōu)楦唠娖?,ACK(Acknowledge)ACK(Acknowledge):數(shù)據(jù)接收應(yīng)答信號(hào),低電平有效。數(shù)據(jù)接收

54、應(yīng)答信號(hào),低電平有效。A A組方式控組方式控制字中對(duì)應(yīng)制字中對(duì)應(yīng)PC6PC6;B B組方式控制字中對(duì)應(yīng)組方式控制字中對(duì)應(yīng)PC2PC2,是外設(shè)的響應(yīng)信號(hào)。,是外設(shè)的響應(yīng)信號(hào)。 ACKACK信號(hào)信號(hào)有效后有效后使使OBFOBF變成無(wú)效變成無(wú)效的高電平,同時(shí)的高電平,同時(shí)使使INTRINTR信號(hào)變?yōu)橛行盘?hào)變?yōu)橛行У母唠娖?。的高電平。INTRINTR:中斷請(qǐng)求信號(hào),高電平有效。中斷請(qǐng)求信號(hào),高電平有效。A A組方式控制字中對(duì)應(yīng)組方式控制字中對(duì)應(yīng)PC3PC3;B B組方式控制字中對(duì)應(yīng)組方式控制字中對(duì)應(yīng)PC0PC0。由由8255A8255A向向CPUCPU發(fā)出中斷請(qǐng)求,要求發(fā)出中斷請(qǐng)求,要求CPUCPU

55、輸出新的數(shù)據(jù)。輸出新的數(shù)據(jù)。 當(dāng)當(dāng)ACKACK撤消后為高電平,撤消后為高電平,OBFOBF也為高電平,中斷允許信號(hào)也為高電平,中斷允許信號(hào)INTEINTE也為高時(shí),也為高時(shí),INTRINTR中斷請(qǐng)求信號(hào)被置位為高電平,中斷請(qǐng)求信號(hào)被置位為高電平, 中斷請(qǐng)求信號(hào)是在中斷請(qǐng)求信號(hào)是在WRWR有效的下降沿出現(xiàn)后使它變?yōu)闊o(wú)效的低有效的下降沿出現(xiàn)后使它變?yōu)闊o(wú)效的低電平,電平,INTEINTE:中斷允許信號(hào),高電平有效。中斷允許信號(hào),高電平有效。當(dāng)該信號(hào)為當(dāng)該信號(hào)為“1 1”時(shí),允許中時(shí),允許中斷。斷。INTEINTE是用軟件通過(guò)對(duì)是用軟件通過(guò)對(duì)C C端口置端口置1/1/置置0 0的控制字來(lái)設(shè)置的。當(dāng)?shù)目?/p>

56、制字來(lái)設(shè)置的。當(dāng)PCPC6 6置置1 1時(shí),時(shí),A A端口允許中斷;端口允許中斷;PCPC2 2置置1 1,B B端口允許中斷。反之,不允許端口允許中斷。反之,不允許中斷。中斷。 當(dāng)當(dāng)8255A8255A的輸出選通方式采用中斷與的輸出選通方式采用中斷與CPUCPU通信時(shí),通信時(shí),CPUCPU響應(yīng)中響應(yīng)中斷后,就向斷后,就向8255A8255A輸出數(shù)據(jù),輸出數(shù)據(jù), WRWR信號(hào)信號(hào)出現(xiàn),其上升沿一方面撤出現(xiàn),其上升沿一方面撤消中斷請(qǐng)求信號(hào)使消中斷請(qǐng)求信號(hào)使INTRINTR變低,表示變低,表示CPUCPU對(duì)上一次中斷已經(jīng)響應(yīng)過(guò)。對(duì)上一次中斷已經(jīng)響應(yīng)過(guò)。另一方面使另一方面使OBFOBF信號(hào)變信號(hào)變?yōu)?/p>

57、有效的為有效的低低電平,以通知外設(shè)可以接收下電平,以通知外設(shè)可以接收下一個(gè)數(shù)據(jù)。一個(gè)數(shù)據(jù)。56B口方式口方式1選通選通輸出輸出工作示意圖工作示意圖/WR 雙向方式雙向方式8255A可以向外設(shè)發(fā)送數(shù)據(jù),同時(shí)可以向外設(shè)發(fā)送數(shù)據(jù),同時(shí)CPU通過(guò)這通過(guò)這8位數(shù)位數(shù)據(jù)線又接收外設(shè)的數(shù)據(jù)。傳輸過(guò)程由據(jù)線又接收外設(shè)的數(shù)據(jù)。傳輸過(guò)程由C端口對(duì)端口對(duì)A端口進(jìn)行控制,端口進(jìn)行控制,所以稱為帶選通的雙向傳輸方式。所以稱為帶選通的雙向傳輸方式。方式方式2的基本定義:的基本定義: 只能適用于只能適用于A端口端口,一個(gè),一個(gè)8位的雙向端口位的雙向端口(A端口端口)和和1個(gè)個(gè)5位的控位的控制端口制端口(C端口端口)。 A端

58、口的輸入和輸出都可以被鎖存。在這種方式下,端口的輸入和輸出都可以被鎖存。在這種方式下,C端口中端口中高高5位位PC7PC3作為控制信號(hào)和狀態(tài)信息使用,剩下的作為控制信號(hào)和狀態(tài)信息使用,剩下的3位位PC2PC0可作為簡(jiǎn)單的輸入可作為簡(jiǎn)單的輸入/輸出線使用。輸出線使用。3. 3. 方式方式2-2-帶選通的雙向傳輸方式帶選通的雙向傳輸方式方式方式2時(shí)時(shí)C端口對(duì)端口對(duì)A端口的控制信號(hào)圖端口的控制信號(hào)圖PC3&PC2PC0PA7PA0PC7PC6PC4PC5INTE2INTE11&WRRDINTRA8OBFAACKASTBAIBFAI/O11D7D6D5D4D3D2D1D0A組工作于方式

59、組工作于方式1輸入的控制字輸入的控制字PC2PC01輸入輸入0輸出輸出B端口方式端口方式A端口端口方式方式1輸入輸入0輸出輸出B組方式組方式0方式方式01方式方式13方式方式2 2各控制信號(hào)的意義:各控制信號(hào)的意義:STBSTB:選通信號(hào),低電平有效。選通信號(hào),低電平有效。對(duì)應(yīng)于對(duì)應(yīng)于PCPC4 4,由外設(shè)提供給,由外設(shè)提供給8255A8255A。該信號(hào)負(fù)責(zé)把外設(shè)送到該信號(hào)負(fù)責(zé)把外設(shè)送到8255A8255A的數(shù)據(jù)送入輸入鎖存器。的數(shù)據(jù)送入輸入鎖存器。IBFIBF:輸入緩沖器滿信號(hào),高電平有效。輸入緩沖器滿信號(hào),高電平有效。對(duì)應(yīng)對(duì)應(yīng)PCPC5 5,是,是8255A8255A送給送給CPUCPU的

60、狀態(tài)信息,供的狀態(tài)信息,供CPUCPU查詢用。當(dāng)該信號(hào)有效時(shí),表示當(dāng)前已查詢用。當(dāng)該信號(hào)有效時(shí),表示當(dāng)前已經(jīng)有一個(gè)新的數(shù)據(jù)送到了輸入鎖存器中,經(jīng)有一個(gè)新的數(shù)據(jù)送到了輸入鎖存器中,CPUCPU可以取走??梢匀∽?。OBFOBF:輸出緩沖器滿信號(hào),低電平有效。輸出緩沖器滿信號(hào),低電平有效。對(duì)應(yīng)對(duì)應(yīng)PCPC7 7,由,由8255A8255A發(fā)給發(fā)給外設(shè)的選通信號(hào),當(dāng)外設(shè)的選通信號(hào),當(dāng)OBFOBF有效時(shí),表明有效時(shí),表明CPUCPU已經(jīng)將一個(gè)數(shù)據(jù)寫(xiě)入已經(jīng)將一個(gè)數(shù)據(jù)寫(xiě)入8255A8255A的的A A端口中,通知外設(shè)可以取走數(shù)據(jù)。端口中,通知外設(shè)可以取走數(shù)據(jù)。ACKACK:數(shù)據(jù)接收應(yīng)答信號(hào),低電平有效。數(shù)據(jù)接收應(yīng)答信號(hào),低電平有效。對(duì)應(yīng)對(duì)應(yīng)PCPC6

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論