




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章MCS-51單片機的內部資源3.1單片機的中斷系統3.2單片機的定時器/計數器3.3單片機的串行通信本章小結
3.1單片機的中斷系統
3.1.1單片機中斷系統的概念當CPU正在處理某事件的時候,外部或者內部發生的某一事件請求CPU迅速去處理時,CPU暫時中止當前的工作,轉到中斷服務處理程序去處理所發生的事件。中斷服務處理完該事件后,再返回到原來被中止的地方繼續原來的工作,這樣的過程稱為中斷。中斷過程如圖3-1所示。圖3-1中斷響應過程
3.1.2單片機中斷系統的結構和組成
MCS-51系列單片機的中斷系統有5個中斷源,且有2個中斷優先級(高優先級和低優先級),每個中斷源的優先級都可以由軟件來設定,也可實現兩級中斷服務程序嵌套。MCS-51單片機中斷系統的組成:4個與中斷有關的特殊功能寄存器(TCON、SCON的相關位作中斷源的標志位)、中斷允許控制寄存器IE、中斷優先級管理(IP寄存器)和中斷順序查詢邏輯電路等。
1.中斷系統的組成
MCS-51系列單片機的中斷系統結構示意圖如圖3-2所示。中斷系統共有5個中斷源,其中,中斷入口地址是固定的,詳見表3-1。圖3-2MCS-51系列單片機的中斷系統結構示意圖
TCON為定時器/計數器的控制寄存器,字節地址為88H,可位尋址,該寄存器中既包括了定時器/計數器T0和T1的溢出中斷請求標志位TF0和TF1,也包括了兩個外部中斷請求的標志位IE1和IE0。寄存器TCON的格式如圖3-3所示。圖3-3TCON中的中斷請求標志位
寄存器TCON中與中斷系統有關的各標志位的功能如下:
(1)?IT0:選擇外部中斷請求0為跳沿觸發方式還是電平觸發方式。
(2)?IE0:外部中斷請求0的中斷請求標志位。
(3)?IT1:外部中斷請求1為跳沿觸發方式還是電平觸發方式,功能與IT0類似。
(4)?IE1:外部中斷請求1的中斷請求標志位,功能與IE0類似。
(5)?TF0:定時器/計數器T0的溢出中斷請求標志位。
(6)?TF1:定時器/計數器T1的溢出中斷請求標志位,功能和TF0類似。
SCON為串行口控制寄存器,字節地址為98H。SCON的低二位鎖存串行口的發送中斷和接收中斷的中斷請求標志為TI和RI,其格式如圖3-4所示。圖3-4SCON中的中斷請求標志位
(1)?TI:發送中斷請求標志位。
CPU將一個字節的數據寫入發送緩沖器SBUF時,就啟動一幀串行數據的發送,串口每發送完一幀串行數據后,硬件自動置TI標志位為“1”。CPU響應該中斷時,TI標志并不自動清零,必須在中斷服務程序中用軟件對TI標志清零。
(2)?RI:接收中斷請求標志位。
在串口接收完一個數據幀后,硬件自動對RI標志位置“1”。CPU響應中斷時,RI標志并不自動清零,必須在中斷服務程序中用軟件對RI標志位清零。
3.1.3中斷控制
MCS-51的CPU對中斷源的開放或屏蔽由片內的中斷允許寄存器IE控制,字節地址為A8H,可位尋址,中斷允許寄存器IE的格式格式如圖3-5所示。圖3-5中斷允許寄存器IE的格式
1.中斷允許寄存器IE
中斷允許寄存器IE對中斷的開放和關閉為兩級控制,有一個總的中斷控制位EA(IE.7位)。當EA=0時,所有的中斷請求被屏蔽,CPU對任何中斷請求都不接受;當EA=1時,CPU開放中斷,但5個中斷源的中斷請求是否允許,還要由IE中的低5位所對應的5個中斷請求控制位的狀態來決定。IE中各位的功能如下:
(1)?EA:中斷允許總控制位。
?EA=0:CPU屏蔽所有的中斷請求(CPU關中斷)。
?EA=1:CPU開放所有的中斷請求(CPU開中斷)。
(2)?ES:串行口中斷允許位。
?ES=0:禁止串行口中斷。
?ES=1:允許串行口中斷。
(3)?ET1:定時器/計數器T1的溢出中斷允許位。
?ET1=0:禁止T1溢出中斷。
?ET1=1:允許T1溢出中斷。
(4)?EX1:外部中斷1中斷允許位。
?EX1=0:禁止外部中斷1中斷。
?EX1=1:允許外部中斷1中斷。
(5)?ET0:定時器/計數器T0的溢出中斷允許位。
?ET0=0:禁止T0溢出中斷。
?ET0=1:允許T0溢出中斷。
(6)?EX0:外部中斷0中斷允許位。
?EX0=0:禁止外部中斷0中斷。
?EX0=1:允許外部中斷0中斷。
MCS-51復位后,IE清零,所有中斷請求被禁止。IE中與各個中斷源相應的位用指令置“1”或清零,即可允許或禁止各中斷源的中斷申請。若使某一個中斷源被允許中斷,除了IE相應的位被置“1”外,還必須使EA位置“1”。
2.中斷優先級寄存器IP
MCS-51的中斷請求源有兩個中斷優先級,每一個中斷請求源可由軟件定為高優先級中斷或低優先級中斷,也可實現兩級中斷嵌套。所謂兩級中斷嵌套,就是MCS-51正在執行低優先級中斷的服務程序時,可被高優先級中斷請求所中斷,處理完畢高優先級中斷后,再返回低優先級服務程序繼續執行的過程。
關于各中斷源的中斷優先級的關系,可歸納為下面兩條基本規則:
(1)低優先級可被高優先級中斷,反之則不能。
(2)同級中斷不會被它的同級中斷源所中斷。若CPU正在執行高優先級的中斷,則不能被任何中斷源所中斷。
MCS-51的片內有一個中斷優先級寄存器IP,其字節地址為B8H,可位尋址,可以用程序改變其內容,即可進行各中斷源中斷優先級的設置。IP寄存器的格式如圖3-6所示。圖3-6中斷優先級寄存器IP的格式
中斷優先級寄存器IP各位的含義:
(1)?PS:串行口中斷優先級控制位。
?PS=1:高優先級中斷。
?PS=0:低優先級中斷。
(2)PT1:定時器T1中斷優先級控制位。
?PT1=1:高優先級中斷。
?PT1=0:低優先級中斷。
(3)?PX1:外部中斷1中斷優先級控制位。
?PX1=1:高優先級中斷。
?PX1=0:低優先級中斷。
(4)?PT0:定時器T0中斷優先級控制位。
?PT0=1:高優先級中斷。
?PT0=0:低優先級中斷。
(5)?PX0:外部中斷0中斷優先級控制位。
?PX0=1:高優先級中斷。
?PX0=0:低優先級中斷。
中斷優先級控制寄存器IP的各位都可由軟件置“1”和清零,以改變各中斷源的中斷優先級。
MCS-51復位后,IP的內容為0,各個中斷源均為低優先級中斷。
MCS-51的中斷系統有兩個不可尋址的“優先級激活觸發器”,一個用來指示某高優先級的中斷正在執行,所有后來的中斷均被阻止;另一個用來指示某低優先級的中斷正在執行,所有同級中斷都被阻止,但不阻斷高優先級的中斷請求。
若同時收到幾個同一優先級的中斷請求時,優先響應哪一個中斷取決于內部的查詢順序。查詢順序如下:外部中斷0、T0溢出中斷、T1溢出中斷、串口中斷的中斷優先級依次降低,即外部中斷0的中斷優先級最高,串口中斷的中斷優先級最低。
3.1.4響應中斷的條件
一個中斷請求如果要被響應,需滿足以下必要條件:
(1)?IE寄存器中的中斷允許總控制位EA=1。
(2)該中斷源發出中斷請求,即該中斷源對應的中斷請求標志為“1”。
(3)該中斷源的中斷允許位=1,即該中斷沒有被屏蔽。
(4)無同級或更高級中斷正在被服務。
各個中斷的中斷入口地址如表3-2所示。
中斷響應是有條件的,并不是查詢到所有中斷請求都能被立即響應,當遇到下列三種情況之一時,中斷響應被封鎖。
(1)?CPU正在處理同級的或更高優先級的中斷。
(2)所查詢的機器周期不是當前正在執行指令的最后一個機器周期,只有在當前指令執行完畢后,才能進行中斷響應。
(3)正在執行的指令是RETI或是訪問IE或IP的指令,需要再去執行完一條指令,才能響應新的中斷請求。
如果存在上述三種情況之一,CPU將丟棄中斷查詢結果,不能對中斷進行響應。
3.1.5外部中斷的響應時間
以外部中斷為例,在每個機器周期的S5P2期間,INT0和INT1引腳的電平被鎖存到TCON的IE0和IE1標志位,CPU在下一個機器周期才會查詢這些值,這時如果滿足中斷響應條件,下一條要執行的指令將是一條硬件長調用指令,使該程序轉至中斷源矢量地址入口。硬件長調用指令本身要花費2個機器周期,這樣從外部中斷請求有效到開始執行中斷服務程序的第一條指令,中間要隔3個機器周期,這是最短的響應時間,如果遇到中斷受阻的情況,則中斷響應時間會更長一些。
3.1.6外部中斷的觸發方式
1.電平觸發方式
當IT=0時,外部中斷為電平觸發方式。該方式下CPU在每個機器周期的S5P2期間對引腳采樣,若測得為低電平,則認為有中斷申請,隨即使IE相應標志位置位;若測得為高電平,認為無中斷申請或中斷申請已撤除,隨即清除IE相應標志位。在電平觸發方式中,CPU響應中斷后不能自動清除IE標志位,也不能由軟件清除IE標志位,所以在中斷返回前必須撤消引腳上的低電平,否則將再次中斷造成出錯。
所有電平方式適合于外中斷以低電平輸入且中斷服務程序能清除外部中斷請求(即外部中斷輸入電平又變為高電平)的情況。
2.下降沿觸發方式
當IT=1時,外部中斷設置為邊沿觸發方式。CPU在每個機器周期的S5P2期間采樣INT引腳,若在連續兩個機器周期采樣到先高后低的電平變化,則將IE相應標志置“1”,此標志一直保持到CPU響應中斷時,才由硬件自動清除,這樣不會丟失中斷,但輸入的負脈沖寬度至少保持1個機器周期(若晶振頻率為12MHz,則為1μs),才能被CPU采樣到。外部中斷的跳沿觸發方式適合于以負脈沖形式輸入的外部中斷請求。
3.1.7單片機中斷請求的撤銷
CPU響應某中斷請求后,在中斷返回(RETI)之前,該中斷請求應該撤消,否則會引起另一次中斷。單片機各中斷源請求撤消的方法各不相同,分別如下:
(1)定時器0和定時器1的溢出中斷,CPU在響應中斷后,就由硬件自動清除TF0或TF1標志位。
(2)外部中斷請求的撤消與設置的中斷觸發方式有關。對于邊沿觸發方式的外部中斷,CPU在響應中斷后,也是由硬件自動將IE0或IE1標志位清除的。對于電平觸發方式的外部中斷請求的撤銷,除了標志位清零之外,還需在中斷響應后把中斷請求信號引腳從低電平強制改變為高電平,電平方式外部中斷請求的撤銷電路如圖3-7所示。圖3-7電平方式外部中斷請求的撤銷電路
(3)串行口的中斷。CPU響應后,無法知道是接收中斷還是發送中斷,還需測試這兩個中斷標志位的狀態,以判定是接收操作還是發送操作,然后才能清除。硬件不能自動清除TI和RI標志位,因此CPU響應中斷后,須在中斷服務程序中用軟件清除相應的中斷標志位,以撤消中斷請求。
3.1.8單片機中斷服務子程序的設計
中斷系統的運行必須與中斷服務子程序相配合才能正確使用。
1.中斷服務子程序設計的任務
中斷服務子程序的基本任務有如下四個:
(1)設置中斷允許控制寄存器IE,允許相應的中斷請求源中斷。
(2)設置中斷優先級寄存器IP,確定并分配所使用的中斷源的優先級。
(3)對于外部中斷源,還要設置中斷請求是采用電平觸發還是跳沿觸發。
(4)編寫中斷服務程序,處理中斷請求。
2.中斷服務子程序的處理
CPU響應中斷結束后即轉至中斷服務程序入口。從中斷服務程序的第一條指令開始到返回指令為止,這個過程稱為中斷處理或稱為中斷服務。一般情況下,中斷處理包括兩部分:一是保護現場;二是中斷源服務。
3.中斷服務子程序的返回
中斷處理程序的最后一條指令是中斷返回指令,它的功能是將斷點彈出送回PC中,使程序能返回到原來被中斷的程序繼續執行。
3.1.9單片機外部中斷擴充方法
MCS-51單片機為用戶提供了兩個外部中斷請求輸入端。在實際的應用系統中,兩個外部中斷請求源往往不夠用,需對外部中斷源進行擴充。
1.利用定時器擴充外部中斷源法
單片機系統中有兩個定時器、兩個內部中斷標志和外部計數輸入引腳。
2.中斷和查詢結合法
利用單片機的兩根外部中斷輸入線,每一根中斷輸入線可以通過線或的關系連接多個外部中斷源,同時利用輸入端口線作為各中斷的識別線。多外部中斷連接法電路見圖3-8中的多外部中斷源連接方法。
圖3-8多外部中斷連接法電路
3.2單片機的定時器/計數器
實現定時/計數有軟件延時、數字電路硬件定時和可編程定時/計數器三種主要方法:(1)軟件定時是讓機器執行一個程序段,這個程序段本身沒有具體的執行目的,通過正確的挑選指令和安排循環次數實現軟件延時。由于執行每條指令都需要時間,執行這一段程序所需要的時間就是延時時間。這種軟件定時占用CPU的執行時間,降低了CPU的工作效率。
(2)數字電路硬件定時可采用小規模集成電路器件555,外接定時部件(電阻和電容)構成。這樣的定時電路簡單,但要改變定時范圍,必須改變電阻和電容,且在硬件連接好后,修改不方便。
(3)可編程定時/計數器是為方便微機系統的設計和應用而研制的,它即可硬件定時,又可以通過軟件編程來確定定時時間。MCS-51單片機內部有兩個16位的定時/計數器T0
和T1。
3.2.1定時器/計數器的結構與工作原理
定時器/計數器的實質是加1計數器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時器/計數器的工作方式寄存器,用于確定工作方式和功能;TCON是控制寄存器,用于控制T0、T1的啟動和停止及設置溢出標志。
1.定時器/計數器的結構
MCS-51單片機內部定時器的邏輯結構如圖3-9所示。圖3-9MCS-51單片機定時器/計數器邏輯結構框圖
2.定時器/計數器的工作原理
定時/計數器對內部的機器周期個數計數就實現了定時,對片外脈沖個數的計數就是計數功能。
在作定時器使用時,輸入的時鐘脈沖是由晶體振蕩器的輸出經12分頻后得到的,所以定時器也可看作是對單片機機器周期個數的計數器,當晶體振蕩器連接確定后,機器周期的時間也就確定了,這樣就實現了定時功能。
3.2.2T0和T1定時器/計數器的控制
MCS-51系列單片機的定時/計數器是一種可編程序的部件,在定時/計數器開始工作之前,CPU必須將一些命令(稱為控制字)寫入該定時/計數器,這個過程稱為定時/計數器的初始化。在初始化程序中,要將工作方式控制字寫入模式控制寄存器TMOD,工作狀態控制字(或相關位)寫入控制寄存器TCON。
1.定時器/計數器的模式控制寄存器TMOD
特殊功能寄存器TMOD為定時器的模式控制寄存器,占用的字節地址為89H,不可以進行位尋址,該寄存器TMOD的定義格式如圖3-10所示。如果要定義定時器的工作方式,需要采用字節操作指令賦值,其中高4位用于定時器T1,低4位用于定時器T0。系統復位時TMOD所有位均為0。圖3-10模式控制寄存器TMOD的定義格式
2.控制寄存器TCON
TCON的字節地址為88H,可進行位尋址(位地址為88H~8FH),用于控制定時器的啟、停及定時器的溢出標志和外部中斷觸發方式等,控制寄存器TCON的定義格式如圖3-11
所示。圖3-11控制寄存器TCON的定義格式
其中低4位與外部中斷有關,在前面已經詳細介紹,高4位的功能如下:
(1)?TF0、TF1:分別為定時器T0、T1的計數溢出標志位。
(2)?TR0、TR1:分別為定時器T0、T1的運行控制位,可由軟件置“1”或清零。
3.2.3T0和T1定時器/計數器的工作方式
定時/計數器可以通過特殊功能寄存器TMOD中的控制位的設置來選擇定時器方式或計數器方式;通過M1、M0兩位的設置選擇4種工作方式,分別為方式0、方式1、方式2和方式3。現以定時/計數器T0為例加以說明。
1.方式0
當M1M0為00時,定時器選定為方式0工作。在這種方式下,16位寄存器(由特殊功能寄存器TL0和TH0組成)只用了13位,TL0的高3位未用,由TH0的8位和TL0的低5位組成一個13位的定時/計數器,其最大的計數次數為213次。如果單片機采用6MHz晶振,機器周期為2?μs,則該定時器的最大定時時間為214μs。定時/計數器工作方式0的邏輯結構圖如圖3-12所示。
圖3-12定時/計數器工作方式0的邏輯結構圖
2.方式1
當M1M0為01時,定時器選定為方式1工作。在這種方式下,16位寄存器由特殊功能寄存器TL0和TH0組成一個16位的定時/計數器,其最大的計數次數應為216次。如果單片機采用6MHz晶振,機器周期為2μs,則該定時器的最大定時時間為217μs。定時/計數器工作方式1的邏輯結構圖如圖3-13所示。除了計數位數不同外,方式1與方式0的工作過程相同。圖3-13定時/計數器工作方式1的邏輯結構圖
3.方式2
方式2是自動重裝初值的8位定時/計數器。方式0和方式1當計數溢出時,計數器變為全0,因此再循環定時的時候,需要反復重新用軟件給TH和TL寄存器賦初值,這樣會影響定時精度。方式2就是針對此問題而設置的。
當M1M0為10時,定時器選定為方式2工作。在這種方式下,8位寄存器TL0作為計數器,TL0和TH0裝入相同的初值,當計數溢出時,在置1溢出中斷標志位TF0的同時,TH0的初值自動重新裝入TL0。在這種工作方式下其最大的計數次數應為28次。如果單片機采用6MHz晶振,機器周期為2μs,則該定時器的最大定時時間為29μs。定時/計數器工作方式2的邏輯結構圖如圖3-14所示。圖3-14定時/計數器工作方式2的邏輯結構圖
4.方式3
當M1M0為11時,定時器選定為方式3工作。方式3只適用于定時/計數器T0,定時/計數器T1不能工作在方式3。
定時/計數器T0分為兩個獨立的8位計數器:TL0和TH0,定時/計數器工作方式3的邏輯結構圖如圖3-15所示。圖3-15定時/計數器工作方式3的邏輯結構圖
3.2.4計數器模式對輸入信號的要求
T0(P3.4)和T1(P3.5)兩個引腳作為計數輸入端,外部輸入的脈沖在出現從1到0的負跳變時有效,計數器進行加1。計數方式下,單片機在每個機器周期的S5P2時對外部計數脈沖進行采樣。如果前一個機器周期采樣為高電平,后一個機器周期采樣為低電平,則為一個有效的計數脈沖,在下一個機器周期的S3P1進行計數。由于采樣計數脈沖需要兩個機器周期,即24個振蕩周期,因此計數脈沖的頻率最高為振蕩脈沖頻率的。
3.2.5定時器/計數器的初始化編程
MCS-51定時/計數器的初始化編程過程如下。
1.初始化的步驟
(1)確定工作方式、操作模式、啟動控制方式:寫入TMOD、TCON寄存器。
(2)設置定時或計數器的初值:可直接將初值寫入TH0、TL0或TH1、TL1中。16位計數初值必須分兩次寫入對應的計數器。
(3)根據要求是否采用中斷方式:直接對IE位賦值。開放中斷時,對應位置“1”;采用程序查詢方式時,IE相應位清零進行中斷屏蔽。
(4)啟動定時器工作:可使用TR0=1或者TR1=1啟動。T0或T1若設置為軟啟動,即GATE設置為0時,以上指令執行后,定時器即可開始工作。
2.計數初值的計算
若設最大計數值為2n,n為計數器位數,各操作模式下的2n值為:
模式0:2n=8192,n=13。
模式1:2n=65536,n=16。
模式2:2n=256,n=8。
模式3:2n=256,n=8,定時器T0分成兩個獨立的8位計數器,所以TH0、TL0的最大計數值均為256。
單片機中的T0、T1定時器均為加1計數器,當加到最大值(00H或0000H)時產生溢出,將TF0或者TF1位置“1”,可發出溢出中斷,因此計數器初值X的計算式為:X=2n?-?計
數值。
(1)計數工作方式時,對外部脈沖進行計數,其計數初值為:X=2n-計數值。
(2)定時工作方式時,對機器周期進行計數,故計數脈沖頻率為fcont=fosc/6,計數周期T=1/fcont,定時工作方式的計數初值X=2n-計數值=2n-t/T=2n-(fosc×t)/(12或6)。
3.3單片機的串行通信3.3.1串行口的結構與功能MCS-51系列單片機有一個可編程的全雙工串行通信接口,它既可作為UART,也可作為同步移位寄存器,其幀格式可為8位、10位或11位,并可以設置各種不同的波特率,通過引腳RXD(P3.0,串行數據接收端)和引腳TXD(P3.1,串行數據發送端)與外界進行通信。該接口不僅能同時進行數據的發送和接收,還可作為一個移位寄存器使用。MCS-51系列單片機串行口的結構框圖如圖3-16所示,主要由發送控制器、接收控制器和串行控制寄存器組成。圖3-16MCS-51串行口結構框圖
由圖3-16可知,發送電路由發送SBUF和發送控制器等組成;接收電路由接收SBUF、接收移位寄存器和接收控制器等組成。發送SBUF和接收SBUF都是8位數據緩沖寄存器:發送SBUF用于存放將要發送的數據,接收SBUF用于存放串行口接收到的數據。CPU可以通過執行讀取和接收指令對它們進行存取,具體過程如下:
(1)兩個在物理上獨立的接收、發送緩沖器SBUF,占用同一地址99H,可同時發送、接收數據。發送緩沖器只能寫入,不能讀出;接收緩沖器只能讀出,不能寫入。
(2)串行發送與接收的速率與移位時鐘同步,定時器T1作為串行通信的波特率發生器,T1溢出率經2分頻(或不分頻)又經16分頻作為串行發送或接收的移位時鐘。移位時鐘的速率即波特率。
(3)接收器是雙緩沖結構,在前一個字節被接收緩沖器讀出之前,第二個字節即開始被接收,但當第二個字節接收完畢而前一個字節CPU未讀取時,就會丟失前一個字節
內容。
(4)串行口的發送:SBUF=temp,一幀數據發送完畢,TI=1。
(5)串行口的接收:當一幀數據接收完畢,RI=1,temp=SBUF。
(6)串行口是一個可編程接口,由串行口控制寄存器SCON和電源控制寄存器PCON設置。
3.3.2串行口的控制寄存器
要控制單片機的串口必須對相應的控制寄存器進行設置,和串口相關的寄存器有串行口控制寄存器(SCON)和串行口電源控制寄存器(PCON)。
1.串行口控制寄存器(SCON)的格式
串行口控制寄存器(SCON)用于設置串行口的工作方式、監視串行口工作狀態、發送與接收的狀態控制等,它是一個既可字節尋址又可位尋址的特殊功能寄存器,地址為98H。串行口控制寄存器(SCON)的格式如圖3-17所示。圖3-17串行口控制寄存器(SCON)的格式
SCON各位的定義:
(1)SM0、SM1:工作方式選擇位。串行口工作方式選擇詳見表3-4。
(2)?SM2:方式2、方式3多機通信控制位。在方式2、3處于接收時,若SM2=1,且接收到第9位數RB8為0,則不能置位接收中斷標志RI,接收數據失效;在方式1接收時,若SM2=1,則只有接收到有效的停止位,才能置位RI;在方式0時,SM2應為0。
(3)?REN:串行口接收控制位,由軟件置位或清零。REN=1,允許接收;REN=0,禁止接收。
(4)?TB8:發送數據的第9位。在方式2和方式3中,要發送的第9位數據存放在TB8位,可用軟件置位或清零。它可作為通信數據的奇偶校驗位。在單片機的多機通信中,TB8常用來表示是地址幀還是數據幀,“1”表示地址幀,“0”表示數據幀。
(5)?RB8:在方式2和方式3中,接收到的第9位數據就存放在RB8。它可以是約定的奇偶校驗位。在單片機的多機通信中用它作為地址或數據標識位。在方式1中,若SM2=0,則RB8存放已接收的停止位;在方式0中,該位未用。
(6)?TI:發送中斷請求標志。在一幀數據發送完后被置位。在方式0時,發送第8位結束時由硬件置位;在方式1、2、3中,在停止位開始發送時由硬件置位。置位TI意味著向CPU提供“發送緩沖器已空”的信息,CPU響應后發送下一幀數據。在任何方式中,TI都必須由軟件清零。
(7)?RI:接收中斷請求標志。在接收到一幀數據后由硬件置位。在方式0時,當接收第8位結束時由硬件置位;在方式1、方式2、方式3中,在接收到停止位的中間點時由硬件置位。RI=1,表示請求中斷,CPU響應中斷后,從SBUF取出數據。但在方式1中,當SM2=1時,若未接收到有效的停止位,則不會對RI置位。在任何方式中,RI都必須由軟件清零。
由圖3-16可知,串行口的中斷無論是接收中斷還是發送中斷,當CPU響應中斷時都進入0023H程序地址,執行串行口的中斷服務子程序,這時由軟件來判別是接收中斷,還是發送中斷。而中斷標志必須在中斷服務子程序中加以清除,以防出現一次中斷多次響應的現象。
2.串行口電源控制寄存器(PCON)的格式
PCON為電源控制寄存器,是特殊功能寄存器,地址為87H。PCON中的第7位與串行口有關。串行口電源控制寄存器(PCON)的格式如圖3-18所示。圖3-18串行口電源控制寄存器(PCON)的格式
3.3.3串行口的工作方式
MCS-51單片機串行口有方式0、方式1、方式2和方式3四種工作方式,現對每種工作方式下的特點作進一步的說明。
1.方式0
方式0即同步移位寄存器輸入/輸出工作方式。8位串行數據的輸入或輸出都是通過RXD端,而TXD端用于輸出同步移位脈沖。波特率固定為單片機振蕩頻率(fosc)的1/12。
串行傳送數據8位為一幀(沒有起始、停止、奇偶校驗位),由RXD(P3.0)端輸出或輸入,低位在前,高位在后。TXD(P3.1)端輸出同步移位脈沖,可以作為外部擴展的移位寄存器的移位時鐘,因而串行口方式0常用于擴展外部并行I/O口。方式0的幀格式如圖3-19所示。
圖3-19方式0的幀格式
(1)方式0發送。
串行口可以外接串行輸入/并行輸出的移位寄存器,如74LS164,用以擴展并行輸出口,方式0擴展并行輸出口電路如圖3-20所示。當CPU執行一條將數據寫入發送緩沖器SBUF的指令時,產生一個正脈沖,串行口即把SBUF中的8位數據以fosc/12的固定波特率從RXD引腳串行輸出,低位在先,逐位移入74LS164。8位全部移完,TI=1。如要再發送,必須先將TI清零。串行發送時,外部可擴展一片(或幾片)串入/并出的移位寄存器,方式0的發送時序如圖3-21所示。圖3-20方式0擴展并行輸出口圖3-21方式0的發送時序
(2)方式0接收。
串行接收時,串行口可以擴展一片(或幾片)并入/串出的移位寄存器,方式0擴展并行入口電路如圖3-22所示,利用74LS165,用以擴展并行輸入口。向串口的SCON寫入控制字(置為方式0,并置“1”REN位,同時RI=0)時,產生一個正脈沖,串行口即開始接收數據。RXD為數據輸入端,TXD端輸出的同步移位脈沖將74LS165逐位移入RXD端。8位全部移完,RI=1,表示一幀數據接收完。如要再發送,必須先將RI清零,方式0的接收時序如圖3-23所示。圖3-22方式0擴展并行輸入口圖3-23方式0的接收時序
2.方式1
方式1時,一幀數據為10位,1個起始位(0),8個數據位,1個停止位(1),先發送或接收最低位,其幀格式如圖3-24所示。圖3-24方式1的幀格式
方式1時,其波特率是可變的,由定時器T1的計數溢出率決定。在串行通信中,常用定時器T1作為波特率發生器使用。通常選用定時方式2,避免因為重裝時間常數而帶來的定時誤差,其波特率由下式確定:
其中,SMOD為PCON寄存器最高位的值(0或1)。
T1溢出率為1s內T1發生溢出的次數,它與T1的工作方式有關。
T1溢出率的計算方法:
(1)方式1發送。
在TI=0時,當執行一條數據寫發送緩沖器SBUF的指令,就啟動發送。發送開始時,內部發送控制信號變為有效,然后發送電路自動在8位發送字符前、后分別添加1位起始位和1位停止位,并在移位脈沖作用下,每經過一個TX時鐘周期,便產生一個移位脈沖,并由TXD按照從低位到高位輸出一個數據位。8位數據位全部發送完畢后,TI也由硬件在發送停止位時置位,即TI=1,向CPU申請中斷。方式1的發送時序如圖3-25所示,圖中TX時鐘的頻率就是發送的波特率。圖3-25方式1的發送時序
(2)方式1接收。
接收操作可在RI=0和REN=1的條件下進行。多接收器接收時,接收器以所選波特率的16倍速率采樣RXD端電平,檢測到RXD端輸入電平發生負跳變時(起始位),開始接收數據。內部16分頻計數器的16個狀態把傳送每一位數據的時間16等分,在每個時間的7、8、9這三個計數狀態,位檢測器采樣RXD端電平,接收的值是3次采樣中至少有兩次相同的值,這樣可以防止外界的干擾。位檢測采樣的頻率為RX時鐘頻率的16分頻。方式1的接收時序如圖3-26所示,圖中RX時鐘的頻率就是接收的波特率。圖3-26方式1的接收時序
當一幀數據接收完畢,須同時滿足以下兩個條件,接收才真正有效:
①RI=0,即上一幀數據接收完成時,RI=1發出的中斷請求已被響應,SBUF中的數據已被取走,說明“接收SBUF”已空。
②SM2=0或收到的停止位=1(方式1時,停止位已進入RB8),則收到的數據裝入SBUF和RB8(RB8裝入停止位),且置中斷標志RI為“1”。
若上述兩個條件不能同時滿足,則收到的數據將丟失。
3.方式2和方式3
方式2和方式3下,串行口工作在11位異步通信方式。一個幀信息包含一個起始位(0)、8個數據位、一個可編程第9數據位和一個停止位(1)。其中可編程位是SCON中的TB8位,在8個數據位之后,可作奇偶校驗位或地址/數據幀的標志位使用,方式2和方式3的幀格式如圖3-27所示。方式2和方式3兩者的差異僅在于通信波特率有所不同:方式2的波特率是固定的,由主頻fosc經32或64分頻后提供,方式3的波特率是可變的。圖3-27方式2和方式3的幀格式
方式2的波特率由下式確定:
方式3的波特率由下式確定:
(1)方式2(或3)發送。
發送前,先根
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年江蘇連云港市云港投資發展有限公司招聘筆試參考題庫附帶答案詳解
- 2025年山東青島棘洪灘錦盛開發建設有限公司招聘筆試參考題庫含答案解析
- 2024年西藏呂都事業單位招聘考試真題答案解析
- 2025年上海海洋水下工程科學研究院有限公司招聘筆試參考題庫含答案解析
- 2024年貴州銅仁事業單位招聘考試真題答案解析
- 服務咨詢服務合同(4篇)
- 《游動物園》(教學設計)-2024-2025學年一年級上冊數學冀教版
- 2025幼師工作總結范文(15篇)
- 心理協會工作計劃(15篇)
- 2025保育員個人近期總結(4篇)
- 互聯網信息審核員考試題庫大全-下(判斷、填空題匯總)
- 《中國馬克思主義與當代》部分課后題-參考答案
- 2023架空導線覆冰過載能力計算
- 23秋國家開放大學《液壓氣動技術》形考任務1-3參考答案
- 科技論文寫作與學術規范課件
- 2022-2023學年福建省廈門市雙十中學高二下學期期中生物試題(解析版)
- 菠蘿蛋白酶的影響因素及影響其酶活力的因素
- 前言 馬克思主義中國化時代化的歷史進程與理論成果
- 醫療器械自查表【模板】
- 職業高中高二上學期期末英語試題卷(含答案)1697
- 2023學年完整公開課版《2BM3U2Rules》教學
評論
0/150
提交評論