當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]上兩次我們做過(guò)兩個(gè)實(shí)驗(yàn),都是讓P1.0這個(gè)管腳使燈亮,我們能設(shè)想:既然P1.0能讓燈亮,那么其它的管腳可不能呢?看一下圖1,它是8031單片機(jī)管腳的說(shuō)明,在P1.0旁邊有P1.1,P1.2….P1.7,它們是否都能讓燈亮呢?除

上兩次我們做過(guò)兩個(gè)實(shí)驗(yàn),都是讓P1.0這個(gè)管腳使燈亮,我們能設(shè)想:既然P1.0能讓燈亮,那么其它的管腳可不能呢?看一下圖1,它是8031單片機(jī)管腳的說(shuō)明,在P1.0旁邊有P1.1,P1.2….P1.7,它們是否都能讓燈亮呢?除了以P1開(kāi)頭的外,還有以P0,P2,P3開(kāi)頭的,數(shù)一下,一共是32個(gè)管腳,前面我們以學(xué)過(guò)7個(gè)管腳,加上這32個(gè)這39個(gè)了。它們都以P字開(kāi)頭,只是后面的數(shù)字不一樣,它們是否有什么聯(lián)系呢?它們能不能都讓燈亮呢?在我們的實(shí)驗(yàn)板上,除了P10之外,還有P11 -> P17都與LED相連,下面讓我們來(lái)做一個(gè)實(shí)驗(yàn),程序如下:

MAIN: MOV P1,#0FFH

LCALL DELAY

MOV P1,#00H

LCALL DELAY

LJMP MAIN

DELAY:MOV R7,#250

D1: MOV R6,#250

D2: DJNZ R6,D2

DJNZ R7,D1

RET

END

將這段程序燒寫(xiě)到單片機(jī)中,結(jié)果如何?通電以后我們能看到8只LED全部在閃動(dòng)。因此,P10->P17是全部能點(diǎn)亮燈的。事實(shí)上,凡以P開(kāi)頭的這32個(gè)管腳都是能點(diǎn)亮燈的,也就是說(shuō):這32個(gè)管腳都能作為輸出使用,如果不用來(lái)點(diǎn)亮LED,能用來(lái)控制繼電器,能用來(lái)控制其它的執(zhí)行機(jī)構(gòu)。

程序分析:這段程序和前面做過(guò)的程序比較,只有兩處不一樣:第一句:原來(lái)是SETB P1.0,現(xiàn)在改為MOV P1,#0FFH,第三句:原來(lái)是CLR P1.0,現(xiàn)在改為MOV P1.0,#00H。從中能看出,P1是P1.0->P1.7的全體的代表,一個(gè)P1就表示了所有的這八個(gè)管腳了。當(dāng)然用的指令也不一樣了,是用MOV指令。為什么用這條指令?看圖2,我們把P1作為一個(gè)整體,就把它當(dāng)作是一個(gè)存儲(chǔ)器的單元,對(duì)一個(gè)單元送進(jìn)一個(gè)數(shù)能用MOV指令。

二、第四個(gè)實(shí)驗(yàn)

除了能作為輸出外,這32個(gè)管腳還能做什么呢?下面再來(lái)做一個(gè)單片機(jī)實(shí)驗(yàn),源程序如下:

MAIN: MOV P3,#0FFH

LOOP: MOV A,P3

MOV P1,A

LJMP LOOP

先看一下這個(gè)實(shí)驗(yàn)的結(jié)果:所有燈全部不亮,然后我按下一個(gè)按鈕,第(1)個(gè)燈亮了,再按下另一個(gè)按鈕,第(2)個(gè)燈亮了,松開(kāi)按鈕燈就滅了。從這個(gè)實(shí)驗(yàn)現(xiàn)象結(jié)合電路來(lái)分析一下程序。

從硬件電路的連線能看出,有四個(gè)按鈕被接入到P3口的P32,P33,P34,P35。第一條指令的用途我們能猜到:使P3口全部為高電平。第二條指令是MOV A,P3,其中 MOV已經(jīng)知道,是送數(shù)的意思,這條指令的意思就是將P3口的數(shù)送到A中去,我們能把A當(dāng)成是一個(gè)中間單元(看圖3),第三句話是將A中的數(shù)又送到P1口去,第四句話是循環(huán),就是持續(xù)地重復(fù)這個(gè)過(guò)程,這我們已見(jiàn)過(guò)。當(dāng)我們按下第一個(gè)按鈕時(shí),第(3)只燈亮了,所以P12口應(yīng)當(dāng)輸出是低電平,為什么P12口會(huì)輸出低電平呢?我們看一下有什么被送到了P1口,只有從P3口進(jìn)來(lái)的數(shù)送到A,又被送到了P1口,所以,肯定是P3口進(jìn)來(lái)的數(shù)使得P12位輸出電平的。P3口的P32位的按鈕被按下,使得P32位的電平為低,通過(guò)程序,又使P12口輸出低電平,所以P3口起來(lái)了一個(gè)輸入的作用。驗(yàn)證:按第二、三、四個(gè)按鈕,同時(shí)按下2個(gè)、3個(gè)、4個(gè)按鈕都能得到同樣的結(jié)論,所以P3口確實(shí)起到了輸入作用,這樣,我們能看到,以P字開(kāi)頭的管腳,不僅能用作輸出,還能用作輸入,其它的管腳是否能呢?是的,都能。這32個(gè)管腳就稱(chēng)之為并行口,下面我們就對(duì)并行口的結(jié)構(gòu)作一個(gè)分析,看一下它是怎樣實(shí)現(xiàn)輸入和輸出的。

并行口結(jié)構(gòu)分析:

1、輸出結(jié)構(gòu)

 

<并行口結(jié)構(gòu)圖>

先看P1口的一位的結(jié)構(gòu)示意圖(只畫(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è)很形象的名字,稱(chēng)之為“鎖存器”。

2、輸入結(jié)構(gòu)

這是并行口的一位的輸出結(jié)構(gòu)示意圖,再看,除了輸出之外,還有兩根線,一根從外部管腳接入,另一根從鎖存器的輸出接出,分別標(biāo)明讀管腳和讀鎖存器。這兩根線是用于從外部接收信號(hào)的,為什么要兩根呢?原來(lái),在51單片機(jī)中輸入有兩種方式,分別稱(chēng)為‘讀管腳’和‘讀鎖存器’,第一種方式是將管腳作為輸入,那是真正地從外部管腳讀進(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,但是,如果單片機(jī)內(nèi)部的開(kāi)關(guān)是閉合的,那么不管外部的開(kāi)關(guān)是開(kāi)還是閉,單片機(jī)接受到的數(shù)據(jù)都是0。可見(jiàn),要讓這一端口作為輸入使用,要先做一個(gè)‘準(zhǔn)備工作’,就是先讓內(nèi)部的開(kāi)關(guān)斷開(kāi),也就是讓端口輸出‘1’才行。正因?yàn)橐茸鲞@么一個(gè)準(zhǔn)備工作,所以我們稱(chēng)之為“準(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)心它了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉