在單片機(jī)" title="單片機(jī)">單片機(jī)家族的眾多成員中,MCS-51" title="MCS-51">MCS-51系列單片機(jī)以其優(yōu)越的性能,、成熟的技術(shù),、高可靠性和高性價(jià)比,占領(lǐng)了工業(yè)測(cè)控和自動(dòng)化工程應(yīng)用的主要市場(chǎng),并成為國(guó)內(nèi)單片機(jī)應(yīng)用領(lǐng)域中的主流機(jī)型,。
MCS-51單片機(jī)的并行口有P0,、P1、P2和P3,,由于P0口是地址/數(shù)據(jù)總線口,,P2口是高8位地址線,,P3口具有第二功能,這樣,,真正可以作為雙向I/O口應(yīng)用的就只有P1口了,。這在大多數(shù)應(yīng)用中是不夠的,因此,,大部分MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)都不可避免的需要對(duì)P0口進(jìn)行擴(kuò)展,。
由于MCS-51單片機(jī)的外部RAM和I/O口是統(tǒng)一編址的,因此,,可以把單片機(jī)外部64K字節(jié)RAM空間的一部分作為擴(kuò)展外圍I/O口的地址空間,。這樣,單片機(jī)就可以像訪問(wèn)外部RAM存儲(chǔ)器單元那樣訪問(wèn)外部的P0口接口芯片,,以對(duì)P0口進(jìn)行讀/寫(xiě)操作,。用于P0口擴(kuò)展的專用芯片很多。如8255可編程并行P0口擴(kuò)展芯片,、8155可編程并行P0口擴(kuò)展芯片等,。本文重點(diǎn)介紹采用具有三態(tài)緩沖的74HC244芯片和輸出帶鎖存的74HC377芯片對(duì)P0口進(jìn)行的并行擴(kuò)展的具體方法。
1輸入接口的擴(kuò)展
MCS-51單片機(jī)的數(shù)據(jù)總線是一種公用總線,,不能被獨(dú)占使用,,這就要求接在上面的芯片必須具備“三態(tài)”功能,因此擴(kuò)展輸入接口實(shí)際上就是要找一個(gè)能夠用于控制且具備三態(tài)輸出的芯片,。以便在輸入設(shè)備被選通時(shí),,它能使輸入設(shè)備的數(shù)據(jù)線和單片機(jī)的數(shù)據(jù)總線直接接通;而當(dāng)輸入設(shè)備沒(méi)有被選通時(shí),,它又能隔離數(shù)據(jù)源和數(shù)據(jù)總線(即三態(tài)緩沖器為高阻抗?fàn)顟B(tài)),。
1.174HC244芯片的功能 74ls24474hc244pdf
如果輸入的數(shù)據(jù)可以保持比較長(zhǎng)的時(shí)間(比如鍵盤),簡(jiǎn)單輸入接口擴(kuò)展通常使用的典型芯片為74HC244,,由該芯片可構(gòu)成三態(tài)數(shù)據(jù)緩沖器,。74HC244芯片的引腳排列如圖1所示。
74HC244芯片內(nèi)部共有兩個(gè)四位三態(tài)緩沖器,,使用時(shí)可分別以1C和2G作為它們的選通工作信號(hào),。當(dāng)1C和2G都為低電平時(shí),輸出端Y和輸入端A狀態(tài)相同,;當(dāng)1G和2G都為高電平時(shí),,輸出呈高阻態(tài)。
1.2應(yīng)用74HC244芯片擴(kuò)展輸入接口
圖2是采用74HC2244芯片進(jìn)行輸入接口擴(kuò)展的原理電路,,圖3是讀P0口的時(shí)序,。由圖3可以看出,當(dāng)P2.7和RD同為低電平時(shí),,74HC2244才能將輸入端的數(shù)據(jù)送到單片機(jī)的P0口,。其中,,P2.7決定了74HC244的地址,0000H-7FFFH(共32K)地址都可以訪問(wèn)這個(gè)單元,,這就是用線選法所帶來(lái)的副作用,。通常可選擇其中的最高地址作為這個(gè)芯片的地址來(lái)寫(xiě)程序,,如這個(gè)芯片的地址是7FFFH,。但這僅僅是一種習(xí)慣,并不是規(guī)定,,當(dāng)然也完全可以用0000H作為這個(gè)芯片的地址,。當(dāng)確定了地址之后,其接口的輸入操作程序如下:
MOVDPTR,,#7FFFH
MOVXA,@DPTR
其中MOVX類指令是MCS-5l單片機(jī)專用于對(duì)外部RAM進(jìn)行操作的指令,。由于外部I/O與外部RAM是同一接口,所以一般使用這條指令對(duì)外部I/O進(jìn)行操作,。一旦執(zhí)行到MOVX類指令,,單片機(jī)就會(huì)在RD或WR(根據(jù)輸入還是輸出指令)引腳產(chǎn)生一個(gè)下降沿,這個(gè)下降沿的波形與P2.7相或,,則會(huì)在或門的輸出口也產(chǎn)生一個(gè)下降沿,,這個(gè)下降沿將使74HC244的輸出與輸入接通,這樣,,輸入設(shè)備的數(shù)據(jù)就可以被MCS-51單片機(jī)從總線上讀取。
需要說(shuō)明的是,,74HC244是不帶鎖存的,,因此,如果輸人設(shè)備提供的數(shù)據(jù)時(shí)間比較短,,那么就要用帶鎖存的芯片進(jìn)行擴(kuò)展,,如74HC373,74HC573等,。
2輸出接口的擴(kuò)展
由于單片機(jī)的數(shù)據(jù)總線是為各個(gè)芯片服務(wù)的,,一般不可能為一個(gè)輸出而一直保持一種狀態(tài),因此,,輸出接口的主要功能是進(jìn)行數(shù)據(jù)保持(即數(shù)據(jù)鎖存),,也就是說(shuō),輸出接口的擴(kuò)展實(shí)際上就是擴(kuò)展鎖存器,。
2.174HC377芯片的功能
輸出接口擴(kuò)展通常用74HC377芯片來(lái)實(shí)現(xiàn),。該芯片是一個(gè)帶允許端的8D鎖存器,其芯片的引腳如圖4所示,,各相關(guān)引腳的功能如下:
◇D0~D7為8位數(shù)據(jù)輸入端,;
◇Q0~Q7為8位數(shù)據(jù)輸出端,;
◇G為使能控制端;
◇CLK為時(shí)鐘信號(hào),,上升沿鎖存數(shù)據(jù),。
表1所列是該芯片的真值表。
2.2應(yīng)用74HC377芯片擴(kuò)展輸出接口
圖5是利用74HC377進(jìn)行輸出接口擴(kuò)展的電路連接圖,。圖中,,74HC377的G端與P2.6口相連,其地址是x0xxxxxxB,,如果把“x”全置為1,,則為1011111111111111B,這樣,,0BFFFH就是該芯片的地址了,。
由于MCS-51的WR是與74HC377的CLK端相連的,當(dāng)WR信號(hào)由低變高時(shí),,數(shù)據(jù)總線上的數(shù)據(jù)為輸出數(shù)據(jù),,而此時(shí)P2.6輸出低電平,G有效,,因此,,數(shù)據(jù)就被鎖存。其相關(guān)程序如下:
MOVDPTR,,#0BFFFH
MOVA,,#DATA
MOVX@DPTR,A
此外,,利用74HC373芯片,、74HC573芯片也可以進(jìn)行P0口的擴(kuò)展。
3接口擴(kuò)展實(shí)例
在實(shí)際的應(yīng)用系統(tǒng)中,,可能需要同時(shí)擴(kuò)展多個(gè)I/O口,,以滿足應(yīng)用系統(tǒng)的需要。而各個(gè)輸入,、輸出擴(kuò)展I/O芯片應(yīng)通過(guò)74LS138進(jìn)行“全地址”譯碼選通,,從而分時(shí)復(fù)用數(shù)據(jù)總線DB(DataBus)。為了防止過(guò)渡干擾對(duì)譯碼選通邏輯造成的影響,,單片機(jī)系統(tǒng)所用的外圍芯片一般均設(shè)為雙步選通方式,,即除了配置譯碼選通端外,還應(yīng)配置使能選通端,。而74HC244芯片本身沒(méi)有明顯的片選和讀/寫(xiě)控制端,,設(shè)計(jì)時(shí)通常采用譯碼和讀控制信號(hào)來(lái)同時(shí)控制74HC244的CS,從而有效地抑制輸入/輸出數(shù)據(jù)信息的過(guò)渡干擾,。
此電路輸入口擴(kuò)展采用2個(gè)74HC244,。其輸入端接鍵盤或其它數(shù)字信號(hào),;而輸出口擴(kuò)展則選用2個(gè)74HC377,以用于控制數(shù)碼管,、發(fā)光二極管,、繼電器等。其詳細(xì)電路原理圖如圖6所示,。
其部分代碼如下:
51單片機(jī)的數(shù)據(jù)/地址/控制總線端口都有一定的負(fù)載能力,,P0口可驅(qū)動(dòng)8個(gè)TTL門電路,P1口,、P2口和P3口可驅(qū)動(dòng)4個(gè)TTL門電路,。負(fù)載超過(guò)上述規(guī)定一般應(yīng)加驅(qū)動(dòng)器??偩€驅(qū)動(dòng)器可以使用TTL型三態(tài)緩沖門電路74HC244,、74HC245。另外,,在擴(kuò)展口線的同時(shí),,還應(yīng)兼顧配置總線驅(qū)動(dòng)器,注意總線負(fù)載平衡的配置,。在總線上適當(dāng)安裝上拉電阻可以提高總線信號(hào)傳輸?shù)目煽啃浴?/p>
此外,,一個(gè)系統(tǒng)可能由于存在各種干擾及不穩(wěn)定因素而出現(xiàn)故障,為解決這一問(wèn)題,,設(shè)計(jì)時(shí)也可以從軟件設(shè)計(jì)方面采取一些措施,。
4結(jié)束語(yǔ)
與其它51單片機(jī)P0口擴(kuò)展相比,本文介紹的輸入/輸出口的P0并行擴(kuò)展方法,,可以很方便的實(shí)現(xiàn)P0口的并行擴(kuò)展,。所設(shè)計(jì)的接口擴(kuò)展電路已成功用于實(shí)際系統(tǒng)中。實(shí)際運(yùn)行表明,,采用該方法擴(kuò)展的P0口系統(tǒng)能夠可靠、穩(wěn)定的運(yùn)行,。