版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、14 4個雙向的個雙向的8 8位并行位并行I/OI/O端口:端口:P0P3P0P3,它們的輸,它們的輸出鎖存器屬于特殊功能寄存器。出鎖存器屬于特殊功能寄存器。4 4個端口可以按字節(jié)和位尋址。個端口可以按字節(jié)和位尋址。2雙功能的雙功能的8 8位并行端口,字節(jié)地址為位并行端口,字節(jié)地址為 80H80H,位地址為,位地址為80H80H87H87H。3圖圖4-1 P0口某一位的位電路結構口某一位的位電路結構1 1位電路結構位電路結構P0P0口某位的電路包括:口某位的電路包括:(1 1)一個數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位鎖存。)一個數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位鎖存。(2 2)兩個三態(tài)數(shù)據(jù)輸入緩沖器,分別是用于
2、讀鎖存器的輸)兩個三態(tài)數(shù)據(jù)輸入緩沖器,分別是用于讀鎖存器的輸入緩沖器入緩沖器BUF1BUF1和讀引腳的輸入緩沖器和讀引腳的輸入緩沖器BUF2BUF2。(3 3)一個多路轉接開關)一個多路轉接開關MUXMUX,一個輸入來自鎖存器的端,一個輸入來自鎖存器的端,另一輸入為地址另一輸入為地址/ /數(shù)據(jù)信號的反相輸出。數(shù)據(jù)信號的反相輸出。MUXMUX由由“控制控制”信信號控制,實現(xiàn)鎖存器的輸出和地址號控制,實現(xiàn)鎖存器的輸出和地址/ /數(shù)據(jù)信號之間的轉接。數(shù)據(jù)信號之間的轉接。 (4 4)數(shù)據(jù)輸出的控制和驅動電路,由兩個場效應管()數(shù)據(jù)輸出的控制和驅動電路,由兩個場效應管(FETFET)組成。組成。4(1
3、1)P0P0口用作地址口用作地址/ /數(shù)據(jù)總線數(shù)據(jù)總線 當外擴存儲器或當外擴存儲器或I/OI/O時,時,P0P0口分時復用為地址口分時復用為地址/ /數(shù)據(jù)數(shù)據(jù)總線使用。總線使用。 當作為當作為地址或數(shù)據(jù)輸出時地址或數(shù)據(jù)輸出時,“控制控制”信號為信號為1 1。5111 10導通導通截止截止5100 01截止截止導通導通推挽輸出推挽輸出(1 1)P0P0口用作地址口用作地址/ /數(shù)據(jù)總線數(shù)據(jù)總線 當作為當作為數(shù)據(jù)輸入時數(shù)據(jù)輸入時,僅從外部讀入信息,僅從外部讀入信息,“控控制制”信號為信號為0 0。6111 10導通導通截止截止60CPU自動寫入自動寫入1000截止截止截止截止高阻高阻數(shù)據(jù)輸入數(shù)據(jù)輸
4、入(2 2)P0P0口用作通用口用作通用I/OI/O口口 當作為通用當作為通用I/OI/O口時,口時,“控制控制”信號為信號為0 0,要外,要外接上拉電阻。接上拉電阻。70數(shù)據(jù)數(shù)據(jù)寫脈沖寫脈沖0截止截止數(shù)據(jù)數(shù)據(jù)(2 2)P0P0口用作通用口用作通用I/OI/O口口 輸入時:“讀引腳”和“讀鎖存器”80數(shù)據(jù)數(shù)據(jù)讀鎖存器讀鎖存器0截止截止0數(shù)據(jù)數(shù)據(jù)讀引腳讀引腳0截止截止數(shù)據(jù)數(shù)據(jù)0截止截止P0口為雙功能口地址/數(shù)據(jù)復用口和通用I/O口。當P0口用作地址/數(shù)據(jù)復用口時,是一個真正的真正的雙向口雙向口,輸出低低8 8位地址位地址或輸出/輸入8 8位數(shù)據(jù)位數(shù)據(jù)。當P0口用作通用I/O口時,是一個準雙向口準
5、雙向口。 用作輸入輸入時,應首先向鎖存器寫寫1 1。 單片機復位后,鎖存器自動被置1; 當P0口由原來的輸出狀態(tài)轉變?yōu)檩斎霠顟B(tài)時,應首先置鎖存器為1,方可執(zhí)行輸入操作。9單功能單功能I/OI/O口,字節(jié)地址為口,字節(jié)地址為 90H90H,位地址為,位地址為 90H90H97H97H。10圖圖4-2 P1口某一位的位電路結構口某一位的位電路結構2 2工作過程分析工作過程分析 P1P1口只能作為通用的口只能作為通用的I/OI/O口使用??谑褂?。 P1P1口作為輸入口時,分為口作為輸入口時,分為“讀鎖存器讀鎖存器”和和“讀讀引腳引腳”兩種方式。兩種方式。 P1P1口有內部上拉電阻,為準雙向口。口有內
6、部上拉電阻,為準雙向口?!白x引腳讀引腳”輸入時,必須先向鎖存器寫入輸入時,必須先向鎖存器寫入1 1。11P2P2口是一個雙功能口,字節(jié)地址為口是一個雙功能口,字節(jié)地址為A0HA0H,位地址,位地址為為 A0HA0HA7HA7H。12圖圖4-3 P2口某一位的位電路結構口某一位的位電路結構工作過程分析工作過程分析 (1 1)P2P2口用作地址總線口用作地址總線 在內部控制信號作用下,在內部控制信號作用下,MUXMUX與與 “地址地址”接通。當接通。當“地址地址”線為線為0 0時,場效應管導通,時,場效應管導通,P2P2口引腳輸出口引腳輸出0 0;當當“地址地址”線為線為1 1時,場效應管截止,時
7、,場效應管截止,P2P2口引腳輸出口引腳輸出1 1。 (2 2)P2P2口用作通用口用作通用I/OI/O 在內部控制信號作用下,在內部控制信號作用下,MUXMUX與與 鎖存器的鎖存器的Q Q端接通。端接通。CPUCPU輸出輸出1 1時,時,Q=1Q=1,場效應管截止,場效應管截止,P2.xP2.x引腳輸出引腳輸出1 1;CPUCPU輸出輸出0 0時,時,Q=0Q=0,場效應管導通,場效應管導通,P2.xP2.x引腳引腳輸出輸出0 0。 輸入時,分為輸入時,分為“讀鎖存器讀鎖存器”和和“讀引腳讀引腳”兩種方式。兩種方式。133 3P2P2口的特點口的特點 作為地址輸出線使用時,P2口可以輸出外部
8、存儲器的高高8 8位地址位地址,與P0口輸出的低8位地址一起構成16位地址,可以尋址64KB的地址空間。 作為通用I/O口使用時,P2口為一個準雙向口。功能與P1口一樣。 P2口作為高8位地址總線使用時就不能再作為通用I/O口。14P3口電路中增加了引腳的第二功能, P3口的每一位都可以分別定義為第二輸入功能或第二輸出功能。P3口的字節(jié)地址為B0H,位地址為B0HB7H。15圖圖4-4 P3口某一位的位電路結構口某一位的位電路結構2 2工作過程分析工作過程分析(1 1)P3P3口用作第二輸入口用作第二輸入/ /輸出功能輸出功能 選擇第二輸出功能時,鎖存器置選擇第二輸出功能時,鎖存器置“1”1”
9、,“與非門與非門” 開啟。當?shù)诙敵鰹殚_啟。當?shù)诙敵鰹? 1時,場效應管截止,時,場效應管截止,P3.xP3.x引腳引腳輸出為輸出為1 1;當?shù)诙敵鰹椋划數(shù)诙敵鰹? 0時,場效應管導通,時,場效應管導通,P3.xP3.x引腳輸出為引腳輸出為0 0。16選擇第二輸入功能時,鎖選擇第二輸入功能時,鎖存器和第二輸出功能端均存器和第二輸出功能端均應置應置1 1,保證場效應管截,保證場效應管截止,止,P3.xP3.x引腳的信息由輸引腳的信息由輸入緩沖器入緩沖器BUF3BUF3的輸出獲的輸出獲得。得。(2 2)P3P3口用作第一功能口用作第一功能通用通用I/OI/O口口 第二輸出功能端應保持高第二輸
10、出功能端應保持高電電平,平,“與非門與非門”為開啟為開啟狀態(tài)。狀態(tài)。CPUCPU輸出輸出1 1時,時,Q=1Q=1,場效應管截止,場效應管截止,P3.xP3.x引腳輸出為引腳輸出為1 1;CPUCPU輸出輸出0 0時,時,Q=0Q=0,場效應管導,場效應管導通,通,P3.xP3.x引腳輸出為引腳輸出為0 0。 用作用作第一功能通用輸入時,第一功能通用輸入時,P3.xP3.x位的輸出鎖存器和位的輸出鎖存器和第二輸出功能均應置第二輸出功能均應置1 1,場效應管截止,場效應管截止,P3.xP3.x引腳引腳信息通過輸入信息通過輸入BUF3BUF3和和BUF2BUF2進入內部總線,完成進入內部總線,完成
11、“讀引腳讀引腳”操作操作。 當當P3P3口實現(xiàn)第一功能通用輸入時,也可以執(zhí)行口實現(xiàn)第一功能通用輸入時,也可以執(zhí)行“讀讀鎖存器鎖存器”操作,此時操作,此時Q Q端信息經過緩沖器端信息經過緩沖器BUF1BUF1進入進入內部總線。內部總線。173 3P3P3口的特點口的特點 P3口內部有上拉電阻,為準雙向口。 P3口作為第二功能的輸出/輸入,或第一功能的通用I/O輸入,均須將相應位的鎖存器置鎖存器置1 1。、。、由于復位后P3口鎖存器自動置1,所以不需要任何設置工作,就可以進入第二功能操作。 當某位不作第二功能使用時,可作為第一功能的通用I/O使用。18P0口與P1、P2、P3口相比,P0口的驅動能
12、力較大,每位可驅動8個LSTTL輸入,而P1、P2、P3口的每一位的驅動能力,只有P0口的一半。當P0口的某位為高電平時,可提供400A的電流;當P0口的某位為低電平(0.45V)時,可提供3.2mA的灌電流,如低電平允許提高,灌電流可相應加大。所以,任一個口要想獲得較大的驅動能力,只能用低電平輸出低電平輸出。19(a)不恰當?shù)倪B接:高電平驅動 (b)恰當?shù)倪B接:低電平驅動圖4-5 發(fā)光二極管與AT89S51并行口的直接連接上拉電阻限制了拉電流4.2.1 4.2.1 從左到右的流水燈的制作從左到右的流水燈的制作【例例4-14-1】 如圖如圖4-64-6所示,所示,8 8個發(fā)光二極管個發(fā)光二極管
13、LED0LED0LED7LED7經限流電阻分別接至經限流電阻分別接至P1P1口的口的P1.0P1.0P1.7P1.7引腳上,陽極共同接高電平。編程來實現(xiàn)發(fā)引腳上,陽極共同接高電平。編程來實現(xiàn)發(fā)光二極管的從左到右的流水點亮,即按照光二極管的從左到右的流水點亮,即按照LED0LED1LED7LED0LED1LED7的順序,每次點亮一個的順序,每次點亮一個發(fā)光二極管,延時一段時間后熄滅這個發(fā)光二極發(fā)光二極管,延時一段時間后熄滅這個發(fā)光二極管,然后點亮下一個發(fā)光二極管,重復循環(huán)。管,然后點亮下一個發(fā)光二極管,重復循環(huán)。21圖圖4-6 8個發(fā)光二極管與并行口個發(fā)光二極管與并行口P1的連接的連接#incl
14、ude #include /*包含移位函數(shù)的頭文件包含移位函數(shù)的頭文件*/#define uchar unsigned char #define uint unsigned int void delay(uint i) /*延時函數(shù)延時函數(shù)*/uchar t;while (i-)for(t = 0; t 120; t+);void main( )/*主程序主程序*/P1=0 xfe;while (1)P1=_crol_( 0,1) ; /*C51函數(shù)庫中的左移函數(shù),函數(shù)庫中的左移函數(shù),P1中的數(shù)據(jù)循環(huán)左移中的數(shù)據(jù)循環(huán)左移1位位*/delay( 500 ); /*500為延時參數(shù),可根據(jù)實際需要
15、調整為延時參數(shù),可根據(jù)實際需要調整*/Proteus的使用,例4-1244.2.2 4.2.2 左右來回循環(huán)的流水燈的制作左右來回循環(huán)的流水燈的制作在在【例例4-14-1】的基礎上,增加了從右到左點亮發(fā)的基礎上,增加了從右到左點亮發(fā)光二極管的功能,即制作左右來回循環(huán)的節(jié)日彩光二極管的功能,即制作左右來回循環(huán)的節(jié)日彩燈,顯示規(guī)律如圖燈,顯示規(guī)律如圖4-74-7所示。具體電路如圖所示。具體電路如圖4-64-6所示。所示。 25圖圖4-7 節(jié)日彩燈的花樣顯示的規(guī)律節(jié)日彩燈的花樣顯示的規(guī)律為了使顯示效果更加絢麗多彩,圖為了使顯示效果更加絢麗多彩,圖4-64-6中的中的P1P1端口端口8 8個引腳個引腳
16、分別接有不同顏色的發(fā)光二極管。具體如表分別接有不同顏色的發(fā)光二極管。具體如表4-14-1所示。所示。 26【例例4-24-2】左右來回循環(huán)的流水燈的電路連接見圖左右來回循環(huán)的流水燈的電路連接見圖4-64-6,顯,顯示規(guī)律如圖示規(guī)律如圖4-74-7。實現(xiàn)本任務要求,可以有多種軟件實現(xiàn)。實現(xiàn)本任務要求,可以有多種軟件實現(xiàn)方法。下面列出了方法。下面列出了3 3種,具體如下。種,具體如下。(1 1)數(shù)組的字節(jié)操作實現(xiàn))數(shù)組的字節(jié)操作實現(xiàn)本方法是建立一個字符型數(shù)組,將控制本方法是建立一個字符型數(shù)組,將控制8 8個個LEDLED顯示的顯示的8 8位位數(shù)據(jù)作為數(shù)組元素,依次送到數(shù)據(jù)作為數(shù)組元素,依次送到P1
17、P1口來實現(xiàn)。參考程序如口來實現(xiàn)。參考程序如下:下: #include #include #define uchar unsigned char#define uchar unsigned char uchar tab = 0 xfe , 0 xfd , 0 xfb , 0 xf7 , 0 xef , 0 xdf , 0 xbf , uchar tab = 0 xfe , 0 xfd , 0 xfb , 0 xf7 , 0 xef , 0 xdf , 0 xbf , 0 x7f ,0 xbf , 0 xdf , 0 xef , 0 xff7 , 0 xf7 , 0 xfb , 0 xfe ,
18、0 xff;/0 x7f ,0 xbf , 0 xdf , 0 xef , 0 xff7 , 0 xf7 , 0 xfb , 0 xfe , 0 xff;/* *前前8 8個數(shù)據(jù)為左移點亮數(shù)據(jù),后個數(shù)據(jù)為左移點亮數(shù)據(jù),后8 8個為右移點亮數(shù)據(jù)個為右移點亮數(shù)據(jù)* */ /27void delay( )void delay( ) uchar i,j;uchar i,j;for(i = 0; i 255; i+);for(i = 0; i 255; i+);for(j = 0; j 255; j+);for(j = 0; j 255; j+); void main( )void main( )/ /
19、* *主函數(shù)主函數(shù)* */ / uchar iuchar iwhile (1)while (1) for(i = 0; i 15; i+);for(i = 0; i ”“”“”來把送到來把送到P1P1口的顯示控制口的顯示控制數(shù)據(jù)進行移位,從而實現(xiàn)發(fā)光二極管依次點亮。參考程序如下:數(shù)據(jù)進行移位,從而實現(xiàn)發(fā)光二極管依次點亮。參考程序如下:#include #include #define uchar unsigned char#define uchar unsigned char void delay( )void delay( )uchar i,j;uchar i,j;for(i=0; i 25
20、5; i+)for(i=0; i 255; i+)for(j=0; j 255; j+);for(j=0; j 255; j+); void main( ) void main( ) / /* *主函數(shù)主函數(shù)* */ /uchar i,temp;uchar i,temp;while (1) while (1) temp=0 x01;temp=0 x01; / /* *左移初值賦給左移初值賦給temptemp* */ /for(i= 0; i 8; i+)for(i= 0; i 8; i+)29P1=P1=temp;temp;/ /* * temp temp取反后送取反后送P1P1口口* */
21、/delay( );delay( );temp=temp1; temp=temp1; / /* * temp temp 中數(shù)據(jù)左移一位中數(shù)據(jù)左移一位* */ / temp=0 x80; temp=0 x80; / /* *賦右移初值給賦右移初值給temptemp* */ /for(i=0; i 8; i+)for(i=0; i 1; temp=temp1; / /* * temp temp 中數(shù)據(jù)右移一位中數(shù)據(jù)右移一位* */ / 30(3 3)用移位函數(shù)實現(xiàn))用移位函數(shù)實現(xiàn)#include #include #include #include / /* *包含左、右移位函數(shù)的頭文件包含左、右
22、移位函數(shù)的頭文件* */ /#define uchar unsigned char#define uchar unsigned char void delay( ) void delay( ) uchar i,j;uchar i,j;for(i=0; i 255; i+)for(i=0; i 255; i+)for(j=0; j 255; j+);for(j=0; j 255; j+); void main( )void main( ) / /* *主函數(shù)主函數(shù)* */ /uchar i,temp;uchar i,temp;while (1)while (1)temp=0 xfe;temp=0
23、 xfe; / /* *初值為初值為0 x111111100 x11111110* */ /31for(i=0; i 7; i+)for(i=0; i 7; i+)P1=temp;P1=temp;/ /* * temp temp 值送入值送入P1P1口口* */ /delay( ); delay( ); / /* *延時延時* */ /temp=_crol_( temp,1) ;temp=_crol_( temp,1) ;/ /* *執(zhí)行左移函數(shù),執(zhí)行左移函數(shù),temp temp 中的數(shù)據(jù)循環(huán)左移中的數(shù)據(jù)循環(huán)左移1 1位位* */ / for(i=0; i7; i+)for(i=0; i7;
24、i+)P1=temp;P1=temp;/ /* * temp temp 值送入值送入P1P1口口* */ /delay( ); delay( ); / /* *延時延時* */ /temp=_cror_( temp,1) ;temp=_cror_( temp,1) ;/ /* *執(zhí)行右移函數(shù),執(zhí)行右移函數(shù),temptemp中的數(shù)據(jù)循環(huán)右移中的數(shù)據(jù)循環(huán)右移1 1位位* */ / 324.2.3 4.2.3 開關量檢測指示器開關量檢測指示器1 1I/O端口另一應用是作為輸入端口來檢測開關的狀態(tài)?!纠?-34-3】AT89S51單片機的P1.4P1.7接4個開關S0S3,P1.0P1.3接4個發(fā)光
25、二極管LED0LED3。編寫程序,將P1.4P1.7上的4個開關的狀態(tài)反映在P1.0P1.3引腳控制的4個發(fā)光二極管上。1個發(fā)光二極管的狀態(tài),對應一個開關的狀態(tài),例如P1.4引腳上開關S0的狀態(tài),由P1.0腳上的LED0顯示,P1.6引腳上開關S2的狀態(tài),由P1.2腳上的LED2顯示。凡是開關閉合的引腳,對應的LED發(fā)光二極管點亮。接口電路見圖4-8。3334圖圖4-8 開關、開關、LED發(fā)光二極管與并行口發(fā)光二極管與并行口P1的連接的連接參考程序如下:參考程序如下:#include void main( ) /*主函數(shù)*/while (1)unsigned char temp; /*定義臨時變量temp*/P1=0 xff; /* P1口低4位置1,作為輸入;高4位置1,發(fā)光二極管
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能建筑系統(tǒng)升級改造工程施工合同
- 2025年度公寓裝飾裝修工程節(jié)能認證監(jiān)理合同
- 2025年度建筑安裝工程合同風險評估合同范本
- 2025年度企業(yè)商鋪租賃合同范本(標準規(guī)范版)
- 2025年度公司團建旅游安全責任合同
- 2025年度大數(shù)據(jù)分析與咨詢服務合同
- 2025年度科技成果轉化居間服務合同范本與執(zhí)行細則
- 2025年度空調設備銷售安裝與節(jié)能減排方案設計合同
- 2025年度建筑工程施工現(xiàn)場炮工安全責任合同協(xié)議書
- 2025年度國際貿易原材料采購合同
- 彭大軍橋牌約定卡
- 煙氣管道阻力計算
- 城鄉(xiāng)環(huán)衛(wèi)一體化保潔服務迎接重大節(jié)日、活動的保障措施
- 醫(yī)院-9S管理共88張課件
- 高考作文復習:議論文論證方法課件15張
- 2022醫(yī)學課件前列腺炎指南模板
- MySQL數(shù)據(jù)庫項目式教程完整版課件全書電子教案教材課件(完整)
- 藥品生產質量管理工程完整版課件
- 《網絡服務器搭建、配置與管理-Linux(RHEL8、CentOS8)(微課版)(第4版)》全冊電子教案
- 職業(yè)衛(wèi)生教學課件生物性有害因素所致職業(yè)性損害
- 降“四高”健康教育課件
評論
0/150
提交評論