新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)教程:?jiǎn)纹瑱C(jī)并行口結(jié)構(gòu)

51單片機(jī)教程:?jiǎn)纹瑱C(jī)并行口結(jié)構(gòu)

作者: 時(shí)間:2012-06-04 來(lái)源:網(wǎng)絡(luò) 收藏

先看P1口的一位的示意圖(只畫(huà)出了輸出部份):從圖中能看出,開(kāi)關(guān)的打開(kāi)和合上代表了管腳輸出的高和低,如果開(kāi)關(guān)合上了,則管腳輸出就是低,如果開(kāi)關(guān)打開(kāi)了,則輸出高電平,這個(gè)開(kāi)關(guān)是由一根線來(lái)控制的,這根數(shù)據(jù)總線是出自于CPU,讓我們回想一下,數(shù)據(jù)總線是一根大家公用的線,很多的器件和它連在一起,在不一樣的時(shí)候,不一樣的器件當(dāng)然需要不一樣的信號(hào),如某一時(shí)刻我們讓這個(gè)管腳輸出高電平,并要求保持若干時(shí)間,在這段時(shí)間里,計(jì)算機(jī)當(dāng)然在忙個(gè)不停,在與其它器件進(jìn)行聯(lián)絡(luò),這根控制線上的電平未必能保持原來(lái)的值不變,輸出就會(huì)發(fā)生變化了。怎么解決這個(gè)問(wèn)題呢?我們?cè)诖鎯?chǔ)器一節(jié)中學(xué)過(guò),存儲(chǔ)器中是能存放電荷的,我們不妨也加一個(gè)小的存儲(chǔ)器的單元,并在它的前面加一個(gè)開(kāi)關(guān),要讓這一位輸出時(shí),就把開(kāi)關(guān)打開(kāi),信號(hào)就進(jìn)入存儲(chǔ)器的單元,然后馬上關(guān)閉開(kāi)關(guān),這樣這一位的狀態(tài)就被保存下來(lái),直到下一次命令讓它把開(kāi)關(guān)再打開(kāi)為止。這樣就能使這一位的狀態(tài)與別的器件無(wú)關(guān)了,這么一個(gè)小單元,我們給它一個(gè)很形象的名字,稱之為“鎖存器”。

2、輸入

這是口的一位的輸出示意圖,再看,除了輸出之外,還有兩根線,一根從外部管腳接入,另一根從鎖存器的輸出接出,分別標(biāo)明讀管腳和讀鎖存器。這兩根線是用于從外部接收信號(hào)的,為什么要兩根呢?原來(lái),在51中輸入有兩種方式,分別稱為‘讀管腳’和‘讀鎖存器’,第一種方式是將管腳作為輸入,那是真正地從外部管腳讀進(jìn)輸入的值,第二種方式是該管腳處于輸出狀態(tài)時(shí),有時(shí)需要改變這一位的狀態(tài),則并不需要真正地讀管腳狀態(tài),而只是讀入鎖存器的狀態(tài),然后作某種變換后再輸出。

請(qǐng)注意輸入結(jié)構(gòu)圖,如果將這一根引線作為輸入口使用,我們并不能保證在任何時(shí)刻都能得到正確的結(jié)果(為什么?)參考圖2輸入示意圖。接在外部的開(kāi)關(guān)如果打開(kāi),則應(yīng)當(dāng)是輸入1,而如果閉合開(kāi)關(guān),則輸入0,但是,如果內(nèi)部的開(kāi)關(guān)是閉合的,那么不管外部的開(kāi)關(guān)是開(kāi)還是閉,接受到的數(shù)據(jù)都是0。可見(jiàn),要讓這一端口作為輸入使用,要先做一個(gè)‘準(zhǔn)備工作’,就是先讓內(nèi)部的開(kāi)關(guān)斷開(kāi),也就是讓端口輸出‘1’才行。正因?yàn)橐茸鲞@么一個(gè)準(zhǔn)備工作,所以我們稱之為“準(zhǔn)雙向I/O口”。

以上是P1口的一位的結(jié)構(gòu),P1口其它各位的結(jié)構(gòu)與之相同,而其它三個(gè)口:P0、P2、P3則除入作為輸入輸出口之外還有其它用途,所以結(jié)構(gòu)要稍復(fù)雜一些,但其用于輸入、輸出的結(jié)構(gòu)是相同的??磮D()。對(duì)我們來(lái)說(shuō),這些附加的功能不必由我們來(lái)控制,所以我們就不去關(guān)心它了。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉