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