(玩電(dian)子) 電(dian)子技術(shu)學習(xi)與研究
當前位置︰單(dan)片機教程網 >> 基礎教程 >> 瀏(liu)覽文章

5分PK10官网

作者:佚名   來源:本站原創   點擊數:x  更新時間︰2020年02月23日(ri)   【字體(ti)︰ 小(xiao)

   上兩次我們(men)做過兩個實驗,都是(shi)讓P1.0這個管腳使燈(deng)亮,我們(men)能設想(xiang)︰既(ji)然P1.0能讓燈(deng)亮,那麼其它的管腳可不能呢?看一下圖1,它是(shi)8031單(dan)片機管腳的說(shuo)明(ming),在P1.0旁邊有(you)P1.1,P1.2….P1.7,它們(men)是(shi)否都能讓燈(deng)亮呢?除(chu)了以P1開頭的外,還有(you)以P0,P2,P3開頭的,數一下,一共是(shi)32個管腳,前面我們(men)以學過7個管腳,加上這32個這39個了。它們(men)都以P字開頭,只是(shi)後面的數字不一樣,它們(men)是(shi)否有(you)什麼聯系呢?它們(men)能不能都ji)玫deng)亮呢?在我們(men)的實驗板上,除(chu)了P10之(zhi)外,還有(you)P11 -> P17都與LED相連,下面讓我們(men)來做一個實驗,程序(xu)如下︰

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

  將(jiang)這段程序(xu)燒(shao)寫到單(dan)片機中,結果(guo)如何(he)?通電(dian)以後我們(men)能看到8只LED全部在閃動。因此,P10->P17是(shi)全部能點亮燈(deng)的。事實上,凡以P開頭的這32個管腳都是(shi)能點亮燈(deng)的,也就是(shi)說(shuo)︰這32個管腳都能作為輸(shu)出使用,如果(guo)不用來點亮LED,能用來控(kong)制繼電(dian)器,能用來控(kong)制其它的執行機構。

程序(xu)分(fen)析(xi)︰這段程序(xu)和前面做過的程序(xu)比較,只有(you)兩處不一樣︰第(di)一句︰原來是(shi)SETB P1.0,現在改為MOV P1,#0FFH,第(di)三句︰原來是(shi)CLR P1.0,現在改為MOV P1.0,#00H。從中xin)芸闖觶1是(shi)P1.0->P1.7的全體(ti)的代(dai)表,一個P1就表示了所有(you)的這八個管腳了。當然用的指令(ling)也不一樣了,是(shi)用MOV指令(ling)。為什麼用這條指令(ling)?看圖2,我們(men)把P1作為一個整體(ti),就把它當作是(shi)一個存儲(chu)器的單(dan)元,對一個單(dan)元送進一個數能用MOV指令(ling)。

二、第(di)四個實驗

除(chu)了能作為輸(shu)出外,這32個管腳還能做什麼呢?下面再來做一個單(dan)片機實驗,源程序(xu)如下︰

MAIN: MOV P3,#0FFH

LOOP: MOV A,P3

MOV P1,A

LJMP LOOP

  先看一下這個實驗的結果(guo)︰所有(you)燈(deng)全部不亮,然後我按下一個按鈕,第(di)(1)個燈(deng)亮了,再按下另一個按鈕,第(di)(2)個燈(deng)亮了,松開按鈕燈(deng)就滅(mie)了。從這個實驗現象(xiang)結合(he)電(dian)路來分(fen)析(xi)一下程序(xu)。

  從硬件(jian)電(dian)路的連線能看出,有(you)四個按鈕被接(jie)入(ru)到P3口的P32,P33,P34,P35。第(di)一條指令(ling)的用途我們(men)能猜到︰使P3口全部為高電(dian)平(ping)。第(di)二條指令(ling)是(shi)MOV A,P3,其中 MOV已經知(zhi)道,是(shi)送數的意思,這條指令(ling)的意思就是(shi)將(jiang)P3口的數送到A中去,我們(men)能把A當成(cheng)是(shi)一個中間單(dan)元(看圖3),第(di)三句話是(shi)將(jiang)A中的數又送到P1口去,第(di)四句話是(shi)循(xun)環,就是(shi)持續地重復(fu)這個過程,這我們(men)已見過。當我們(men)按下第(di)一個按鈕時bao) di)(3)只燈(deng)亮了,所以P12口應當輸(shu)出是(shi)低(di)電(dian)平(ping),為什麼P12口會輸(shu)出低(di)電(dian)平(ping)呢?我們(men)看一下有(you)什麼被送到了P1口,只有(you)從P3口進來的數送到A,又被送到了P1口,所以,肯定是(shi)P3口進來的數使得P12位輸(shu)出電(dian)平(ping)的。P3口的P32位的按鈕被按下,使得P32位的電(dian)平(ping)為低(di),通過程序(xu),又使P12口輸(shu)出低(di)電(dian)平(ping),所以P3口起來了一個輸(shu)入(ru)的作用。驗證︰按第(di)二、三、四個按鈕,同時按下2個、3個、4個按鈕都能得到同樣的結論,所以P3口確實deng)鸕攪聳shu)入(ru)作用,這樣,我們(men)能看到,以P字開頭的管腳,不僅能用作輸(shu)出,還能用作輸(shu)入(ru),其它的管腳是(shi)否能呢?是(shi)的,都能。這32個管腳就稱(chen)之(zhi)為並行口,下面我們(men)就對並行口的結構作一個分(fen)析(xi),看一下它是(shi)怎樣實現輸(shu)入(ru)和輸(shu)出的。

並行口結構分(fen)析(xi)︰

1、輸(shu)出結構


<並行口結構圖>

  先看P1口的一位的結構示意圖(只畫出了輸(shu)出部份)︰從圖中xin)芸闖觶  氐拇蚩 禿he)上代(dai)表了管腳輸(shu)出的高和低(di),如果(guo)開關合(he)上了,則管腳輸(shu)出就是(shi)低(di),如果(guo)開關打開了,則輸(shu)出高電(dian)平(ping),這個開關是(shi)由一根線來控(kong)制的,這根數據(ju)總線是(shi)出自于CPU,讓我們(men)回想(xiang)一下,數據(ju)總線是(shi)一根大家公(gong)用的線,很多的器件(jian)和它連在一起,在不一樣的時候,不一樣的器件(jian)當然需(xu)要不一樣的信(xin)號,如某一時刻我們(men)讓這個管腳輸(shu)出高電(dian)平(ping),並要求保(bao)持若干時間,在這段wen)奔淅錚 ji)算(suan)機當然在忙(mang)個不停(ting),在與其它器件(jian)進行聯絡,這根控(kong)制線上的電(dian)平(ping)未必能保(bao)持原來的值不變,輸(shu)出就會發生(sheng)變化了。怎麼解決這個問(wen)題呢?我們(men)在存儲(chu)器一節(jie)中學過,存儲(chu)器中是(shi)能存放(fang)電(dian)荷(he)的,我們(men)不妨(fang)也加一個小(xiao)的存儲(chu)器的單(dan)元,並在它的前面加一個開關,要讓這一位輸(shu)出時bao) 桶芽 卮蚩  xin)號就進入(ru)存儲(chu)器的單(dan)元,然後馬上關閉開關,這樣這一位的狀態就被保(bao)存下來,直到下一次命令(ling)讓它把開關再打開為止。這樣就能使這一位的狀態與別的器件(jian)無(wu)關了,這麼一個小(xiao)單(dan)元,我們(men)給它一個很形象(xiang)的名字,稱(chen)之(zhi)為“鎖存器”。

2、輸(shu)入(ru)結構

  這是(shi)並行口的一位的輸(shu)出結構示意圖,再看,除(chu)了輸(shu)出之(zhi)外,還有(you)兩根線,一根從外部管腳接(jie)入(ru),另一根從鎖存器的輸(shu)出接(jie)出,分(fen)別標明(ming)讀管腳和讀鎖存器。這兩根線是(shi)用于從外部接(jie)you)招xin)號的,為什麼要兩根呢?原來,在51單(dan)片機中輸(shu)入(ru)有(you)兩種方式,分(fen)別稱(chen)為‘讀管腳’和‘讀鎖存器’,第(di)一種方式是(shi)將(jiang)管腳作為輸(shu)入(ru),那是(shi)真正地從外部管腳讀進輸(shu)入(ru)的值,第(di)二種方式是(shi)該管腳處于輸(shu)出狀態時bao) you)時需(xu)要改變這一位的狀態,則並不需(xu)要真正地讀管腳狀態,而只是(shi)讀入(ru)鎖存器的狀態,然後作某種變換後再輸(shu)出。

  請注意輸(shu)入(ru)結構圖,如果(guo)將(jiang)這一根引(yin)線作為輸(shu)入(ru)口使用,我們(men)並不能保(bao)證在任何(he)wen)笨潭寄艿玫秸返慕 guo)(為什麼?)參(can)考(kao)圖2輸(shu)入(ru)示意圖。接(jie)在外部的開關如果(guo)打開,則應當是(shi)輸(shu)入(ru)1,而如果(guo)閉合(he)開關,則輸(shu)入(ru)0,但是(shi),如果(guo)單(dan)片機內部的開關是(shi)閉合(he)的,那麼不管外部的開關是(shi)開還是(shi)閉,單(dan)片機接(jie)you)艿降氖ju)都是(shi)0。可見,要讓這一端口作為輸(shu)入(ru)使用,要先做一個‘準備工(gong)作’,就是(shi)先讓內部的開關斷開,也就是(shi)讓端口輸(shu)出‘1’才(cai)行xiao)U蛭  茸穌餉匆桓鱟急腹gong)作,所以我們(men)稱(chen)之(zhi)為“準雙向I/O口”。

  以上是(shi)P1口的一位的結構,P1口其它各位的結構與之(zhi)相同,而其它三個口︰P0、P2、P3則除(chu)入(ru)作為輸(shu)入(ru)輸(shu)出口之(zhi)外還有(you)其它用途,所以結構要稍復(fu)雜一些,但其用于輸(shu)入(ru)、輸(shu)出的結構是(shi)相同的。看圖()。對我們(men)來說(shuo),這些附加的功能不必由我們(men)來控(kong)制,所以我們(men)就不去關心(xin)它了。

  你(ni)如果(guo)你(ni)裝了office軟件(jian)的話 你(ni)可以打開這個ppt動態演(yan)示文件(jian)看下加深對並口的理解︰http://www.51hei.com/f/51單(dan)片機並行口及(ji)其應用.ppt

作者(胡琴)點評︰根據(ju)本文的評論來看,大家感覺開始越來越難學了,其實並行口的原理我們(men)並不需(xu)要去深入(ru)理解,不需(xu)要把內部的工(gong)作原理及(ji)電(dian)路都完全弄懂(dong),我們(men)是(shi)要用單(dan)片機不是(shi)設計(ji)單(dan)片機芯片的,所以我們(men)只需(xu)要會用就行了,比如說(shuo) 給一個 CLR P3.5 這個指令(ling)就是(shi)為了讓P3.5輸(shu)出0,這一條 MOV P3,#0FFH 就是(shi)讓整個P3口(從P3.0-P3.7)全部都輸(shu)出1.

發表評論】【告訴好友】【收藏此文】【關閉窗口

5分PK10官网

5分PK10官网 | 下一页