51單片機(jī)IO口工作原理——P0、P1
讀-修改-寫(xiě)指令的特點(diǎn)是,從端口輸入(讀)信號(hào),在單片機(jī)內(nèi)加以運(yùn)算(修改)后,再輸出(寫(xiě))到該端口上。下面是幾條讀--修改-寫(xiě)指令的例子。
2、作為地址/數(shù)據(jù)復(fù)用口使用時(shí)的工作原理
例如:控制信號(hào)為1,地址信號(hào)為“0”時(shí),與門(mén)輸出低電平,V1管截止;反相器輸出高電平,V2管導(dǎo)通,輸出引腳的地址信號(hào)為低電平。請(qǐng)看下圖(蘭色字體為電平):
反之,控制信號(hào)為“1”、地址信號(hào)為“1”,“與門(mén)”輸出為高電平,V1管導(dǎo)通;反相器輸出低電平,V2管截止,輸出引腳的地址信號(hào)為高電平。請(qǐng)看下圖(蘭色字體為電平):
可見(jiàn),在輸出“地址/數(shù)據(jù)”信息時(shí),V1、V2管是交替導(dǎo)通的,負(fù)載能力很強(qiáng),可以直接與外設(shè)存儲(chǔ)器相連,無(wú)須增加總線驅(qū)動(dòng)器.
如果該指令是輸出數(shù)據(jù),如MOVX @DPTR,A(將累加器的內(nèi)容通過(guò)P0口數(shù)據(jù)總線傳送到外部RAM中),則多路開(kāi)關(guān)“控制”信號(hào)為‘1’,“與門(mén)”解鎖,與輸出地址信號(hào)的工作流程類(lèi)似,數(shù)據(jù)據(jù)由“地址/數(shù)據(jù)”線→反相器→V2場(chǎng)效應(yīng)管柵極→V2漏極輸出。
通過(guò)以上的分析可以看出,當(dāng)P0作為地址/數(shù)據(jù)總線使用時(shí),在讀指令碼或輸入數(shù)據(jù)前,CPU自動(dòng)向P0口鎖存器寫(xiě)入0FFH,破壞了P0口原來(lái)的狀態(tài)。因此,不能再作為通用的I/O端口。大家以后在系統(tǒng)設(shè)計(jì)時(shí)務(wù)必注意,即程序中不能再含有以P0口作為操作數(shù)(包含源操作數(shù)和目的操作數(shù))的指令。
二、P1端口的結(jié)構(gòu)及工作原理
由圖可見(jiàn),P1端口與P0端口的主要差別在于,P1端口用內(nèi)部上拉電阻R代替了P0端口的場(chǎng)效應(yīng)管T1,并且輸出的信息僅來(lái)自?xún)?nèi)部總線。由內(nèi)部總線輸出的數(shù)據(jù)經(jīng)鎖存器反相和場(chǎng)效應(yīng)管反相后,鎖存在端口線上,所以,P1端口是具有輸出鎖存的靜態(tài)口。
評(píng)論