資料介紹
硬件結(jié)構(gòu)
單片機的內(nèi)部結(jié)構(gòu)是由CPU、ROM、RAM等組成,現(xiàn)在介紹外部引腳。如圖1-3所示為單片機的引腳圖,這就是實驗中要用的89C51單片機的外部引腳圖。如表1-3所示為89C51單片機引腳分配表。
圖1-3?89C51單片機的引腳圖
表1-3?89C51單片機引腳分配表
端口結(jié)構(gòu)分析
從1.3.1節(jié)的硬件結(jié)構(gòu)中可以看出,89C51單片機總共有4組端口,P0、P1、P2和P3,了解這4組端口的結(jié)構(gòu)原理對于日后的編程會有很大的幫助,由于這4組端口結(jié)構(gòu)不盡相同,下面分別介紹單片機總的4組端口。由于每組端口都是由8位組成,故在下面的講解中,只以每組端口的其中一位來解釋。
1. P0口的結(jié)構(gòu)及工作原理
P0口字節(jié)地址為80H,位地址80H~87H。P0端口8位中的一位結(jié)構(gòu)圖如圖1-4所示。
圖1-4?P0端口位結(jié)構(gòu)圖
由圖1-4可見,P0端口由鎖存器、輸入緩沖器、多路開關(guān)、一個非門、一個與門及場效應(yīng)管驅(qū)動電路構(gòu)成。圖1-4中標號為P0.X引腳的圖標,表示引腳可以是P0.0~P0.7的任何一位,即在P0口有8個與圖1-4所示相同的電路組成。下面先介紹組成P0口的每個單元部分。
(1)輸入緩沖器
在P0口中,有兩個三態(tài)的緩沖器,學過數(shù)字電路的讀者都知道三態(tài)門有3個狀態(tài),即在其輸出端可以是高電平、低電平,同時還有一種高阻狀態(tài)(或稱為禁止狀態(tài)),圖1-4中,上面一個是讀鎖存器的緩沖器,也就是說,要讀取D鎖存器輸出端Q的數(shù)據(jù),需要使讀鎖存器中這個緩沖器的三態(tài)控制端(圖1-4中標號為“讀鎖存器”端)有效,下面一個是讀引腳的緩沖器,要讀取P0.X引腳上的數(shù)據(jù),也要使標號為“讀引腳”的三態(tài)緩沖器的控制端有效,引腳上的數(shù)據(jù)才會傳輸?shù)絾纹瑱C的內(nèi)部數(shù)據(jù)總線上。
(2)D鎖存器
構(gòu)成一個鎖存器,通常要用一個時序電路(時序的單元電路內(nèi)容請參考數(shù)字電路相關(guān)知識),一個觸發(fā)器可以保存一位二進制數(shù)(即具有保持功能),在51單片機的32根I/O口線中,都是用一個D觸發(fā)器來構(gòu)成鎖存器的。圖1-4中的D鎖存器,D端是數(shù)據(jù)輸入端,CP是控制端(即時序控制信號輸入端),Q是輸出端,是反向輸出端。
對于D鎖存器來講,當D輸入端有一個輸入信號,如果這時控制端CP沒有信號(即時序脈沖沒有到來),這時輸入端D的數(shù)據(jù)是無法傳輸?shù)捷敵龆薗及反向輸出端的。如果時序控制端CP的時序脈沖到達,這時D端輸入的數(shù)據(jù)就會傳輸?shù)絈及
端。數(shù)據(jù)傳送過來后,當CP時序控制端的時序信號消失時,輸出端還會保持著上次輸入端D的數(shù)據(jù)(即把上次的數(shù)據(jù)鎖存起來)。如果下一個時序控制脈沖信號到來,這時D端的數(shù)據(jù)才再次傳送到Q端,從而改變Q端的狀態(tài)。
(3)多路開關(guān)
在51單片機中,當內(nèi)部的存儲器夠用時(即不需要外擴展存儲器時,這里講的存儲器包括數(shù)據(jù)存儲器及程序存儲器),P0口可以作為通用的輸入/輸出端口(即I/O)使用,對于8031(內(nèi)部沒有ROM)的單片機,或者編寫的程序超過了單片機內(nèi)部的存儲器容量需要外擴存儲器時,P0口就作為地址/數(shù)據(jù)總線使用。那么這個多路選擇開關(guān)就是用于選擇是作為普通I/O口使用還是作為地址/數(shù)據(jù)總線使用的選擇開關(guān)了。從圖1-4可知,當多路開關(guān)與下端接通時,P0口作為普通的I/O口使用;當多路開關(guān)是與上端接通時,P0口作為地址/數(shù)據(jù)總線使用。
(4)輸出驅(qū)動
從圖1-4中可看出,P0口的輸出是由兩個MOS管組成的推拉式結(jié)構(gòu),也就是說,這兩個MOS管一次只能導通一個,當Vl導通時,V2截止,當V2導通時,Vl截止。
上面已對P0口的各單元部件進行了詳細的講解,下面研究一下P0口作為I/O口及地址/數(shù)據(jù)總線使用時的具體工作過程。
(1)作為I/O端口使用時的工作原理
P0口作為I/O端口使用時,多路開關(guān)的控制信號為0(低電平),如圖1-4所示,多路開關(guān)的控制信號同時和與門的一個輸入端相接,與門的邏輯特點是“全l出1,有0出0”,那么控制信號如果是0,這時與門輸出的也是一個0(低電平),此時Vl管就截止,在多路控制開關(guān)的控制信號是0(低電平)時,多路開關(guān)是與鎖存器的端相接的(即P0口作為I/O口線使用)。
P0口用作I/O口線,其由數(shù)據(jù)總線向引腳輸出(即輸出狀態(tài)Output)的工作過程:寫鎖存器信號CP有效,數(shù)據(jù)總線的信號的輸出流程為鎖存器的輸入端D→鎖存器的反向輸出端→多路開關(guān)→V2管的柵極→V2管的漏極→輸出端P0.X。前面已經(jīng)介紹過,當多路開關(guān)的控制信號為低電平0時,與門輸出為低電平,Vl管是截止的,所以作為輸出口時,P0是漏極開路輸出狀態(tài),類似于OC門,當驅(qū)動上接電流負載時,需要外接上拉電阻。如圖1-5所示就是由內(nèi)部數(shù)據(jù)總線向P0口輸出數(shù)據(jù)的流程圖。
圖1-5?P0口內(nèi)部數(shù)據(jù)總線向引腳輸出時的流程圖
P0口用作I/O口線,其由一引腳向內(nèi)部數(shù)據(jù)總線輸入(即輸入狀態(tài)Input)的工作過程,數(shù)據(jù)輸入時(讀P0口)有以下兩種情況:
第一種情況是讀引腳,即讀芯片引腳上的數(shù)據(jù)。讀引腳數(shù)時,讀引腳緩沖器打開(即三態(tài)緩沖器的控制端要有效),通過內(nèi)部數(shù)據(jù)總線輸入。如圖1-6所示為P0口讀引腳時的流程圖。
圖1-6?P0口讀引腳時的流程圖
第二種情況是讀鎖存器,通過打開讀鎖存器三態(tài)緩沖器讀取鎖存器輸出端Q的狀態(tài)。如圖1-7所示為P0口讀鎖存器時的流程圖。
圖1-7?P0口讀鎖存器時的流程圖
在輸入狀態(tài)下,從鎖存器和從引腳上讀取的信號一般是一致的,但也有例外。例如,當從內(nèi)部總線輸出低電平后,鎖存器Q=0,=l,場效應(yīng)管V2開通,端口線呈低電平狀態(tài),此時無論端口線上外接的信號是低電平還是高電平,從引腳讀入單片機的信號都是低電平,因而不能正確地讀入端口引腳上的信號。又如,當從內(nèi)部總線輸出高電平后,鎖存器Q=1,=0,場效應(yīng)管V2截止,如果外接引腳信號為低電平,從引腳上讀入的信號就與從鎖存器讀入的信號不同。為此,8031單片機在對端口P0~P3的輸入操作有如下約定:凡屬于讀—改—寫方式的指令,從鎖存器讀入信號,其他指令則從端口引腳線上讀入信號。讀—改—寫指令的特點是,從端口輸入(讀)信號,在單片機內(nèi)加以運算(修改)后,再輸出(寫)到該端口上。下面是幾條讀—改—寫指令的示例。
ORL?P0, A P0→AP0
INC?P1 P1 1→P1
DEC?P3 P3-1→P3
CPL?P2 P2→P2
這樣安排的原因在于讀—改—寫指令需要得到端口原輸出的狀態(tài),修改后再輸出,讀鎖存器而不是讀引腳,可以避免因外部電路的原因使原端口的狀態(tài)被讀錯。
注意: P0端口是8031單片機的總線口,分時出現(xiàn)數(shù)據(jù)D7~D0、低8位地址A7~A0以及三態(tài),用來連接存儲器、外部電路與外部設(shè)備。P0端口是使用最廣泛的I/O端口。
(2)作為地址/數(shù)據(jù)復用口使用時的工作原理
在訪問外部存儲器時,P0口作為地址/數(shù)據(jù)復用口使用,這時多路開關(guān)控制信號為l,與門解鎖,與門輸出信號電平由地址/數(shù)據(jù)線信號決定;多路開關(guān)與反相器的輸出端相連,地址信號經(jīng)地址/數(shù)據(jù)線→反相器→V2場效應(yīng)管柵極→V2漏極輸出。例如,控制信號為l,地址信號為0時,與門輸出低電平,Vl管截止;反相器輸出高電平,V2管導通,輸出引腳的地址信號為低電平。如圖1-8所示為P0口作為地址線,控制信號為1,地址信號為0時的工作流程圖。
圖1-8?P0口作為地址線,控制信號為1,地址信號為0時的工作流程圖
反之,控制信號為l、地址信號為l,與門輸出為高電平,Vl管導通;反相器輸出低電平,V2管截止,輸出引腳的地址信號為高電平。如圖1-9所示為P0口作為地址線,控制信號為1,地址信號為1時的工作流程圖。
圖1-9?P0口作為地址線,控制信號為1,地址信號為1時的工作流程圖
可見,在輸出地址/數(shù)據(jù)信息時,Vl、V2管是交替導通的,負載能力很強,可以直接與外設(shè)存儲器相連,無須增加總線驅(qū)動器。P0口又作為數(shù)據(jù)總線使用,在訪問外部程序存儲器時,P0口輸出低8位地址信息后,將變?yōu)閿?shù)據(jù)總線,以便讀指令碼(輸入)。在存取指令期間,控制信號為0,Vl管截止,多路開關(guān)也跟著轉(zhuǎn)向鎖存器反相輸出端;CPU自動將0FFH(11111111,即向D鎖存器寫入一個高電平1)寫入P0口鎖存器,使V2管截止,在讀引腳信號控制下,通過讀引腳三態(tài)門電路將指令碼讀到內(nèi)部總線。如圖1-10所示為P0口作為數(shù)據(jù)總線,取指期間工作流程圖。
圖1-10?P0口作為數(shù)據(jù)總線時取指期間工作流程圖
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于89C51單片機的8位端口檢測8獨立按鍵源程序 1次下載
- 基于89C51單片機的秒表源程序 11次下載
- 基于89C51單片機的電子琴源程序 2次下載
- 基于89C51單片機的定時器源程序 7次下載
- 基于89C51單片機的多路不同頻率方波源程序 2次下載
- 基于89C51單片機的查表顯示LED燈源程序 0次下載
- 基于89C51單片機的電機速度測試程序 2次下載
- 基于89C51單片機的24c02記憶開機次數(shù)源代碼 3次下載
- 詳解51單片機基本硬件結(jié)構(gòu)
- 89C51單片機控制的開關(guān)電源總結(jié)
- 基于89c51單片機的電機溫控速度調(diào)節(jié) 9次下載
- 89C51單片機課程設(shè)計 133次下載
- 89C51單片機的詳細資料概述
- 基于89c51單片機IO口操作的幾個歷程資料分享 16次下載
- 89C51單片機的結(jié)構(gòu)和原理 0次下載
- 基于89C51時鐘電路的設(shè)計與制作 8995次閱讀
- AT89S51單片機的詳細資料介紹 1.1w次閱讀
- AT89S51單片機各引腳的功能解析 4.4w次閱讀
- 為什么89C51單片機的P0-P3口進行輸入時要設(shè)置為1 1.1w次閱讀
- 單片機外部結(jié)構(gòu)的引腳功能的簡介和使用資料概述 8779次閱讀
- 80C51單片機與8051單片機的區(qū)別是什么 8690次閱讀
- 基于89C51和89C52單片機對數(shù)控機床的控制設(shè)計 4446次閱讀
- AT89S51單片機的看門狗功能設(shè)計 3932次閱讀
- 單片機學習心得1:89c51單片機定時器應(yīng)用! 9516次閱讀
- 89C51單片機16位數(shù)據(jù)傳送指令的執(zhí)行過程 5015次閱讀
- 80C51單片機與8051單片機的主要差別在哪里 7773次閱讀
- 基于AT89C51單片機直流電機PWM調(diào)速程序分享 1.6w次閱讀
- 如何模擬實現(xiàn)應(yīng)用在數(shù)據(jù)采集系統(tǒng)中的89C51單片機I/O口串行通信? 1483次閱讀
- 89C51單片機中斷知識要點 1.7w次閱讀
- 89C51單片機的步進電動機控制系統(tǒng)設(shè)計 1.4w次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發(fā)板設(shè)計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多