單片機基本原理與應用第6章串行通信接口_第1頁
單片機基本原理與應用第6章串行通信接口_第2頁
單片機基本原理與應用第6章串行通信接口_第3頁
單片機基本原理與應用第6章串行通信接口_第4頁
單片機基本原理與應用第6章串行通信接口_第5頁
已閱讀5頁,還剩52頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機基本原理與應用第6章串行通信接口2第6章 串行通信接口本章主要內容本章主要內容 串行數據通信基本原理串行數據通信基本原理 MCS-51MCS-51單片機串行口單片機串行口 串行口應用舉例串行口應用舉例 多機通信原理多機通信原理北京交通大學3 計算機的兩種方式數據傳送:并行和串行計算機的兩種方式數據傳送:并行和串行 并行傳送的特點:并行傳送的特點: 各數據位同時傳送,傳送速度快、效率高。各數據位同時傳送,傳送速度快、效率高。但需要的數據線多,因此傳送成本高。并行數據但需要的數據線多,因此傳送成本高。并行數據傳送的距離通常小于傳送的距離通常小于3030米。米。 串行傳送的特點是:串行傳送的特

2、點是: 數據傳送按位順序進行,最少只需一根傳輸數據傳送按位順序進行,最少只需一根傳輸線即可完成,成本低線即可完成,成本低, ,但速度慢。串行數據傳送但速度慢。串行數據傳送的距離可以從幾米到幾千公里。的距離可以從幾米到幾千公里。一、串行數據通信基本原理一、串行數據通信基本原理北京交通大學4數據通信基本原理串行數據傳送又分為串行數據傳送又分為異步傳送異步傳送和和同步傳送同步傳送兩種方式。兩種方式。在單片機中,主要使用異步傳送方式。在單片機中,主要使用異步傳送方式。北京交通大學5 1. 1. 異步串行通信的字符格式異步串行通信的字符格式 異步串行數據通信以字符為單位,即一次異步串行數據通信以字符為單

3、位,即一次傳送一個字符傳送一個字符。異步通信的數據格式為:異步通信的數據格式為:一位起始位位起始位一位奇偶校驗位一位奇偶校驗位1、2位停止位位停止位 一幀信息58位數據位位數據位北京交通大學6 1 1位起始位(為低電平);位起始位(為低電平); 5 58 8位數據位(緊跟著起始位),表示位數據位(緊跟著起始位),表示要傳送的有效數據(低位在前);要傳送的有效數據(低位在前); 1 1位奇偶校驗位(可有可無);位奇偶校驗位(可有可無); 1 1、或、或2 2位停止位(為高電平)。位停止位(為高電平)。 從起始位開始到停止位結束的時間間隔稱從起始位開始到停止位結束的時間間隔稱為一幀。就是一個字符的

4、完整通信格式。為一幀。就是一個字符的完整通信格式。因此也把串行通信的字符格式稱為幀格式因此也把串行通信的字符格式稱為幀格式北京交通大學7 例如,采用串行異步通信方式傳送例如,采用串行異步通信方式傳送ASCIIASCII碼字符碼字符5 5,規定為規定為7 7位數據位,位數據位,1 1位偶校驗位,位偶校驗位,1 1位停止位,無位停止位,無空閑位。空閑位。 由于由于5 5的的ASCIIASCII碼為碼為35H35H,其對應,其對應7 7位數據位為,位數據位為,如按低位在前、高位在后順序排列應為。前面加如按低位在前、高位在后順序排列應為。前面加1 1位起始位,后面配上偶校驗位位起始位,后面配上偶校驗位

5、1 1位位0 0,最后面加,最后面加1 1位位停止位停止位1 1,因此傳送的字符格式為,因此傳送的字符格式為01010110010101011001,其,其對應的波形如圖所示。對應的波形如圖所示。低位在前低位在前高位在后高位在后起始起始停止停止偶偶校校驗驗北京交通大學82.2.串行通信的數據通路形式串行通信的數據通路形式串行數據通信有以下幾種數據通路形式:串行數據通信有以下幾種數據通路形式:單工形式單工形式: : A A發發,B,B接。接。半雙工形式半雙工形式: : A A發或接發或接, , B B接或發。接或發。全雙工形式全雙工形式: : A A發、接,發、接,B B接、發。接、發。ABAB

6、AB北京交通大學9 3. 3.串行通信的傳送速率串行通信的傳送速率 傳送速率傳送速率 : 用于說明數據傳送的快慢。用于說明數據傳送的快慢。波特率(波特率(BaudBaud):每秒傳送二進制代碼位數):每秒傳送二進制代碼位數 即每秒傳送一個數據位就是一波特:即每秒傳送一個數據位就是一波特:常用的波特率有:常用的波特率有:7575,110110,300300,600600,12001200,24002400,48004800,96009600,1920019200。1 1波特波特=1bps(=1bps(位位/ /秒)秒)北京交通大學10 設數據傳送的速率每秒為設數據傳送的速率每秒為120120個字

7、符,個字符,每個字符包含每個字符包含1010個代碼位(個代碼位(1 1個起始個起始位,位,1 1個停止位,個停止位,8 8個數據位)個數據位) 波特率波特率=10 x120b/s=1200bps=10 x120b/s=1200bps 每一位代碼的傳送時間每一位代碼的傳送時間北京交通大學11 4.4.串行通信接口電路串行通信接口電路 串行數據通信中主要有兩個技術問題串行數據通信中主要有兩個技術問題數據傳送數據傳送: :數據傳送主要解決傳送中的數據傳送主要解決傳送中的 標準、格式及工作方式等問題標準、格式及工作方式等問題數據轉換數據轉換: :數據轉換是指數據的串并轉換數據轉換是指數據的串并轉換北京

8、交通大學12串行接口電路基本組成邏輯框圖如下串行接口電路基本組成邏輯框圖如下:串行輸入串行輸入 時鐘時鐘 復位復位并行輸出并行輸出并行輸入并行輸入 時鐘時鐘 串行輸出串行輸出控制信號控制信號狀態、控狀態、控制信息制信息接收器發送器控制部件北京交通大學13通用異步接收發送器(通用異步接收發送器(UARTUART) 北京交通大學14異步串行通信常用接口異步串行通信常用接口 TTLTTL電平直接連接電平直接連接RS-232C:RS-232C: 傳輸速度為傳輸速度為20kbit/s20kbit/s,傳輸距離,傳輸距離1515英尺英尺RS-422RS-422、RS-485RS-485: 傳輸速度為傳輸速

9、度為10Mbit/s10Mbit/s,傳輸距離,傳輸距離300m300m1200m1200m并能抑制共模信號干擾并能抑制共模信號干擾20mA20mA電流環:電流環: 能降低對噪聲敏感程度能降低對噪聲敏感程度光纖光纖: : 光纖介質可減少噪聲干擾,光電隔離提高光纖介質可減少噪聲干擾,光電隔離提高安全性安全性北京交通大學15 MCS-51MCS-51單片機單片機片內有一個全雙工串行口片內有一個全雙工串行口(接收、發送)(接收、發送) 功能:異步串行通信功能:異步串行通信 其中:發送和接收的速率與移位時鐘同步,其中:發送和接收的速率與移位時鐘同步, 移位脈沖的速率為波特率。移位脈沖的速率為波特率。說

10、明:定時器說明:定時器T1T1作為串行通信波特率發生器作為串行通信波特率發生器。北京交通大學16TI發送中斷標志發送中斷標志RI接收中斷,允許接收接收中斷,允許接收REN串行口中斷串行口中斷1.1.串行口寄存器結構串行口寄存器結構發送寄存器發送寄存器(只能寫)(只能寫)接收寄存器接收寄存器(只能讀)(只能讀)(P3.1)(P3.0)SBUF全雙工方式進全雙工方式進行通信,這兩個寄行通信,這兩個寄存器共用一個地址存器共用一個地址(99H)。)。北京交通大學17雙緩沖結構,防止雙緩沖結構,防止產生重疊錯誤產生重疊錯誤MOV SBUF,AMOV A,SBUF北京交通大學18例如:說明:串行接收采用雙

11、緩沖結構,以避免在數據說明:串行接收采用雙緩沖結構,以避免在數據接收過程中出現幀重疊錯誤接收過程中出現幀重疊錯誤, ,但發送數據時,由于但發送數據時,由于CPUCPU是主動的,不會發生幀重疊錯誤是主動的,不會發生幀重疊錯誤, ,因此發送電因此發送電路就不需要雙緩沖結構。路就不需要雙緩沖結構。 2.2.串行通信控制有關的寄存器串行通信控制有關的寄存器 SCONSCON:串行控制,用來設定串行口的工作方式:串行控制,用來設定串行口的工作方式 PCONPCON:電源控制,可控制波特率。:電源控制,可控制波特率。 IEIE: 設置串行中斷允許。設置串行中斷允許。啟動發送啟動發送 :MOV SBUFMO

12、V SBUF,A A ;SBUF SBUF (A A)啟動接收啟動接收 :MOV AMOV A,SBUF SBUF ;A A (SBUFSBUF)北京交通大學19 (1 1)串行控制寄存器)串行控制寄存器SCONSCON SCON格式如下:SM0 SM1 SM2 REN TB8 RB8 TI RI (98H) 9F 9E 9D 9C 9B 9A 99 98 工工作作方方式式選選擇擇位位多多機機通通信信控控制制位位允允許許接接收收控控制制位位發發送送數數據據第第九九位位接接收收數數據據第第九九位位發發送送中中斷斷標標志志接接收收中中斷斷標標志志北京交通大學20各位功能說明如下:各位功能說明如下:

13、SM0 SM1SM0 SM1:串口工作方式選擇位:串口工作方式選擇位 00 00 方式方式0: 0: 同步移位寄存器同步移位寄存器 波特率波特率= =主振頻率主振頻率/12/1201 01 方式方式1: 81: 8位異步,波特率可變位異步,波特率可變10 10 方式方式2 2:9 9位異步位異步 波特率波特率= =主振頻率主振頻率/32 /32 或主振頻率或主振頻率/64/6411 11 方式方式3 3:9 9位異步,波特率可變位異步,波特率可變北京交通大學21 REN=1REN=1:允許串行接收:允許串行接收, ,用軟件置位或清除。用軟件置位或清除。 TB8TB8:發送數據位:發送數據位8

14、8即: D0 D7 D8 TB8/RB8D8D80 0:表示數據幀;:表示數據幀; D8D81 1:表示地址幀:表示地址幀在工作方式、在工作方式、3 3中,中,TB8TB8是發送的第位數據,是發送的第位數據, 由軟件置位(由軟件置位(SETB TB8SETB TB8)或復位()或復位(CLR TB8CLR TB8)在雙機通信中,該位作為奇偶校驗位;在雙機通信中,該位作為奇偶校驗位;在多機通信中用來表示在多機通信中用來表示D7-D0D7-D0是地址幀或數據幀是地址幀或數據幀北京交通大學22 RB8RB8:接收數據位:接收數據位8 8TITI:發送中斷標志:發送中斷標志。 在工作方式和中,該位是接

15、收到的第位數據。在工作方式和中,該位是接收到的第位數據。 方式方式1 1,SM2=0SM2=0,停止位。方式,停止位。方式0 0,不用。,不用。在多機通信中是地址幀(在多機通信中是地址幀(RB8=1RB8=1)和數據幀)和數據幀 (RB8=0RB8=0)的標識位。)的標識位。在方式中,發送完第在方式中,發送完第8 8位數據后,該位由硬件置位;位數據后,該位由硬件置位;在其它方式中,在發送停止位之前,該位由硬件置位,在其它方式中,在發送停止位之前,該位由硬件置位,申請中斷,申請中斷,CPUCPU響應中斷后,可以發送下一幀數據。響應中斷后,可以發送下一幀數據。該位必須由軟件清零。該位必須由軟件清零

16、。北京交通大學23 RIRI:接收中斷標志。:接收中斷標志。在方式中,接收完第在方式中,接收完第8 8位數據后,該位由硬件置位位數據后,該位由硬件置位在其它方式中,在接收到停止位的一半時,在其它方式中,在接收到停止位的一半時,該位由硬件置位(還需考慮該位由硬件置位(還需考慮SM2SM2的設定),的設定),申請中斷,申請中斷,CPUCPU響應中斷后,可以接收下一幀響應中斷后,可以接收下一幀數據。該位也必須由軟件清零。數據。該位也必須由軟件清零。北京交通大學24 SM2SM2:多機通信控制位,主要用于方式:多機通信控制位,主要用于方式2 2、3 3中中。在方式在方式0 0中,中,SM2SM2設置為

17、設置為0 0,不用,不用TB8TB8和和RB8RB8 在方式在方式1 1中:當中:當SM2SM20 0,則,則RB8RB8是接收到的停止位;是接收到的停止位; 當當SM2SM21 1,則只有接收到有效的停止位時,則只有接收到有效的停止位時,RIRI才被激活。才被激活。在方式在方式2 2、3 3中,中, TB8TB8和和RB8RB8為發送和接收的第九位數據,為發送和接收的第九位數據,當當SM2SM20 0時時, ,則不論則不論RB8RB8為還是為還是1, 1,都將前都將前8 8位數據裝位數據裝入入SBUFSBUF中中, ,表示接收到命令或數據,并產生中斷請求。表示接收到命令或數據,并產生中斷請求

18、。當當SM2SM21 1時,只有當接收到的第九位數據時,只有當接收到的第九位數據 RB8=1RB8=1時時, , 才將接收到的前才將接收到的前8 8位數據送入位數據送入SBUF,SBUF,表示接收到地址幀表示接收到地址幀; ; 當當RB8RB80 0時時, ,將接收到的前將接收到的前8 8位數據丟棄。位數據丟棄。北京交通大學25 說明說明:1. 1.用軟件可以改變設置用軟件可以改變設置SCONSCON內容,并在下一內容,并在下一條指令的第一個周期的條指令的第一個周期的S1P1S1P1期間才鎖存到期間才鎖存到SCONSCON中。中。2. 2.一幀發送完,發送中斷標志置位(一幀發送完,發送中斷標志

19、置位(TITI),向),向CPUCPU請求中斷。請求中斷。一幀接收完,接收中斷標志置位(一幀接收完,接收中斷標志置位(RIRI),向),向CPUCPU請求中斷。請求中斷。北京交通大學26 它主要是為它主要是為CHMOSCHMOS型單片機的電源控型單片機的電源控制而設置的制而設置的。對對HMOSHMOS型單片機,除了最型單片機,除了最高位(高位(SMODSMOD)之外)之外,其它位都是虛設其它位都是虛設的的,SMOD,SMOD是串行口波特率的倍增位。是串行口波特率的倍增位。 當:當:SMODSMOD1 1時,串行口波特率加倍時,串行口波特率加倍系統復位時,系統復位時,SMODSMOD0 0。可。

20、可由下列指令設置:由下列指令設置: MOV PCONMOV PCON,#80H #80H ;SMOD SMOD 1 1 MOV PCON MOV PCON,#00H #00H ;SMOD SMOD 0 0(2 2)電源控制寄存器)電源控制寄存器PCONPCON格式格式: :SMOD(87H)北京交通大學27 (1)方式0:同步移位寄存器方式 RXDRXD端作為數據移位的入口或出口端作為數據移位的入口或出口 TXDTXD端提供移位時鐘脈沖端提供移位時鐘脈沖, ,移位數據的發送移位數據的發送和接收以和接收以8 8位為一幀,不設起始位和停止位,低位為一幀,不設起始位和停止位,低位在前高位在后,波特率

21、是固定的位在前高位在后,波特率是固定的即一個機器周期移位一次。即一個機器周期移位一次。3.串行口的工作方式RXDTXDDATACLKRXDTXDDATACLK并行輸出并行輸入8051CD40968051CD4014下圖下圖 串并,并串轉換方法電路串并,并串轉換方法電路STBSTBfOSC/12北京交通大學28 說明: 1.REN=1,1.REN=1,允許接收。允許接收。 RXD RXD數據輸入,數據輸入,TXDTXD移位脈移位脈(fosc/12)(fosc/12)。接收(發送)完接收(發送)完8 8位數據時硬件將位數據時硬件將RIRI(TI)TI)置位,置位,CPUCPU響應中斷,響應中斷,

22、,RIRI必須由用戶程序清零。必須由用戶程序清零。 3.3.方式方式0 0時:時:SM2=0SM2=0,TB8TB8、RB8RB8不用不用 4. 4.擴展擴展I/OI/O 串行輸入,串行輸出,并串、串并轉換串行輸入,串行輸出,并串、串并轉換北京交通大學29數據輸出MOV SBUF,Afosc=1/12發送完8位數據北京交通大學30REN=“1”,方式0,RI=“0”RXD數據輸入端接收到8位數據北京交通大學31 數據發送 1.1.數據發送是由一條寫發送寄存器(數據發送是由一條寫發送寄存器(MOV SBUFMOV SBUF,A A)指令開始的。指令開始的。 2.2.此后在串行口由硬件自動加入起始

23、位和停止位,此后在串行口由硬件自動加入起始位和停止位,構成一個完整的幀格式。構成一個完整的幀格式。 3.3.然后在移位脈沖的作用下,由然后在移位脈沖的作用下,由TXDTXD端串行輸出。端串行輸出。 4.4.一個字符幀發送完后,使一個字符幀發送完后,使TXDTXD端輸出線維持高電端輸出線維持高電平,并將平,并將TITI置位,通知置位,通知CPUCPU可以發送下一個字符。可以發送下一個字符。起始起始 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 停止停止 (2)方式1 方式方式1 1的幀格式為:的幀格式為:北京交通大學32 數據接收數據接收 1.1

24、.接收數據時,應使接收數據時,應使RENREN1 1。在此前提下,。在此前提下,串行口采樣串行口采樣RXDRXD端,當采樣到從端,當采樣到從1 1到到0 0的跳變的跳變時,就認定是接收到了起始位。時,就認定是接收到了起始位。 2.2.隨后在移位脈沖的控制下,把接收到的數據隨后在移位脈沖的控制下,把接收到的數據位移入接收寄存器中。位移入接收寄存器中。 3.3.直到停止位到來之后把它送入到直到停止位到來之后把它送入到RB8RB8中,并中,并置位置位RIRI,通知,通知CPUCPU從從SBUFSBUF取走接收到的一個字符。取走接收到的一個字符。北京交通大學33發送十位信息啟動發送完置1REN=“1”

25、,SM0=0,SM1=1,RI=07,8,9共3次采樣數據采樣到1變0,啟動接收波特率16倍速率條件:1.RI=02.停止位=1,或SM2=0、停止位進入RB8,并RI=1北京交通大學34 波特率的設定波特率的設定 方式方式1 1的波特率可變的波特率可變, ,由下式決定:由下式決定:實際使用時實際使用時, ,總是先確定波特率總是先確定波特率, ,再計算再計算T1T1的計數的計數初值。即:初值。即:mod23212 (256)soscfX波特率mod(2)256384soscfX波特率smodsmod為為PCONPCON寄存器最高位的值寄存器最高位的值,f,fOSCOSC為晶振頻率為晶振頻率,

26、,X X為當為當T1T1工作于方式工作于方式2 2(8 8位自動加載)時的計數初值。位自動加載)時的計數初值。其中:其中:北京交通大學35 (3) (3) 方式方式2 2和方式和方式3 3 串行口工作在方式串行口工作在方式2 2、3 3時,為時,為9 9位異步位異步通信口,發送和接收幀信息由通信口,發送和接收幀信息由1111位組成,位組成,即即:D0 D2 . . . D7 D8 一幀1 1位起始位位起始位(0)(0)、位數據位位數據位(D0-D7)(D0-D7)、1 1位可編程位位可編程位(D8)(D8)和和1 1位停止位位停止位(1)(1)。D8D8位既可作為奇偶校驗位位既可作為奇偶校驗位

27、, ,也可作為控制位使用也可作為控制位使用, ,功能由用戶確定功能由用戶確定發送時發送時, ,可編程位可編程位D8(TB8)D8(TB8)可設置為可設置為0 0(CLR TB8CLR TB8)或)或1 1(SETB TB8SETB TB8)接收時接收時,TB8,TB8送入送入SCONSCON寄存器中寄存器中RB8RB8位。位。北京交通大學36方式方式2 2、3 3的區別是:的區別是:波特率設置不同波特率設置不同方式方式2 2的波特率是固定的。即:的波特率是固定的。即: 波特率波特率=fosc/32=fosc/32或或fosc/64fosc/64方式方式3 3的波特率是可變的。即:的波特率是可變

28、的。即:mod23212 (256)soscfX波特率mod(2)256384soscfX波特率北京交通大學37波特率 fosc smod1200 11.0592 0 2 E8H2400 11.0592 0 2 F4H4800 11.0592 0 2 FAH9600 11.0592 0 2 FDH19200 11.0592 1 2 FDH 定時器1 方式 時間常數表表1 1 波特率與時間常數波特率與時間常數北京交通大學38MCS-51MCS-51串行通信波特率串行通信波特率: 方式方式0 0波特率波特率= f= fOSCOSC/12/12,f fOSC OSC 為主機頻率為主機頻率 方式方式2

29、 2 SMOD=1, SMOD=1,波特率波特率= f= fOSCOSC/32;/32; SMOD=0, SMOD=0,波特率波特率= f= fOSCOSC/64;/64; 方式方式1,31,3mod23212(256)soscfX波 特 率T1溢出率溢出率=12 (256)oscfX北京交通大學39 方式方式2 2發送程序:發送程序: 以以TB8TB8為偶校驗位,處理方法是數據寫入為偶校驗位,處理方法是數據寫入SBUFSBUF之前,先將之前,先將P P寫入寫入TB8TB8 CLR TI ; CLR TI ;發送中斷標志發送中斷標志TITI清零清零 MOV AMOV A,R0 ;R0 ;取數據

30、取數據 MOV CMOV C,P ;P ;奇偶校驗位送奇偶校驗位送TB8TB8 MOV TB8 MOV TB8,C C MOV SBUF MOV SBUF,A ;A ;數據寫入,啟動發送數據寫入,啟動發送北京交通大學40 接收程序接收程序 若附加第九位數據為偶校驗位,接收程序中應作校驗處若附加第九位數據為偶校驗位,接收程序中應作校驗處理理 CLR RI ;CLR RI ;收到一幀數據后清收到一幀數據后清RIRI MOV A MOV A,SBUF ;SBUF ;前八位數據送前八位數據送A A MOV C MOV C,P ;P ;正確正確P=0P=0,RB=0RB=0。P=1P=1,RB=1RB=

31、1 JNC PD0 JNC PD0 ;P=0P=0,判,判RB8=0RB8=0否否 JNB RB8JNB RB8,ERROR ERROR ;P=1P=1,RB8=0RB8=0出錯出錯 AJMP POK AJMP POK PD0PD0:JB RB8JB RB8,ERRO ERRO ;P=0P=0, RB8=1RB8=1出錯出錯POKPOK:MOVROMOVRO,A AERROR: ERROR: 北京交通大學41利用串行口工作方式利用串行口工作方式0 0擴展擴展I/OI/O口口 CLR P1.0 ;下降沿并入下降沿并入 SETB P1.0 ;移位;移位 MOV SCON,#10H;方式;方式0,啟

32、動接收,啟動接收 MOV R0,#02H ;每組字節數;每組字節數2WAIT: JNB RI,WAIT CLR RI MOV A,SBUF MOV R1,A INC R1 DJNZ R0,WAIT北京交通大學42利用串行口工作方式利用串行口工作方式0 0擴展擴展I/OI/O口口 MOV R6,#02H MOV R0,#30H MOV SCON,#00H;方式方式0 SEND:MOV A,R0 MOV SBUF,A;啟動發送;啟動發送 WAIT:JNB TI,WAIT CLR TI;清發送中斷標志;清發送中斷標志 INC R0 DJNZ R6,WAIT北京交通大學43 三、串行口應用舉例三、串行

33、口應用舉例例例 6-1 6-1 雙機通信雙機通信 設設: :甲機發送乙機甲機發送乙機接收,串行口工作在接收,串行口工作在方式方式1 1,波特率為,波特率為 硬件連接如圖硬件連接如圖 計算時間常數計算時間常數 TXD RXD GNDRXDTXD GND T1T1作為波特率發生器,工作于方式作為波特率發生器,工作于方式2 2。由表。由表1 1查得時間常數為查得時間常數為E8HE8H。 圖圖 雙機通信雙機通信乙乙甲甲北京交通大學44 甲機發送程序甲機發送程序 甲機將內部甲機將內部RAMRAM單元單元20H20H3FH3FH的的3232個字節的個字節的ASCIIASCII碼數據,在最高位上加奇校驗位后

34、,由串行碼數據,在最高位上加奇校驗位后,由串行口口TXDTXD發送給乙機。即可采用發送給乙機。即可采用8 8位異步通信。位異步通信。START:MOV TMOD,#20H ;T1START:MOV TMOD,#20H ;T1為方式為方式2 2 MOV TL1,#0E8H ;MOV TL1,#0E8H ;時間常數低時間常數低8 8位位 MOV TH1,#0E8H ;MOV TH1,#0E8H ; SETB TR1 ; SETB TR1 ;啟動啟動T1T1工作工作 MOV SCON,#01000000B ;MOV SCON,#01000000B ;串行口方式串行口方式1 1 MOV R0,#20H

35、 ;MOV R0,#20H ;數據首地址數據首地址 MOV R7,#32 ;32MOV R7,#32 ;32字節數據字節數據北京交通大學45LOOP: MOV A, R0 ;LOOP: MOV A, R0 ;取數據,影響取數據,影響P P標志位標志位 MOV C, P ; MOV C, P ;置奇校驗位置奇校驗位 CPL CCPL C MOV ACC.7, C MOV ACC.7, C MOV SBUF,A ; MOV SBUF,A ;啟動發送啟動發送DONE: JNB TI, DONE ;DONE: JNB TI, DONE ;等待發完一幀等待發完一幀 CLR TI ;CLR TI ;清清T

36、I,TI,允許再發送允許再發送 INC R0 ;INC R0 ;指向下一數據指向下一數據 DJNZ R7, LOOP ;DJNZ R7, LOOP ;未送完未送完, ,送下一個數送下一個數 AJMP LOOP ; AJMP LOOP ;循環發送循環發送北京交通大學46 乙機接收程序乙機接收程序 與甲機發送相呼應與甲機發送相呼應, ,接收器把接收到的接收器把接收到的3232個字節數個字節數據存放在內部據存放在內部RAMRAM的的20H20H3FH3FH中中, ,波特率與晶振頻率波特率與晶振頻率同上。若奇校驗出錯同上。若奇校驗出錯, ,則置進位位則置進位位1 1。程序如下:。程序如下:START:

37、MOV TMOD,#20H ;T1START:MOV TMOD,#20H ;T1方式方式2 2 MOV TL,#OE8HMOV TL,#OE8H MOV TH,#OE8H MOV TH,#OE8H SETB TR1 SETB TR1 MOV R0,#20H MOV R0,#20H MOV R7,#32 MOV R7,#32LOOP:MOV SCON,#01010000B ;LOOP:MOV SCON,#01010000B ;串行口方式串行口方式1,1,能接收能接收北京交通大學47DONE:JNB RI,DONE ;DONE:JNB RI,DONE ;等待接收一幀等待接收一幀 CLR RI ;C

38、LR RI ;清清RI,RI,再接收再接收 MOV A,SBUF ;MOV A,SBUF ;取數據取數據 JNB P, ERROR ;JNB P, ERROR ;校驗錯校驗錯, ,轉出錯處理轉出錯處理ANL A,#7FH ;ANL A,#7FH ;去掉奇校驗位去掉奇校驗位 MOV R0,A ;MOV R0,A ;奇校驗奇校驗, ,存數據存數據 INC R0 ; INC R0 ;指向下一數據指向下一數據 DJNZ R7,LOOP ; DJNZ R7,LOOP ;數據塊數據塊, ,未接收完未接收完, ,循環循環 AJMP LOOP ;AJMP LOOP ;循環接收循環接收ERROR: ERROR:

39、 ; ;出錯處理出錯處理北京交通大學48 假定甲假定甲乙兩個乙兩個MCS-51MCS-51單片機以方式單片機以方式1 1進行串行進行串行通信,其波特率為通信,其波特率為1200bps.1200bps.甲機發送,發送的數甲機發送,發送的數據在外部據在外部RAMRAM中中2000H-202FH2000H-202FH單元。已機接收,并單元。已機接收,并把接收到的數據塊依次存入外部把接收到的數據塊依次存入外部RAM3000HRAM3000H開始的開始的區域。區域。設設f foscosc=6MHz,=6MHz,波特率波特率=1200bps=1200bps,SMOD=0SMOD=0分析:分析: 1.1.定

40、時器定時器1 1計數初值計數初值 方式方式1 1mod23212(256)soscfX波特率0261 2 0 03 21 2( 2 5 6)XX=243=0F2H見書見書P140北京交通大學49 2.2.發送的內容包括數據塊的首發送的內容包括數據塊的首末地址和數據兩末地址和數據兩部分。部分。 首首末地址以查詢方式傳送(禁止串行中斷)末地址以查詢方式傳送(禁止串行中斷) 數據以中斷方式傳送(允許串行中斷)數據以中斷方式傳送(允許串行中斷) 3.3.數據為數據為ASCIIASCII碼最高位為奇偶校驗位。碼最高位為奇偶校驗位。 當當A A中中1 1的個數是奇數時,的個數是奇數時,P=1P=1。 所以

41、將所以將P P求反再送入最高位求反再送入最高位 北京交通大學50多機通信北京交通大學51SM2SM2的定義的定義 在方式在方式2 2、3 3中,中, TB8TB8和和RB8RB8為發送和接收的第為發送和接收的第九位數據九位數據SM2SM21 1時,只有當接收到的第九位數據為時,只有當接收到的第九位數據為 SM2SM20 0時時, ,當當RB8=1RB8=1時時, , 才將接收到的前才將接收到的前8 8位數據送入位數據送入SBUF,SBUF,表示接收到地址幀表示接收到地址幀; ; 當當RB8RB80 0時時, ,將接收到的前將接收到的前8 8位數據丟棄。位數據丟棄。則不論則不論RB8RB8為還是為還是1, 1,都將前都將前8 8位數據裝入位數據裝入SBUFSBUF中中, ,表示接收到命令或數據,并產生中斷請求。表示接收到命令或數據,并產生中斷請求。北京交通大學52 單片機多機通信原理單片機多機通信原理 (1 1)全部從機初始化為工作方式全部從機初始化為工作方式2 2或方式,或方式,置位置位SM2SM2,允許中斷,處于只接受地址幀。,允許中斷,處于只接受地址幀。 (2 2)主機置位主機置位T

溫馨提示

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

評論

0/150

提交評論