乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

       thchen0103 2019-12-06

      硬件結(jié)構(gòu)

      單片機(jī)的內(nèi)部結(jié)構(gòu)是由CPU、ROM、RAM等組成,現(xiàn)在介紹外部引腳。如圖1-3所示為單片機(jī)的引腳圖,這就是實(shí)驗(yàn)中要用的89C51單片機(jī)的外部引腳圖。如表1-3所示為89C51單片機(jī)引腳分配表。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-3 89C51單片機(jī)的引腳圖

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      表1-3 89C51單片機(jī)引腳分配表

      端口結(jié)構(gòu)分析

      從1.3.1節(jié)的硬件結(jié)構(gòu)中可以看出,89C51單片機(jī)總共有4組端口,P0、P1、P2和P3,了解這4組端口的結(jié)構(gòu)原理對(duì)于日后的編程會(huì)有很大的幫助,由于這4組端口結(jié)構(gòu)不盡相同,下面分別介紹單片機(jī)總的4組端口。由于每組端口都是由8位組成,故在下面的講解中,只以每組端口的其中一位來解釋。

      1. P0口的結(jié)構(gòu)及工作原理

      P0口字節(jié)地址為80H,位地址80H~87H。P0端口8位中的一位結(jié)構(gòu)圖如圖1-4所示。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-4 P0端口位結(jié)構(gòu)圖

      由圖1-4可見,P0端口由鎖存器、輸入緩沖器、多路開關(guān)、一個(gè)非門、一個(gè)與門及場(chǎng)效應(yīng)管驅(qū)動(dòng)電路構(gòu)成。圖1-4中標(biāo)號(hào)為P0.X引腳的圖標(biāo),表示引腳可以是P0.0~P0.7的任何一位,即在P0口有8個(gè)與圖1-4所示相同的電路組成。下面先介紹組成P0口的每個(gè)單元部分。

      (1)輸入緩沖器

      在P0口中,有兩個(gè)三態(tài)的緩沖器,學(xué)過數(shù)字電路的讀者都知道三態(tài)門有3個(gè)狀態(tài),即在其輸出端可以是高電平、低電平,同時(shí)還有一種高阻狀態(tài)(或稱為禁止?fàn)顟B(tài)),圖1-4中,上面一個(gè)是讀鎖存器的緩沖器,也就是說,要讀取D鎖存器輸出端Q的數(shù)據(jù),需要使讀鎖存器中這個(gè)緩沖器的三態(tài)控制端(圖1-4中標(biāo)號(hào)為“讀鎖存器”端)有效,下面一個(gè)是讀引腳的緩沖器,要讀取P0.X引腳上的數(shù)據(jù),也要使標(biāo)號(hào)為“讀引腳”的三態(tài)緩沖器的控制端有效,引腳上的數(shù)據(jù)才會(huì)傳輸?shù)絾纹瑱C(jī)的內(nèi)部數(shù)據(jù)總線上。

      (2)D鎖存器

      構(gòu)成一個(gè)鎖存器,通常要用一個(gè)時(shí)序電路(時(shí)序的單元電路內(nèi)容請(qǐng)參考數(shù)字電路相關(guān)知識(shí)),一個(gè)觸發(fā)器可以保存一位二進(jìn)制數(shù)(即具有保持功能),在51單片機(jī)的32根I/O口線中,都是用一個(gè)D觸發(fā)器來構(gòu)成鎖存器的。圖1-4中的D鎖存器,D端是數(shù)據(jù)輸入端,CP是控制端(即時(shí)序控制信號(hào)輸入端),Q是輸出端,

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      是反向輸出端。

      對(duì)于D鎖存器來講,當(dāng)D輸入端有一個(gè)輸入信號(hào),如果這時(shí)控制端CP沒有信號(hào)(即時(shí)序脈沖沒有到來),這時(shí)輸入端D的數(shù)據(jù)是無法傳輸?shù)捷敵龆薗及反向輸出端

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      的。如果時(shí)序控制端CP的時(shí)序脈沖到達(dá),這時(shí)D端輸入的數(shù)據(jù)就會(huì)傳輸?shù)絈及

      端。數(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)。

      (3)多路開關(guān)

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

      (4)輸出驅(qū)動(dòng)

      從圖1-4中可看出,P0口的輸出是由兩個(gè)MOS管組成的推拉式結(jié)構(gòu),也就是說,這兩個(gè)MOS管一次只能導(dǎo)通一個(gè),當(dāng)Vl導(dǎo)通時(shí),V2截止,當(dāng)V2導(dǎo)通時(shí),Vl截止。

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

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

      P0口作為I/O端口使用時(shí),多路開關(guān)的控制信號(hào)為0(低電平),如圖1-4所示,多路開關(guān)的控制信號(hào)同時(shí)和與門的一個(gè)輸入端相接,與門的邏輯特點(diǎn)是“全l出1,有0出0”,那么控制信號(hào)如果是0,這時(shí)與門輸出的也是一個(gè)0(低電平),此時(shí)Vl管就截止,在多路控制開關(guān)的控制信號(hào)是0(低電平)時(shí),多路開關(guān)是與鎖存器的端相接的(即P0口作為I/O口線使用)。

      P0口用作I/O口線,其由數(shù)據(jù)總線向引腳輸出(即輸出狀態(tài)Output)的工作過程:寫鎖存器信號(hào)CP有效,數(shù)據(jù)總線的信號(hào)的輸出流程為鎖存器的輸入端D→鎖存器的反向輸出

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      端→多路開關(guān)→V2管的柵極→V2管的漏極→輸出端P0.X。前面已經(jīng)介紹過,當(dāng)多路開關(guān)的控制信號(hào)為低電平0時(shí),與門輸出為低電平,Vl管是截止的,所以作為輸出口時(shí),P0是漏極開路輸出狀態(tài),類似于OC門,當(dāng)驅(qū)動(dòng)上接電流負(fù)載時(shí),需要外接上拉電阻。如圖1-5所示就是由內(nèi)部數(shù)據(jù)總線向P0口輸出數(shù)據(jù)的流程圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-5 P0口內(nèi)部數(shù)據(jù)總線向引腳輸出時(shí)的流程圖

      P0口用作I/O口線,其由一引腳向內(nèi)部數(shù)據(jù)總線輸入(即輸入狀態(tài)Input)的工作過程,數(shù)據(jù)輸入時(shí)(讀P0口)有以下兩種情況:

      第一種情況是讀引腳,即讀芯片引腳上的數(shù)據(jù)。讀引腳數(shù)時(shí),讀引腳緩沖器打開(即三態(tài)緩沖器的控制端要有效),通過內(nèi)部數(shù)據(jù)總線輸入。如圖1-6所示為P0口讀引腳時(shí)的流程圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-6 P0口讀引腳時(shí)的流程圖

      第二種情況是讀鎖存器,通過打開讀鎖存器三態(tài)緩沖器讀取鎖存器輸出端Q的狀態(tài)。如圖1-7所示為P0口讀鎖存器時(shí)的流程圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-7 P0口讀鎖存器時(shí)的流程圖

      在輸入狀態(tài)下,從鎖存器和從引腳上讀取的信號(hào)一般是一致的,但也有例外。例如,當(dāng)從內(nèi)部總線輸出低電平后,鎖存器Q=0,

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      =l,場(chǎng)效應(yīng)管V2開通,端口線呈低電平狀態(tài),此時(shí)無論端口線上外接的信號(hào)是低電平還是高電平,從引腳讀入單片機(jī)的信號(hào)都是低電平,因而不能正確地讀入端口引腳上的信號(hào)。又如,當(dāng)從內(nèi)部總線輸出高電平后,鎖存器Q=1,

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      =0,場(chǎng)效應(yīng)管V2截止,如果外接引腳信號(hào)為低電平,從引腳上讀入的信號(hào)就與從鎖存器讀入的信號(hào)不同。為此,8031單片機(jī)在對(duì)端口P0~P3的輸入操作有如下約定:凡屬于讀—改—寫方式的指令,從鎖存器讀入信號(hào),其他指令則從端口引腳線上讀入信號(hào)。讀—改—寫指令的特點(diǎn)是,從端口輸入(讀)信號(hào),在單片機(jī)內(nèi)加以運(yùn)算(修改)后,再輸出(寫)到該端口上。下面是幾條讀—改—寫指令的示例。

      ORL P0, A P0→AP0

      INC P1 P1+1→P1

      DEC P3 P3-1→P3

      CPL P2 P2→P2

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

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

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

      在訪問外部存儲(chǔ)器時(shí),P0口作為地址/數(shù)據(jù)復(fù)用口使用,這時(shí)多路開關(guān)控制信號(hào)為l,與門解鎖,與門輸出信號(hào)電平由地址/數(shù)據(jù)線信號(hào)決定;多路開關(guān)與反相器的輸出端相連,地址信號(hào)經(jīng)地址/數(shù)據(jù)線→反相器→V2場(chǎng)效應(yīng)管柵極→V2漏極輸出。例如,控制信號(hào)為l,地址信號(hào)為0時(shí),與門輸出低電平,Vl管截止;反相器輸出高電平,V2管導(dǎo)通,輸出引腳的地址信號(hào)為低電平。如圖1-8所示為P0口作為地址線,控制信號(hào)為1,地址信號(hào)為0時(shí)的工作流程圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-8 P0口作為地址線,控制信號(hào)為1,地址信號(hào)為0時(shí)的工作流程圖

      反之,控制信號(hào)為l、地址信號(hào)為l,與門輸出為高電平,Vl管導(dǎo)通;反相器輸出低電平,V2管截止,輸出引腳的地址信號(hào)為高電平。如圖1-9所示為P0口作為地址線,控制信號(hào)為1,地址信號(hào)為1時(shí)的工作流程圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-9 P0口作為地址線,控制信號(hào)為1,地址信號(hào)為1時(shí)的工作流程圖

      可見,在輸出地址/數(shù)據(jù)信息時(shí),Vl、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,Vl管截止,多路開關(guān)也跟著轉(zhuǎn)向鎖存器反相輸出端

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      ;CPU自動(dòng)將0FFH(11111111,即向D鎖存器寫入一個(gè)高電平1)寫入P0口鎖存器,使V2管截止,在讀引腳信號(hào)控制下,通過讀引腳三態(tài)門電路將指令碼讀到內(nèi)部總線。如圖1-10所示為P0口作為數(shù)據(jù)總線,取指期間工作流程圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-10 P0口作為數(shù)據(jù)總線時(shí)取指期間工作流程圖

      如果該指令是輸出數(shù)據(jù),如“MOVX@DPTR,A”,該指令將累加器的內(nèi)容通過P0口數(shù)據(jù)總線傳送到外部RAM中,則多路開關(guān)控制信號(hào)為1,與門解鎖,與輸出地址信號(hào)的工作流程類似,數(shù)據(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ì)中務(wù)必注意,程序中不能再含有以P0口作為操作數(shù)(包含源操作數(shù)和目的操作數(shù))的指令。

      當(dāng)由P0口輸入數(shù)據(jù)時(shí),由于外部輸入信號(hào)既加在緩沖輸入端上,又加在驅(qū)動(dòng)電路的漏極上。如果這時(shí)T2是導(dǎo)通的,則引腳上的電位始終被鉗位在0電平上,輸入數(shù)據(jù)不可能被正確地讀入。因此,在輸入數(shù)據(jù)時(shí),應(yīng)先把P0口置1,使兩個(gè)輸出FET均關(guān)斷,使引腳“浮置”,成為高阻狀態(tài),這樣才能正確地插入數(shù)據(jù),這就是準(zhǔn)雙向口。

      I/O口作為輸入口時(shí)有兩種工作方式,即讀端口與讀引腳,讀端口時(shí)實(shí)際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過某種運(yùn)算或變換后再寫回到端口鎖存器,只有讀端口時(shí)才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線,圖1-10中的兩個(gè)三角形表示的就是輸入緩沖器,CPU將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號(hào)以完成不同的操作,這是由硬件自動(dòng)完成的。讀引腳時(shí),就是把端口作為外部輸入線時(shí),首先要通過外部指令把端口鎖存器置1,然后再進(jìn)行讀引腳操作,否則就可能讀入出錯(cuò),為什么?看圖1-10中,如果不對(duì)端口置1,端口鎖存器原來的狀態(tài)有可能為0,Q端為0,

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      端為1,加到場(chǎng)效應(yīng)管柵極的信號(hào)為1,該場(chǎng)效應(yīng)管就導(dǎo)通,對(duì)地呈現(xiàn)低阻抗,此時(shí)即使引腳上輸入的信號(hào)為1,也會(huì)因端口的低阻抗而使信號(hào)變低,使得外加的1信號(hào)讀入后不一定是1,若先執(zhí)行置1操作,則可以使場(chǎng)效應(yīng)管截止,引腳信號(hào)直接加到三態(tài)緩沖器中,實(shí)現(xiàn)正確的讀入,由于在輸入操作時(shí)還必須附加一個(gè)準(zhǔn)備動(dòng)作,所以這類I/O口被稱為準(zhǔn)雙向口,89C51的P0、P1、P2、P3口作為輸入時(shí)都是準(zhǔn)雙向口。接下來再看另一個(gè)問題,從圖1-10中可以看出,這4個(gè)端口還有一個(gè)差別,除了P1口外,P0、P2、P3口都還有其他功能,這些功能又作什么用的呢?下面就來詳細(xì)講解這個(gè)問題。

      每個(gè)I/O端口都有一個(gè)8位數(shù)據(jù)鎖存器和兩個(gè)8位數(shù)據(jù)緩沖器。P0~P3(8位鎖存器)是SFR,有各自的端口地址,可直接用指令尋址,用于存放需要輸出的數(shù)據(jù)。數(shù)據(jù)輸入時(shí)只有緩沖沒有鎖存,各引腳上輸入的數(shù)據(jù)必須一直保持到CPU將其讀走為止,如圖1-11所示為P0位結(jié)構(gòu)圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-11 P0位結(jié)構(gòu)圖

      從圖1-11中可以看出,P0口的內(nèi)部有一個(gè)二選一的選擇器,受內(nèi)部信號(hào)的控制,如果在圖1-11中的位置,則處在I/O口工作方式,此時(shí)相當(dāng)于一個(gè)準(zhǔn)雙向口輸入,須先將P0口置1,每根口線可以獨(dú)立定義為輸入或輸出,但是必須在口線上加上拉電阻,如果將開關(guān)撥向另一個(gè)方向,則作為地址/數(shù)據(jù)復(fù)用總線用,此時(shí)不能逐位定義為輸入/輸出,有兩種用法,當(dāng)作數(shù)據(jù)總線用時(shí)輸入8位數(shù)據(jù),當(dāng)作地址總線用時(shí)則輸出低8位地址,注意,當(dāng)P0口作為地址/數(shù)據(jù)復(fù)用總線用之后就不能再作I/O口使用了。那么什么叫做地址/數(shù)據(jù)復(fù)用?這其實(shí)是當(dāng)單片機(jī)的并行口不夠用時(shí)需要擴(kuò)展輸入/輸出口時(shí)的一種用法,具體使用方法會(huì)在后續(xù)的章節(jié)中逐步講解。

      利用P0口進(jìn)行擴(kuò)展外部存儲(chǔ)器和I/O時(shí),P0口將作為地址和數(shù)據(jù)分時(shí)復(fù)用,CPU發(fā)控制信號(hào),打開與門,使MUX打向上邊,形成推拉式結(jié)構(gòu),數(shù)據(jù)信號(hào)可直接讀入或輸出到內(nèi)部總線。利用P0作為通用I/O時(shí),此時(shí)P0口是一個(gè)準(zhǔn)雙向口,CPU發(fā)控制信號(hào),封鎖與門,使上拉管截止,MUX打向下邊,與D觸發(fā)器Q連接。

      輸入程序舉例:

      MOV P0, #FFH

      輸出程序舉例:

      MOV A, P0

      2. P1口的結(jié)構(gòu)及工作原理

      P1口字節(jié)地址為90H,位地址為90H~97H,如圖1-12所示為P1位結(jié)構(gòu)圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-12 P1位結(jié)構(gòu)圖

      與P0不同,P1口只能作為I/O口使用,無MUX,但其內(nèi)部有一個(gè)上拉電阻,所以連接外圍負(fù)載時(shí)不需要外接上拉電阻,這一點(diǎn)P1、P2、P3都一樣。

      輸入程序舉例:

      MOV P1, #FFH

      MOV A, P1

      輸出程序舉例:

      MOV A, P1

      3. P2口的結(jié)構(gòu)及工作原理

      P2口字節(jié)地址為A0H,位地址為A0H~A7H,如圖1-13所示為P2位結(jié)構(gòu)圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-13 P2位結(jié)構(gòu)圖

      P2口作為I/O口線時(shí)用法與P0口一樣,當(dāng)內(nèi)部開關(guān)撥向另一個(gè)方向,即作地址輸出時(shí),可以輸出程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器的高8位地址,并與P0口輸出的低地址一起構(gòu)成16位的地址線。

      注意: 和數(shù)據(jù)總線的區(qū)別,數(shù)據(jù)總線是8位的,很多書上都會(huì)提到51單片機(jī)是8位數(shù)據(jù)總線,16位地址總線,但都不會(huì)解釋有什么不同,看到這里讀者應(yīng)該明白二者的區(qū)別。

      16位的地址總線可以尋址64KB的程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器,后續(xù)章節(jié)會(huì)講解,此處要注意的是當(dāng)P2口作為地址總線時(shí),高8位地址線是8位一起輸出的,不能像I/O口線那樣逐位定義,這與P0口是一樣的。

      當(dāng)P2口用來擴(kuò)展外存儲(chǔ)器和I/O時(shí),作為高8位地址輸出,當(dāng)進(jìn)行外部存儲(chǔ)器或I/O設(shè)備讀寫操作時(shí),CPU自動(dòng)發(fā)出控制信號(hào),打開與門,使MUX撥向上邊。當(dāng)P2口當(dāng)作通用I/O時(shí),CPU自動(dòng)發(fā)出控制信號(hào),MUX撥向下邊,與D觸發(fā)器Q連接。

      輸入程序舉例:

      MOV P2, #FFH

      MOV A, P2

      輸出程序舉例:

      MOV A, P2

      4. P3口的結(jié)構(gòu)及工作原理

      P3口字節(jié)地址為B0H,位地址為B0H~B7H。如圖1-14所示為P3位結(jié)構(gòu)圖。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      圖1-14 P3位結(jié)構(gòu)圖

      P3口作為I/O口線用時(shí)同其他的端口相同,也是準(zhǔn)雙向口,不同的是,P3口的每一位都有另一種功能,也叫第二功能,具體作用在用到時(shí)將詳細(xì)解釋。當(dāng)P3口作為通用I/O口時(shí),準(zhǔn)雙向口第二功能端保持高電平。

      輸入程序舉例:

      MOV P3, #FFH

      MOV A, P3

      輸出程序舉例:

      MOV A, P3

      當(dāng)P3口作為第二功能時(shí),鎖存器輸出Q=1,如表1-4所示為P3口第二功能列表。

      詳解51單片機(jī)基本硬件結(jié)構(gòu)

      表1-4 P3口第二功能列表

      既然單片機(jī)的引腳有第二功能,那么CPU是如何識(shí)別的呢?這是一個(gè)令許多初學(xué)者困惑的問題,其實(shí)單片機(jī)的第二功能是不需要人工干預(yù)的,也就是說只要CPU執(zhí)行到相應(yīng)的指令,就自動(dòng)轉(zhuǎn)成了第二功能。

      思考: 輸入和輸出口簡(jiǎn)稱I/O口,是單片機(jī)與外部電路接口的唯一途徑,4個(gè)并行口的結(jié)構(gòu)是有一定區(qū)別的,如何根據(jù)系統(tǒng)的設(shè)計(jì)要求和產(chǎn)品用途來正確靈活地使用是初學(xué)者必須掌握的基本功,還需要清楚其功能和用途。

      5. 應(yīng)用注意事項(xiàng)

      (1)在無片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這4個(gè)端口的每一位都可以作為準(zhǔn)雙向通用I/O端口使用。在具有片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,P2口作為高8位地址線,P0口作為雙向總線,分時(shí)作為低8位地址和數(shù)據(jù)的輸入/輸出線。

      (2)P0口作為通用雙向I/O口使用時(shí),必須外接上拉電阻。

      (3)P3口除了作通用I/O口使用外,各位還具有第二功能。當(dāng)P3口某一位用于第二功能作輸出時(shí),則不能再作通用I/O口使用。

      (4)當(dāng)P0~P4端口用作輸入時(shí),為了避免誤讀,都必須先向?qū)?yīng)的輸出鎖存器寫入1,使FET截止,然后再讀端口引腳,例如以下程序:

      MOV P1, #0FFH

      MOV A, P1

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多