国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

51單片機(jī)的P0口工作原理詳細(xì)講解

發(fā)布時(shí)間:2015-3-10 11:37    發(fā)布者:designapp
關(guān)鍵詞: 單片機(jī) , P0口
一、P0端口的結(jié)構(gòu)及工作原理

P0端口8位中的一位結(jié)構(gòu)圖見下圖:



由上圖可見,P0端口由鎖存器、輸入緩沖器、切換開關(guān)、一個(gè)與非門、一個(gè)與門及場(chǎng)效應(yīng)管驅(qū)動(dòng)電路構(gòu)成。再看圖的右邊,標(biāo)號(hào)為P0.X引腳的圖標(biāo),也就是說P0.X引腳可以是P0.0到P0.7的任何一位,即在P0口有8個(gè)與上圖相同的電路組成。

下面,我們先就組成P0口的每個(gè)單元部份跟大家介紹一下:

先看輸入緩沖器:在P0口中,有兩個(gè)三態(tài)的緩沖器,在學(xué)數(shù)字電路時(shí),我們已知道,三態(tài)門有三個(gè)狀態(tài),即在其的輸出端可以是高電平、低電平,同時(shí)還有一種就是高阻狀態(tài)(或稱為禁止?fàn)顟B(tài)),大家看上圖,上面一個(gè)是讀鎖存器的緩沖器,也就是說,要讀取D鎖存器輸出端Q的數(shù)據(jù),那就得使讀鎖存器的這個(gè)緩沖器的三態(tài)控制端(上圖中標(biāo)號(hào)為‘讀鎖存器’端)有效。下面一個(gè)是讀引腳的緩沖器,要讀取P0.X引腳上的數(shù)據(jù),也要使標(biāo)號(hào)為‘讀引腳’的這個(gè)三態(tài)緩沖器的控制端有效,引腳上的數(shù)據(jù)才會(huì)傳輸?shù)轿覀?a href="http://m.qingdxww.cn/keyword/單片機(jī)" target="_blank" class="relatedlink">單片機(jī)的內(nèi)部數(shù)據(jù)總線上。

D鎖存器:構(gòu)成一個(gè)鎖存器,通常要用一個(gè)時(shí)序電路,時(shí)序的單元電路在學(xué)數(shù)字電路時(shí)我們已知道,一個(gè)觸發(fā)器可以保存一位的二進(jìn)制數(shù)(即具有保持功能),在51單片機(jī)的32根I/O口線中都是用一個(gè)D觸發(fā)器來構(gòu)成鎖存器的。大家看上圖中的D鎖存器,D端是數(shù)據(jù)輸入端,CP是控制端(也就是時(shí)序控制信號(hào)輸入端),Q是輸出端,Q非是反向輸出端。

對(duì)于D觸發(fā)器來講,當(dāng)D輸入端有一個(gè)輸入信號(hào),如果這時(shí)控制端CP沒有信號(hào)(也就是時(shí)序脈沖沒有到來),這時(shí)輸入端D的數(shù)據(jù)是無法傳輸?shù)捷敵龆薗及反向輸出端Q非的。如果時(shí)序控制端CP的時(shí)序脈沖一旦到了,這時(shí)D端輸入的數(shù)據(jù)就會(huì)傳輸?shù)絈及Q非端。數(shù)據(jù)傳送過來后,當(dāng)CP時(shí)序控制端的時(shí)序信號(hào)消失了,這時(shí),輸出端還會(huì)保持著上次輸入端D的數(shù)據(jù)(即把上次的數(shù)據(jù)鎖存起來了)。如果下一個(gè)時(shí)序控制脈沖信號(hào)來了,這時(shí)D端的數(shù)據(jù)才再次傳送到Q端,從而改變Q端的狀態(tài)。

多路開關(guān):在51單片機(jī)中,當(dāng)內(nèi)部的存儲(chǔ)器夠用(也就是不需要外擴(kuò)展存儲(chǔ)器時(shí),這里講的存儲(chǔ)器包括數(shù)據(jù)存儲(chǔ)器及程序存儲(chǔ)器)時(shí),P0口可以作為通用的輸入輸出端口(即I/O)使用,對(duì)于8031(內(nèi)部沒有ROM)的單片機(jī)或者編寫的程序超過了單片機(jī)內(nèi)部的存儲(chǔ)器容量,需要外擴(kuò)存儲(chǔ)器時(shí),P0口就作為‘地址/數(shù)據(jù)’總線使用。那么這個(gè)多路選擇開關(guān)就是用于選擇是做為普通I/O口使用還是作為‘?dāng)?shù)據(jù)/地址’總線使用的選擇開關(guān)了。大家看上圖,當(dāng)多路開關(guān)與下面接通時(shí),P0口是作為普通的I/O口使用的,當(dāng)多路開關(guān)是與上面接通時(shí),P0口是作為‘地址/數(shù)據(jù)’總線使用的。

輸出驅(qū)動(dòng)部份:從上圖中我們已看出,P0口的輸出是由兩個(gè)MOS管組成的推拉式結(jié)構(gòu),也就是說,這兩個(gè)MOS管一次只能導(dǎo)通一個(gè),當(dāng)V1導(dǎo)通時(shí),V2就截止,當(dāng)V2導(dǎo)通時(shí),V1截止。


前面我們已將P0口的各單元部件進(jìn)行了一個(gè)詳細(xì)的講解,下面我們就來研究一下P0口做為I/O口及地址/數(shù)據(jù)總線使用時(shí)的具體工作過程。

1、作為I/O端口使用時(shí)的工作原理

P0口作為I/O端口使用時(shí),多路開關(guān)的控制信號(hào)為0(低電平),看上圖中的線線部份,多路開關(guān)的控制信號(hào)同時(shí)與與門的一個(gè)輸入端是相接的,我們知道與門的邏輯特點(diǎn)是“全1出1,有0出0”那么控制信號(hào)是0的話,這時(shí)與門輸出的也是一個(gè)0(低電平),與讓的輸出是0,V1管就截止,在多路控制開關(guān)的控制信號(hào)是0(低電平)時(shí),多路開關(guān)是與鎖存器的Q非端相接的(即P0口作為I/O口線使用)。

P0口用作I/O口線,其由數(shù)據(jù)總線向引腳輸出(即輸出狀態(tài)Output)的工作過程:當(dāng)寫鎖存器信號(hào)CP 有效,數(shù)據(jù)總線的信號(hào)→鎖存器的輸入端D→鎖存器的反向輸出Q非端→多路開關(guān)→V2管的柵極→V2的漏極到輸出端P0.X。前面我們已講了,當(dāng)多路開關(guān)的控制信號(hào)為低電平0時(shí),與門輸出為低電平,V1管是截止的,所以作為輸出口時(shí),P0是漏極開路輸出,類似于OC門,當(dāng)驅(qū)動(dòng)上接電流負(fù)載時(shí),需要外接上拉電阻

下圖就是由內(nèi)部數(shù)據(jù)總線向P0口輸出數(shù)據(jù)的流程圖(紅色箭頭)。



P0口用作I/O口線,其由引腳向內(nèi)部數(shù)據(jù)總線輸入(即輸入狀態(tài)Input)的工作過程:

數(shù)據(jù)輸入時(shí)(讀P0口)有兩種情況

1、讀引腳

讀芯片引腳上的數(shù)據(jù),讀引腳數(shù)時(shí),讀引腳緩沖器打開(即三態(tài)緩沖器的控制端要有效),通過內(nèi)部數(shù)據(jù)總線輸入,請(qǐng)看下圖(紅色簡(jiǎn)頭)。



2、讀鎖存器

通過打開讀鎖存器三態(tài)緩沖器讀取鎖存器輸出端Q的狀態(tài),請(qǐng)看下圖(紅色箭頭):




在輸入狀態(tài)下,從鎖存器和從引腳上讀來的信號(hào)一般是一致的,但也有例外。例如,當(dāng)從內(nèi)部總線輸出低電平后,鎖存器Q=0,Q非=1,場(chǎng)效應(yīng)管T2開通,端口線呈低電平狀態(tài)。此時(shí)無論端口線上外接的信號(hào)是低電乎還是高電平,從引腳讀入單片機(jī)的信號(hào)都是低電平,因而不能正確地讀入端口引腳上的信號(hào)。又如,當(dāng)從內(nèi)部總線輸出高電平后,鎖存器Q=1,Q非=0,場(chǎng)效應(yīng)管T2截止。如外接引腳信號(hào)為低電平,從引腳上讀入的信號(hào)就與從鎖存器讀入的信號(hào)不同。為此,8031單片機(jī)在對(duì)端口P0一P3的輸入操作上,有如下約定:為此,8051單片機(jī)在對(duì)端口P0一P3的輸入操作上,有如下約定:凡屬于讀-修改-寫方式的指令,從鎖存器讀入信號(hào),其它指令則從端口引腳線上讀入信號(hào)。

讀-修改-寫指令的特點(diǎn)是,從端口輸入(讀)信號(hào),在單片機(jī)內(nèi)加以運(yùn)算(修改)后,再輸出(寫)到該端口上。下面是幾條讀--修改-寫指令的例子。

ANL P0,#立即數(shù)0→立即數(shù)P0

ORL P0,A 0→AP0

INC P1 1+1→P1

DEC P3 3-1→P3

CPL P2 2→P2

這樣安排的原因在于讀-修改-寫指令需要得到端口原輸出的狀態(tài),修改后再輸出,讀鎖存器而不是讀引腳,可以避免因外部電路的原因而使原端口的狀態(tài)被讀錯(cuò)。

P0端口是8031單片機(jī)的總線口,分時(shí)出現(xiàn)數(shù)據(jù)D7一D0、低8位地址A7一AO,以及三態(tài),用來接口存儲(chǔ)器、外部電路與外部設(shè)備。P0端口是使用最廣泛的I/O端口。

2、作為地址/數(shù)據(jù)復(fù)用口使用時(shí)的工作原理

在訪問外部存儲(chǔ)器時(shí)P0口作為地址/數(shù)據(jù)復(fù)用口使用。

這時(shí)多路開關(guān)‘控制’信號(hào)為‘1’,‘與門’解鎖,‘與門’輸出信號(hào)電平由“地址/數(shù)據(jù)”線信號(hào)決定;多路開關(guān)與反相器的輸出端相連,地址信號(hào)經(jīng)“地址/數(shù)據(jù)”線→反相器→V2場(chǎng)效應(yīng)管柵極→V2漏極輸出。

例如:控制信號(hào)為1,地址信號(hào)為“0”時(shí),與門輸出低電平,V1管截止;反相器輸出高電平,V2管導(dǎo)通,輸出引腳的地址信號(hào)為低電平。請(qǐng)看下圖(蘭色字體為電平):



反之,控制信號(hào)為“1”、地址信號(hào)為“1”,“與門”輸出為高電平,V1管導(dǎo)通;反相器輸出低電平,V2管截止,輸出引腳的地址信號(hào)為高電平。請(qǐng)看下圖(蘭色字體為電平):




可見,在輸出“地址/數(shù)據(jù)”信息時(shí),V1、V2管是交替導(dǎo)通的,負(fù)載能力很強(qiáng),可以直接與外設(shè)存儲(chǔ)器相連,無須增加總線驅(qū)動(dòng)器。

P0口又作為數(shù)據(jù)總線使用。在訪問外部程序存儲(chǔ)器時(shí),P0口輸出低8位地址信息后,將變?yōu)閿?shù)據(jù)總線,以便讀指令碼(輸入)。

在取指令期間,“控制”信號(hào)為“0”,V1管截止,多路開關(guān)也跟著轉(zhuǎn)向鎖存器反相輸出端Q非;CPU自動(dòng)將0FFH(11111111,即向D鎖存器寫入一個(gè)高電平‘1’)寫入P0口鎖存器,使V2管截止,在讀引腳信號(hào)控制下,通過讀引腳三態(tài)門電路將指令碼讀到內(nèi)部總線。請(qǐng)看下圖



如果該指令是輸出數(shù)據(jù),如MOVX @DPTR,A(將累加器的內(nèi)容通過P0口數(shù)據(jù)總線傳送到外部RAM中),則多路開關(guān)“控制”信號(hào)為‘1’,“與門”解鎖,與輸出地址信號(hào)的工作流程類似,數(shù)據(jù)據(jù)由“地址/數(shù)據(jù)”線→反相器→V2場(chǎng)效應(yīng)管柵極→V2漏極輸出。

如果該指令是輸入數(shù)據(jù)(讀外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器),如MOVX A,@DPTR(將外部RAM某一存儲(chǔ)單元內(nèi)容通過P0口數(shù)據(jù)總線輸入到累加器A中),則輸入的數(shù)據(jù)仍通過讀引腳三態(tài)緩沖器到內(nèi)部總線,其過程類似于上圖中的讀取指令碼流程圖。

通過以上的分析可以看出,當(dāng)P0作為地址/數(shù)據(jù)總線使用時(shí),在讀指令碼或輸入數(shù)據(jù)前,CPU自動(dòng)向P0口鎖存器寫入0FFH,破壞了P0口原來的狀態(tài)。因此,不能再作為通用的I/O端口。大家以后在系統(tǒng)設(shè)計(jì)時(shí)務(wù)必注意,即程序中不能再含有以P0口作為操作數(shù)(包含源操作數(shù)和目的操作數(shù))的指令。
本文地址:http://m.qingdxww.cn/thread-146670-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評(píng)估工具包演示CAN轉(zhuǎn)USB橋接器以及基于CAN的主機(jī)和自舉程序應(yīng)用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国产亚洲日本 | 美女视频永久黄网站免费观看国产 | 日日摸夜夜添夜夜免费视 | 91国语精品3p在线观看 | 国产成人a一在线观看 | 和阿同居的日子hd | 亚洲欧美日韩在线观看二区 | 久久亚洲国产成人影院 | 一区二区三区四区亚洲 | 美国在线视频 | 成人黄色在线免费观看 | 精品一区 二区三区免费毛片 | 国产极品白嫩美女在线观看看 | 太大了黑人温泉在线播放 | 97国产在线视频公开免费 | 成人精品一区二区www | 欧美日韩精品乱国产 | 色综合天天综合 | 国产欧美一区二区三区久久 | 日本欧美一区二区三区在线观看 | 污污视频网站免费在线观看 | 欧美性色欧美a在线观看 | 欧美色欧美亚洲高清在线视频 | 国产成人午夜性a一级毛片 国产成人午夜视频 | 狠狠色丁香婷婷综合橹不卡 | 日韩欧美一区二区三区免费看 | 噜噜噜狠狠狠 | 日韩一级片免费 | 欧洲成人在线视频 | 天堂中文在线乱码 | 美女脱了内裤张开腿让女人添软件 | 理论福利午夜 | 狠狠综合久久久久综 | 亚洲激情成人 | 男女污污在线观看 | 福利社在线免费观看 | 高清毛片免费看 | 成品人app软件大全免费下载 | 97在线免费视频 | 天天爽天天干天天操 | 国产手机国产手机在线 |