關(guān)于51單片機(jī)P0口的結(jié)構(gòu)及上拉問題
1.P0作為地址數(shù)據(jù)總線時(shí),V1和V2是一起工作的,構(gòu)成推挽結(jié)構(gòu)。高電平時(shí),V1打開,V2截止;低電平時(shí),V1截止,V2打開。這種情況下不用外接上拉電阻。而且,當(dāng)V1打開,V2截止,輸出高電平的時(shí)候,因?yàn)閮?nèi)部電源直接通過V1輸出到P0口線上,因此驅(qū)動(dòng)能力(電流)可以很大,這就是為什么教科書上說可以"驅(qū)動(dòng)8個(gè)TTL負(fù)載"的原因。
2.P0作為一般端口時(shí),V1就永遠(yuǎn)的截止,V2根據(jù)輸出數(shù)據(jù)0導(dǎo)通和1截止,導(dǎo)通時(shí)拉地,當(dāng)然是輸出低電平;截止時(shí),PO口就沒有輸出了,(注意,這種情況就是所謂的高阻浮空狀態(tài)),如果加上外部上拉電阻,輸出就變成了高電平1。
3.其他端口P1 P2 P3,在內(nèi)部直接將P1口中的V1換成了上拉電阻,所以不用外接,但內(nèi)部上拉電阻太大,電流太小,有時(shí)因?yàn)殡娏鞑粔颍矔?huì)再并一個(gè)上拉電阻。
4.在某個(gè)時(shí)刻,P0口上輸出的是作為總線的地址數(shù)據(jù)信號(hào)還是作為普通I/O口的電平信號(hào),是依靠多路開關(guān)MUX來切換的.而MUX的切換,又是根據(jù)單片機(jī)指令來區(qū)分的.當(dāng)指令為外部存儲(chǔ)器/IO口讀/寫時(shí),比如 MOVX A,@DPTR ,MUX是切換到地址/數(shù)據(jù)總線上;而當(dāng)普通MOV傳送指令操作P0口時(shí),MUX是切換到內(nèi)部總線上的.
PS:
Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called “quasi- bidirectional” ports.
因?yàn)槎丝?、2、3有固定的內(nèi)部上拉,所以有時(shí)候他們被稱為"準(zhǔn)雙向"口.
Port 0, on the other hand, is considered “true” bidirectional, because when configured as an input it floats.
端口0, 從另外一方面來說,就被 認(rèn)為是"真正的"雙向,因?yàn)楫?dāng)它被設(shè)置為輸入的時(shí)候是浮空(高阻態(tài))的.
編輯:admin 最后修改時(shí)間:2018-05-18