單片機原理課件--第四章_輸入_輸出、中斷、定時與串行通信.ppt_第1頁
單片機原理課件--第四章_輸入_輸出、中斷、定時與串行通信.ppt_第2頁
單片機原理課件--第四章_輸入_輸出、中斷、定時與串行通信.ppt_第3頁
單片機原理課件--第四章_輸入_輸出、中斷、定時與串行通信.ppt_第4頁
單片機原理課件--第四章_輸入_輸出、中斷、定時與串行通信.ppt_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第4章 輸入/輸出、中斷、定時與串行通信,4.1 I/O概述 4.2 MCS-51單片機的中斷系統(tǒng) 4.3 定時器/計數(shù)器 4.4 單片機串行通信 4.5 PC機與單片機的通信,本章內(nèi)容提要,介紹I/O的基本概念、I/O數(shù)據(jù)傳遞方式,中斷的基本概念,串行通信基本概念。主要介紹單片機中斷系統(tǒng)結構、特點及使用方法;片內(nèi)定時器/計數(shù)器結構、原理及使用;片內(nèi)串行口結構、原理以及雙機和多機通信實現(xiàn)方法;PC機與單片機通信實現(xiàn)方法。,4.1 I/O概述 4.1.1 I/O的概念 在單片機內(nèi)部結構中,除了CPU之外,單片機集成有內(nèi)部數(shù)據(jù)寄存器、程序存儲器、定時器/計數(shù)器、并行I/O口、串行口、中斷控制系統(tǒng)等

2、。CPU通過內(nèi)部總線與片內(nèi)的I/O連接,通過片內(nèi)I/O,單片機可與外設或單片機系統(tǒng)交換信息。此外,單片機可以由P0、P2和P3口構成外部總線,擴展外部I/O,構成更加復雜的系統(tǒng),滿足實際應用的需求。 1. 接口與端口 接口是CPU與外設之間交換信息的連接部件,也稱為接口電路。接口電路通常包含有數(shù)據(jù)寄存器用來保存輸入/輸出數(shù)據(jù)、狀態(tài)寄存器保存接口的狀態(tài)信息、控制寄存器保存單片機的控制命令等。數(shù)據(jù)的I/O操作通過數(shù)據(jù)寄存器的操作完成。 通常接口電路中可編址并能進行讀寫操作的寄存器稱為端口或簡稱口。一個接口電路中可能包括多個口,例如數(shù)據(jù)口、狀態(tài)口、控制口,即包含有多個口地址。同一單片機系列中,片內(nèi)集

3、成的I/O模塊各有不同,當片內(nèi)I/O不能滿足實際需求時,可擴展外部I/O。 2. I/O的分類 按照信號的傳遞方式,可將I/O分為串行和并行兩類。 按照I/O連接的信號大致可分為模擬量、數(shù)字量、脈沖量I/O三類。 3. 數(shù)據(jù)總線隔離技術 為了正確地進行數(shù)據(jù)的I/O傳遞,必須解決數(shù)據(jù)總線的隔離問題,即在任一時刻,CPU只對一個I/O進行操作。為此,對輸出設備的接口電路要使用鎖存器,對輸入設備的接口電路,使用三態(tài)緩沖器。,4 單片機I/O編址方式 每一個I/O都需要編址,以便CPU分別進行尋址。常用的I/O編址方式有兩種:獨立編址方式和統(tǒng)一編址方式。 獨立編址方式: I/O和存儲器分開編址,有各自

4、獨立的地址空間,采用不同的控制總線,使用不同的指令分別尋址。 統(tǒng)一編址方式: I/O與數(shù)據(jù)存儲器在同一地址空間編址,尋址方式相同,采用相同的地址、數(shù)據(jù)、控制總線,使用相同的指令尋址。 4.1.2 輸入/輸出的傳遞方式 單片機系統(tǒng)中有不同類型的I/O,由于I/O所連接的外設或I/O接口本身的速度與CPU的處理速度相比,通常低于CPU的速度,為了實現(xiàn)數(shù)據(jù)的正確傳輸,CPU通常采用三種控制方式,即無條件傳送方式、查詢方式和中斷控制方式。 1. 無條件傳送方式 I/O或與I/O連接的外設隨時都處于準備好狀態(tài),這時CPU不需要測試外設狀態(tài),隨時直接對其進行操作。 2. 查詢方式 I/O接口或外設的狀態(tài)以

5、適當?shù)姆绞捷斎隒PU,CPU通過對狀態(tài)信號的查詢,在判別外設準備好之后, 對其進行輸入/輸出操作。 查詢方式的特點:實現(xiàn)簡單,通用性強,適合各種設備數(shù)據(jù)的輸入/輸出;其缺點是需要占用CPU的 時間,外設速度較慢時,效率較低。,圖4.1 查詢方式流程圖,3. 中斷方式 中斷方式下外設的狀態(tài)信號以中斷申請方式輸入CPU。 CPU響應中斷,暫停正在執(zhí)行的程序,轉而執(zhí)行中斷服務程序,在中斷服務程序中對外設進行輸入/輸出操作,中斷返回后,再繼續(xù)執(zhí)行被中斷的程序。 中斷方式可提高單片機系統(tǒng)的效率,特別適用于電池供電的低功耗系統(tǒng)。,4.2 MCS-51單片機的中斷系統(tǒng) 中斷是一項重要的計算機技術。當CPU正

6、在處理某件事時,外界發(fā)生了緊急事件請求,要求CPU暫停當前的工作,轉而去處理這個緊急事件。處理完后再回到原來被中斷的位置,繼續(xù)原來的工作,這一過程稱為中斷,實現(xiàn)這種功能的部件稱為中斷系統(tǒng)。當多個中斷源同時向CPU申請中斷時,CPU將根據(jù)每個中斷源的優(yōu)先級,優(yōu)先響應級別最高的中斷請求。 當中斷系統(tǒng)有多個中斷優(yōu)先級時,CPU暫停較低級的中斷服務程序,轉而處理優(yōu)先級更高的中斷請求源,處理完后再處理較低級的中斷服務程序,這樣的過程稱為中斷嵌套。這樣的中斷系統(tǒng)稱為多級中斷系統(tǒng)。 51系列單片機的中斷系統(tǒng)有5個中斷源:2個外部中斷源、2個定時器中斷源和一個串行口中斷源,具有兩個中斷優(yōu)先級,可實現(xiàn)兩級中斷服

7、務程序嵌套。,圖4.2 二級中斷嵌套,4.2.1 中斷系統(tǒng)的結構 單片機中斷控制系統(tǒng)的結構如圖4.3,中斷控制系統(tǒng)由中斷源、中斷選擇、中斷標志、中斷允許寄存器(中斷源允許、全局中斷允許)、中斷優(yōu)先級寄存器和查詢電路組成。,圖4.3 中斷控制系統(tǒng)的結構,5個中斷源符號、名稱及產(chǎn)生條件分別為: (1) INT0 .:外部中斷0,由P3.2管腳輸入,低電平或下降沿有效。通過設置定時器控制寄存器TCON的相應控制位選擇。 (2) INT1:外部中斷1,由P3.3管腳輸入,低電平或下降沿有效。通過設置定時器控制寄存器TCON的相應控制位選擇。 (3) T0:定時器/計數(shù)器0中斷,由T0回零溢出有效。 (

8、4) T1:定時器/計數(shù)器1中斷,由T1回零溢出有效。 (5) TI/RI:串行口完成一幀數(shù)據(jù)的發(fā)送/接收后有效。 中斷產(chǎn)生時,對應的中斷標志位被置位為“1”,當中斷響應時,由硬件復位或在中斷服務程序中,用軟件復位清除中斷標志。串行口中斷為發(fā)送和接收共用,當串行口中斷時,通過查詢定時器工作方式控制寄存器TMOD中的TI和RI判別是發(fā)送還是接收中斷,并用軟件復位中斷標志。中斷系統(tǒng)的控制通過對特殊功能寄存器的操作完成。 1. 定時器控制寄存器TCON TCON為特殊功能寄存器,字節(jié)地址為88H,可位操作,位地址由低位到高位為88H8FH。對TCON的設置可完成定時器的運行控制和外部中斷觸發(fā)方式的選

9、擇,同時,定時器和外部中斷發(fā)生時,會影響TCON的中斷請求標志位。 TCON的格式如下:,TCON每一位的功能如下: (1) IT0(TCON.0)和IT1(TCON.2):外部中斷中斷觸發(fā)方式控制位。IT0(IT1)=0,電平觸發(fā)方式,低電平觸發(fā);IT0(IT1)=1,脈沖觸發(fā)方式,下降沿觸發(fā)。 (2) IE0(TCON.1)和IE1(TCON.3):外部中斷請求標志位。IE0(IE1)=0,無中斷請求;IE0(IE1)=1,有中斷請求。當中斷觸發(fā)信號為下降沿有效時,IE0(IE1)由硬件置位為“1”,中斷響應時,硬件自動復位為“0”;電平觸發(fā)方式下,IE0(IE1)標志由外部觸發(fā)信號控制,

10、不由片內(nèi)硬件控制。當中斷觸發(fā)信號為低電平信號時,IE0(IE1)=1,當中斷觸發(fā)信號為高電平信號時,IE0(IE1)=0。 (3) TF0(TCON.5)和TF1(TCON.7):定時器/計數(shù)器0和定時器/計數(shù)器1溢出中斷請求標志位。TF0(TF1)=0,無中斷請求;TF0(TF1)=1,有中斷請求。當定時器/計數(shù)器0 (定時器/計數(shù)器1)溢出時,硬件置位TF0(TF1)=1,中斷響應時片內(nèi)硬件自動復位TF0(TF1)=0。查詢TF0(TF1)時,需用軟件復位TF0(TF1)=0。 (4) TR0(TCON.4)和TR1(TCON.6):定時器/計數(shù)器0和定時器/計數(shù)器1運行控制位。TR0(T

11、R1)=0,關閉定時器/計數(shù)器;TR0(TR1)=1,打開定時器/計數(shù)器 。 2. 中斷允許寄存器IE 中斷允許寄存器IE為兩級允許控制(如圖4.3所示):第一級為局部中斷允許,可選擇某個或幾個中斷源允許中斷,第二級為全局允許。只有當全局中斷允許有效時,局部中斷允許的中斷信號才可以申請中斷。IE在特殊功能寄存器中,可位操作。字節(jié)地址為0A8H,位地址由低位到高位為A8HAFH。IE的格式如下:,IE寄存器的每個位信號定義為: (1) EX0(IE.0)和EX1(IE.2):外部中斷允許控制位。EX0(EX1)=0,外部中斷禁止;EX0(EX1)=1,外部中斷允許。 (2) ET0(IE.1)和

12、ET1(IE.3):定時器/計數(shù)器0和定時器/計數(shù)器1中斷允許控制位。ET0(ET1)=0,定時器/計數(shù)器禁止中斷;ET0(ET1)=1,定時器/計數(shù)器允許中斷。 (3) ES(IE.4):串行口中斷允許控制位。ES=0,串行口禁止中斷;ES=1,串行口允許中斷。 (4) EA(IE.7):全局中斷允許控制位。EA=0,禁止全局中斷;EA=1,允許全局中斷。 (5) IE.5、IE.6:保留位。 3. 串行口控制寄存器SCON 串行口控制寄存器SCON在特殊功能寄存器中,可位操作。字節(jié)地址為98H,位地址由低位到高位為98H9FH。SCON的格式如下:,與中斷有關的控制位有2位: (1) RI

13、(SCON.0):串行口接收中斷標志位。當接收完一幀數(shù)據(jù)后,由硬件置位為“1”。中斷響應后,在中斷服務程序中須用軟件復位為“0”。 (2) TI(SCON.1):串行口發(fā)送中斷標志位。當發(fā)送完一幀數(shù)據(jù)后,由硬件置位為“1”。中斷響應后,在中斷服務程序中須用軟件復位為“0”。,4. 中斷優(yōu)先級控制寄存器IP 每個中斷源有兩個優(yōu)先級,可用程序對中斷優(yōu)先級控制寄存器IP的控制位置位或復位來選擇。特殊功能寄存器IP的字節(jié)地址為B8H,位地址由低位到高位為B8HBFH。IP的格式如下:,與中斷優(yōu)先級有關的控制位有5位: (1) PX0(IP.0)和PX1(IP.2):外部中斷0和外部中斷1中斷優(yōu)先級控制

14、位。PX0(PX1)=0,低優(yōu)先級;PX0(PX1)=1,高優(yōu)先級。 (2) PT0(IP.1)和PT1(IP.3):定時器/計數(shù)器0和定時器/計數(shù)器1中斷優(yōu)先級控制位。PT0(PT1)=0,低優(yōu)先級;PT0(PT1)=1,高優(yōu)先級。 (3) PS(IP.4):串行口中斷優(yōu)先級控制位。PS=0,低優(yōu)先級;PS=1,高優(yōu)先級。 (4) IP.5IP.7:保留位。 51系列單片機中,兩個優(yōu)先級的結構可實現(xiàn)中斷嵌套服務,中斷優(yōu)先級的控制原則: (1) 高優(yōu)先級中斷請求可以打斷低優(yōu)先級中斷服務形成中斷嵌套 (2) 同級中斷之間不能形成中斷嵌套 (3) 同級中斷源有多個同時向CPU請求中斷時,CPU的響

15、應順序為:外部中斷0定時中斷0外部中斷1定時中斷1串行口中斷,4.2.2 中斷系統(tǒng)的初始化與中斷控制寄存器的設置 中斷控制系統(tǒng)中,系統(tǒng)上電或復位時,控制寄存器均被復位,所有中斷均被禁止。因此,用戶需根據(jù)自己的需要對上述4個控制寄存器賦值,即通過程序對中斷系統(tǒng)進行初始化設置,以便使用中斷系統(tǒng)。例如,外部中斷初始化包括:外部中斷觸發(fā)方式設定、外部中斷允許、全局中斷允許,以及中斷優(yōu)先級控制。假設對外部中斷0的初始化使用如下指令: MOVIE,#81H 或使用位操作指令: SETBEA SETBEX0 則結合復位時控制寄存器的狀態(tài),外部中斷0被設置為低電平觸發(fā)的低級中斷源。 4.2.3 中斷響應過程

16、1. 中斷采樣 單片機在每個機器周期的S5P2對中斷標志進行采樣,在下一個機器周期根據(jù)優(yōu)先級順序查詢中斷標志。如果中斷標志在前一個機器周期的S5P2被置位,則后一個周期中斷系統(tǒng)就可以發(fā)現(xiàn)這個中斷請求信號。 外部中斷源為脈沖觸發(fā)時,若INT0(INT1)管腳在一個機器周期為高電平,另一個機器周期為低電平,則TCON寄存器的中斷請求標志IE0(IE1)將置位,標志位IE0(IE1)請求中斷。由于外部中斷管腳每個機器周期采樣一次,因此,管腳上的高電平和低電平至少都要持續(xù)一個機器周期以上,以保證下降沿被采樣到。,2. 中斷響應 中斷系統(tǒng)查詢到有中斷請求時,如果處于以下情形,系統(tǒng)將阻止長調(diào)用LCALL指

17、令的執(zhí)行而不運行中斷服務程序 : (1) 同級或高優(yōu)先級的中斷響應正在執(zhí)行中 (2) 正在執(zhí)行的指令未到指令最后一個周期,即當前指令未執(zhí)行完 (3) 當前指令是RETI或訪問IE、IP寄存器 條件(2)保證在得到中斷向量之前,運行指令必須完整執(zhí)行。條件(3)保證執(zhí)行RETI或訪問IE、IP寄存器后,至少還要執(zhí)行一條指令才能響應中斷。在上述情形之外,當CPU查詢到有效中斷請求時,系統(tǒng)硬件將產(chǎn)生一條長調(diào)用指令LCALL,即將程序計數(shù)器值PC壓入堆棧,把相應的中斷入口地址裝入PC,轉到相應中斷服務程序中去執(zhí)行。 各中斷源的入口地址是: 由于各中斷入口地址之間僅相隔8個字節(jié),不能存儲較長的中斷服務程序

18、,通常在中斷入口地址開始的單元中,安排一條轉移指令,轉移到相應中斷源的中斷服務程序中。,3. 中斷響應時間 外部中斷電平有效時,在機器周期的S5P2采樣后鎖存到IE0(IE1),IE0(IE1)在下一個機器周期由電路查詢,如果中斷請求立刻響應,則中斷服務程序成為下一條執(zhí)行的指令。長調(diào)用指令自身需要2個機器周期,因此,從外部中斷觸發(fā)到中斷服務程序第一條指令開始執(zhí)行最少需要3個完整的機器周期。 當前面所述的三個條件不滿足,則中斷響應需要更長的時間。如果指令是RETI或對寄存器IE和IP操作,則附加的等待時間不會多于5個周期,即最多一個周期完成當前指令,下一條指令為MUL或DIV再加4個周期。所以,

19、一個中斷發(fā)生時,中斷響應時間為38個周期。 4. 中斷請求的撤銷 中斷請求標志在中斷響應后應當清除,以免一次中斷申請被多次重復查詢和響應。 串行口中斷請求標志需要在中斷服務程序中用軟件清除,定時器和外部中斷的中斷標志在響應后硬件自動復位清除。但外部中斷為電平觸發(fā)時,如果中斷響應后, 管腳仍為低電平,則會重新置位中斷請求,為此可以在系統(tǒng)中增加輔助電路解決。 圖4.4 電平方式外部中斷請求的撤銷電路,并在中斷服務程序中增加如下指令,使得的INT0輸入變?yōu)楦唠娖健?ORLP1,#01H ANLP1,#0FEH 5. 軟件模擬第三優(yōu)先級中斷 在某些應用中需要三個中斷優(yōu)先級,這時可用簡單的軟件方法產(chǎn)生第

20、三優(yōu)先級效果。首先,通過中斷優(yōu)先級寄存器IP可設置高優(yōu)先級和低優(yōu)先級分別為第一、第二優(yōu)先級中斷,然后在第二級中斷服務程序中包含如下程序: PUSHIE MOVIE,#MASK CALLLABEL * 執(zhí)行第三級中斷服務程序 * POP RET LABEL:RETI 只要有中斷響應,中斷允許寄存器重新定義,禁止除第一優(yōu)先級以外的中斷,然后用CALL指令調(diào)用RETI指令,清除第二優(yōu)先級中斷標志位,則第二優(yōu)先級中斷允許中斷服務。用POP指令恢復IE寄存器,RET終止中斷服務程序。當晶振為12MHz時,附加的指令需要10s。,4.3 定時器/計數(shù)器 定時器/計數(shù)器通常用于定時采樣、順序控制、數(shù)字時鐘等

21、。51系列單片機有兩個16位的定時器/計數(shù)器:T0和T1。T0由兩個8位的定時寄存器TH0和TL0構成16位寄存器,同樣,T1由兩個8位的定時寄存器TH1和TL1構成16位寄存器,它們分別映射在特殊功能寄存器中。TH0、TL0的地址分別為8CH、8AH,TH1和TL1的地址分別為8DH和8BH。 (1)定時功能,定時寄存器每個機器周期自動加1,可以看作是機器周期的計數(shù)器。由于每個機器周期為12個時鐘振蕩周期,所以計數(shù)頻率為振蕩頻率的1/12。 (2)計數(shù)功能,定時寄存器在單片機外部引腳T0或T1有“1”到“0”的跳變時自動加1。外部輸入在每個機器周期的S5P2被采樣,當前一個機器周期采樣為高電

22、平,后一個機器周期采樣為低電平時,計數(shù)器在下一個機器周期S3P1進行計數(shù)。由于一個下降沿的識別需要2個機器周期,故計數(shù)器最高計數(shù)頻率為振蕩頻率的1/24。 4.3.1 工作方式 無論作為定時器還是計數(shù)器,T0和T1都有4種工作方式:方式0、方式1、方式2和方式3。其中,T0和T1的前三種工作方式相同,方式3不同。下面以定時/計數(shù)器1為例分述四種工作方式的特點和用法。 1方式0 13位計數(shù)方式。在方式0中,時間寄存器配置為13位寄存器,是為與MCS-48兼容而設置,由TH1的全部8位和TL1的低5位構成,TL1的高三位棄之不用,當寄存器中所有13位中的全“1”翻轉為“0”時,設置定時器中斷標志T

23、F1。圖4.5是定時器/ 計數(shù)器1在工作方式0的邏輯結構圖。,圖4.5 定時器/計數(shù)器1方式0:13位計數(shù)器 C/T:定時/計數(shù)選擇,由定時器工作方式特殊功能寄存器TMOD的位設置選擇 C/T=0,T1為定時器,計數(shù)器對機器周期進行計數(shù)實現(xiàn)定時 C/T =1,T1為計數(shù)器,計數(shù)來自引腳T1的外部脈沖數(shù) 定時器/計數(shù)器是否啟動受TR1、GATE和 引腳的控制,GATE和TR1由定時器工作方式控制寄存器TMOD和控制寄存TCON中相應的位狀態(tài)確定。由圖4.5中的邏輯電路可知:要啟動定時/計數(shù)器,必須TR1=1,同時GATE=0或 引腳=1。 通常設置GATE=0,用TR1的狀態(tài)控制T1的工作。 當

24、GATE=1,TR1=1時,T1能否計數(shù)由引腳的輸入狀態(tài)控制,可以對INT1輸入高電平脈沖寬度進行測量。,定時器啟動后,定時或計數(shù)脈沖加到TL1的低5位,從預先設置的初值(時間常數(shù))開始計數(shù),TL1計滿后,向TH1進位,當TL1、TH1的13位都為1變?yōu)槿?,即計數(shù)器溢出時,中斷標志位TF1置“1”,表明定時時間或計數(shù)次數(shù)已到。在中斷系統(tǒng)允許時,向CPU請求中斷。 方式0沒有時間常數(shù)自動重裝功能,如果需進一步定時/計數(shù),需用指令重裝時間常數(shù)。 2工作方式1 16位計數(shù)方式。計數(shù)器由8位TL1和8位TH1構成,工作方式1與方式0僅計數(shù)器長度不同,其他均相同,如圖4.6。,圖4.6 定時器/計數(shù)器

25、1方式1:16位計數(shù)器,3工作方式2 8位計數(shù)器帶時間常數(shù)自動重裝功能。如圖4.7。 工作方式2與工作方式0、1的功能相同,只是由TL1構成8位計數(shù)器,TH1用來存放時間常數(shù)。,圖4.7 定時器/計數(shù)器1方式2:8位自動重裝,啟動時,TL1和TH1均裝入相同的時間常數(shù),當TL1計數(shù)器溢出時,中斷標志TF1置“1”,同時,控制將TH1中的時間常數(shù)重新裝入TL1中。與方式0和方式1相比,方式2采用的硬件重裝時間常數(shù),提高了定時精度,操作簡便。缺點是定時/計數(shù)范圍較小 。,4工作方式3 當T0為工作方式3時,TL0和TH0分別作為兩個獨立的8位計數(shù)器,其硬件邏輯框圖如圖4.8。TL0既可作定時器也可

26、作計數(shù)器,并使用定時器0的控制位:C/T、GATE、TR0、 和TF0。TH0鎖定為定時器功能,并使用定時器1的控制位TR1和TH1,這時,TH0控制了“定時器1”的中斷。,圖4.8 定時器/計數(shù)器0方式3:兩個8位計數(shù)器 當定時器0工作于方式3時,單片機可看作有3個定時/計數(shù)器,這時定時器1只能工作于方式0、1或2,并且可以通過設置它是否為工作方式3來控制其計數(shù)器的啟動和停止。由于這時的定時器1的中斷請求標志已被定時器0占用,因而定時器1不能產(chǎn)生中斷請求,故一般用于不要求產(chǎn)生中斷的串行口的波特率發(fā)生器。,4.3.2 定時器/計數(shù)器控制寄存器 1定時器控制寄存器TCON TCON寄存器既參與中

27、斷控制又參與定時控制。定時器通過設置控制TR位的狀態(tài)控制定時器/計數(shù)器的啟、停。TF標志定時/計數(shù)器是否溢出而請求中斷。 2工作方式控制寄存器TMOD TMOD在特殊功能寄存器中,字節(jié)地址89H,不能位尋址。TMOD的格式為:,TMOD的高4位用于T1,低4位用于T0,符號的定義如下: (1) GATE:門控位。GATE和軟件控制位TR、外引腳( )的狀態(tài),共用控制定時器/計數(shù)器的啟動和停止。 (2) C/T:定時/計數(shù)器方式選擇位。 C/T 1為計數(shù)方式; C/T 0為定時方式。 (3) M1 M0:工作方式選擇位。 M1 M000;方式0 M1 M001;方式1 M1 M010;方式2 M

28、1 M011;方式3。,3定時/計數(shù)器初值的求取 51系列單片機定時器/計數(shù)器采用增量式計數(shù),其內(nèi)部的計數(shù)器在定時器方式下對機器周期加“1”計數(shù),在計數(shù)器方式下對外部引腳上的脈沖計數(shù),計數(shù)器加滿回零溢出時,置中斷請求標志TF。在不同的工作方式下,定時器/計數(shù)器初值的計算方法基本相同,只是采用了不同長度的計數(shù)器,設置時間常數(shù)時略有不同。 方式0,計數(shù)范圍:18192(213) 定時工作方式時,定時時間=(213-計數(shù)初值)晶振周期12 或 定時時間=(213-計數(shù)初值)機器周期 例4.1設單片機晶振頻率fosc=6MHz,用定時器1以方式0、查詢方式產(chǎn)生周期為500s的等寬方波脈沖,由P1.0輸

29、出。 (1) 確定計數(shù)初值X 本題可在P1.0以250s交替輸出高、低電平實現(xiàn)所需的脈沖,定時時間為250s。晶振頻率6MHz對應的機器周期為2s。則: (213-X)210-6=25010-6 求得X=8067 對應二進制X=1111110000011。高8位放入TH1,即TH1=11111100=FCH;低5位放入TL1,即TL1=00011=03H。 (2) 寄存器初始化 包括定時器初始化和中斷系統(tǒng)初始化,主要對IP、IE、TCON、TMOD的相應位進行正確的設置,并將時間常數(shù)送入定時器。本例中,IE、TCON、TMOD均應初始化為00H。,(3) 程序設計 本例假設系統(tǒng)是從復位開始運行

30、,則IE、TCON、TMOD均不需要操作。 MOVTH1, #0FCH;T1置初值 MOVTL1, #03H SETBTR1;啟動T1 LOOP:JBCTF1, LOOP1;T1溢出轉LOOP1 SJMPLOOP;T1未溢出,繼續(xù)查詢 LOOP1:MOVTH1, #0FCH;T1重新置初值 MOVTL1, #03H CLRTF1 ;清T1溢出標志位 CPLP1.0;輸出取反 SJMPLOOP;繼續(xù)查詢,(3) 程序設計 本例假設系統(tǒng)是從復位開始運行,則IE、TCON、TMOD均不需要操作。 MOVTH1, #0FCH;T1置初值 MOVTL1, #03H SETBTR1;啟動T1 LOOP:J

31、BCTF1, LOOP1;T1溢出轉LOOP1 SJMPLOOP;T1未溢出,繼續(xù)查詢 LOOP1:MOVTH1, #0FCH;T1重新置初值 MOVTL1, #03H CLRTF1 ;清T1溢出標志位 CPLP1.0;輸出取反 SJMPLOOP;繼續(xù)查詢 方式1,計數(shù)范圍:165536(216) 定時工作方式時,定時時間=(216-計數(shù)初值)晶振周期12 或 定時時間=(216-計數(shù)初值)機器周期,例4.2 將例4.1改以方式1實現(xiàn)。 (1) 確定計數(shù)初值X (216-X)210-6=25010-6 求得X=65411 對應二進制X=1111111110000011。高8位放入TH1,即TH

32、1=11111111=FFH;低5位放入TL1,即TL1=10000011=83H。 (2) 程序設計 與例1程序對應,僅T1置初值程序不同,將對應的程序修改即可: MOVTH1, #0FFH;T1置初值 MOVTL1, #83H 方式2,計數(shù)范圍:1256(28) 定時工作方式時,定時時間=(28-計數(shù)初值)晶振周期12 或 定時時間=(28-計數(shù)初值)機器周期 與方式0和方式1不同,方式2為8位重裝計數(shù)方式,所以,高8位計數(shù)器和低8位計數(shù)器在初始化時裝入的是相同的計數(shù)初始值。在計數(shù)到之后,不需要軟件重裝計數(shù)初始值。,4.4 單片機串行通信 本節(jié)在介紹串行通信基礎知識之后,介紹單片機串行口的

33、結構、特點、工作方式以及單片機雙機、多機、單片機與PC機之間的通信技術。 4.4.1 串行通信基礎 通常把計算機與外界的數(shù)據(jù)傳輸稱為通信,計算機的數(shù)據(jù)通信方式有兩種:并行通信和串行通信。 并行通信是將數(shù)據(jù)以成組的方式在兩條以上的并行通道上傳輸。它可以同時傳輸一組數(shù)據(jù)位,每個數(shù)據(jù)位使用單獨的一條導線。因此,并行通信的物理信道為并行內(nèi)總線或并行外總線。并行通信的特點是:硬件上有多根數(shù)據(jù)線,各數(shù)據(jù)位同時傳送,速度快,效率高,傳送距離通常小于30米。如計算機和外圍設備之間的通信,CPU、存儲器模塊和設備控制器之間的通信等。 串行通信中,數(shù)據(jù)流以串行方式逐位地在一條信道上傳輸,每次只能發(fā)送或接收一個數(shù)據(jù)

34、位。串行通信的特點是:硬件上最少只需要一對傳輸線即可完成,數(shù)據(jù)傳送按位進行,適用于數(shù)據(jù)位數(shù)多、遠距離傳輸場合。串行通信使得設備之間的連線大為減少,但也帶來了數(shù)據(jù)的串/并轉換、并/串轉換以及位計數(shù)等問題。 串行通信有兩種基本通信方式:同步通信和異步通信。,1. 串行異步通信幀格式 異步串行通信以字符為單位,以相同的幀格式傳送。每一幀信息由起始位,數(shù)據(jù)位,奇偶校驗位和停止位組成。如圖4.9所示。 圖4.9 串行異步通信幀格式 (1) 起始位。通信線在沒有數(shù)據(jù)傳輸時處于邏輯“1”狀態(tài),當發(fā)送器要發(fā)送一個字符的數(shù)據(jù)時,首先發(fā)送一個邏輯“0”信號,表示其后所傳輸?shù)臑閿?shù)據(jù)。起始位表示字符傳輸開始。 (2)

35、 數(shù)據(jù)位。起始位之后為數(shù)據(jù)位。數(shù)據(jù)位的個數(shù)是5、6、7或8位,低位在前,高位在后。 (3) 奇偶校驗位。奇偶校驗用于有限差錯檢測,是通信雙方約定一致的檢錯方式。奇偶校驗位為冗余位,可由用戶根據(jù)需要選擇使用。 (4) 停止位。在奇偶位或數(shù)據(jù)位(當無奇偶校驗時)之后是停止位。可以是1位、 位或2位,表示一個字符傳輸?shù)慕Y束。在發(fā)送的間隙,即空閑時,通信線路總處于邏輯“1”狀態(tài)。,2. 單工、半雙工、全雙工通信方式 串行數(shù)據(jù)通信有以下三種數(shù)據(jù)通路形式:單工(Simplex) 、半雙工(Half-duplex) 、全雙工(Full-duplex) 圖4.10 單工形式串行通信圖 4.11 半雙工形式串行

36、通信 圖4.12 全雙工形式串行通信,3波特率 通信線上的數(shù)據(jù)按位傳送,每一位量度(位信號持續(xù)時間)由數(shù)據(jù)傳送速率決定。每秒傳送的位數(shù)量稱之為波特率(baud rate)。如每秒傳送一位就是1波特,即: 1波特1位/秒(1bps) 串行通信中常用的標準波特率有:600、1200、2400、4800、9600、19200等。 4.4.2 EIA-232-D接口標準 EIA-232-D是由美國電子工業(yè)協(xié)會正式公布的串行總線標準,也是目前最常用的串行接口標準,用來實現(xiàn)計算機之間、計算機與外設之間的數(shù)據(jù)通信。EIA-232-D總線接口適用于設備之間距離不大于15米,傳輸速度最大20kb/s。 1EIA

37、-232-D信號引腳定義 EIA-232-D定義了22根線,采用標準25芯 (DB-25) 插頭座,在EIA-232中描述的連接器還有DB-9。如表4.1和4.2所示。 2電氣特性 EIA-232-D采用負邏輯,即: 邏輯“1”:-3V-15V 邏輯“0”:+3V+15V EIA-232-D的邏輯電平與TTL電平不兼容,為了與TTL器件相連必須進行電平轉換。,3. EIA-232-D端口的直接連接 兩臺計算機可通過調(diào)制解調(diào)器(Modem),由電話線連接實現(xiàn)長距離通信。在工業(yè)數(shù)據(jù)通信中,常直接將兩臺計算機的EIA-232端口連接。在通信過程中,不需要握手時,只需要3根連接線,DB-9連接器的接線

38、如圖4.13(a)所示。在需要握手時,還需要將請求發(fā)送、允許發(fā)送、準備就緒等信號端形成如圖4.13(b)所示的交叉連接形式。,(a) 無握手 (b) 全握手 圖4.13 EIA-232端口的直接連接,4.4.3 MCS-51單片機串行口 MCS-51單片機內(nèi)部有一個全雙工的串行口,有兩個獨立的接收、發(fā)送緩沖器SBUF(地址都是99H,屬于特殊功能寄存器),可同時發(fā)送和接收數(shù)據(jù)。發(fā)送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入,用讀、寫指令加以區(qū)分。由于串口接收部分由輸入移位寄存器和接收緩沖器構成雙緩沖結構,所以在接收緩沖器讀出數(shù)據(jù)之前,串行口可以開始接收第二個字節(jié)。但是如果第二個字節(jié)已接

39、收完畢時,第一個字節(jié)還沒有讀出,則將丟失其中一個字節(jié)。MCS-51串行口除了用于數(shù)據(jù)通信之外,還可以非常方便地構成一個或多個并行輸入/輸出口,或作為串并轉換,用來驅動鍵盤或顯示器。 1串行口控制寄存器 串行口有四種工作方式,串行口的控制寄存器有兩個,即特殊功能寄存器SCON和PCON。 (1)串行口控制寄存器SCON SCON為特殊功能寄存器,字節(jié)地址為98H,可位尋址,位地址從98H到9FH,SCON的格式為: SCON控制寄存器的定義: SM0、SM1:控制串行口工作方式。定義如表4.3,表4.3 串行口工作方式 SM2:為多機通信設置的控制位,允許工作在方式2和方式3的單片機實現(xiàn)多機通信

40、。在工作方式2或方式3,若SM2=1,當接收到的第9位數(shù)據(jù)(RB8)為0時,RI=0,接收的數(shù)據(jù)丟棄; 當RB8=1時,置RI1,接收數(shù)據(jù)有效。在工作方式1,若SM21,當接收有效停止位時,置RI1,數(shù)據(jù)有效;沒有接收到有效停止位時,RI0,數(shù)據(jù)無效。在方式0時,SM2應為0。 REN:接收允許控制位。通過軟件置“1”/清零使得串行口允許/禁止接收數(shù)據(jù)。 TB8:在方式2和方式3中要發(fā)送的第9數(shù)據(jù)位,可根據(jù)需要置“1”或清零。 RB8:在方式2和方式3中接收的第9數(shù)據(jù)位。在方式1,SM2=0,RB8 接收的是停止位。在方式0,RB8不用。 TI:發(fā)送中斷標志。在串行發(fā)送時,在方式0發(fā)送完第8位

41、數(shù)據(jù)時由硬件置位TI, 在其他方式下,開始發(fā)送停止位時硬件置位TI。必須由軟件清零。 RI:接收中斷標志。在串行接收(不考慮SM2)時,在方式0接收完第8位數(shù)據(jù)時由硬件置位RI, 在其他方式下,接收停止位中硬件置位RI。必須由軟件清零。,(2)電源控制寄存器PCON PCON其字節(jié)地址為87H,無位地址。其中與串行口有關的只有D7位。 SMOD:波特率加倍位。在計算串行方式1、2、3的波特率時,SMOD0,波特率不加倍;SMOD1,波特率加倍。 2串行口工作方式 (1) 方式0 在方式0下,串行口為同步移位寄存器方式,波特率固定,為fosc/12。數(shù)據(jù)由RxD(P3.0)端出入,同步移位脈沖由

42、TXD(P3.1)端輸出,發(fā)送、接收都是8位數(shù)據(jù),低位在前,高位在后。圖4.14為串行口在方式0下的功能框圖。,圖4.14 串行口在方式0下的功能框圖,發(fā)送階段CPU在S6P2時刻向緩沖器SBUF寫操作時,“1”被裝入發(fā)送移位寄存器的第9位,并告之發(fā)送控制模塊開始發(fā)送。當寫有效后,相隔一個機器周期發(fā)送控制端SEND有效(高電平),允許移位寄存器的輸出從RxD(P3.0)引腳發(fā)送,同時允許移位時鐘SHIFT CLOCK從TxD(P3.1)引腳輸出。每個機器周期的S6P2時刻,SEND有效時,發(fā)送移位寄存器向右移一位。每向右移一位,從左邊向最高位移入一個“0”位。當數(shù)據(jù)的最高位到達移位寄存器的輸出

43、位后,最初裝入在第9位的“1”移到了最高位的左邊,并且其左邊所有的位都為“0”,這一條件標志發(fā)送控制模塊在將最高位移出后將使SEND無效,并置TI=1。 接收的初始化的條件為:REN=1和RI=0。在下個周期S6P2時刻,接收控制單元將11111110寫入接收移位寄存器,相隔一個機器周期使接收控制RECEIVE有效。RECEIVE允許移位時鐘SHIFT CLOCK從TxD(P3.1)引腳輸出,當RECEIVE有效時,每個機器周期的S6P2時刻,接收移位寄存器的內(nèi)容左移一位,右邊進來的值是S5P2 時刻從P3.0引腳采樣的值。當初始化裝入的值11111110左邊的“1”逐步移出,“0”到達移位寄

44、存器的最左邊時,標志著接收控制模塊再作最后一次左移,并將移位寄存器的結果裝入SBUF,在第10個機器周期置RI=1,使RECEIVE無效。 圖4.15為相應的時序。在方式0中,SCON中的TB8位沒有用,SM2位(多機通信控制位)必須為“0”,由TI和RI標志向CPU申請中斷,CPU需通過TI和RI標志位判斷是發(fā)送還是接收中斷,因而不通過硬件清零,在程序中用指令清零。,圖4.15 串行口在方式0下發(fā)送、接收時序圖,(2) 方式1 當SM0 SM1=01時,串行口工作在方式1,為8位異步通信接口,一幀的信息為10位,通過TxD發(fā)送或RxD接收:1位起始位、8位數(shù)據(jù)位(低位在前)和1位停止位。在接

45、收時,停止位進入SCON的RB8。波特率由定時器1的溢出率決定。 與方式0相似,發(fā)送階段CPU向SBUF寫數(shù)據(jù)的同時將“1”裝入發(fā)送移位寄存器的第9位,并向發(fā)送控制單元標志請求發(fā)送。發(fā)送由SEND控制信號有效,并將起始位發(fā)送到TxD開始。一個位時間之后,數(shù)據(jù)有效,允許移位寄存器的輸入位發(fā)送到TxD。當最后一位發(fā)送完,發(fā)送控制單元使SEND無效,在計數(shù)的第10次翻轉時置TI1。圖4.16為串行口在方式1下的功能框圖。 圖4.17為串行口在方式1下發(fā)送和接收相應的時序圖。當檢測到RxD引腳發(fā)生“1”到“0”跳變時啟動接收,接收控制器以16倍波特率速率對RxD引腳采樣,同時計數(shù)器立刻復位,并將1FF

46、H寫入輸入移位寄存器。每個位時間被16等分,在第7、8、9時刻對RxD的位信息進行采樣,將其中兩次以上相等的值作為采樣值,以防止噪聲干擾。若第一位采樣值不是“0”,則不是起始位,接收電路復位,控制電路重新檢測下一個“1”到“0”的跳變;若是起始位,則將其移位進入移位寄存器,并接收本幀的其他信息。,圖4.16 串行口在方式1下的功能框圖,圖4.17串行口在方式1下發(fā)送、接收時序圖,數(shù)據(jù)位從右邊進入,“1”從左邊移出。當起始位到達移位寄存器的最右邊時(方式1是9位寄存器),接收控制單元需再作最后一次移位。只有當最后一次移位時,如果同時滿足以下條件: RI=0 SM2=0或收到的停止位為“1” 則接

47、收的數(shù)據(jù)有效,8位數(shù)據(jù)裝入SBUF,停止位進入RB8,置RI=1。接收控制器再次采樣RxD引腳的負跳變。如果上述條件之一不滿足,接收的信息將丟棄。 (3) 方式2 當SM0 SM1=10時,串行口工作在方式2,為9位異步通信接口。一幀的信息為11位,通過TxD發(fā)送或RxD接收:1位起始位、8位數(shù)據(jù)位、1位可編程第9數(shù)據(jù)位和1位停止位。發(fā)送時,第9數(shù)據(jù)位TB8根據(jù)需要設置為“0”或“1”。TB8既可作為多機通信中的地址、數(shù)據(jù)標志位,又可作為數(shù)據(jù)的奇偶校驗位;在接收時,第9數(shù)據(jù)位進入SCON的RB8。 方式2發(fā)送:數(shù)據(jù)由TxD輸出,附加的第9位數(shù)據(jù)為SCON中的TB8。當CPU執(zhí)行寫SBUF指令后

48、,發(fā)送隨著SEND信號有效開始,送完一幀信息后,使SEND無效并置TI=1。圖4.18為串行口在方式2下發(fā)送和接收相應的時序圖。,圖4.18 串行口在方式2下發(fā)送、接收時序圖,下面是一個發(fā)送中斷服務程序,TB8為奇偶校驗位,R0為發(fā)送數(shù)據(jù)區(qū)地址指針。 SEND:PUSHPSW;保護現(xiàn)場 PUSHA CLRTI;發(fā)送中斷標志位清零 MOVA, R0;取數(shù)據(jù) MOVC, P;奇偶位送TB8 MOVTB8, C MOVSBUF, A;數(shù)據(jù)寫入發(fā)送緩沖器,啟動發(fā)送 INCR0;數(shù)據(jù)指針加1 POPA;恢復現(xiàn)場 POPPSW RETI;中斷返回 方式2接收:當REN=1時,與方式1相同,檢測到RxD引腳

49、發(fā)生“1”到“0”跳變時啟動接收,采樣到起始位后,數(shù)據(jù)位依次進入移位寄存器,當最后一位數(shù)據(jù)進入移位寄存器時,只有以下兩個條件同時滿足: RI=0 SM2=0或收到的第9位數(shù)據(jù)為“1” 則接收的數(shù)據(jù)有效,接收控制塊控制8位數(shù)據(jù)裝入SBUF,第9位數(shù)據(jù)進入RB8,并置RI=1。如果上述條件之一不滿足,則將接收的數(shù)據(jù)丟棄。,下面是一個接收中斷服務程序實例,程序有奇偶校驗,R1為接收數(shù)據(jù)緩沖區(qū)地址指針。 RECEIVE:PUSHPSW;保護現(xiàn)場 PUSHA CLRRI;接收中斷標志位清零 MOVA, SBUF;接收數(shù)據(jù) MOVC, P;取奇偶位 JNCL1; JNBRB8, ER;奇偶校驗錯則轉錯誤處

50、理 SJMPL2;奇偶校驗轉L2 L1:JBRB8, ER;奇偶校驗錯則轉錯誤處理 L2:MOVR1, A;接收數(shù)據(jù)存數(shù)據(jù)緩沖器 INCR1;數(shù)據(jù)指針加1 POPA;恢復現(xiàn)場 POPPSW LJMPEND ER:;錯誤處理(略) END:RETI,(4) 方式3 當SM0 SM1=11時,串行口工作在方式3,為波特率可變的9位異步通信方式。除波特率可變之外,方式3與方式2相同。 3串行口通信波特率的設置 方式0:波特率=系統(tǒng)振蕩頻率fosc/12 方式2:波特率=2SMOD fosc/64 方式1、3:波特率=2SMOD 定時器1的溢出率/32 作為波特率時,定時器1不允許中斷,典型的應用是工

51、作在定時器方式,時間常數(shù)自動重裝,這時的波特率計算公式為: 例如,系統(tǒng)時鐘頻率fosc=6MHz,當SMOD=1,波特率選擇為2400時,時間常數(shù)為: 定時器初始化程序如下:,MOVTMOD,#20H;定時器T1方式2,定時方式 MOVTH1,#0F3H;置時間常數(shù) MOVTL1,#0F3H MOVPCON,#80H;SMOD=1 MOVSCON,#50H;串行口工作方式1 SETBTR1;啟動定時器T1 4雙機通信程序舉例 例4.3設甲、乙兩單片機時鐘頻率為6MHz,通信波特率為2400,甲發(fā)送數(shù)據(jù),已接收數(shù)據(jù)。開始通信時,由甲發(fā)送呼叫信號“00”,詢問乙是否可以接收數(shù)據(jù)。乙收到呼叫信號后,

52、如同意接收數(shù)據(jù)則發(fā)送“00”給甲,否則發(fā)送“FF”暫不接收數(shù)據(jù)。甲收到乙回復信號,如果是“00”,向乙發(fā)送數(shù)據(jù);如果是“FF”,則繼續(xù)向乙呼叫,直到收到“00”并發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)格式為: 累計校驗和為字節(jié)數(shù)、數(shù)據(jù)1,數(shù)據(jù)n,這(n+1)個字節(jié)內(nèi)容的和。乙機根據(jù)接收到的校驗和判別乙收到的數(shù)據(jù)是否正確。若正確,向甲發(fā)送“0F”,否則發(fā)送“F0”給甲。甲在收到信號“0F”后,返回被調(diào)用程序。 (1) 甲發(fā)送子程序 初始化設置:定時器T1工作方式2,時間常數(shù)F3H,SMOD=1;串行口工作方式1,允許接收。內(nèi)部RAM和工作寄存器設置:31H和30H存放數(shù)據(jù)首地址,2FH存放數(shù)據(jù)長度,R6為累加和。發(fā)

53、送程序框圖如圖4.19。,圖4.19 發(fā)送程序框圖,發(fā)送程序: FMT_T_S:MOVTMOD, #20H;波特率設置 MOVTH1, #0F3H MOVTL1, #0F3H SETBTR1 MOVSCON, #50H;串行口初始化 MOVPCON,#80H;置SMOD=1 FMT_RAM:MOVDPH, 31H;設置DPTR指針 MOVDPL, 30H MOVR7, 2FH;字節(jié)數(shù)送R7 MOVR6, #00H;累加和寄存器清零 TX_ACK:MOVA, #00H;發(fā)送“00” MOVSBUF, A WAIT1:JBCTI, RX_YES;等待發(fā)送完一個字節(jié) SJMPWAIT1 RX_YES

54、:JBCRI, NEXT1;等待乙機回答 SJMPRX_YES NEXT1:MOVA, SBUF;乙機不同意接收時繼續(xù)呼叫 CJNEA, #00H, TX_ACK TX_BYTES:MOVA, R7;發(fā)送字節(jié)數(shù) MOVSBUF, A,(2) 乙接收子程序 初始化設置:定時器T1工作方式2,時間常數(shù)F3H,SMOD=1;串行口工作方式1,允許接收。內(nèi)部RAM和工作寄存器設置:31H和30H存放接收數(shù)據(jù)緩沖區(qū)首地址,R7存放數(shù)據(jù)長度,R6為累加和。接收程序框圖如圖4.20。 圖4.20 接收程序框圖,接收程序: FMT_T_S:MOVTMOD, #20H;波特率設置 MOVTH1, #0F3H M

55、OVTL1, #0F3H SETBTR1 MOVSCON, #50H;串行口初始化 MOVPCON,#80H;置SMOD=1 FMT_RAM:MOVDPH, 31H;設置DPTR指針 MOVDPL, 30H MOVR6, #00H;累加和寄存器清零 RX_ACK:JBCRI, IF_00H;接收呼叫信號 SJMPRX_ACK IF_00H:MOVA, SBUF;判斷呼叫信號是否正確 CJNEA, #00H, TX_FFH TX_00H:MOVA,#00H;向甲發(fā)送同意接收信號 MOVSBUF, A WAIT1:JBCTI, RX_BYTES;等待應答信號發(fā)送完 SJMPWAIT1 TX_FFH

56、:MOVA, #0FFH;向甲發(fā)送呼叫信號不正確 MOVSBUF, A 圖4.20 接收程序框圖,WAIT2:JBCTI, HAVE1 SJMPWAIT2 HAVE1:LJMPRX_ACK;返回接收呼叫信號 RX_BYTES:JBCRI, HAVE2;接收數(shù)據(jù)長度 SJMPRX_BYTES HAVE2:MOVA, SBUF;存入長度寄存器 MOVR7, A MOVR6, A;累加和 RX_NEWS:JBCRI, HAVE3;接收數(shù)據(jù)存入外部RAM SJMP RX_NEWS HAVE3:MOVA, SBUF MOVXDPTR, A INCDPTR ADD A, R6;累加和計算 MOVR6, A

57、 DJNZR7, RX_NEWS;數(shù)據(jù)是否接收完? RX_SUM:JBCRI, HAVE4;接收校驗和 SJMPRX_SUM HAVE4:MOVA, SBUF;判斷校驗和 CJNEA, R6, TX_ERR,TX_RIGHT:MOVA, #0FH;向甲發(fā)送接收正確信號 MOVSBUF, A TX_ERR:MOVA, #0F0H;向甲發(fā)送接收錯誤信號 MOVSBUF, A WAIT4:JBCTI, AGAIN SJMPWAIT4 AGAIN:LJMPFMT_RAM;重新接收數(shù)據(jù) GOOD:RET 5單片機多機通信原理 51系列單片機具有多機通信功能,可構成各種分布式系統(tǒng),圖4.21為主從式多機通信方式。 圖4.21 單片機主從多機通信,圖4.21中,一臺主機與多臺從機通信,主機的TxD和RxD分別與從機的RxD和TxD相連,主機可

溫馨提示

  • 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

提交評論