單片機原理及接口技術-基于C51 Proteus仿真(第二版)課件 第4、5章 80C51單片機IO端口及應用最終;80C51單片機的中斷系統(tǒng)最終_第1頁
單片機原理及接口技術-基于C51 Proteus仿真(第二版)課件 第4、5章 80C51單片機IO端口及應用最終;80C51單片機的中斷系統(tǒng)最終_第2頁
單片機原理及接口技術-基于C51 Proteus仿真(第二版)課件 第4、5章 80C51單片機IO端口及應用最終;80C51單片機的中斷系統(tǒng)最終_第3頁
單片機原理及接口技術-基于C51 Proteus仿真(第二版)課件 第4、5章 80C51單片機IO端口及應用最終;80C51單片機的中斷系統(tǒng)最終_第4頁
單片機原理及接口技術-基于C51 Proteus仿真(第二版)課件 第4、5章 80C51單片機IO端口及應用最終;80C51單片機的中斷系統(tǒng)最終_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1第4章80C51單片機I/O端口及應用24.1P0口4.2P1口4.3P2口4.4P3口4.5I/O口簡單輸入輸出設計4.6單片機I/O口控制電磁繼電器4.7單片機I/O口控制光耦4.8單片機I/O口控制雙向可控硅4.8.1晶閘管工作原理4.8.2單片機I/O口控制雙向可控硅接口設計4.9單片機I/O口控制固態(tài)繼電器3第4章80C51單片機I/O端口及應用80C51單片機共有4個8位雙向I/O端口,即P0~P3口,它們都被定義為SFR,可以按字節(jié)尋址輸入或輸出,每一位還能按位尋址,便于實現(xiàn)位控功能。P0口為三態(tài)雙向口,負載能力為8個LS型TTL門電路,作為一般的I/O口使用時,P0口是一個準雙向口。P1、P2、P3口也為準雙向口(用作輸入線時,口鎖存器必須先寫入“1”,故稱為準雙向口),負載能力為4個LS型TTL電路。44.1P0口P0口是具有雙功能的8位并行I/O口,字節(jié)尋址地址為80H,位地址為80H~87H。1.P0口的位電路結構P0口的8位都具有如圖4-1所示的位電路結構,由1個鎖存器、1個轉換開關、2個場效應管構成的輸出驅動電路、2個輸入緩沖器、1個反相器及1個與門構成。圖4-1P0口的位電路結構52.P0口工作原理(1)P0口作為地址/數(shù)據(jù)總線分時復用口當80C51單片機外部擴展存儲器或者I/O接口芯片,需要P0口作為地址/數(shù)據(jù)總線分時使用時,“控制”信號輸出高電平;轉換開關MUX將T2與反相器輸出端接通,同時“與門”開鎖,“地址或數(shù)據(jù)”信號通過與門驅動T1管,并通過反相器驅動T2管,使得P0.x引腳的輸出狀態(tài)隨“地址/數(shù)據(jù)”狀態(tài)的變化而變化。具體輸出過程如下。①當“地址/數(shù)據(jù)”內(nèi)容為1時,“與門”輸出1,T1場效應管導通,而T2場效應管截止,P0.x輸出為1;②當“地址/數(shù)據(jù)”內(nèi)容為0時,“與門”輸出0,T1場效應管截止,而T2場效應管導通,P0.x輸出為0??梢娚戏綀鲂芷鸬絻?nèi)部上拉電阻作用。6(2)P0口作為通用I/O口當80C51單片機不作地址/數(shù)據(jù)總線使用時,可作為第一功能,即通用I/O口使用,此時“控制”信號輸出為低電平;MUX將T2與鎖存器的Q反端接通。同時,“與門”輸出為低電平,使得場效應管T1處于截止狀態(tài),此時輸出級是漏極開路的開漏電路。P0口用作一般I/O口的具體過程如下。①P0口作為I/O口輸出時,來自CPU的“寫”脈沖加在鎖存器時鐘端CP上,由內(nèi)部總線輸出的數(shù)據(jù)從D端進入,經(jīng)反相后出現(xiàn)在Q反端,再經(jīng)T2管反相,于是在P0.x位引腳上的數(shù)據(jù)正好與內(nèi)部總線上輸出數(shù)據(jù)一致。

注意,當P0口作輸出口使用時,輸出級屬開漏電路,在P0.x引腳應外接上拉電阻。7②P0口作為I/O口輸入時,端口中的兩個三態(tài)緩沖器用于讀操作。有2種讀操作:讀鎖存器和讀引腳?!白x引腳”:當執(zhí)行一般的端口輸入指令時,引腳上的外部信號既加在三態(tài)緩沖器BUF2的輸入端,又加在場效應管T2漏極上,若此時T2導通,則引腳上的電位被鉗在0電平上。為使讀引腳能正確地讀入,在輸入數(shù)據(jù)時,要先向鎖存器置“1”,使其Q反端為0,使輸出級T1和T2兩個管子均被截止,引腳處于懸浮狀態(tài);作高阻抗輸入。“讀引腳”脈沖把三態(tài)緩沖器打開,于是引腳上的數(shù)據(jù)經(jīng)緩沖器到內(nèi)部總線;“讀鎖存器”:這種讀操作是為了“讀-修改-寫”指令的需要。即先讀端口,對讀入的數(shù)據(jù)修改,然后再寫入鎖存器。例如,邏輯與、或非等指令。83.P0口使用總結綜上所述,P0口在使用時有如下說明:(1)當P0口用作地址/數(shù)據(jù)總線使用時(第2功能),是一個真正的雙向口,直接與外部擴展的存儲器或I/O連接,輸出/輸入8位數(shù)據(jù)作為數(shù)據(jù),同時通過與地址譯碼器連接,輸出低8位地址。(2)當P0口作通用I/O口使用時(第1功能),需要在片外接上拉電阻,此時端口不存在高阻抗的懸浮狀態(tài),因此是一個準雙向口。(3)P0口讀引腳(端口)時,輸出鎖存器需要先置“1”再讀。若沒有置“1”,將讀出鎖存器內(nèi)容?!纠?-1】讀P0.3引腳,若為高電平,將變量aa加1。讀引腳前,先將P0口置1。unsignedintaa=0x00,sbitP0_3=P0^3;P0=0xff;while(P0_3==1){aa=aa+1;}94.2P1口P1口是一個內(nèi)部自帶上拉電阻的8位準雙向I/O口。80C51單片機P1口只作通用I/O口,字節(jié)尋址地址為90H,位地址為90H~97H。1.P1口的位電路結構P1口的8位都具有如圖4-2所示的位電路結構,由1個鎖存器、1個場效應管輸出驅動電路、2個輸入緩沖器、1個上拉電阻構成。圖4-2P1口的位電路結構102.P1口的工作原理(1)當P1口作輸出口時,若內(nèi)部總線將“1”寫入鎖存器,使輸出場效應驅動管T截止,輸出線由內(nèi)部上拉電阻拉成高電平;若內(nèi)部總線將0寫入鎖存器時,T導通,輸出0。(2)當P1口作輸入口時,分讀引腳和讀鎖存器狀態(tài)兩種情況:讀引腳時,打開下面三態(tài)門BUF2,可讀入引腳上信息;讀鎖存器狀態(tài)時,將打開上面三態(tài)門BUF1,此時Pl口進行“讀-修改-寫”操作。①P1口讀引腳輸入信息時,必須先置“1”鎖存器,使T截止;此時,輸入端的電平隨輸入信號而變,經(jīng)緩沖器BUF2進入內(nèi)部總線。②P1口讀鎖存器:鎖存器內(nèi)容經(jīng)打開的BUF1,進入內(nèi)部總線。113.P1口使用總結綜上所述,P1口在使用時有如下說明:(1)P1口內(nèi)部具有上拉電阻,可以直接被集電極開路或漏極開路的電路驅動,不必外接上拉電阻。(2)P1口內(nèi)部自帶上拉電阻,沒有高阻抗輸入狀態(tài),是8位準雙向口。(3)P1口讀引腳(端口)輸入時,必須先向鎖存器置“1”,再讀鎖存器。124.3P2口P2口是一個具有雙功能的8位準雙向I/O口。字節(jié)尋址地址A0H,位地址A0H~A7H。1.P2口位電路結構P2口的8位都具有如圖4-3所示的位電路結構,由1個鎖存器、1個切換開關、1個場效應管輸出驅動電路、2個輸入緩沖器及1個反相器構成。圖4-3P2口的位電路結構132.P2口的工作原理P2口既可以作高8位地址總線使用,也可以作為I/O口使用。(1)P2作為高8位地址總線輸出:受內(nèi)部“控制”信號作用,多路開關MUX向上與“地址”輸出信號接通,經(jīng)反相器和場效應管反相后,“地址”信號輸出在端口引腳線上。(2)P2口作為通用I/O口使用:受內(nèi)部“控制”信號作用,多路開關MUX向下與鎖存器輸出端Q接通。①CPU輸出數(shù)據(jù)“1或0”時,數(shù)據(jù)經(jīng)內(nèi)部總線進入鎖存器,由鎖存器Q輸出經(jīng)反相器和場效應管反相后,輸出在端口引腳線上,P2.x輸出數(shù)據(jù)與CPU輸出數(shù)據(jù)一致。②當P2口作輸入口時,有讀引腳和讀鎖存器狀態(tài)兩種情況。讀引腳時,必須先置“1”鎖存器,使T截止;P2.x引腳上的電平經(jīng)下面三態(tài)門BUF2進入內(nèi)部總線。讀鎖存器狀態(tài)時,上面三態(tài)門BUF1打開,此時P2.x鎖存器內(nèi)容經(jīng)Q端通過BUF1進入內(nèi)部總線,屬于“讀-修改-寫”操作。143.P2口使用說明(1)P2作高8位地址總線時,與P0口輸出的(經(jīng)地址鎖存器輸出的)低8位地址總線共同構成16位地址總線,尋址64KB存儲器或者I/O接口地址空間。(2)P2作為通用I/O口使用時,是一個準雙向口,當讀引腳(端口)輸入時,須先向鎖存器置“1”,再讀鎖存器。154.4P3口P3口是具有雙功能的8位準雙向I/O口。字節(jié)尋址地址為B0H,位地址為B0H~B7H。1.P3口的位電路結構P3口的8位都具有如圖4-4所示的位電路結構,由1個鎖存器、1個與非門、1個場效應管驅動電路、2個輸入緩沖器、1個上拉電阻構成。由圖可見,P3端口的各端口線有第二輸入功能、第二輸出功能、通用I/O口功能選擇。圖4-4P3口的位電路結構162.P3口的工作原理(1)第二輸入功能及第二輸出功能①當P3口作為第二輸入功能時,鎖存器須先置“1”,“第二輸出功能”端此時也為1,“與非門”輸出為0,保證場效應管T截止,P3.x引腳的信號經(jīng)過輸入緩沖器得到。②當P3口作為第二輸出功能時,鎖存器也必須先置“1”,打開“與非門”,則“第二輸出功能”線輸出的“0或1”信號經(jīng)過“與非門”和場效應管T的2次反向,使得P3.x內(nèi)容與第二輸出功能線輸出的內(nèi)容一致。17(2)當P3口作為第一功能,即I/O口功能時,也分2種情況。①P3作為I/O輸出時,“第二輸出功能”輸出高電平,“與非門”開啟。CPU輸出的“1或0”信號,由內(nèi)部總線經(jīng)鎖存器輸出,經(jīng)過“與非門”和場效應管2次反向,使得P3.x引腳輸出與CPU輸出一致。②P3口作I/O輸入時,若要“讀引腳”,輸出鎖存器同樣需要置“1”,“第二輸出功能”端也置1,使得場效應管T截止,P3.x引腳信息經(jīng)下端2個輸入三態(tài)門到內(nèi)部總線。如果鎖存器不置1就讀,則鎖存器鎖存內(nèi)容經(jīng)Q端輸出,通過讀鎖存器控制的三態(tài)門到內(nèi)部總線,實現(xiàn)讀鎖存器操作。183.P3口使用說明(1)P3口內(nèi)部具有上拉電阻,沒有高阻態(tài),為準雙向口,不必外接上拉電阻。(2)P3口優(yōu)先考慮第二功能,某一位只有不作為第二功能使用時,才可考慮I/O口的功能。(3)P3口讀引腳(端口)輸入和第二功能輸入時,必須先向鎖存器置“1”,再讀鎖存器。194.5I/O口簡單輸入輸出設計【例4-2】開關控制8只LED計數(shù)與顯示電路如圖4-5所示,P3.1連接開關SW1,將P1.0~P1.7連接8個發(fā)光二極管LED0~LED7;編寫程序實現(xiàn)SW1每上下?lián)軇右淮危?個發(fā)光二極管按16進制方式加一點亮。2021參考程序如下:#include<reg51.h>sbitP3_1=P3^1;voiddelay(unsignedinti)//延時{unsignedintj,k;for(k=0;k<i;k++)for(j=0;j<125;j++);}22voidmain(void){unsignedintx=0x00,temp=0x00;P1=0xff;while(1){while(P3_1==1);//P3.1為高電平delay(10);//調(diào)用延時程序while(P3_1==0);//P3.1為低電平delay(10);//調(diào)用延時程序x=x+1;temp=x;x=~x;//二極管低電平點亮P1=x;//送P1口x=temp;

}}23【例4-3】利用單片機的P1口接8個發(fā)光二極管,P2口接8個開關,要求實現(xiàn):當開關動作時,對應的發(fā)光二極管亮或滅,電路如圖4-6所示。只須把P2口的內(nèi)容讀出后,通過P1口輸出即可。2425參考程序:#include<reg51.h>voidmain(void){unsignedchari;P2=0xff;for(;;){i=P2;P1=i;}}264.6單片機I/O口控制電磁繼電器在控制系統(tǒng)中,常常存在電子電路與電氣電路的互相連接問題,需要電子電路控制電氣電路的執(zhí)行元件,例如電動機、電磁鐵、電燈等,同時實現(xiàn)電子線路與電氣電路的電隔離,以保護電子電路和人身的安全,繼電器在其中起了重要的橋梁作用。繼電器有固態(tài)繼電器SSR和電磁繼電器,常用的繼電器大部分屬于電磁式繼電器,電磁繼電器是自動控制電路中常用的一種元件,是用較小電流控制較大電流的一種自動開關。電磁繼電器是由鐵芯、線圈、銜鐵、觸點以及底座等構成,觸點有動觸點和靜觸點之分。固態(tài)繼電器是一種由集成電路和分立元件組合而成的一體化無觸點電子開關器件,其功能與電磁繼電器基本相似。271.電磁繼電器的電路符號和觸點形式電磁繼電器的線圈只有一個,但其帶觸點的簧片則常設置多組。在電路中,表示繼電器時可畫出線圈與控制電路的有關觸點。線圈用長方框表示,標有繼電器的文字符號K或KR。觸點有兩種表示方法:一種是把它們直接畫在長方框的一側,此表示法比較直觀;另一種是把各個觸點分別畫到各自的控制電路中,常在同一繼電器的觸點與線圈旁分別標注相同的文字符號,并將觸點組編號,以示區(qū)別。繼電器的觸點有三種形式。(1)動合型(H型)線圈不通電時,兩觸點是斷開的,通電后,兩個觸點閉合(以合字的拼音字頭“H”表示)。(2)動斷型(D型)線圈不通電時,兩觸點是閉合的,通電后,兩個觸點斷開(用斷字的拼音字頭“D”表示)。28(3)轉換型(Z型)這是觸點組型。這種觸點組共有3個觸點,中間是動觸點,上下各一個靜觸點。線圈不通電時,動觸點和一個靜觸點接觸(一個斷開,另一個閉合),線圈通電后,動觸點就移動,使原來斷開的閉合,原來閉合的斷開,達到轉換的目的。觸點組稱為轉換觸點,用“轉”字的拼音字頭“Z”表示。電磁繼電器的常用符號如圖4-7所示。在電路中,觸點的畫法應按線圈不通電時的原始狀態(tài)畫出。29302.電磁繼電器的工作原理電磁繼電器是一種功率開關器件,輸入開關信號,只要讓繼電器的吸合線圈通過一定的電流,線圈產(chǎn)生的磁力就會帶動銜鐵移動,從而帶動開關點的接通和斷開,由此控制電路的通或斷。電磁繼電器主要用于低壓控高壓或小電流控大電流的場合,由于繼電器的強電觸點與吸合線圈之間是隔離的,所以繼電器控制輸出電路不需要專門設計隔離電路。313.電磁繼電器接口電路【例4-4】利用單片機I/O口控制繼電器的開合,實現(xiàn)對外部裝置的控制。電路如圖4-8,由于單片機引腳的驅動能力有限,控制端P2.5引腳連接一個NPN三極管,當P2.5輸出低電平時,繼電器不工作,當P2.5輸出高電平時,繼電器工作,常開觸點吸合,LED將隨繼電器的開關連接到電源端而點亮。圖中,繼電器電路中,在繼電器的線圈兩頭加一個二極管D1以吸收繼電器線圈斷電時產(chǎn)生的反電勢,從而保護晶體管,防止干擾。32#include<reg51.h>sbitP2_5=P2^5;voiddelay(unsignedinti){unsignedintj,k;for(k=0;k<i;k++)for(j=0;j<125;j++);}voidmain(void){while(1){P2_5=0;delay(1000);P2_5=1;delay(1000);}}334.7單片機I/O口控制光耦在單片機控制系統(tǒng)中,單片機總要對被控對象實現(xiàn)控制操作。后向通道是計算機實現(xiàn)控制運算處理后,對被控對象的輸出通道接口。后向通道的特點是弱電控制強電,即小信號輸出實現(xiàn)大功率控制。常見的被控對象有電機、電磁開關等。后向通道往往所處環(huán)境惡劣,控制對象多為大功率伺服驅動機構,電磁干擾較為嚴重。為防止干擾竄入和保證系統(tǒng)的安全,通常采用光電耦合器實現(xiàn)信號的傳輸,同時又可將系統(tǒng)與現(xiàn)場隔離開。光電耦合器具有體積小、使用壽命長、工作溫度范圍寬、抗干擾性能強,無觸點且輸入與輸出在電氣上完全隔離等特點,因而在各種電子設備上得到廣泛的應用。光電耦合器可用于隔離電路、負載接口及各種家用電器等電路中。341.光電耦合器的封裝及組合光電耦合器有金屬封裝和塑料封裝兩種形式。金屬封裝采用金屬外殼,且用玻璃絕緣,芯片采用環(huán)焊以保證發(fā)光管與接收管對準。塑料封裝采用雙列直插式結構,管芯先裝于管腳上,中間用透明樹脂固定,具有聚光作用,故靈敏度較高,較為常用。常用的光電耦合器組合形式有4種,如圖4-9所示。其中,圖4-9(a)是普通型光電耦合器,用于100kHz以下頻率的裝置中;圖4-9(b)是高速型光電耦合器,響應速度高;圖4-9(c)是達林頓輸出型光電耦合器,具有達林頓輸出的一切特性,可直接用于驅動較低頻率的負載;圖4-9(d)是晶閘管輸出型,其輸出部分為光控晶閘管,常用于大功率的隔離驅動場合。在實際應用中,可根據(jù)實際需要選用結構簡單的器件,以降低成本。35362.光電耦合器的工作原理

光電耦合器是通過光電元件來實現(xiàn)功能的。光電元器件是一種光電轉換裝置,它的輸出特性與二極管或三極管基本相同,不同的是光電元器件接收的是光能量。以光電三極管為例,其導通與截止,是由發(fā)光二極管所加正向電壓控制的。當發(fā)光二極管加上正向電壓時,發(fā)光二極管有電流通過發(fā)光,使光電三極管內(nèi)阻減小而導通;反之,當發(fā)光二極管不加正向電壓或所加正向電壓很小時,發(fā)光二極管中無電流或通過電流很小,發(fā)光強度減弱,光電三極管的內(nèi)阻增大而截止。由于發(fā)光二極管與光電三極管之間是通過光來傳遞信息的,沒有電氣上的聯(lián)系,從而實現(xiàn)了電氣上的隔離。因此,光電耦合器廣泛地應用于信號隔離、開關電路、數(shù)模轉換、邏輯電路、長線傳輸、過載保護、高壓控制和電路變換。373.光電耦合器的接口電路光電耦合技術廣泛用于測量控制系統(tǒng),典型的光電耦合器TLP521-4的應用電路如圖4-10所示,其中,D為發(fā)光二極管,VCC為工作電源,R1為限流電阻,R2為三極管負載電阻,當P1.0~P1.3輸出高電平時,發(fā)光二極管無電流流過,因此不發(fā)光,光電三極管T沒有接收到光能量,處于截止狀態(tài),輸出電壓Vo=VCC。當P1.0~P1.3輸出低電平時,有電流流過4個發(fā)光二極管D1~D4,產(chǎn)生紅外光線,T1~T4接收到光能量,從工作區(qū)進入飽和區(qū),光電三極管導通,VO1~VO4均為0V,輸出低電平。38

光電耦合器可以作為測控系統(tǒng)輸入接口或者輸出接口,光電耦合器作為單片機輸入設備隔離器的例子參考第5章【例5-5】。39【例4-5】用單片機I/O口控制光電耦合器,電路如圖4-11所示,當P2.7引腳輸出低電平時,光耦工作,使燈泡點亮。40參考程序如下:#include<reg51.h>sbitP2_7=P2^7;voiddelay(unsignedinti){unsignedintj,k;for(k=0;k<i;k++)for(j=0;j<125;j++);}voidmain(void){while(1){P2_7=0;delay(1000);P2_7=1;delay(1000);}}414.8單片機I/O口控制雙向可控硅4.8.1晶閘管工作原理晶閘管又稱為可控硅(SCR),是一種大功率半導體器件,它既可作為控制開關,又具有單向導電的整流功能。通常晶閘管作為用較小的功率控制較大的功率的接口。在交、直流電動機調(diào)速系統(tǒng)、調(diào)功系統(tǒng)、隨動系統(tǒng)和無觸點開關等方面均獲得廣泛的應用。晶閘管分單向可控硅和雙向可控硅2類。421.單向可控硅單向可控硅電路如圖4-12所示,具有三個電極:陽極A、陰極C、控制極(門極)G。當控制極G不加電壓時,其AC兩端加上正向電壓,正向電流很小,晶閘管并不導通,處于正向阻斷狀態(tài);當AC加上正向電壓,且控制極上G也加上正向電壓時,晶閘管便進入導通狀態(tài)。此時,管壓降僅1V左右,當控制電壓消失,晶閘管仍保持導通狀態(tài)??刂齐妷和ǔ2捎妹}沖形式,以降低觸發(fā)功耗。晶閘管不具有自關斷能力,要切斷負載電流,只有使陽極電流減小到維持電流以下,或加反向電壓來關斷。在交流回路中應用,當電流過零和進入負半周時,自動關斷,需再次導通,必須重加控制信號。圖4-12單向可控硅電路432.雙向晶閘管交流電路中常采用雙向晶閘管,如圖4-13所示,把兩只反并聯(lián)的晶閘管制作在同一片硅片上,控制極共用一個,以保證電流能沿正反兩個方向流通。其原理說明如下。(1)控制極G不加電壓時,A、C間呈高阻抗,管子截止。(2)當AC間電壓>1.5V時,不論極性如何,均可使G觸發(fā)電流控制其導通。(3)交流工作時,當每一半周交替時,純阻負載一般能恢復截止;但在感性負載情況下,電流相位滯后于電壓,電流過零,可能反向電壓超過轉折電壓,使管子反向導通。所以,要求管子能承受反向電壓,一般要加RC吸收回路。(4)A、C可調(diào)換使用,觸發(fā)極性可正可負。44

雙向可控硅經(jīng)常用作交流調(diào)壓、調(diào)溫、調(diào)功和無觸點開關,以往用硬件產(chǎn)生觸發(fā)脈沖的測控方式不夠靈活,在單片機測控系統(tǒng)中可利用軟件產(chǎn)生觸發(fā)脈沖。圖4-13雙向晶閘管結構454.8.2單片機I/O口控制雙向可控硅接口設計光耦合雙向可控硅驅動器常作為單片機輸出與雙向可控硅之間較理想的接口器件,典型的產(chǎn)品有MOTOROLA公司的MOC3000系列的光耦合雙向可控硅驅動器,一般為六引腳雙列直插式封裝,由發(fā)光二極管和雙向可控硅兩部分組成,發(fā)光二極管常由砷化鎵發(fā)光二極管構成,在正向電流(5~15mA)作用下能發(fā)出紅外光,觸發(fā)硅光敏雙向可控硅雙向導通。單片機I/O口控制雙向可控硅接口典型電路如圖4-14所示,通常利用軟件控制單片機I/O口,使得光耦合雙向可控硅驅動器發(fā)光,光敏雙向可控硅雙向導通,進一步觸發(fā)外部的雙向晶閘管導通。當P2.0輸出高電平時,MOC3052輸出端的雙向晶閘管關斷,外部雙向晶閘管也關斷。電阻R1的作用是限制流過MOC3052輸出端的電流。46圖4-14光耦合雙向可控硅驅動器接口電路47【例4-6】用單片機I/O口控制雙向可控硅,電路如圖4-15所示,當按下K1開關并釋放時,單片機P2.0取反。當P2.0為0時,光耦導通并觸發(fā)可控硅,燈泡L1點亮,反之則熄滅。圖4-15單片機I/O口控制雙向可控硅48參考程序如下:#include<reg51.h>sbitP2_0=P2^0;sbitK1=P1^0;voiddelay(unsignedinti){unsignedintj,k;for(k=0;k<i;k++)for(j=0;j<125;j++);}voidmain(void){ P2_0=1;while(1){if(K1==0){delay(10); if(K1==0) {while(K1==0); P2_0=~P2_0;}}}}494.9單片機I/O口控制固態(tài)繼電器固態(tài)繼電器是一種新型的無觸點電子繼電器,其輸入端僅要求輸入很小的控制電流,與TTL、HTL、CMOS等集成電路具有較好的兼容性,輸入端可以控制輸出端的通斷。1.固體繼電器內(nèi)部結構固態(tài)繼電器是一種四端器件,固體繼電器內(nèi)部結構如圖4-16所示,由輸入端、輸出端、光耦合器、過零開關和吸收電路組成。具有兩端輸入和兩端輸出,輸入輸出之間用光耦合器隔離。過零開關使得輸出開關點在輸出端電壓在過零的瞬間接通或者斷開,以減少由于開關電流造成的干擾。為了防止外電路中的尖峰電壓或浪涌電流對開關器件造成的破壞,在輸出端回路并聯(lián)有吸收網(wǎng)絡。502.固態(tài)繼電器的主要特點(1)低噪聲。過零型固態(tài)繼電器在導通和斷開時都是在過零點進行的。(2)可靠性高。因為沒有機械觸點,全封閉封裝,所以耐沖擊、耐腐蝕、壽命長。(3)承受浪涌電流大。一般可達額定值的6~10倍。(4)驅動功率小。驅動電流只須10mA。(5)對電源的適應性強。(6)抗干擾能力強。圖4-16固體繼電器內(nèi)部結構513.單片機控制固態(tài)繼電器的接口圖4-17是使用固態(tài)繼電器實現(xiàn)控制單向伺服電動機可逆運轉的實例。圖4-17單片機控制固體繼電器52習題4一、填空題1.P0的功能是。2.P3口中P3.5位的第二功能符號為。3.若要從80C51的P1口輸入數(shù)據(jù),必須對該口先。4.80C51的并行I/O口(P0-P3)用作通用I/O口時,當口由原輸出狀態(tài)變?yōu)檩斎霠顟B(tài)方式時,應先向口的鎖存器進行操作,再進行輸入操作才正確。5.80C51單片機復位時,P0~P3口的各引腳為電平。53二、簡答題1.簡述80C51內(nèi)部四個并行I/O口的功能。三、編程題1.編寫程序,從P1.6引腳輸出10個方波。2.編程讀P1.4-P1.7口的開關狀態(tài),并送P1.0-P1.3指示燈顯示。

第5章80C51單片機的中斷系統(tǒng)

54555.1中斷的概念5.280C51中斷系統(tǒng)的結構5.2.1中斷源及中斷標志位5.2.2中斷控制寄存器5.3中斷響應過程5.4中斷服務函數(shù)及應用5.4.1中斷服務函數(shù)5.4.2外部中斷服務函數(shù)應用設計56第5章80C51單片機的中斷系統(tǒng)本章介紹80C51單片機片內(nèi)重要功能部件中斷系統(tǒng)的結構、工作原理和應用設計,通過本章的學習,讀者重點掌握中斷系統(tǒng)相關的特殊功能寄存器的使用,能熟練設計中斷系統(tǒng)初始化程序以及中斷函數(shù)。5.1中斷的概念在嵌入式系統(tǒng)(包括單片機)應用中,當內(nèi)部、外部隨機事件發(fā)生時,能及時響應并實時處理都是利用中斷技術實現(xiàn)的。中斷是指CPU正在執(zhí)行程序的過程中,CPU內(nèi)部或外部某一事件(如內(nèi)部定時器/計數(shù)器的溢出或外部信號通過某一個引腳發(fā)生電平的變化、引腳脈沖沿跳變等)作為中斷源向CPU發(fā)出中斷請求信號,要求CPU暫時終止當前正在執(zhí)行的程序,轉去執(zhí)行相應的中斷服務程序,待中斷服務請求處理完畢后,再回到原來被中斷的程序處(斷點)繼續(xù)執(zhí)行。這種程序在執(zhí)行過程中由于內(nèi)部或外界的隨機事件而被中間打斷的情況稱為“中斷”。單片機對中斷源中斷服務請求的整個響應和處理過程如圖5-1所示。57圖5-1單片機中斷響應和處理過程圖

中斷的發(fā)生是由內(nèi)部或外部因素隨機決定的,程序中無法事先安排調(diào)用指令,所以響應中斷服務程序的過程是由硬件自動完成的。這種模式的實現(xiàn)依靠中斷系統(tǒng),中斷系統(tǒng)是單片機的重要組成部分,實時控制、故障自動處理、計算機與外設間數(shù)據(jù)傳送一般采用中斷系統(tǒng)。中斷系統(tǒng)的應用大大提高了單片機的工作效率。80C51單片機具有比較完善的中斷系統(tǒng),下面介紹其中斷系統(tǒng)的結構及功能。585.280C51中斷系統(tǒng)的結構80C51中斷系統(tǒng)的結構如圖5-2所示。80C51單片機系統(tǒng)有5個中斷請求源,分為兩個中斷優(yōu)先級,中斷服務程序可實現(xiàn)兩級嵌套,中斷系統(tǒng)功能的實現(xiàn)是通過軟件對SFR進行控制,每個中斷源可獨立設置為允許中斷或關中斷狀態(tài),每個中斷源可獨立設置為高優(yōu)先級或低優(yōu)先級。5.2.1中斷源及中斷標志位80C51單片機有5個,各中斷源是否有中斷請求,是由中斷請求標志位來表示的。中斷源及請求標志位如表5-1所示。中斷源的中斷請求標志位分別由TCON和SCON的相應位鎖存。59表5-1中斷源及標志位60圖5-280C51中斷系統(tǒng)結構示意圖615.2.2中斷控制寄存器80C51通過對4個特殊功能寄存器的設置來控制5個中斷源是否允許中斷、各中斷源的中斷優(yōu)先級別、中斷申請方式以及標識是否有中斷請求等。用于中斷控制和標識的4個SFR分別是:定時器/計數(shù)器及外部中斷控制寄存器TCON、串行口控制寄存器SCON、中斷允許控制寄存器IE以及中斷優(yōu)先級控制寄存器IP。

1.TCONTCON字節(jié)地址為88H,每位可以單獨尋址和設置,每位名稱、位地址及含義如表5-2所示。TCON中包含2位外部中斷請求源的中斷觸發(fā)方式控制位,還包括與中斷有關的4位標志位。表5-2TCON寄存器62

(1)TCON中與外部中斷有關的2位控制位①IT0:外部中斷0的中斷觸發(fā)方式控制位。IT0=0時,外部中斷0為電平觸發(fā)方式,當引腳P3.2為低電平,則IE0自動置1,表示有中斷請求。IT0=1時,外部中斷0為跳沿觸發(fā)方式,若CPU檢測到引腳P3.2有由高到低的負跳邊沿時,則使IE0置1,表示有中斷請求。②IT1:外部中斷1的中斷觸發(fā)方式控制位。其含義與IT0類同。(2)外部中斷觸發(fā)方式有關外部中斷觸發(fā)方式的說明如下。若ITx(x=0,1)=0,為電平觸發(fā)方式,在引腳P3.2(P3.3)上被檢測的低電平必須保持到CPU響應該中斷時為止,且在中斷服務程序返回前變?yōu)楦唠娖?,以免在中斷返回后又再次響應該中斷而出錯。所以電平觸發(fā)方式適用于外部中斷請求輸入為低電平(為被CPU采樣到,低電平應至少保持12個振蕩周期),且能在中斷服務程序中撤銷請求源的情況。63

②若ITx=1,則為跳沿觸發(fā)方式。CPU在連續(xù)的兩個機器周期中,前一個機器周期從P3.2(P3.3)引腳上檢測到高電平,后一個機器周期檢測到低電平,才置位IEx(IE0或IE1),由IEx發(fā)出中斷請求。所以跳變觸發(fā)方式的外部中斷,要求輸入的負脈沖寬度至少保持12個振蕩周期,以確保檢測到引腳上的電平跳變。(3)TCON中與中斷有關的標志位TCON中與中斷有關的標志位有4位,功能如下。①IE0:外部中斷0的中斷請求標志位。當單片機檢測到外部中斷0引腳(P3.2)上出現(xiàn)有效的中斷請求信號時,由硬件使IE0置1。當CPU響應該中斷請求時,由硬件自動對IE0清0。②IE1:外部中斷1的中斷請求標志。其含義與IE0類同。③TF0:定時器/計數(shù)器T0的溢出中斷請求標志位,啟動定時器T0后,T0從設置初值開始加1計數(shù)。當計數(shù)器T0最高位產(chǎn)生溢出時,由硬件自動對TF0置1,并向CPU發(fā)出中斷請求。當CPU響應中斷時,由硬件自動使TF0清0。64

④TF1:定時器/計數(shù)器T1的溢出中斷請求標志位。含義與TF0相同。2.SCONSCON字節(jié)地址為98H,每位可以單獨尋址和設置,每位名稱、位地址及含義如表5-3所示。SCON中包含2位與串口中斷有關的標志位。表5-3SCON寄存器

(1)串行口發(fā)送中斷請求標志TI當CPU每發(fā)送完一幀數(shù)據(jù)后,此時SBUF寄存器空,硬件自動對TI置1,請求中斷。CPU響應中斷后,必須在中斷服務程序中用指令對TI清0。65

(2)串行口接收中斷請求標志RI當串行口接收完一幀數(shù)據(jù)時,此時SBUF寄存器滿,硬件自動對RI置1,請求中斷。CPU響應中斷后,必須在中斷服務程序中用指令對RI清0。3.中斷允許控制寄存器IEIE字節(jié)地址為A8H,每位可以單獨尋址并設置,每位名稱、位地址及含義如表5-4所示。80C51單片機對中斷的開放和關閉采用兩級控制。第一級是設置了1個總中斷控制位EA(IE.7位),第二級設置了5個中斷源的中斷開放與否的中斷請求允許控制位。表5-4IE寄存器66

(1)中斷允許總控制位EAEA=0,關閉所有中斷;EA=1,開放所有中斷,但是否允許各中斷源的中斷請求,還取決于各中斷源的中斷允許控制位的設置。(2)串行口的中斷允許位ESES=0:禁止串口中斷;ES=1:允許串口中斷。(3)定時器/計數(shù)器T1的中斷允許位ET1ET1=0:禁止T1中斷;ET1=1:允許T1中斷。(4)外部中斷1()的中斷允許位EX1EX1=0:禁止外部中斷1中斷;EX1=1:允許外部中斷1中斷。(5)定時器/計數(shù)器T0的中斷允許位ET0ET0=0:禁止T0中斷;ET0=1:允許T0中斷。67

(6)外部中斷0()的中斷允許位EX0EX0=0:禁止外部中斷0中斷;EX0=1:允許外部中斷0中斷。

4.中斷優(yōu)先級控制寄存器IP80C51單片機設有兩級中斷優(yōu)先級,可設置IP寄存器相應位實現(xiàn)2級中斷優(yōu)先級選擇。IP字節(jié)地址為B8H,各位名稱、位地址及含義如表5-5所示。表5-5IP寄存器

(1)串行口中斷優(yōu)先級控制位PSPS=1,設置串口高優(yōu)先級;PS=0,設置串口低優(yōu)先級。(2)定時器/計數(shù)器T1中斷優(yōu)先級控制位PT168

PT1=1,設置T1高優(yōu)先級;PT1=0,設置T1低優(yōu)先級。(3)外部中斷1優(yōu)先級控制位PX1PX1=1,設置外部中斷1高優(yōu)先級;PX1=0,設置外部中斷1低優(yōu)先級。(4)定時器/計數(shù)器T0中斷優(yōu)先級控制位PT0PT0=1,設置T0高優(yōu)先級;PT0=0,設置T0低優(yōu)先級。(5)外部中斷0中斷優(yōu)先級控制位PX0PX0=1,設置外部中斷0高優(yōu)先級;PX0=0,設置外部中斷0低優(yōu)先級。80C51單片機復位后,IP=0,5個中斷源都處于低優(yōu)先級中斷。80C51單片機中斷系統(tǒng)設置中斷優(yōu)先級控制寄存器IP和中斷允許寄存器IE后,如果幾個同一優(yōu)先級的中斷源同時向CPU申請中斷,CPU通過內(nèi)部順序查詢邏輯電路,按自然優(yōu)先級順69序確定應該響應哪個中斷請求。自然優(yōu)先級由硬件形成,其排列如表5-6所示,依次為外部中斷0、定時器0溢出中斷、外部中斷1、定時器1溢出中斷、串行口中斷。5個中斷源中斷請求響應后,程序分別轉向對應的5個固定的中斷入口地址(中斷向量),具體地址如表5-6所示。表5-6中斷源入口地址及同一優(yōu)先級下的自然優(yōu)先序

【例5-1】若允許開放外部中斷0、外部中斷1中斷,并選擇外部中斷0為跳沿觸發(fā)方式,外部中斷1為電平出發(fā)方式,并設置外部中斷1具有高的優(yōu)先級。參考程序如下:70{……EA=1; //開放總中斷EX0=1; //允許外部中斷0中斷EX1=1; //允許外部中斷1中斷IT0=1; //設置外部中斷0為跳沿觸發(fā)方式IT1=0; //設置外部中斷1為電平觸發(fā)方式PX1=1; //外部中斷1具有高優(yōu)先級……}5.3中斷響應過程80C51單片機對中斷源中斷請求作出響應,必須滿足中斷響應條件;中斷請求也會遇到被封鎖的情況,中斷還會出現(xiàn)嵌套,本節(jié)討論中斷響應的過程及中斷響應時間。1.滿足中斷響應需要的條件CPU對中斷請求進行響應,必須檢測到下面5個條件。(1)中斷允許總控制位開放,即EA=1。71

(2)某一中斷源有請求信號,即中斷源對應的中斷標志位為1。(3)該中斷源對應的中斷允許位置1。(4)無同級或更高級中斷正在服務。 (5)當前的指令周期已經(jīng)結束,且當前指令不是RETI或訪問IE和IP的指令。CPU響應中斷時,第一步置位相應的優(yōu)先級激活觸發(fā)器,以便封鎖同級和低級的中斷。第二步,把程序計數(shù)器PC的內(nèi)容壓入堆棧(但不自動保存程序狀態(tài)字PSW),同時把被響應的中斷服務程序的入口地址裝入PC中。第三步,在硬件的控制下,程序轉向被響應的中斷向量,執(zhí)行中斷請求需要的中斷服務程序。

2.中斷請求被封鎖的情況單片機CPU在每個機器周期的S5P2節(jié)拍采樣中斷標志,在下一個機器周期對采樣到的中斷源查詢。如果遇到下列3種情況之一時,對該中斷源的響應被封鎖。72

(1)CPU正在處理同級或高級的中斷。(2)現(xiàn)行的機器周期不是當前所執(zhí)行指令的最后一個機器周期。(3)當前正在執(zhí)行的指令是中斷返回指令(RETI)或是對IE或IP寄存器訪問的指令。

3.中斷的嵌套80C51單片機有兩個中斷優(yōu)先級。當CPU正在執(zhí)行中斷服務程序時,又有其他中斷源發(fā)出中斷申請,CPU要分析判斷,決定是否響應該中斷。判決規(guī)則如下:(1)若是同級中斷源申請中斷,CPU將不予理睬;(2)若是高級中斷源申請中斷,CPU將轉去響應高級中斷請求,待高級中斷服務程序執(zhí)行完畢,CPU再轉回低級中斷服務程序斷點處接著執(zhí)行。這就是中斷的嵌套,二級中斷嵌套程序執(zhí)行過程如圖5-3所示。73圖5-380C51中斷的嵌套調(diào)用過程

4.中斷響應時間以外部中斷響應為例,單片機在每個機器周期的S5P2時,采集外部中斷和的引腳電平,并鎖存到IE0和IE1中,這個設置IE0和IEl的標志位在下一個機器周期才被查詢電路查詢。如果產(chǎn)生了中斷請求,而且滿足響應的條件,CPU響應中斷后,由硬件生成一條雙機器周期的長調(diào)用指令轉到相應的中斷向量處,因此,74從中斷請求有效到執(zhí)行中斷服務程序的時間間隔至少需要3個完整的機器周期。如果中斷請求被封鎖,那么80C51將需要更長的響應時間。(1)若同級的或高優(yōu)先級中斷已經(jīng)在執(zhí)行,則等待時間取決于正在處理的中斷服務程序的長度。(2)若正在執(zhí)行的是RETI指令或者是訪問IE或IP指令,指令執(zhí)行時間為2個機器周期,則CPU接著還需要執(zhí)行一條指令才響應中斷,如果這條指令是需要最長時間指令,即4個機器周期的MUL或DIV指令,另外加上執(zhí)行由硬件生成的2個機器周期的長調(diào)用指令轉到相應的中斷向量處所需時間,外部中斷響應最長時間為8個機器周期。這樣,在單片機應用系統(tǒng)中只有一個中斷源的情況下,響應時間總是在3~8個機器周期之間。5.4中斷服務函數(shù)及應用在第3章中已簡要介紹中斷服務函數(shù),C51中定義了中斷函數(shù)來編寫中斷服務程序,大大減輕了編寫中斷服務程序的復雜程度。75本節(jié)介紹中斷服務函數(shù)的設計及應用。5.4.1中斷服務函數(shù)在C51中專門設計interrupt修飾符來定義中斷服務函數(shù),對聲明為中斷服務程序的函數(shù),在系統(tǒng)編譯時會自動將當前工作寄存器區(qū)內(nèi)容入棧、函數(shù)返回前將被保護的內(nèi)容出棧,并將中斷服務函數(shù)安排在程序存儲器中的相應位置。中斷服務函數(shù)的格式為:函數(shù)類型函數(shù)名(void)interruptnusingm對中斷服務函數(shù)使用的說明:1.中斷函數(shù)沒有返回值,函數(shù)類型建議用void類型。2.interrupt后的n為中斷號,對于MCS-51子系列(如80C51),n取值為0~4,對MCS-52子系列,n取值為0~5,中斷服務程序從8×n+3的中斷向量處開始執(zhí)行。中斷號與中斷向量的對應關系如表5-7所示。76表5-7中斷號與中斷向量的對應關系

3.關鍵字using是可選項,后面的m用來選擇4個工作寄存器區(qū)。m取值為0~3。工作寄存器區(qū)與工作寄存器地址如表5-8所示。中斷號n中斷源中斷向量8n+30外部中斷00003H1定時器/計數(shù)器T0000BH2外部中斷10013H3定時器/計數(shù)器T1001BH4串行口中斷0023H5定時器/計數(shù)器T2002BH77表5-8工作寄存器區(qū)及地址

中斷服務函數(shù)中如果選用usingm,程序執(zhí)行開始會自動將PSW入棧,并修改PSW中的工作寄存器組選擇位RS1、RS0到m指定的工作區(qū)。4.在中斷服務程序中調(diào)用其他函數(shù),必須保證所調(diào)用函數(shù)使用的工作寄存器區(qū)與中斷函數(shù)使用的寄存器區(qū)不同。工作寄存器區(qū)mRS1 RS0 工作寄存器工作寄存器在RAM中的地址000R0~R700~07H101R0~R708~0FH210R0~R710~17H311R0~R718~1FH785.4.2外部中斷服務函數(shù)應用設計本節(jié)通過幾個案例,介紹有關外部中斷應用程序的設計。例5-2】電路如圖5-4所示,設計一個對外部中斷0計數(shù)的程序。在80C51單片機的P1口連接8只LED,在外部中斷0輸入引腳P3.2連接一個按鈕開關K。要求如下:(1)每按一次K,產(chǎn)生外部中斷0請求,在外部中斷0服務程序中統(tǒng)計中斷發(fā)生的次數(shù);(2)主程序實現(xiàn)在8個LED上按16進制方式顯示中斷次數(shù)。79圖5-4一個外部中斷計數(shù)電路80

參考程序如下:#include<reg51.h>#defineucharunsignedcharuchara=0x00;voidDelay(unsignedintx)//延時1ms函數(shù){ucharj;while(x--){for(j=0;j<125;j++);}}voidmain() //主函數(shù){uchartemp;EA=1; //開放總中斷EX0=1; //允許外部中斷0中斷IT0=1; //外部中斷0為負跳變觸發(fā)方式81while(1) {temp=a;temp=~temp;P1=temp;}}voidint0()interrupt0 //外部中斷0服務程序{a=a+1;} 【例5-3】設計二個外部中斷嵌套程序,電路如圖5-5所示。在80C51單片機的P0口連接8只LED,在外部中斷0輸入引腳P3.2和外部中斷1輸入引腳P3.3各接一個按鈕開關K1和K2。要求如下:(1)K1和K2均未按下時,P0口連接的8只LED呈間隔點亮后交替;(2)按下K1,產(chǎn)生高優(yōu)先級的外部中斷0請求,在82中斷服務程序中使8只LED自上而下流水點亮,顯示3遍。(3)按下K2,產(chǎn)生低優(yōu)先級的外部中斷1請求,在中斷服務程序中使8只LED自下而上流水點亮,顯示3遍。圖5-5二個外部中斷嵌套電路83

參考程序如下:#include<reg51.h>#include<intrins.h> #defineucharunsignedcharuchardisplay[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};voidDelay(unsignedintx)//延時1ms函數(shù){ucharj;while(x--){for(j=0;j<125;j++);}}voidmain() //主函數(shù){EA=1; //開放總中斷EX0=1; //允許外部中斷0中斷EX1=1; //允許外部中斷1中斷84IT0=1; //外部中斷0為負跳變觸發(fā)方式IT1=1; //外部中斷1為負跳變觸發(fā)方式PX0=1; //外部中斷0中斷具有高優(yōu)先級PX1=0; //外部中斷1中斷具有低優(yōu)先級while(1) {P0=0x55;Delay(500);P0=0xaa;Delay(500);}}voidint0()interrupt0 //外部中斷0服務程序{ucharm,a;for(m=0;m<3;m++){for(a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論