51單片機教程:單片機并行口結構
先看P1口的一位的結構示意圖(只畫出了輸出部份):從圖中能看出,開關的打開和合上代表了管腳輸出的高和低,如果開關合上了,則管腳輸出就是低,如果開關打開了,則輸出高電平,這個開關是由一根線來控制的,這根數(shù)據(jù)總線是出自于CPU,讓我們回想一下,數(shù)據(jù)總線是一根大家公用的線,很多的器件和它連在一起,在不一樣的時候,不一樣的器件當然需要不一樣的信號,如某一時刻我們讓這個管腳輸出高電平,并要求保持若干時間,在這段時間里,計算機當然在忙個不停,在與其它器件進行聯(lián)絡,這根控制線上的電平未必能保持原來的值不變,輸出就會發(fā)生變化了。怎么解決這個問題呢?我們在存儲器一節(jié)中學過,存儲器中是能存放電荷的,我們不妨也加一個小的存儲器的單元,并在它的前面加一個開關,要讓這一位輸出時,就把開關打開,信號就進入存儲器的單元,然后馬上關閉開關,這樣這一位的狀態(tài)就被保存下來,直到下一次命令讓它把開關再打開為止。這樣就能使這一位的狀態(tài)與別的器件無關了,這么一個小單元,我們給它一個很形象的名字,稱之為“鎖存器”。
2、輸入結構
這是并行口的一位的輸出結構示意圖,再看,除了輸出之外,還有兩根線,一根從外部管腳接入,另一根從鎖存器的輸出接出,分別標明讀管腳和讀鎖存器。這兩根線是用于從外部接收信號的,為什么要兩根呢?原來,在51單片機中輸入有兩種方式,分別稱為‘讀管腳’和‘讀鎖存器’,第一種方式是將管腳作為輸入,那是真正地從外部管腳讀進輸入的值,第二種方式是該管腳處于輸出狀態(tài)時,有時需要改變這一位的狀態(tài),則并不需要真正地讀管腳狀態(tài),而只是讀入鎖存器的狀態(tài),然后作某種變換后再輸出。
請注意輸入結構圖,如果將這一根引線作為輸入口使用,我們并不能保證在任何時刻都能得到正確的結果(為什么?)參考圖2輸入示意圖。接在外部的開關如果打開,則應當是輸入1,而如果閉合開關,則輸入0,但是,如果單片機內部的開關是閉合的,那么不管外部的開關是開還是閉,單片機接受到的數(shù)據(jù)都是0。可見,要讓這一端口作為輸入使用,要先做一個‘準備工作’,就是先讓內部的開關斷開,也就是讓端口輸出‘1’才行。正因為要先做這么一個準備工作,所以我們稱之為“準雙向I/O口”。
以上是P1口的一位的結構,P1口其它各位的結構與之相同,而其它三個口:P0、P2、P3則除入作為輸入輸出口之外還有其它用途,所以結構要稍復雜一些,但其用于輸入、輸出的結構是相同的??磮D()。對我們來說,這些附加的功能不必由我們來控制,所以我們就不去關心它了。
評論