版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章
AT89S51片內(nèi)并行端口的
原理及編程14個(gè)雙向的8位并行I/O端口:P0~P3,它們的輸出鎖存器屬于特殊功能寄存器。4個(gè)端口可以按字節(jié)和位尋址。24.1AT89S51的并行I/O端口的結(jié)構(gòu)及工作原理雙功能的8位并行端口,字節(jié)地址為80H,位地址為80H~87H。34.1.1P0口圖4-1P0口某一位的位電路結(jié)構(gòu)1.位電路結(jié)構(gòu)P0口某位的電路包括:(1)一個(gè)數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位鎖存。(2)兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器,分別是用于讀鎖存器的輸入緩沖器BUF1和讀引腳的輸入緩沖器BUF2。(3)一個(gè)多路轉(zhuǎn)接開(kāi)關(guān)MUX,一個(gè)輸入來(lái)自鎖存器的端,另一輸入為地址/數(shù)據(jù)信號(hào)的反相輸出。MUX由“控制”信號(hào)控制,實(shí)現(xiàn)鎖存器的輸出和地址/數(shù)據(jù)信號(hào)之間的轉(zhuǎn)接。
(4)數(shù)據(jù)輸出的控制和驅(qū)動(dòng)電路,由兩個(gè)場(chǎng)效應(yīng)管(FET)組成。4(1)P0口用作地址/數(shù)據(jù)總線當(dāng)外擴(kuò)存儲(chǔ)器或I/O時(shí),P0口分時(shí)復(fù)用為地址/數(shù)據(jù)總線使用。當(dāng)作為地址或數(shù)據(jù)輸出時(shí),“控制”信號(hào)為1。52.P0口工作過(guò)程分析11110導(dǎo)通截止510001截止導(dǎo)通推挽輸出(1)P0口用作地址/數(shù)據(jù)總線當(dāng)作為數(shù)據(jù)輸入時(shí),僅從外部讀入信息,“控制”信號(hào)為0。62.P0口工作過(guò)程分析11110導(dǎo)通截止60CPU自動(dòng)寫(xiě)入1000截止截止高阻數(shù)據(jù)輸入(2)P0口用作通用I/O口當(dāng)作為通用I/O口時(shí),“控制”信號(hào)為0,要外接上拉電阻。72.P0口工作過(guò)程分析0數(shù)據(jù)寫(xiě)脈沖0截止數(shù)據(jù)(2)P0口用作通用I/O口輸入時(shí):“讀引腳”和“讀鎖存器”82.P0口工作過(guò)程分析0數(shù)據(jù)讀鎖存器0截止0數(shù)據(jù)讀引腳0截止數(shù)據(jù)0截止P0口為雙功能口——地址/數(shù)據(jù)復(fù)用口和通用I/O口。當(dāng)P0口用作地址/數(shù)據(jù)復(fù)用口時(shí),是一個(gè)真正的雙向口,輸出低8位地址或輸出/輸入8位數(shù)據(jù)。當(dāng)P0口用作通用I/O口時(shí),是一個(gè)準(zhǔn)雙向口。用作輸入時(shí),應(yīng)首先向鎖存器寫(xiě)1。單片機(jī)復(fù)位后,鎖存器自動(dòng)被置1;當(dāng)P0口由原來(lái)的輸出狀態(tài)轉(zhuǎn)變?yōu)檩斎霠顟B(tài)時(shí),應(yīng)首先置鎖存器為1,方可執(zhí)行輸入操作。93.P0口的特點(diǎn)單功能I/O口,字節(jié)地址為90H,位地址為90H~97H。104.1.2P1口圖4-2P1口某一位的位電路結(jié)構(gòu)2.工作過(guò)程分析P1口只能作為通用的I/O口使用。P1口作為輸入口時(shí),分為“讀鎖存器”和“讀引腳”兩種方式。P1口有內(nèi)部上拉電阻,為準(zhǔn)雙向口?!白x引腳”輸入時(shí),必須先向鎖存器寫(xiě)入1。11P2口是一個(gè)雙功能口,字節(jié)地址為A0H,位地址為A0H~A7H。124.1.3P2口圖4-3P2口某一位的位電路結(jié)構(gòu)工作過(guò)程分析(1)P2口用作地址總線在內(nèi)部控制信號(hào)作用下,MUX與“地址”接通。當(dāng)“地址”線為0時(shí),場(chǎng)效應(yīng)管導(dǎo)通,P2口引腳輸出0;當(dāng)“地址”線為1時(shí),場(chǎng)效應(yīng)管截止,P2口引腳輸出1。(2)P2口用作通用I/O在內(nèi)部控制信號(hào)作用下,MUX與鎖存器的Q端接通。CPU輸出1時(shí),Q=1,場(chǎng)效應(yīng)管截止,P2.x引腳輸出1;CPU輸出0時(shí),Q=0,場(chǎng)效應(yīng)管導(dǎo)通,P2.x引腳輸出0。輸入時(shí),分為“讀鎖存器”和“讀引腳”兩種方式。133.P2口的特點(diǎn)作為地址輸出線使用時(shí),P2口可以輸出外部存儲(chǔ)器的高8位地址,與P0口輸出的低8位地址一起構(gòu)成16位地址,可以尋址64KB的地址空間。作為通用I/O口使用時(shí),P2口為一個(gè)準(zhǔn)雙向口。功能與P1口一樣。P2口作為高8位地址總線使用時(shí)就不能再作為通用I/O口。14P3口電路中增加了引腳的第二功能,P3口的每一位都可以分別定義為第二輸入功能或第二輸出功能。P3口的字節(jié)地址為B0H,位地址為B0H~B7H。154.1.4P3口圖4-4P3口某一位的位電路結(jié)構(gòu)2.工作過(guò)程分析(1)P3口用作第二輸入/輸出功能選擇第二輸出功能時(shí),鎖存器置“1”,“與非門(mén)”開(kāi)啟。當(dāng)?shù)诙敵鰹?時(shí),場(chǎng)效應(yīng)管截止,P3.x引腳輸出為1;當(dāng)?shù)诙敵鰹?時(shí),場(chǎng)效應(yīng)管導(dǎo)通,P3.x引腳輸出為0。16選擇第二輸入功能時(shí),鎖存器和第二輸出功能端均應(yīng)置1,保證場(chǎng)效應(yīng)管截止,P3.x引腳的信息由輸入緩沖器BUF3的輸出獲得。(2)P3口用作第一功能——通用I/O口第二輸出功能端應(yīng)保持高電平,“與非門(mén)”為開(kāi)啟狀態(tài)。CPU輸出1時(shí),Q=1,場(chǎng)效應(yīng)管截止,P3.x引腳輸出為1;CPU輸出0時(shí),Q=0,場(chǎng)效應(yīng)管導(dǎo)通,P3.x引腳輸出為0。用作第一功能通用輸入時(shí),P3.x位的輸出鎖存器和第二輸出功能均應(yīng)置1,場(chǎng)效應(yīng)管截止,P3.x引腳信息通過(guò)輸入BUF3和BUF2進(jìn)入內(nèi)部總線,完成“讀引腳”操作。當(dāng)P3口實(shí)現(xiàn)第一功能通用輸入時(shí),也可以執(zhí)行“讀鎖存器”操作,此時(shí)Q端信息經(jīng)過(guò)緩沖器BUF1進(jìn)入內(nèi)部總線。173.P3口的特點(diǎn)P3口內(nèi)部有上拉電阻,為準(zhǔn)雙向口。P3口作為第二功能的輸出/輸入,或第一功能的通用I/O輸入,均須將相應(yīng)位的鎖存器置1。、由于復(fù)位后P3口鎖存器自動(dòng)置1,所以不需要任何設(shè)置工作,就可以進(jìn)入第二功能操作。當(dāng)某位不作第二功能使用時(shí),可作為第一功能的通用I/O使用。18P0口與P1、P2、P3口相比,P0口的驅(qū)動(dòng)能力較大,每位可驅(qū)動(dòng)8個(gè)LSTTL輸入,而P1、P2、P3口的每一位的驅(qū)動(dòng)能力,只有P0口的一半。當(dāng)P0口的某位為高電平時(shí),可提供400A的電流;當(dāng)P0口的某位為低電平(0.45V)時(shí),可提供3.2mA的灌電流,如低電平允許提高,灌電流可相應(yīng)加大。所以,任一個(gè)口要想獲得較大的驅(qū)動(dòng)能力,只能用低電平輸出。194.1.5P1~P3口驅(qū)動(dòng)LED發(fā)光二極管的問(wèn)題(a)不恰當(dāng)?shù)倪B接:高電平驅(qū)動(dòng)(b)恰當(dāng)?shù)倪B接:低電平驅(qū)動(dòng)圖4-5發(fā)光二極管與AT89S51并行口的直接連接上拉電阻限制了拉電流4.2.1從左到右的流水燈的制作【例4-1】
如圖4-6所示,8個(gè)發(fā)光二極管LED0~LED7經(jīng)限流電阻分別接至P1口的P1.0~P1.7引腳上,陽(yáng)極共同接高電平。編程來(lái)實(shí)現(xiàn)發(fā)光二極管的從左到右的流水點(diǎn)亮,即按照LED0→LED1→┉→LED7的順序,每次點(diǎn)亮一個(gè)發(fā)光二極管,延時(shí)一段時(shí)間后熄滅這個(gè)發(fā)光二極管,然后點(diǎn)亮下一個(gè)發(fā)光二極管,重復(fù)循環(huán)。214.2并行I/O端口的C51編程舉例圖4-68個(gè)發(fā)光二極管與并行口P1的連接#include<reg51.h>#include<intrins.h> /*包含移位函數(shù)的頭文件*/#defineucharunsignedchar #defineuintunsignedint voiddelay(uinti){ /*延時(shí)函數(shù)*/ uchart; while(i--){ for(t=0;t<120;t++); }}voidmain() { /*主程序*/ P1=0xfe; while(1){ P1=_crol_(0,1); /*C51函數(shù)庫(kù)中的左移函數(shù),P1中的數(shù)據(jù)循環(huán)左移1位*/ delay(500);/*500為延時(shí)參數(shù),可根據(jù)實(shí)際需要調(diào)整*/ }}Proteus的使用,例4-1244.2.2左右來(lái)回循環(huán)的流水燈的制作在【例4-1】的基礎(chǔ)上,增加了從右到左點(diǎn)亮發(fā)光二極管的功能,即制作左右來(lái)回循環(huán)的節(jié)日彩燈,顯示規(guī)律如圖4-7所示。具體電路如圖4-6所示。
25圖4-7節(jié)日彩燈的花樣顯示的規(guī)律為了使顯示效果更加絢麗多彩,圖4-6中的P1端口8個(gè)引腳分別接有不同顏色的發(fā)光二極管。具體如表4-1所示。
26【例4-2】左右來(lái)回循環(huán)的流水燈的電路連接見(jiàn)圖4-6,顯示規(guī)律如圖4-7。實(shí)現(xiàn)本任務(wù)要求,可以有多種軟件實(shí)現(xiàn)方法。下面列出了3種,具體如下。(1)數(shù)組的字節(jié)操作實(shí)現(xiàn) 本方法是建立一個(gè)字符型數(shù)組,將控制8個(gè)LED顯示的8位數(shù)據(jù)作為數(shù)組元素,依次送到P1口來(lái)實(shí)現(xiàn)。參考程序如下:
#include<reg51.h> #defineucharunsignedchar uchartab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xff7,0xf7,0xfb,0xfe,0xff};/*前8個(gè)數(shù)據(jù)為左移點(diǎn)亮數(shù)據(jù),后8個(gè)為右移點(diǎn)亮數(shù)據(jù)*/27voiddelay(){ uchari,j; for(i=0;i<255;i++); for(j=0;j<255;j++);}voidmain() /*主函數(shù)*/{ uchari while(1) { for(i=0;i<15;i++); { P1=tab[i]; delay(); } }}28(2)移位運(yùn)算符實(shí)現(xiàn)本方法是使用移位運(yùn)算符“>>”“<<”來(lái)把送到P1口的顯示控制數(shù)據(jù)進(jìn)行移位,從而實(shí)現(xiàn)發(fā)光二極管依次點(diǎn)亮。參考程序如下:
#include<reg51.h> #defineucharunsignedchar voiddelay(){ uchari,j; for(i=0;i<255;i++) for(j=0;j<255;j++); } voidmain(){ /*主函數(shù)*/ uchari,temp; while(1){ temp=0x01; /*左移初值賦給temp*/ for(i=0;i<8;i++){29 P1=~temp; /*temp取反后送P1口*/ delay(); temp=temp<<1; /*temp中數(shù)據(jù)左移一位*/ } temp=0x80; /*賦右移初值給temp*/ for(i=0;i<8;i++){ P1=~temp; /*temp取反后送P1口*/ delay(); temp=temp>>1; /*temp中數(shù)據(jù)右移一位*/ } }}30(3)用移位函數(shù)實(shí)現(xiàn)#include<reg51.h>#include<intrins.h> /*包含左、右移位函數(shù)的頭文件*/#defineucharunsignedchar voiddelay(){ uchari,j; for(i=0;i<255;i++) for(j=0;j<255;j++);}voidmain() { /*主函數(shù)*/ uchari,temp; while(1){ temp=0xfe; /*初值為0x11111110*/31 for(i=0;i<7;i++){ P1=temp; /*temp值送入P1口*/ delay(); /*延時(shí)*/ temp=_crol_(temp,1); /*執(zhí)行左移函數(shù),temp中的數(shù)據(jù)循環(huán)左移1位*/ } for(i=0;i<7;i++){ P1=temp; /*temp值送入P1口*/ delay(); /*延時(shí)*/ temp=_cror_(temp,1); /*執(zhí)行右移函數(shù),temp中的數(shù)據(jù)循環(huán)右移1位*/ } }}324.2.3開(kāi)關(guān)量檢測(cè)指示器1I/O端口另一應(yīng)用是作為輸入端口來(lái)檢測(cè)開(kāi)關(guān)的狀態(tài)?!纠?-3】AT89S51單片機(jī)的P1.4~P1.7接4個(gè)開(kāi)關(guān)S0~S3,P1.0~P1.3接4個(gè)發(fā)光二極管LED0~LED3。編寫(xiě)程序,將P1.4~P1.7上的4個(gè)開(kāi)關(guān)的狀態(tài)反映在P1.0~P1.3引腳控制的4個(gè)發(fā)光二極管上。1個(gè)發(fā)光二極管的狀態(tài),對(duì)應(yīng)一個(gè)開(kāi)關(guān)的狀態(tài),例如P1.4引腳上開(kāi)關(guān)S0的狀態(tài),由P1.0腳上的LED0顯示,P1.6引腳上開(kāi)關(guān)S2的狀態(tài),由P1.2腳上的LED2顯示。凡是開(kāi)關(guān)閉合的引腳,對(duì)應(yīng)的LED發(fā)光二極管點(diǎn)亮。接口電路見(jiàn)圖4-8。3334圖4-8開(kāi)關(guān)、LED發(fā)光二極管與并行口P1的連接參考程序如下:
#include<reg51.h> voidmain(){/*主函數(shù)*/ while(1){ unsignedchartemp;/*定義臨時(shí)變量temp*/ P1=0xff; /*P1口低4位置1,作為輸入;高4位置1,發(fā)光二極管熄滅*/ temp=P1&0xf0; /*讀P1口并屏蔽低4位,送臨時(shí)變量temp*/ temp=temp>>4;
/*temp的內(nèi)容右移4位,P1口高4位狀態(tài)移至低4位*/ P1=temp; /*臨時(shí)變量值寫(xiě)入P1口輸出*/ } }354.2.4開(kāi)關(guān)量檢測(cè)指示器2【例4-4】如圖4-9所示,AT89S51單片機(jī)P1.0和P1.1引腳接有兩只開(kāi)關(guān)S0和S1,兩只引腳上的高低電平共有4種組合,這4種組合分別點(diǎn)亮P2.0~P2.3引腳控制的4只LED:LED0~LED3(高電平點(diǎn)亮),編程實(shí)現(xiàn)此功能。3637圖4-9開(kāi)關(guān)檢測(cè)指示器2的接口電路參考程序如
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 多模態(tài)交互中雙擊事件反饋
- 2025年?duì)I養(yǎng)健康顧問(wèn)知識(shí)競(jìng)賽題庫(kù)及答案(共110題)
- 面部排毒銷(xiāo)售話術(shù)
- 2025年中國(guó)社會(huì)科學(xué)院亞太與全球戰(zhàn)略研究院公開(kāi)招聘第一批專(zhuān)業(yè)技術(shù)人員備考題庫(kù)及1套參考答案詳解
- 2025年安龍縣能源局公開(kāi)選聘法律顧問(wèn)備考題庫(kù)及一套參考答案詳解
- 2025年上海交通大學(xué)醫(yī)學(xué)院附屬第九人民醫(yī)院口腔顱面及感官綜合健康研究院招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 四川農(nóng)商聯(lián)合銀行備考題庫(kù)科技部2026年校園招聘?jìng)淇碱}庫(kù)及完整答案詳解1套
- 陜西省渭南市韓城市教學(xué)研究室2026屆英語(yǔ)高三第一學(xué)期期末統(tǒng)考試題含解析
- 讀安徒生童話有感分享童話故事的啟示與感悟(10篇)
- 方樁供應(yīng)合同范本
- 裝配式建筑施工重點(diǎn)難點(diǎn)及保證措施
- 主動(dòng)脈夾層的護(hù)理常規(guī)
- 2025年出入境管理信息系統(tǒng)考試試卷及答案
- 肉牛合作養(yǎng)殖方案(3篇)
- 骨盆骨折患者麻醉管理要點(diǎn)
- 2025貴陽(yáng)人文科技學(xué)院教師招聘考試試題
- 高職院校產(chǎn)教融合共同體建設(shè)國(guó)內(nèi)外研究動(dòng)態(tài)及啟示
- T/CWAN 0068-2023銅鋁復(fù)合板
- 兒童寓言故事-烏鴉喝水
- 弱電系統(tǒng)維護(hù)中的安全和文明措施
- 緊急狀態(tài)下護(hù)理人力資源調(diào)配
評(píng)論
0/150
提交評(píng)論