8051讀引腳和讀端口的區(qū)別
但8051作為輸入時基本相同,分為讀端口和讀引腳兩種情況。先介紹讀端口情況,實際上是讀鎖存器的狀態(tài),有時候需要讀鎖存器的狀態(tài),然后修改,這時候讀的不是真正的外部數(shù)據(jù);
本文引用地址:http://m.butianyuan.cn/article/201611/320638.htmI/O口作為輸入口時有兩種工作方式即所謂的讀端口與讀引腳。讀端口時實際上并不從外部讀入數(shù)據(jù)而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線經(jīng)過某種運算或變換后再寫回到端口鎖存器。只有讀引腳時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。CPU將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號以完成不同的操作,這是由硬件自動完成的不需要我們操心。讀引腳時也就是把端口作為外部輸入線時首先要通過外部指令把端口鎖存器置1,然后再實行讀引腳操作,否則就可能讀入出錯。
從P0,1,2,3口一位的圖來看,如果不對端口置1,端口鎖存器原來的狀態(tài)有可能為0,Q端為0Q^為1,加到場效應管柵極的信號為1,該場效應管就導通對地呈現(xiàn)低阻抗,此時即使引腳上輸入的信號為1也會因端口的低阻抗而使信號拉低,使得外加的1信號讀入后不一定是1,若先執(zhí)行置1操作則可以使場效應管截止,引腳信號直接加到三態(tài)緩沖器中,實現(xiàn)正確的讀入。故要讀端口狀態(tài)時,必須先對端口置1,使場效應管截止,然后就可以正常地讀數(shù)據(jù)了。
評論