Ch4-單片機(jī)的輸入輸出端口_第1頁(yè)
Ch4-單片機(jī)的輸入輸出端口_第2頁(yè)
Ch4-單片機(jī)的輸入輸出端口_第3頁(yè)
Ch4-單片機(jī)的輸入輸出端口_第4頁(yè)
Ch4-單片機(jī)的輸入輸出端口_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章單片機(jī)的輸入/輸出端口

4.1輸入/輸出端口結(jié)構(gòu)

4.2輸入/輸出端口負(fù)載能力4.3P1口輸出功能應(yīng)用實(shí)例4.4P3口輸入功能應(yīng)用實(shí)例

14.1輸入/輸出端口結(jié)構(gòu)8051單片機(jī)有4個(gè)8位并行I/O端口,稱(chēng)為P0、P1、P2和P3口,每個(gè)端口都各有8條I/O口線(xiàn),每條I/O口線(xiàn)都能獨(dú)立地用作輸入或輸出。在無(wú)片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這四個(gè)I/O口都可以作為通用I/O口使用。在有片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,P2口送出高8位地址,P0口分時(shí)送出低8位地址和8位數(shù)據(jù)。

21.P0口P0口某一位的結(jié)構(gòu)圖如下圖所示,它由一個(gè)輸出鎖存器、兩個(gè)三態(tài)輸入緩沖器、一個(gè)轉(zhuǎn)換開(kāi)關(guān)MUX、一個(gè)輸出驅(qū)動(dòng)電路(T1和T2)和一個(gè)與門(mén)及一個(gè)非門(mén)組成。

3(1)P0口用作通用I/O口

MUX與鎖存器的Q端接通,與門(mén)輸出為0,T1截止,輸出驅(qū)動(dòng)級(jí)就工作在需外接上拉電阻的漏極開(kāi)路方式。①P0口用作輸出口

CPU在執(zhí)行輸出指令時(shí),內(nèi)部數(shù)據(jù)總線(xiàn)的數(shù)據(jù)在“寫(xiě)鎖存器”信號(hào)的作用下,由D端進(jìn)入鎖存器,取反后出現(xiàn)在Q端,再經(jīng)過(guò)T2反向,則P0.X引腳上的數(shù)據(jù)就是內(nèi)部總線(xiàn)的數(shù)據(jù)。由于T2為漏極開(kāi)路輸出,故此時(shí)必須外接上拉電阻。04②P0口用作輸入口數(shù)據(jù)可以讀自端口的鎖存器,也可以讀自端口的引腳,這要看輸入操作執(zhí)行的是“讀鎖存器”指令還是“讀引腳”指令。方式1:讀引腳。CPU在執(zhí)行“MOV”類(lèi)輸入指令時(shí)(如:MOVA,P0),內(nèi)部產(chǎn)生的操作信號(hào)是“讀引腳”。P0.X引腳上的數(shù)據(jù)經(jīng)過(guò)緩沖器2讀入到內(nèi)部總線(xiàn)。注意,在讀引腳時(shí),必須先向電路中的鎖存器寫(xiě)入1,使T2截止,P0.X引腳處于懸浮狀態(tài),可作為高阻抗輸入。MOV類(lèi)指令5②P0口用作輸入口方式2:讀鎖存器。CPU在執(zhí)行“讀-改-寫(xiě)”類(lèi)輸入指令時(shí)(如:ANLP0,A),內(nèi)部產(chǎn)生的操作信號(hào)是“讀鎖存器”,鎖存器中的數(shù)據(jù)經(jīng)過(guò)緩沖器1送到內(nèi)部總線(xiàn),然后與A的內(nèi)容進(jìn)行邏輯“與”,結(jié)果送回P0的端口鎖存器并出現(xiàn)在引腳。除了MOV類(lèi)指令外,其他的讀口操作指令都屬于這種情況。6(2)P0口用作地址/數(shù)據(jù)總線(xiàn)

MUX將地址/數(shù)據(jù)線(xiàn)與T2接通,同時(shí)與門(mén)輸出有效。若地址/數(shù)據(jù)線(xiàn)為1,則T1導(dǎo)通,T2截止,P0口輸出為1;反之T1截止,T2導(dǎo)通,P0口輸出為0。當(dāng)數(shù)據(jù)從P0口輸入時(shí),讀引腳使三態(tài)緩沖器2打開(kāi),端口上的數(shù)據(jù)經(jīng)緩沖器2送到內(nèi)部總線(xiàn)。

7(3)P0口小結(jié)

①P0口既可作地址/數(shù)據(jù)總線(xiàn)使用,也可作通用I/O口使用。當(dāng)P0口作地址/數(shù)據(jù)總線(xiàn)使用時(shí),就不能再作通用I/O口使用了。②P0口作輸出口使用時(shí),輸出級(jí)屬漏極開(kāi)路,必須外接上拉電阻,才有高電平輸出。③P0口作輸入口讀引腳時(shí),應(yīng)先向鎖存器寫(xiě)1,使T2截止,不影響輸入電平。

82.P1口P1口是唯一的單功能口,僅能作為通用I/O口使用。由于在其輸出端接有上拉電阻,故可以直接輸出而無(wú)需外接上拉電阻。同P0口一樣,當(dāng)作輸入口時(shí),必須先向鎖存器寫(xiě)“1”,使場(chǎng)效應(yīng)管T截止。

93.P2口圖中的控制信號(hào)C決定轉(zhuǎn)換開(kāi)關(guān)MUX的位置:當(dāng)C=0時(shí),MUX撥向下方,P0口為通用I/O口;當(dāng)控制信號(hào)C=1時(shí),MUX撥向上方,P0口作為地址總線(xiàn)使用。在實(shí)際應(yīng)用中,P2口通常作為高8位地址總線(xiàn)使用。

104.P3口P3口用作通用I/O口時(shí),第二輸出功能信號(hào)W=1,P3口的每一位都可定義為輸入或輸出,其工作原理同P1口類(lèi)似。在真正的應(yīng)用電路中,P3口的第二功能顯得更為重要。11

P3口的第二功能

引腳第二功能功能說(shuō)明P3.0RXD串行口輸入P3.1TXD串行口輸出P3.2外部中斷0輸入P3.3外部中斷1輸入P3.4T0定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)輸入P3.5T1定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)輸入P3.6片外RAM寫(xiě)選通信號(hào)(輸出)P3.7片外RAM讀選通信號(hào)(輸出)124.2輸入/輸出端口負(fù)載能力

P0口的輸出級(jí)與P1~P3口的輸出級(jí)在結(jié)構(gòu)上不同,其輸出級(jí)無(wú)上拉電阻,因此它們的負(fù)載能力和接口要求也不相同。P0口的每一位能驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。在作為通用I/O口使用時(shí),輸出驅(qū)動(dòng)電路是開(kāi)漏的,所以,驅(qū)動(dòng)集電極開(kāi)路(OC門(mén))電路或漏級(jí)開(kāi)路電路需外接上拉電阻。當(dāng)作為地址/數(shù)據(jù)總線(xiàn)使用時(shí)(T1可以提供上拉電平),口線(xiàn)不是開(kāi)漏的,無(wú)需外接上拉電阻。P1~P3口的每一位能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。它們的輸出驅(qū)動(dòng)電路有上拉電阻,所以可以方便地由集電極開(kāi)路(OC門(mén))電路或漏級(jí)開(kāi)路電路所驅(qū)動(dòng),而無(wú)需外接上拉電阻。對(duì)于80C51單片機(jī)(CHMOS),端口只能提供幾毫安的輸出電流,故當(dāng)作輸出口去驅(qū)動(dòng)一個(gè)普通晶體管的基極時(shí),應(yīng)在端口與晶體管基極間串聯(lián)一個(gè)電阻,以限制高電平輸出時(shí)的電流。134.3P1口輸出功能應(yīng)用實(shí)例

【例1】P1口做輸出口,控制八只發(fā)光二極管循環(huán)點(diǎn)亮(P1口輸出低電平時(shí)發(fā)光二極管被點(diǎn)亮)。

解:由于發(fā)光二極管低電平點(diǎn)亮,所以,需要哪個(gè)發(fā)光二極管點(diǎn)亮,只需在相應(yīng)的端口輸出邏輯0即可。由于每個(gè)發(fā)光二極管點(diǎn)亮后要持續(xù)一段時(shí)間才熄滅,再使下個(gè)發(fā)光二極管點(diǎn)亮,因此需要編寫(xiě)延時(shí)子程序,供主程序反復(fù)調(diào)用。本例中,延時(shí)子程序采用指令循環(huán)來(lái)實(shí)現(xiàn)。

地址機(jī)器碼程序注釋

ORG0000H0000H021000

LJMPMAIN

ORG1000H1000H74FE

MAIN:MOVA,#0FEH1002HF590

LOOP:MOVP1,A1004H12100A

LCALLDELAY;延時(shí)1007H23

RLA;左移位1008H80F8

SJMPLOOP;循環(huán)100AH7FFF

DELAY:MOVR7,#0FFH;延時(shí)子程序100CH7EFA

L1:MOVR6,#0FAH100EHDEFE

DJNZR6,$1010HDFFA

DJNZR7,L11012H22

RET

END14【例2】利用P1.0輸出高低電平,控制繼電器的開(kāi)合,以實(shí)現(xiàn)對(duì)外部裝置(如燈L1和L2)的控制。

解:將單片機(jī)的P1.0接繼電器控制端JIN,繼電器的JZ通過(guò)K1接地,常開(kāi)觸點(diǎn)JK接L1,常閉觸點(diǎn)JB接L2。編制程序,使P1.0電平變化,高電平時(shí)繼電器吸合,常開(kāi)觸點(diǎn)閉合,L1點(diǎn)亮,L2熄滅;低電平時(shí)繼電器不工作,常閉觸點(diǎn)閉合,L2點(diǎn)亮,L1熄滅。

15參考程序:

地址機(jī)器碼程序注釋

ORG0000H0000H022000

LJMPMAIN

ORG2000H2000HC290

MAIN:CLRP1.0;P1.0送低電平2002H12200C

LCALLDELAY;延時(shí)2005HD290

SETBP1.0;P1.0送高電平2007H12200C

LCALLDELAY;延時(shí)200AH80F4

SJMPMAIN;循環(huán)200CH7F06

DELAY:MOVR7,#06H;延時(shí)子程序200EH7EFF

L1:MOVR6,#0FFH2010H7DFA

L2:MOVR5,#0FAH2012HDDFE

DJNZR5,$2014HDEFA

DJNZR6,L22016HDFF6

DJNZR7,L12018H22

RET

END164.4P3口輸入功能應(yīng)用實(shí)例

【例3】P3口的P3.0連接一個(gè)開(kāi)關(guān),作為輸入端;P1口的P1.0~P1.7連接八只發(fā)光二極管,作為輸出端。要求用P3.0來(lái)控制P1輸出的循環(huán)燈,即當(dāng)P3.0輸出高電平時(shí),控制P1口的發(fā)光二極管左循環(huán)點(diǎn)亮;當(dāng)P3.0輸出低電平時(shí),控制P1口的發(fā)光二極管右循環(huán)點(diǎn)亮(P1口輸出低電平時(shí)發(fā)光二極管被點(diǎn)亮)。

解:在主程序中要對(duì)P3.0的狀態(tài)進(jìn)行判斷。如果P3.0為高電平,則使用循環(huán)左移指令。如果P3.0為低電平,則使用循環(huán)右移指令。延時(shí)子程序同例1。17參考程序:地址機(jī)器碼程序注釋

ORG0000H0000H023000

LJMPMAIN

ORG3000H3000H74FE

MAIN:MOVA,#0FEH3002HF590

LOOP:MOVP1,A3004H123010

LCALLDELAY;延時(shí)3007H20B003

JBP3.0,L1300AH03

RRA;右移位300BH80F5

SJMPLOOP;循環(huán)300DH23

L1:RL

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論