<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機教程:?jiǎn)纹瑱C并行口結構

51單片機教程:?jiǎn)纹瑱C并行口結構

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

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

本文引用地址:http://dyxdggzs.com/article/171359.htm

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ě)入中,結果如何?通電以后我們能看到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)控制其它的執行機構。

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

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

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

MAIN: MOV P3,#0FFH

LOOP: MOV A,P3

MOV P1,A

LJMP LOOP

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

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

分析:

1、輸出

40.jpg
并行口結構圖>


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

關(guān)鍵詞: 單片機 結構 教程 并行

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>