單片機原理及應(yīng)用.ppt

上傳人:za****8 文檔編號:15299196 上傳時間:2020-08-07 格式:PPT 頁數(shù):157 大?。?69KB
收藏 版權(quán)申訴 舉報 下載
單片機原理及應(yīng)用.ppt_第1頁
第1頁 / 共157頁
單片機原理及應(yīng)用.ppt_第2頁
第2頁 / 共157頁
單片機原理及應(yīng)用.ppt_第3頁
第3頁 / 共157頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《單片機原理及應(yīng)用.ppt》由會員分享,可在線閱讀,更多相關(guān)《單片機原理及應(yīng)用.ppt(157頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、單片機原理及應(yīng)用,第五章MCS-51單片機的硬件資源 5.1 MCS-51的并行接口及其應(yīng)用 5.2 MCS-51的中斷系統(tǒng) 5.3 MCS-51的定時器/計數(shù)器 5.4 MCS-51的串行接口及串行通信,輸入/輸出接口是CPU外設(shè)間信息的橋梁,它可以制成一塊單獨的大規(guī)模集成電路,也可以和CPU集成在同一塊芯片上,單片機中就是后一種結(jié)構(gòu)。I/O接口有并行接口和串行接口兩種。,5.1.1 MCS51內(nèi)部并行I/O端口,8031有四個并行端口,分別命名為P0、P1 、P2 和P3 。這四個并行I/O端口的內(nèi)部位結(jié)構(gòu)如圖51所示,每個端口皆有八位。由圖51可見,每個位結(jié)構(gòu)都有一個輸出鎖存器和一個輸入

2、緩沖器。輸出鎖存器,用于存放需要輸出的數(shù)據(jù)。,5.1 MCS-51的并行接口及其應(yīng)用,第五章MCS-51單片機的硬件資源,每個端口的八位輸出鎖存器構(gòu)成一個特殊功能寄存器,且冠名與端口相同。輸入緩沖器用于對端口引腳上輸入數(shù)據(jù)進行緩沖,因此各引腳上輸入的數(shù)據(jù)必須一直保持到CPU把它讀走為止。P0、P1 、P2 和P3端口的電路形式不同,其功能也不同。下面結(jié)合電路結(jié)構(gòu)就其功能加以說明。,一、P0口,第五章 MCS-51單片機的硬件資源,在訪問外部存儲器時,P0口是一個真正的雙向數(shù)據(jù)口,并分時送出地址的8位和送出(接收)相應(yīng)存儲單元的數(shù)據(jù)。,第五章MCS-51單片機的硬件資源,,圖51(a)是P0口的

3、位結(jié)構(gòu)圖,它包括一個輸出鎖存器,兩個三態(tài)緩沖器,一個輸出驅(qū)動電路和一個輸出控制電路。,,,第五章MCS-51單片機的硬件資源,當(dāng)從P0口輸出地址或數(shù)據(jù)時,控制信號應(yīng)為高電平1,模擬轉(zhuǎn)換開關(guān)(MUX)把地址/數(shù)據(jù)信息經(jīng)反相器和下拉場效應(yīng)管接通,同時與門打開。輸出的地址或數(shù)據(jù)既通過與門去驅(qū)動上拉場效應(yīng)管,又通過反相器去驅(qū)動下拉場效應(yīng)管。,例如,若地址/數(shù)據(jù)信息為“0”,該“0”信號一方面通過與門使上拉場效應(yīng)管截止,另一方面經(jīng)反相器使下拉場效應(yīng)管導(dǎo)通,從而使引腳上輸出相應(yīng)的“0”信號,反之,若地址/數(shù)據(jù)信息為“1”,將會使上拉場效應(yīng)管導(dǎo)通而下拉場效應(yīng)管截止,引腳上將出現(xiàn)相應(yīng)的“1”信號。,第五章MC

4、S-51單片機的硬件資源,若P0口作為一般I/O口使用,在CPU向端口輸出數(shù)據(jù)時,對應(yīng)的輸出控制信號應(yīng)為0,模擬轉(zhuǎn)換開關(guān)將把輸出級與鎖存器Q端接通。同時,因與門輸出為0,使上拉場效應(yīng)管處于截止狀態(tài),因此輸出級是漏極開路電路。這樣,當(dāng)寫脈沖加在觸發(fā)器時針端CP上時,則與內(nèi)部總線相連的D端數(shù)據(jù)取反后就出現(xiàn)在Q端,再經(jīng)場效應(yīng)管反相,在P0引腳上出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。,不難看出,P0口在輸出地址/數(shù)據(jù)信息和作為一般I/O口輸出數(shù)據(jù)時,其輸出驅(qū)動電路的工作狀態(tài)是有差別的。,第五章MCS-51單片機的硬件資源,一般P0口的輸出級能驅(qū)動8個LS TTL 輸入,但對NMOS輸入而言,P0口做地址/數(shù)

5、據(jù)總線口使用時,不必外加提升電阻。而作一般I/O口使用時,由于輸出驅(qū)動電路工作于開漏狀態(tài),故需外接上拉電阻。,,當(dāng)P0口引腳上輸入數(shù)據(jù),此時上拉FET應(yīng)一直處于截止狀態(tài)。引腳上的外部信號即加在下面一個三態(tài)緩沖器的輸入端,又加在下拉FET的漏極,假定在此之前曾輸出鎖存過數(shù)據(jù)0 ,則FET是導(dǎo)通的,這樣引腳上的電位就始終被鉗位在0 電平,使輸入高電平無法讀入。因此作為一般I/O口使用時,P0口是一個準雙向口,即輸入數(shù)據(jù)時,應(yīng)先向口寫“1”,使兩個FET均截止,然后方可作高阻抗輸入。,第五章 MCS-51單片機的硬件資源,但在P0口連接外部存儲器時,由于訪問外部存儲器期間,CPU會自動向口0的鎖存器

6、寫入0FFH,所以,對用戶而言,P0口用作地址/數(shù)據(jù)總線時,則是一個真正的雙向口。,上面所述為數(shù)據(jù)由引腳輸入的情況,稱為“讀引腳”操作。但在有些情況下 ,例如用一根口線去驅(qū)動一個晶體管的基極,則向此口線寫“1”時,晶體管導(dǎo)通,并把引腳上的電平拉低,這時若從引腳上讀取數(shù)據(jù),會把此數(shù)據(jù)錯讀為0。為了避免錯讀引腳上電平的可能性,單片機中還提供了另一類所謂“讀鎖存器”操作。,第五章MCS-51單片機的硬件資源,這類操作的特點是:先讀口,隨之可對讀入的數(shù)據(jù)進行修改,然后再寫到端口上。例如執(zhí)行指令ORL P0,A時,則先把P0上的內(nèi)容讀入CPU,然后與A累加器內(nèi)容按位進行邏輯“或”操作,最后把“或”的結(jié)果

7、送回P0口。能使單片機產(chǎn)生這種讀-修改-寫操作的指令,其目的操作數(shù)一般為某I/O口或口的某一位,這些指令是:ANL,ORL,XRL,JBC,CPL,INC,DEC,DJNZ,MOV PXY,C,CLR PXY和SETB PXY等,它們的含義詳見指令系統(tǒng)一章的說明。,第五章MCS-51單片機的硬件資源,綜上所述,P0口既可作地址/數(shù)據(jù)總線口,這時它是真正的雙向口,也可作通用I/O口,但只是一個準雙向口。一般情況下,P0口已當(dāng)作地址/數(shù)據(jù)口使用時,就不能再作通用I/O口使用。,P2口的位結(jié)構(gòu)如圖5-1(b)所示,它與P0口基本相同,只有輸出部分略有不同,在輸出FET的漏極接有上拉電阻,這種結(jié)構(gòu)不必

8、外接上拉電阻就可驅(qū)動任何MOS輸入電路,且能驅(qū)動四個LSTTL輸入。P2口常用作外部存儲器的高八位地址口。當(dāng)不用作地址口時,P2口亦可作通用I/O口,這時它也是一個準雙向I/O口。,二、P2口,第五章MCS-51單片機的硬件資源,,第五章MCS-51單片機的硬件資源,三、P1口,第五章MCS-51單片機的硬件資源,四、P3口,P3口是一個雙功能口,第一功能和P2口一樣可作為通用I/O口。P3口工作于第二功能時,各位的定義如下:,第五章MCS-51單片機的硬件資源,第五章MCS-51單片機的硬件資源,由圖5-1(d)P3口位結(jié)構(gòu)可以看出,實現(xiàn)第一功能作通用I/O輸出口時,選擇輸出功能端應(yīng)保持高電

9、平,使與非門對鎖存器Q端是暢通的。同理,實現(xiàn)第二功能做專用信號輸出時,則該位的鎖存器應(yīng)置1,使與非門對選擇輸出功能端是暢通的。對輸入而言,無論該位是作通用輸入口還是作第二功能輸入口,其輸出鎖存器和選擇輸出功能端都應(yīng)置1,即使FET 截止。,由于所有口鎖存器在上電復(fù)位時均置為1,自然滿足了上述條件,所以用戶不必做任何工作,就可以直接使用P3口的第二功能。至于第一功能,應(yīng)在確信某一引腳第二功能提供的信號不用時,該引腳才可作I/O線使用,使用方法同與一般準雙向口相同。,第五章MCS-51單片機的硬件資源,5.1.2 MCS51內(nèi)部并行I/O口的應(yīng)用,MCS51四個I/O端口共有三種操作方式:輸出數(shù)據(jù)

10、方式,讀端口數(shù)據(jù)方式和讀端口引腳方式。,在數(shù)據(jù)輸出方式下,CPU通過一條數(shù)據(jù)操作指令就可以把輸出數(shù)據(jù)寫入P0P3的端口鎖存器,然后通過輸出驅(qū)動器送到端口引腳。因此,凡是端口操作指令都能達到從端口引腳上輸出數(shù)據(jù)的目的,例如如下指令均可在P0口輸出數(shù)據(jù):,MOV P0,A ;累加器A中的內(nèi)容送P0口 ANL P0,A ;P0口的內(nèi)容和A中的內(nèi)容相與后送P0口,第五章 MCS-51單片機的硬件資源,讀端口數(shù)據(jù)方式是一種僅對端口鎖存器中數(shù)據(jù)進行讀入的操作方式,CPU讀入的這個數(shù)據(jù)并非端口引腳的數(shù)據(jù)。因此,CPU只要用一條傳送指令就可把端口鎖存器中的數(shù)據(jù)讀入累加器A或內(nèi)部RAM中來。例如,如下指令可以從

11、P1口輸入數(shù)據(jù):,MOV A, P1 ;P1鎖存器中數(shù)據(jù)送A MOV 20H, P1 ; P1鎖存器數(shù)據(jù)送內(nèi)部20H單元,讀引腳方式可從端口引腳上讀入信息。在這種方式下,CPU首先必須使欲讀端口引腳所對應(yīng)的鎖存器置1,以便驅(qū)動器中的T2管截止,然后打開輸入三態(tài)緩沖器,使相應(yīng)端口引腳上信號輸入CPU內(nèi)部數(shù)據(jù)總線。因此,在讀引腳時必須連續(xù)使用兩條指令。,第五章 MCS-51單片機的硬件資源,例如讀P1口低四位引腳上的信號的程序為:,MOV P1,#0FH ;使P1口低4位鎖存器置1 MOV A,P1 ;讀P1口低4位引腳信號,I/O端口的應(yīng)用舉例:,一、I/O口直接用于輸入/輸出,在I/O

12、口直接用作輸入/輸出時,既可以把它們看作數(shù)據(jù)口也可以看作狀態(tài)口,這由用戶根據(jù)實際情況決定。,第五章 MCS-51單片機的硬件資源,例5.1 試編出模擬圖5-2(a)中電路的程序。,對電路進行模擬是指模擬它的輸出狀態(tài)如何隨輸入狀態(tài)的變化而變化。,第五章 MCS-51單片機的硬件資源,相應(yīng)程序為:,ORG 0500H D BIT 00H E BIT 01H G BIT 02H LOOP1:ORL P1,#08H ;準備P1.3輸入 LOOP2:MOV C,P1.3 ;檢測K2狀態(tài) JC LOOP2 ;若未準備好(K2斷開),則轉(zhuǎn) ; LOOP2

13、 ORL P1,#03H ;若準備好了,則輸入K0和K1狀態(tài) MOV C,P1.0 ;K0狀態(tài)送入D MOV D,C MOV C,P1.1 ;K1狀態(tài)送入E MOV E,C ANL C, D ;D與E送G,第五章 MCS-51單片機的硬件資源,第五章 MCS-51單片機的硬件資源,二、 I/O口對外部鎖存器的接口,第五章 MCS-51單片機的硬件資源,,MOV DPTR, #7FFFH ;DPTR指向74LS373端口 MOVX A, DPTR ;輸入數(shù)據(jù),應(yīng)當(dāng)注意:8031也可以通過外部鎖存器輸出數(shù)據(jù),但由于8031內(nèi)部每個I/O端口都帶有8位鎖存器,

14、因此只有擴展I/O端口時才需要利用外部鎖存器來輸出數(shù)據(jù)。,第五章 MCS-51單片機的硬件資源,5.2 MCS-51中斷系統(tǒng),5.2.1中斷概述,一、中斷和中斷系統(tǒng),CPU正在處理某件事的時候,外部發(fā)生了另一事件,請求CPU迅速處理,CPU暫時停止當(dāng)時的工作,轉(zhuǎn)入處理所發(fā)生的事件,處理結(jié)束后,再回到原來的地方,繼續(xù)原來的工作,這樣的過程稱為中斷,如圖5-4所示。,第五章 MCS-51單片機的硬件資源,,中斷系統(tǒng)實現(xiàn)中斷功能的部件,中斷源產(chǎn)生中斷請求的源,二、中斷優(yōu)先級,一般計算機系統(tǒng)允許有多個中斷源。當(dāng)幾個中斷源同時向CPU請求中斷,要求服務(wù)時,就存在CPU優(yōu)先響應(yīng)哪一個中斷請求的問題。為此系

15、統(tǒng)根據(jù)中斷源的輕重緩急進行排隊,規(guī)定每個中斷源都有一個中斷優(yōu)先級別,優(yōu)先處理最緊急事件的中斷請求。,第五章 MCS-51單片機的硬件資源,三、中斷嵌套,中斷嵌套是指CPU正在處理一個中斷源請求的時候,又發(fā)生了另一個優(yōu)先級比它高的中斷源請求,如果CPU能夠暫時中止執(zhí)行原來的處理程序,轉(zhuǎn)而去處理優(yōu)先級更高的中斷請求,處理結(jié)束后,再繼續(xù)執(zhí)行原來的低級中斷處理程序的過程。,第五章 MCS-51單片機的硬件資源,四、中斷過程,對于不同的計算機,中斷過程可能不盡相同,但是一般應(yīng)包括中斷請求、中斷響應(yīng)、中斷處理和中斷返回等四個步驟。,1.中斷請求,中斷過程是由中斷源向CPU發(fā)出中斷請求而開始的。有效中斷請求

16、信號應(yīng)該一直保持到CPU作出響應(yīng)為止。,2.中斷響應(yīng),CPU檢測到中斷請求信號后,在滿足一定條件的情況下進行響應(yīng)。其主要條件是:中斷標志是否開放,是否高級中斷,是否執(zhí)行完一條指令等。,第五章 MCS-51單片機的硬件資源,3.中斷處理,中斷處理或稱為中斷服務(wù),就是執(zhí)行中斷源所要求的中斷服務(wù)程序。在中斷服務(wù)程序中需要完成的主要工作是:,保護現(xiàn)場根據(jù)需要把斷點處有關(guān)存儲器的內(nèi)容壓入堆棧,以保護主程序運行的結(jié)果。,開/關(guān)中斷標志根據(jù)CPU響應(yīng)中斷后開/關(guān)中斷情況,適當(dāng)處理中斷標志,以確保保護/恢復(fù)現(xiàn)場的正確進行,確保所需中斷嵌套的實現(xiàn)。,中斷處理根據(jù)中斷源的要求,完成相應(yīng)的任務(wù),這是中斷服務(wù)的核心。

17、,第五章 MCS-51單片機的硬件資源,,恢復(fù)現(xiàn)場在完成中斷服務(wù)之后,返回被中斷的主程序之前,恢復(fù)堆棧中保護的各有關(guān)寄存器的內(nèi)容。,4.中斷返回,在中斷服務(wù)程序后,用一條中斷返回指令(RETI),保證返回主程序繼續(xù)執(zhí)行被中斷的程序。,5.2.2 MCS-51中斷系統(tǒng)與控制,MCS51的51子系列(8031、8051、8751等)有5個中斷源,52子系列(8032、8052等)有6個中斷源,它們均有兩個優(yōu)先級,通過4個中斷控制器(IE、IP、TCON、SCON)進行中斷管理,其結(jié)構(gòu)原理如圖5-6所示。,第五章 MCS-51單片機的硬件資源,第五章 MCS-51單片機的硬件資源,一、中斷源,CPU

18、在每個機器周期的S5P2檢測上的信號。,第五章 MCS-51單片機的硬件資源,,對于電平方式,只要檢測到低電平信號即為有效申請;對于脈沖方式,則需要比較兩次檢測到的信號,才能確定中斷請求信號是否有效,并且中斷請求信號高低電平的狀態(tài)都應(yīng)至少維持一個機器周期,以確保電平變化能被單片機檢測到。,思考:,脈沖觸發(fā)方式下,外部中斷脈沖的最高觸發(fā)頻率為系統(tǒng)振蕩頻率的多少倍?, 內(nèi)部中斷除外部中斷源外,內(nèi)部還有TF0、TF1、TI、RI分別為定時器/計數(shù)器中斷和發(fā)送/接收中斷的中斷源。,第五章 MCS-51單片機的硬件資源,,二、中斷控制,MCS-51單片機設(shè)置了4個專用寄存器用于中斷控制 ,用戶通過設(shè)置其

19、狀態(tài)來管理中斷系統(tǒng)。,1.定時器控制寄存器(TCON),TCON的格式如下:,TCON D7 D6 D5 D4 D3 D2 D1 D0,(88H),如前所述,寄存器中TR1(TR0)用于定時器/計數(shù)器的啟動控制,其余6位用于中斷控制,其作用如下:,第五章 MCS-51單片機的硬件資源,,,IT0為外部中斷0請求信號方式控制位。IT0 = 1,脈沖方式(負跳變有效);IT0 = 0,電平方式(低電平有效)。,IT1為外部中斷1請求信號方式控制位,其作用同IT0。,IE1為外部中斷1請求標志位,其作用同IE0。,TF0(TF1)為定時器/計數(shù)器溢出標志位,此標志作用將在定時器/計數(shù)器一節(jié)說明。,

20、第五章 MCS-51單片機的硬件資源,,2.串行口控制寄存器(SCON),SCON格式如下:,SCON D7 D6 D5 D4 D3 D2 D1 D0,(98H),串行口控制寄存器格式及各位功能將在串行接口一節(jié)介紹,其中高6位用于串行口控制,低2位(RI、TI)用于中斷控制,其作用如下:,TI為串行口發(fā)送中斷請求標志位,發(fā)送完一幀串行數(shù)據(jù)后,由硬件置1,其清零須由軟件完成。,第五章 MCS-51單片機的硬件資源,,,RI為串行口接收中斷請求標志位,接完一幀串行數(shù)據(jù)后,由硬件置1,其清零由軟件完成。,在MCS-51單片機串行口中,TI和RI的邏輯“或”作為一個內(nèi)部中斷源,二者之一置位都可以產(chǎn)

21、生串行口中斷請求,然后在中斷服務(wù)程序中測試這兩個標志位,以決定是發(fā)送中斷還是接收中斷。,3.中斷允許控制寄存器(IE),中斷允許寄存器格式如下:,IE D7 D6 D5 D4 D3 D2 D1 D0,(A8H),第五章 MCS-51單片機的硬件資源,ES為串行口中斷允許位,ES=1時,允許串行口中斷;ES=0時,禁止串行口中斷。,寄存器中用于控制中斷的共6位,實現(xiàn)中斷的管理,其作用如下:,,EX1為外部中斷1允許控制位,EX1=1允許外部中 斷1中斷,EX1=0,禁止外部中斷1中斷。,ET1為定時器/計數(shù)器1(T1)中斷允許控制位,ET1=1時,允許T1中斷;ET1=0時,禁止T1中斷。

22、,ET0為定時器/計數(shù)器0(T0)中斷允許控制位,其控制功能同ET1。,EX0為外部中斷0允許控制位,其控制功能同EX1。,MCS-51單片機的硬件資源,MCS51單片機中斷系統(tǒng)的管理是由中斷允許總控制位EA和各中斷源的中斷控制位聯(lián)合作用實現(xiàn)的,缺一不可。,4.中斷優(yōu)先級控制寄存器(IP),中斷優(yōu)先級控制寄存器的格式如下:,IP D7 D6 D5 D4 D3 D2 D1 D0,(B8H),MCS-51單片機規(guī)定了兩級中斷優(yōu)先級:高級中斷和低級中斷,用中斷優(yōu)先級寄存器(IP)的5位狀態(tài)管理5個中斷源的優(yōu)先級別。相應(yīng)位是“0”的中斷源為低級中斷,相應(yīng)位是“1”的中斷源為高級中斷。,MCS-51

23、單片機的硬件資源,各狀態(tài)位的作用如下:,PS為串行口中斷優(yōu)先控制位,PS = 1,串行口為高優(yōu)先級中斷;PS = 0,串行口為低優(yōu)先級中斷。,PT1為定時器/計數(shù)器1(T1)中斷優(yōu)先控制位,PT1 = 1,T1為高優(yōu)先級中斷,PT1 = 0,T1為低優(yōu)先級中斷。,PT0為定時器/計數(shù)器優(yōu)先控制位,PT0 = 1,T0為高優(yōu)先級中斷;PT0 = 0,T0為低優(yōu)先級中斷。,PX0為外部中斷0中斷優(yōu)先控制位,PX0 = 1,外部中斷0為高優(yōu)先級中斷;PX0 = 0,外部中斷0為低優(yōu)先級中斷,MCS-51單片機的硬件資源,PX0為外部中斷0中斷優(yōu)先控制位,PX0 = 1,外部中斷0為高優(yōu)先級中斷;PX

24、0 = 0,外部中斷0為低優(yōu)先級中斷。,MCS51單片機優(yōu)先級的控制原則是:,為了實現(xiàn)中斷嵌套,高優(yōu)先級中斷請求可以中斷低優(yōu)先級的中斷服務(wù);反之則不允許。,同等優(yōu)先級中斷源之間不能中斷對方的中斷服務(wù)過程。,多個同級中斷源同時產(chǎn)生中斷請求時,則按查詢順序確定哪個中斷請求先被響應(yīng)。MCS51單片機規(guī)定的查詢順序是:外部中斷0、定時器/計數(shù)器0、外部中斷1、定時器/計數(shù)器1和串行口中斷。,MCS-51單片機的硬件資源,5.2.3 中斷響應(yīng),一、中斷響應(yīng)過程,MCS51單片機在每個機器周期的S6狀態(tài)按優(yōu)先級順序查詢中斷標志,如果查詢到某個標志位為“1”,則表明有中斷請求發(fā)生,以下一個機器周期的S1狀態(tài)

25、開始響應(yīng)中斷。但是,出現(xiàn)下列情況之一時,中斷不能進行:, CPU正在為高級或同級的中斷服務(wù);, 查詢中斷請求的機器周期不是當(dāng)前指令的最后一個機器周期(以確保當(dāng)前指令的完整執(zhí)行);, 正在執(zhí)行的指令是RETI或是訪問IE或IP的指令(這時,必須再執(zhí)行一條指令后才能響應(yīng)中斷)。,MCS-51單片機的硬件資源,以上三種情況,通常稱為中斷受阻。 在響應(yīng)中斷請求時,MCS51的中斷系統(tǒng)先把該中斷請求存在各自的中斷標志位中,然后在下一個機器周期內(nèi)按照IP和固定的中斷優(yōu)先級順序查詢中斷標志位狀態(tài),并完成中斷優(yōu)先級排隊。在下一個機器周期的S1狀態(tài)時,MCS51開始響應(yīng)最高優(yōu)先級中斷。在響應(yīng)中斷時,CPU將自

26、動做如下幾件事:,先將斷點地址壓入堆棧進行保護,然后根據(jù)不同的中斷源將程序轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序入口。這是通過硬件自動生成一條長調(diào)用指令LCALL實現(xiàn)的。,中斷源與其中斷服務(wù)程序入口地址之間的關(guān)系是固定的,見表51。,表51 8051中斷服務(wù)程序入口地址表,ORG 0003H LJMP 2000H,二、中斷響應(yīng)時間,在實時控制系統(tǒng)中,為了滿足控制速度要求,常要弄清CPU響應(yīng)中斷所需的時間。中斷響應(yīng)時間是指從查詢中斷請求標志位到轉(zhuǎn)向中斷服務(wù)程序入口地址所需的機器周期數(shù),一般是3-8個機器周期。,響應(yīng)中斷最短時間是:,CPU查詢中斷標志的周期正好是執(zhí)行一條指令的最后一個機器周期(占用一個機器周期)

27、,此后,不需等待即可響應(yīng)中斷,硬件自動生成并執(zhí)行LCALL指令(需要2個機器周期),所以總共需要3個機器周期。,響應(yīng)中斷最長時間是:,CPU查詢中斷標志時,正好是開始執(zhí)行RETI或訪問IE、IP的指令,此時,需要把當(dāng)前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能響應(yīng)中斷。執(zhí)行前者最長需2個機器周期,而執(zhí)行后者最長需4個機器周期(如乘、除指令),再加上執(zhí)行長調(diào)用指令LCALL所需2個機器周期,總共需要8個機器周期。,通常,中斷響應(yīng)時間可以不予考慮,但在某些需要精確定時的場合,應(yīng)作出調(diào)整,以保證精確的定時。,5.2.4中斷請求的撤除,在中斷請求被響應(yīng)前,中斷源發(fā)出的中斷請求是由CPU鎖存在特殊功能寄存器T

28、CON和SCON的相應(yīng)中斷標志位中的。一旦某個中斷請求得到響應(yīng),CPU必須把它的相應(yīng)標志位復(fù)位成“0”狀態(tài)。否則,MCS51就會因中斷未能得到及時撤除而重復(fù)響應(yīng)同一中斷請求,這是絕對不能允許的。,五個中斷源只分屬于三種中斷類型。這三種類型是:外部中斷、定時器溢出中斷和串行口中斷。對于這三種中斷類型的中斷請求,其撤除方法是不同的。,一、定時器溢出中斷請求的撤除,定時器溢出中斷源的中斷請求是自動撤除的,用戶根本不必專門為它們撤除。,二、串行口中斷請求的撤除,TI和RI是串行口中斷的標志位,中斷系統(tǒng)不能自動將它們撤除,這是因為MCS51進入串行口中斷服務(wù)程序后常需要對它們進行檢測,以測定串行口發(fā)生了

29、接收中斷還是發(fā)送中斷。為了防止CPU再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當(dāng)位置處通過如下指令將它們撤除:,CLR TI ;撤除發(fā)送中斷 CLR RI ;撤除接收中斷,若采用字節(jié)指令,則也可采用如下指令: ANL SCON,#0FCH;撤除發(fā)送和接收中斷,三、外部中斷的撤除,外部中斷請求有二種觸發(fā)方式:電平觸發(fā)和負邊沿觸發(fā)。對于這兩種不同的中斷觸發(fā)方式,MCS51撤除它們的中斷請求的方法是不相同的。,在負邊沿觸發(fā)方式下,外部中斷標志IE0和IE1是依靠CPU兩次檢測INT0和INT1上觸發(fā)電平狀態(tài)而置位的。因此,芯片設(shè)計者使CPU在響應(yīng)中斷時自動復(fù)位IE0和IE1,以撤除INT0或INT1

30、上的中斷請求。在中斷服務(wù)時,既然INT0或INT1停留在低電平,就不會再產(chǎn)生負邊沿而使相應(yīng)中斷標志位IE0或IE1置位。,在電平觸發(fā)方式下,外部中斷標志IE0和IE1是依靠CPU檢測INT0或INT1 上低電平而置位的。盡管CPU響應(yīng)中斷時相應(yīng)中斷標志IE0或IE1,能自動復(fù)位成“0”狀態(tài),但若外部中斷源不能及時撤除它在INT0或INT1上低電平就會再次使已經(jīng)變“0”的中斷標志IE0或IE1置位,這是絕對不能允許的。因此,電平觸發(fā)型外部中斷請求的撤除必須使INT0或INT1上低電平隨著其中斷被CPU響應(yīng)而變?yōu)楦唠娖健?,外部中斷信號,INSVR:ORL P1,#01H ANL P1,#

31、0FEH CLR IE0 END,5.2.5中斷系統(tǒng)的初始化,中斷系統(tǒng)初始化就是用戶對管理中斷系統(tǒng)的特殊功能寄存器中的各控制位進行賦值。,中斷系統(tǒng)初始化步驟如下:,(1)開相應(yīng)中斷源的中斷;,(2)設(shè)定所有中斷源的中斷優(yōu)先級;,(3)若為外部中斷,則應(yīng)規(guī)定低電平還是負邊沿的中斷觸發(fā)方式。,MCS-51單片機的硬件資源,解: 采用位操作指令, 采用字節(jié)型指令,MCS-51單片機的硬件資源,5.2.6 MCS-51單片機的單步工作方式,單步工作方式,即單步執(zhí)行:就是由外來脈沖控制程序的執(zhí)行,使之達到來一個脈沖就執(zhí)行一條指令的目的。而外來脈沖是通過按鍵產(chǎn)生的,因此實際上單步執(zhí)行

32、就是按一次鍵執(zhí)行一條指令。,假定利用外部中斷0來實現(xiàn)程序的單步執(zhí)行,為此應(yīng)事先作好兩項準備工作:, 建立單步執(zhí)行的外部控制電路;, 編寫外部中斷0的中斷服務(wù)程序。,第五章 MCS-51單片機的硬件資源,CLR IT0 ;設(shè)置外部中斷0為電平觸發(fā) SETB EA;CPU開中斷 SETB PX0;置外部中斷0為高優(yōu)先級 SETB EX0;外部中斷0開中斷,其初始化程序如下:,第五章 MCS-51單片機的硬件資源,5.2.7 外部中斷源的擴展,一、定時器/計數(shù)器用于外部中斷源的擴展,用8051的定時器/計數(shù)器作為計數(shù)器使用時,計數(shù)輸入端T1(T0)發(fā)生負跳變將使計數(shù)器加1。利用此特性,適當(dāng)處理

33、計數(shù)初值,就可以把計數(shù)輸入端T1(T0)作為外部中斷請求輸入端。,例如,將定時器/計數(shù)器0設(shè)置為工作方式2、計數(shù)模式、計數(shù)初值0FFH,且允許中斷,其初始化程序如下:,MOV TMOD,#06H ;設(shè)置定時器0為工作方式2、計數(shù)模式 MOV TH0,#0FFH ;設(shè)置計數(shù)器初值 MOV TL0,#0FFH SETB TR0 ;啟動定時器0 SETB ET0 ;允許定時器中斷 SETB EA ;CPU開中斷,第五章 MCS-51單片機的硬件資源,以上程序執(zhí)行后,當(dāng)定時器/計數(shù)器0計數(shù)輸入端T0的信號發(fā)生負跳變時,TL0加1,產(chǎn)生溢出,標志位TF0置“1”,向CPU發(fā)出中斷請求,同時

34、TH0的值重新送入TL0。這樣T0端相當(dāng)于脈沖方式的外部中斷請求輸入端。,用本方法擴展外部中斷源是以犧牲內(nèi)部定時中斷為代價的!,二、查詢式擴展外部中斷源,當(dāng)外部中斷源較多時,可以采用查詢的方式擴展中斷源。把多個中斷源通過硬件(如或非門)引入外中斷源輸入端(INT0或INT1),同時又連到某I/O口。這樣,每個中斷源都可能引起中斷,并在中斷服務(wù)程序中通過軟件查詢便可確定哪一個是正在申請的中斷源,其查詢的次序則由中斷源優(yōu)先級決定,這樣可實現(xiàn)多個外部中斷源的擴展。,第五章 MCS-51單片機的硬件資源,當(dāng)系統(tǒng)的各部分工作正常時,4個故障源輸入端全為低電平,顯示燈全熄滅。只有當(dāng)某部分出現(xiàn)故障時,對應(yīng)的

35、輸入線由低電平變?yōu)楦唠娖剑瑥亩?031中斷,在中斷服務(wù)程序中通過查詢即可判定故障源,并進行相應(yīng)的燈光顯示。,第五章 MCS-51單片機的硬件資源,對應(yīng)的參考程序清單如下:,ORG 0000H AJMP MAIN ORG 0003H AJMP PINT;轉(zhuǎn)中斷服務(wù)程序 ORG 100H MAIN:ANL P1,#55H;使P1口輸入不變,輸出全0 SETB IT0 ;置外部中斷0為邊沿觸發(fā)方式 SETB EX0;外部中斷0開中斷 SETB EA;CPU開中斷 LOOP: MOV A,P1;取P1口輸入狀態(tài) ANL A,#55H,第五章 MCS-51單片機

36、的硬件資源,JNZ LOOP;有外部中斷請求去LOOP ANL P1,#55H;無外部中斷請求輸出清0 ;(燈全滅) SJMP LOOP;去LOOP等待中斷,參考中斷服務(wù)程序如下:,PINT: JNB P1.0,L1 ;查詢中斷源,P1.0為0轉(zhuǎn)L1 SETB P1.1 ;P1.0為1,P1.1送出“1”使對應(yīng)的燈亮 SJMP L2 ;查詢中斷源,P1.2 L1: CLR P1.1 ;清P1.1,使對應(yīng)燈滅 L2: JNB P1.2,L3 ;P1.2為0轉(zhuǎn)查下一個中斷源,第五章 MCS-51單片機的硬件資源,SETB P1.3 ;P1.2為1,P1.3送出1使對應(yīng)燈亮

37、SJMP L4 L3: CLR P1.3 L4: JNB P1.4,L5 SETB P1.5 SJMP L6 L5: CLR P1.5 L6: JNB P1.6,L7 SETB P1.7 SJMP L8 L7: CLR P1.7 L8: RETI;返回主程序,第五章 MCS-51單片機的硬件資源,5.3 MCS-51單片機的定時器/計數(shù)器,5.3.1定時方法概述,可供選擇的定時方法有:,一、 軟件定時,軟件定時靠執(zhí)行一個循環(huán)程序以進行時間延遲。,特點是時間精確,且不需要外加硬件電路。但軟件定時要占用CPU開銷,因此軟件定時的時間不宜太長。,二、硬件定時,特點是(定時功能全部由硬件電路完

38、成)不占CPU時間,但需通過改變電路的元件參數(shù)來調(diào)節(jié)定時時間,在使用上不夠靈活方便。,第五章 MCS-51單片機的硬件資源,三、可編程定時器定時,這種定時方法是通過對系統(tǒng)時鐘脈沖的計數(shù)來實現(xiàn)的。計數(shù)值通過程序設(shè)定,改變計數(shù)值,也就改變了定時時間,使用起來既靈活有方便。,MCS-51單片機把定時電路集成在芯片中,稱之為定時器/計數(shù)器。,5.3.2定時器/計數(shù)器的定時和計數(shù)功能,MCS51單片機內(nèi)部有兩個可編程的定時器/計數(shù)器,分別稱為定時器/計數(shù)器0和定時器/計數(shù)器1。它們都是16位加法計數(shù)結(jié)構(gòu),分別由TH0和TL0及TH1和TL1兩個8位計數(shù)器組成。,第五章 MCS-51單片機的硬件資源,,一

39、、計數(shù)功能,計數(shù)是指對外部事件進行計數(shù)。外部事件的發(fā)生以輸入脈沖表示,因此計數(shù)功能的實質(zhì)就是對外來脈沖進行計數(shù)。MCS51芯片有T0(P3.4)和T1(P3.5)兩個信號引腳,分別是這兩個計數(shù)器的輸入端。外部輸入的脈沖為負跳變時有效,進行計數(shù)器加1。,單片機在每個機器周期的S5P2拍節(jié)對外部計數(shù)脈沖進行采樣。如果前一個機器周期采樣為高電平,后一個機器周期采樣為低電平,即為一個有效脈沖。在下一個機器周期的S3P1進行計數(shù)??梢姴蓸佑嫈?shù)脈沖是在2個機器周期進行的。因此,計數(shù)脈沖的頻率不能高于震蕩脈沖頻率的1/24。外部輸入脈沖高電平和低電平時間必須在一個機器周期以上。,第五章 MCS-51單片機的

40、硬件資源,,二、定時功能,定時功能也是通過定時器/計數(shù)器的計數(shù)來實現(xiàn)的。不過此時的計數(shù)脈沖來自單片機內(nèi)部,即每個機器周期產(chǎn)生一個計數(shù)脈沖,也就是每個機器周期計數(shù)器加1。,由于一個機器周期等于12個振蕩脈沖周期,因此計數(shù)頻率為振蕩頻率的1/12。這樣不但可以根據(jù)計數(shù)值計算出定時時間,也可以反過來按定時時間的要求計算出計數(shù)器的初值。,第五章 MCS-51單片機的硬件資源,,5.3.3 定時器/計數(shù)器的控制寄存器,與定時器/計數(shù)器應(yīng)用有關(guān)的控制寄存器有:,一、 定時控制寄存器(TCON),TCON寄存器既參與中斷控制又參與定時控制,其中有關(guān)定時的控制位共有4位:, TF0和TF1計數(shù)溢出標志位,當(dāng)計

41、數(shù)器計數(shù)溢出(計滿)時,該位置“1”;使用查詢方式時,此位作狀態(tài)位供查詢,但應(yīng)注意查詢有效后,須用軟件方法及時將該位清“0”;使用中斷方式時,此位作中斷標志位,在轉(zhuǎn)向中斷服務(wù)程序時由硬件自動清“0”。,第五章 MCS-51單片機的硬件資源,, TR0和TR1定時器運行控制位 TR0(TR1)=0 停止定時器/計數(shù)器工作 TR0(TR1)=1 啟動定時器/計數(shù)器工作 該位根據(jù)需要以軟件方法使其置“1”或清“0”。,二、 工作方式控制寄存器(TMOD, 89H),各位定義如下:,第五章 MCS-51單片機的硬件資源,M1 M0工作方式選擇位 M1 M0=00 方式0為13位定時器/計數(shù)器; M1

42、M0=01 方式1為16位定時器/計數(shù)器; M1 M0=10 方式2為常數(shù)自動裝入的8位定時器/計數(shù)器; M1 M0=11 方式3(僅適用于T0)為兩個8位定時器/計數(shù)器,在方式3時T1停止計數(shù)。,GATE門控位 GATE=0 由運行控制位TR啟動定時器; GATE=1 由外中斷請求信號(INT0或INT1)啟動定時器; C/T定時方式或計數(shù)方式選擇位 C/T=0 定時工作方式; C/T=1 計數(shù)工作方式;,,,,,第五章 MCS-51單片機的硬件資源,三、中斷允許控制寄存器(IE,A8H),與定時器/計數(shù)器有關(guān)的位重復(fù)介紹如下:,EA中斷允許總控制位。,ET0和ET1定時/計數(shù)中斷允許控制位

43、。 ET0(ET1)= 0,禁止定時/計數(shù)中斷;ET0(ET1)=1,允許定時/計數(shù)中斷。,5.3.4 定時器/計數(shù)器工作方式,MCS51單片機的定時器/計數(shù)器共有4種工作模式。,一、方式0,第五章 MCS-51單片機的硬件資源,,定時器/計數(shù)器方式0的計數(shù)器結(jié)構(gòu):,第五章 MCS-51單片機的硬件資源,,定時器/計數(shù)器運行控制的情況:,由TR0控制的情況,要運行控制位TR0能夠控制定時器/計數(shù)器的運行,其或門的輸出一定要為1,這就意味著GATE要設(shè)置為0或者INT0=1。 因此在單片機的定時或計數(shù)應(yīng)用中,要注意定時器方式寄存器TMOD的GATE位一定要設(shè)置為0。,,第五章 MCS-51單片

44、機的硬件資源,,2、定時和計數(shù)應(yīng)用,在方式0下,當(dāng)為計數(shù)工作方式時,計數(shù)值的范圍是:18192(213),當(dāng)為定時工作方式時,定時時間的計算公式為: T=(213計數(shù)初值)晶振周期12,如晶振頻率為6MHZ,則最小定時時間為:,Tmin=213(2131)1/610- 612 =210-6=2(s),最大定時時間為:,Tmax=(2130)1/610-612=16384(s),第五章 MCS-51單片機的硬件資源,例5.3設(shè)單片機晶振頻率為6MHZ,使用定時器1以方式0產(chǎn)生周期為500s的等寬正方波連續(xù)脈沖,并由P1.0輸出。以查詢方式完成。,解: 計算計數(shù)初值,欲產(chǎn)生500s的等寬正方波脈

45、沖,只需在P1.0端以250s為周期交替輸出高低電平即可實現(xiàn),為此定時時間應(yīng)為250s。使用6MHZ晶振,則一個機器周期為2s。方式0為13位計數(shù)結(jié)構(gòu)。設(shè)待求的計數(shù)初值為X,則,(213X)210-6=25010-6,求解得:X=8067。二進制數(shù)表示為0001111110000011B。十六進制(按方式0的13位11111100XXX00011)表示得:高8位為0FCH,低5位為03H。,第五章 MCS-51單片機的硬件資源, 相關(guān)控制寄存器的設(shè)定,TMOD各位的設(shè)定。設(shè)定方式0:M1M0=00;實現(xiàn)定時:C/T=0;定時應(yīng)用:GATE=0。注意: 定時器/計數(shù)器0不用,一般來說不要改變其原

46、設(shè)置,為此在程序設(shè)計時,應(yīng)加以屏蔽。,TCON(地址:88H)是可以位尋址的,又因與該題有關(guān)的位只有TR1,故這里采用位尋址方式,用設(shè)置TR1 =1來啟動定時器T1,TR1 =0來停止定時器T1。,IE的設(shè)定。題目要求采用查詢方式,當(dāng)定時時間到定時器溢出標志位TF1置1時,不允許產(chǎn)生中斷,故應(yīng)禁止中斷,即置IE=00H。,第五章 MCS-51單片機的硬件資源, 程序設(shè)計,ANL TMOD,#0FH ;設(shè)置T1為定時工作方式0 ORL TMOD,#00H ;且不影響T0的工作 MOV TH1,#0FCH ;置計數(shù)初值 MOV TL1,#03H MOV IE,#00H ;禁止中斷 LOO

47、P:SETB TR1 ;啟動定時器 JBC TF1,LOOP1 ;查詢計數(shù)溢出 AJMP LOOP LOOP1:MOV TH1,#0FCH ;重新設(shè)置計數(shù)初值 MOV TL1,#03H CPL P1.0 ;輸出取反 AJMP LOOP ;重復(fù)循環(huán) END,第五章 MCS-51單片機的硬件資源,二、方式1,方式1是16位計數(shù)結(jié)構(gòu)的工作方式,計數(shù)器由TH0全部8位和TL0全部8位構(gòu)成。,第五章 MCS-51單片機的硬件資源,當(dāng)定時器/計數(shù)器在方式1下作計數(shù)器用時,其計數(shù)范圍是:165536(216),當(dāng)定時器/計數(shù)器在方式1下作定時器用時,其定時時間計算公式為: T=(216-計數(shù)初

48、值)晶振周期12,如晶振頻率為6MHZ,則最小定時時間為: Tmin=216-(216-1)1/6 10-612 =210-6=2(s),第五章 MCS-51單片機的硬件資源,X=65411=FF83H,即可得:TH0=0FFH,TL0=83H,最大定時時間為: Tmax=(216-0)1/610-612=131072 10-6 =131072(s),例5.4設(shè)單片機晶振頻率為6MHZ,要求使用定時器0工作方式1產(chǎn)生周期為500s的等寬正脈沖,并在P1.0端輸出。試編寫采用中斷方式完成的相關(guān)程序。,解:.計算計數(shù)初值,(216-X)1/610-612=25010-6,第五章 MCS-51單片

49、機的硬件資源,.設(shè)置各相關(guān)控制寄存器,TMOD應(yīng)設(shè)置為XXXX0001B; IE和TCON均采用位尋址方式。,.程序設(shè)計,ORG 0000H START: AJMP MAIN ORG 000BH AJMP INTER ORG 0100H MAIN: ANL TMOD,#0F0H ;置定時器0工作方式1 ORL TMOD,#01H,第五章 MCS-51單片機的硬件資源,MOV TH0,#0FFH ;設(shè)置計數(shù)初值 MOV TL0,#83H SETB EA ;CPU開中斷 SETB ET0 ;定時器0開中斷 SETB TR0 ;啟動定時器0 SJMP ;等

50、待中斷 INTER:MOV TH0,#0FF ;重新設(shè)置計數(shù)初值 MOV TL0, #83H CPL P1.0 ;輸出取反 RETI ;中斷返回 END,第五章 MCS-51單片機的硬件資源,三、方式2,具有自動重裝計數(shù)初值的功能。在這種工作方式下,把16位計數(shù)分為兩部分,即以TL作計數(shù)器,以TH作預(yù)置計數(shù)器,初始化時把計數(shù)初值分別裝入TL和TH中。當(dāng)計數(shù)溢出時,由預(yù)置計數(shù)器自動給計數(shù)器TL重新裝初值。,第五章 MCS-51單片機的硬件資源,2、循環(huán)定時和循環(huán)計數(shù)應(yīng)用,自動重裝工作方式非常適應(yīng)于循環(huán)定時或循環(huán)計數(shù)應(yīng)用。,例5.5已知晶振頻率fosc=6MHz,要求使用定時

51、器0以工作方式2產(chǎn)生100s定時,在P1.0輸出周期為200s的連續(xù)正方波脈沖。試編寫相關(guān)程序。,解:計算計數(shù)初值,在6MHZ晶振下,一個機器周期為2s,假設(shè)計數(shù)初值為X,則: (28-X)210-6=10010-6,求解得: X=206=0CEH,第五章 MCS-51單片機的硬件資源, 各有關(guān)控制寄存器的設(shè)置,IE和TCON均采用位尋址方式,即分別將應(yīng)位置“1”或清“0”。,TMOD的設(shè)置:, 程序設(shè)計(查詢方式),第五章 MCS-51單片機的硬件資源,ANL TMOD,#0F0H;設(shè)置定時器0 ORL TMOD,#02H ;為工作方式2 MOV TH0,#0CEH ;設(shè)置計數(shù)初值

52、 MOV,TL0,#0CEH MOV IE,#00H;禁止中斷 SETB TR0;啟動定時 LOOP:JBC TF0,LOOP1;查詢計數(shù)溢出 AJMP LOOP LOOP1:CPL P1.0;輸出方波,初值自動裝入 AJMP LOOP,第五章 MCS-51單片機的硬件資源, 程序設(shè)計(中斷方式) 主程序: ANL TMOD,#0F0H ORL TMOD,#02H MOV TH0, #0CEH MOV TL0, #0CEH SETB EA ;CPU開中斷 SETB ET0 ;定時器0開中斷 SETB TR0 ;啟動定時 SJMP ;等待中斷 中斷服務(wù)

53、程序: CLP P1.0 RETI,第五章 MCS-51單片機的硬件資源,四、 方式3,前三種工作方式,對兩個定時器/計數(shù)器的設(shè)置和使用是完全相同的。但是在工作方式3下,兩個定時器/計數(shù)器的設(shè)置和使用卻是不同的。,1、工作方式3下的定時器/計數(shù)器0,在工作方式3下,定時器/計數(shù)器0被拆成兩個獨立的8位計數(shù)器TL0和TH0。其中TL0既可以用作計數(shù),又可以用作定時,定時器/計數(shù)器0的各控制位和引腳信號全歸它使用。其功能和操作與方式0和方式1完全相同,而且邏輯電路結(jié)構(gòu)也極其類似,如圖513a所示。,第五章 MCS-51單片機的硬件資源,定時器/計數(shù)器0的高8位TH0,則只能作為簡單的定時器使用

54、。而且由于定時器/計數(shù)器0的控制位已被TL0占用,因此只好借用定時器/計數(shù)器1的控制位TR1和TF1。即以計數(shù)溢出去置位TF1,而定時的啟動和停止則由TR1的狀態(tài)控制,見圖5 13b。,第五章 MCS-51單片機的硬件資源,在工作方式3下,定時器/計數(shù)器0可以構(gòu)成兩個定時器或一個定時器一個計數(shù)器。,2、在定時器/計數(shù)器0 設(shè)置為工作方式3時的定時器/計數(shù)器1,定時器/計數(shù)器1不能工作于方式3,只能工作于方式0、方式1或方式2。且在定時器/計數(shù)器0已工作于方式3時,定時器/計數(shù)器1通常用作串行口的波特率發(fā)生器,以確定串行通信的速率。因為已沒有計數(shù)溢出標志位TF1可供使用,因此只能把計數(shù)溢出直接送

55、給串行口,如圖5 14所示。,第五章 MCS-51單片機的硬件資源,圖514定時器/計數(shù)器0在方式3時定時器/計數(shù)器1的使用,當(dāng)作為波特率發(fā)生器使用時,只需設(shè)置好工作方式,便可自動運行。如要停止工作,只需送入一個把它設(shè)置為方式3的方式控制字就可以了。,第五章 MCS-51單片機的硬件資源,5.4 MCS-51單片機的串行接口及其串行通信,5.4.1串行通信基礎(chǔ),并行數(shù)據(jù)傳送的特點是:多個數(shù)據(jù)位同時傳送,傳送速度快,效率高。但并行數(shù)據(jù)傳送有多少數(shù)據(jù)位就需多少根數(shù)據(jù)線,因此傳送成本高。適用于短距離的數(shù)據(jù)傳送,如計算機內(nèi)部的數(shù)據(jù)傳送 。,串行數(shù)據(jù)傳送的特點是:數(shù)據(jù)傳送按位順序進行,最少只需一根傳輸線

56、即可完成,成本低但速度慢。計算機與外界的數(shù)據(jù)傳送大多數(shù)是串行的,其傳送的距離可以從幾米到幾千公里。,第五章 MCS-51單片機的硬件資源,計算機與外界的數(shù)據(jù)傳送稱之為通信,串行通信又分為異步和同步兩種方式。,一、異步串行通信的字符格式,異步串行通信以字符為單位,即一個字符一個字符的傳送。,第五章 MCS-51單片機的硬件資源, 奇偶效驗位用于對字符的傳送作正確性檢查,因此奇偶效驗位是可選擇的,共有3種可能,即奇效驗、偶效驗和無效驗,由用戶根據(jù)需要選定。, 起始位開始一個字符的傳送的標志位。起始位使數(shù)據(jù)線處于“0”狀態(tài)。, 數(shù)據(jù)位起始位之后傳送的數(shù)據(jù)信號位。在數(shù)據(jù)位中,低位在前(左)高位在后(右

57、)。由于字符編碼方式的不同,數(shù)據(jù)位可以是5、6、7或8位。, 停止位用以標志一個字符的結(jié)束,它對應(yīng)于“1”狀態(tài)。停止位在一幀的最后,它可能是1、1.5或2位,在實際中根據(jù)需要確定。,第五章 MCS-51單片機的硬件資源, 位時間一個格式位的時間寬度。, 幀(frame)從起始位開始到停止位結(jié)束的全部內(nèi)容稱之為一幀。幀是一個字符的完整通信格式,因此也就把串行通信的字符格式稱之為幀格式。,二、異步串行通信的信號形式,1、近程通信,近程通信又稱本地通信。,近程通信采用數(shù)字信號直接傳送形式,即在傳送過程中不改變原數(shù)據(jù)代碼的波形和頻率。這種數(shù)據(jù)傳送方式稱之為基帶傳送方式。,第五章 MCS-51單片機的硬

58、件資源,計算機內(nèi)部的數(shù)據(jù)信號是TTL電平標準,而通信線上的數(shù)據(jù)信號卻是RS232C電平標準。然而,盡管電平標準不同,但數(shù)據(jù)信號的波形和頻率并沒有改變。近程串行通信只需用傳輸線把兩端的接口電路直接連起來即可實現(xiàn),既方便又經(jīng)濟。,第五章 MCS-51單片機的硬件資源,,2、遠程通信,在遠程串行通信中,應(yīng)使用專用的通信電纜,但出于經(jīng)濟上的考慮也可以使用電話線作為傳輸線。,遠距離直接傳送數(shù)字信號,信號會發(fā)生畸變,因此要把數(shù)字信號變?yōu)槟M信號再進行傳送。信號形式的轉(zhuǎn)變通常使用頻率調(diào)制法,即以不同頻率的載波信號代表數(shù)字信號的兩種不同電平狀態(tài)。這種數(shù)據(jù)傳送方式就稱為頻帶傳送方式。,第五章 MCS-51單片機

59、的硬件資源,三、串行通信的數(shù)據(jù)通路形式,1、單工(Simplex)形式 單工形式的數(shù)據(jù)傳送是單向的,通信雙方中一方固定為接收端。單工形式的串行通信,只需要一條數(shù)據(jù)線,如圖518所示,第五章 MCS-51單片機的硬件資源,2、半雙工(Half-duplex)形式 半雙工形式的數(shù)據(jù)傳送也是雙向的,但任何時刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。因此半雙工形式既可以使用一條數(shù)據(jù)線,也可以使用兩條數(shù)據(jù)線,如圖519所示。,3、全雙工(Full-duplex)形式 全雙工形式的數(shù)據(jù)傳送是雙向的,且可以同時發(fā)送和接收數(shù)據(jù),因此全雙工形式的串行通信需要兩條數(shù)據(jù)線,如圖520所示。,第五章 M

60、CS-51單片機的硬件資源,四、 串行通信的傳送速率,傳送速率用于描述數(shù)據(jù)傳送的快慢。在串行通信中,數(shù)據(jù)是按位進行傳送的,因此傳送速率用每秒鐘傳送格式位的數(shù)目來表示,稱之為波特率(baud rate)。每秒傳送一個格式位就是1波特,即: 1波特=1bps(位/秒),在串行通信中,格式位的發(fā)送和接收分別由發(fā)送時鐘脈沖和接收時鐘脈沖進行定時控制。,串行通信可以使用的標準波特率在RS232C標準中已有規(guī)定,使用時應(yīng)根據(jù)速度需要、線路質(zhì)量以及設(shè)備情況等因素選定。,第五章 MCS-51單片機的硬件資源,五、串行接口電路通用的異步接收/發(fā)送器(UART),第五章 MCS-51單片機的硬件資源,當(dāng)計算機

61、向外發(fā)送數(shù)據(jù)時,必須將并行的數(shù)據(jù)轉(zhuǎn)換為串行的數(shù)據(jù)再傳送。反之,又必須將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)輸入計算機中。,通用的異步接收/發(fā)送器,簡稱UART(Universal Asynchronous Receiver/Transmitter),就是完成這一功能的硬件電路。,它既能發(fā)送,由并行串行輸出,又能接收,由串行并行輸入。對每一方來說都是一個雙緩沖結(jié)構(gòu)。當(dāng)接收數(shù)據(jù)時,串行數(shù)據(jù)先經(jīng)RXD(Receiver Data)端進入移位寄存器,再經(jīng)移位寄存器輸出并行數(shù)據(jù)到數(shù)據(jù)緩沖器,最后通過數(shù)據(jù)總線送到CPU;當(dāng)發(fā)送信息時,先由CPU經(jīng)數(shù)據(jù)總線將并行數(shù)據(jù)給緩沖器,再由緩沖器并行送給移位寄存器,最后逐位由TXD

62、(Transmitter Data)端輸出。所有這些工作都是在時鐘信號和其它控制信號作用下完成的。,第五章 MCS-51單片機的硬件資源,為了檢測傳送中可能發(fā)生的錯誤,UART在發(fā)送時會檢查每個要傳送的字符中“1”的個數(shù),自動在奇偶效驗位上添“1”或“0”,使得“1”的總和在偶效驗時為偶數(shù),奇效驗時為奇數(shù)。UART在接收時會檢查字符中的每一位并計其“1”的總和,以確定是否發(fā)生傳送錯誤。,為了使數(shù)據(jù)傳輸更為可靠,UART常設(shè)置如下三鐘出錯標志: 奇偶錯誤(Parrity Error):奇偶錯誤由奇偶錯標志觸發(fā)器PE指示,該觸發(fā)器由奇偶效驗結(jié)果信號置位。 幀錯誤(Frame Error):幀錯誤由

63、幀錯誤標志觸發(fā)器FE指示,該觸發(fā)器在UART檢測到幀的停止位不是“1”而為“0”時被置位。,第五章 MCS-51單片機的硬件資源, 溢出錯誤(Overrun Error):UART接收端 在接收到第一個字符后便放入“接收數(shù)據(jù)緩沖器”,然后就繼續(xù)從RXD線上接收第二個字符,并等待CPU從“接收數(shù)據(jù)緩沖器”中取走第一個字符。如果CPU很忙,一直沒有機會取走第一個字符,以致接收到的第二個字符進入“接收數(shù)據(jù)緩沖器”而造成第一個字符被丟失。這種錯誤就稱為溢出錯誤。發(fā)生溢出錯誤時,UART自動使“溢出錯誤標志觸發(fā)器”O(jiān)E置位。,接收數(shù)據(jù)的確認。UART通過對RXD線的采樣來完成接收數(shù)據(jù)的確認。對RXD的

64、采樣由接收時鐘RXC完成,RXC的周期Tc和傳送數(shù)據(jù)位的傳輸時間Td之間必須滿足如下關(guān)系:,第五章 MCS-51單片機的硬件資源,Tc=,式中,K=16或64。現(xiàn)以K=16來說明UART對RXD線上字符的接收過程。,UART按RXC脈沖上升沿采樣RXD線。每當(dāng)連續(xù)采樣到RXD線上8個低電平(起始位之半)后,UART便確認對方在發(fā)送數(shù)據(jù)(不是干擾信號)。此后,UART便每隔16個RXC脈沖采樣RXD線一次,并把采樣到的數(shù)據(jù)作為輸入數(shù)據(jù),以移位方式存入接收移位寄存器。RXC對RXD線的采樣關(guān)系如圖522所示。,第五章 MCS-51單片機的硬件資源,5.4.2 MCS51單片機的串行口及其控制寄存器

65、,MCS51系列單片機的串行口是全雙工的,這個口既可以用于網(wǎng)絡(luò)通信,也可以實現(xiàn)串行異步通信,還可以作為同步移位寄存器使用。,第五章 MCS-51單片機的硬件資源,在串行口中可供用戶使用的是它的寄存器,因此了解其寄存器結(jié)構(gòu)對用戶來說是十分重要的。,一、串行口寄存器結(jié)構(gòu),第五章 MCS-51單片機的硬件資源,在接收方式下,串行數(shù)據(jù)通過引腳RXD(P3.0)進入。由于在接收寄存器之間還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤,即在下一幀數(shù)據(jù)來時,前一幀數(shù)據(jù)還沒有讀走。,在發(fā)送方式下,串行數(shù)據(jù)通過TXD(P3.1)送出。與接收數(shù)據(jù)情況不同,發(fā)送數(shù)據(jù)時,由于CP

66、U是主動的,不會發(fā)生幀重疊錯誤,因此發(fā)送電路就不需雙重緩沖結(jié)構(gòu),這樣可以提高數(shù)據(jù)發(fā)送速度。,第五章 MCS-51單片機的硬件資源,二、串行通信控制寄存器,1、串行控制寄存器SCON (99H),第五章 MCS-51單片機的硬件資源,SM2是多機通信控制位。因多機通信是在方式2和方式3下進行,所以SM2位主要用于方式2和方式3。當(dāng)串行口以方式2或方式3接收時,如SM2 = 1,則只有當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“1”時,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請求;否則,將接收到的前8位數(shù)據(jù)丟棄。而當(dāng)SM2 = 0時,不論第9位數(shù)據(jù)為“0”還是為“1”,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請求。,在方式1時,若SM2 = 1,則只有接收到有效停止位時,RI才置1,以便接收下一幀數(shù)據(jù)。,在方式0時,SM2必須為0。,REN是允許接收位,當(dāng)REN = 1時,允許接收數(shù)據(jù),當(dāng)REN = 0時,禁止接收數(shù)據(jù)。該位由軟件置位或復(fù)位。,第五章 MCS-51單片機的硬件資源,TB8是發(fā)送數(shù)據(jù)的第9位。在方式2、3時,其值由用戶通過軟件設(shè)置。在雙機通信時,TB8一般作為奇偶效驗位使

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

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!