51單片機的P0口工作原理詳細講解
P0口用作I/O口線,其由引腳向內部數據總線輸入(即輸入狀態(tài)Input)的工作過程:
數據輸入時(讀P0口)有兩種情況
1、讀引腳
讀芯片引腳上的數據,讀引腳數時,讀引腳緩沖器打開(即三態(tài)緩沖器的控制端要有效),通過內部數據總線輸入,請看下圖(紅色簡頭)。
![](http://editerupload.eepw.com.cn/fetch/20130926/170464_2_0.jpg)
2、讀鎖存器
通過打開讀鎖存器三態(tài)緩沖器讀取鎖存器輸出端Q的狀態(tài),請看下圖(紅色箭頭):
![](http://editerupload.eepw.com.cn/fetch/20130926/170464_2_1.jpg)
在輸入狀態(tài)下,從鎖存器和從引腳上讀來的信號一般是一致的,但也有例外。例如,當從內部總線輸出低電平后,鎖存器Q=0,Q非=1,場效應管T2開通,端口線呈低電平狀態(tài)。此時無論端口線上外接的信號是低電乎還是高電平,從引腳讀入單片機的信號都是低電平,因而不能正確地讀入端口引腳上的信號。又如,當從內部總線輸出高電平后,鎖存器Q=1,Q非=0,場效應管T2截止。如外接引腳信號為低電平,從引腳上讀入的信號就與從鎖存器讀入的信號不同。為此,8031單片機在對端口P0一P3的輸入操作上,有如下約定:為此,8051單片機在對端口P0一P3的輸入操作上,有如下約定:凡屬于讀-修改-寫方式的指令,從鎖存器讀入信號,其它指令則從端口引腳線上讀入信號。
讀-修改-寫指令的特點是,從端口輸入(讀)信號,在單片機內加以運算(修改)后,再輸出(寫)到該端口上。下面是幾條讀--修改-寫指令的例子。
ANL P0,#立即數;P0→立即數P0
ORL P0,A ;P0→AP0
INC P1 ;P1+1→P1
DEC P3 ;P3-1→P3
CPL P2 ;P2→P2
這樣安排的原因在于讀-修改-寫指令需要得到端口原輸出的狀態(tài),修改后再輸出,讀鎖存器而不是讀引腳,可以避免因外部電路的原因而使原端口的狀態(tài)被讀錯。
P0端口是8031單片機的總線口,分時出現(xiàn)數據D7一D0、低8位地址A7一AO,以及三態(tài),用來接口存儲器、外部電路與外部設備。P0端口是使用最廣泛的I/O端口。
51單片機相關文章:51單片機教程
評論