第7章單片機的串行通信技術_第1頁
第7章單片機的串行通信技術_第2頁
第7章單片機的串行通信技術_第3頁
第7章單片機的串行通信技術_第4頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第第7章章 單片機的串行通信技術單片機的串行通信技術7.1 串行通信概述串行通信概述7.2 串行口的結構組成及控制寄存器串行口的結構組成及控制寄存器7.3 串行通信工作方式串行通信工作方式及應用舉例及應用舉例7.4 串行通信設計應用舉例串行通信設計應用舉例7.1 串行通信概述串行通信概述并行并行并行并行通通 信信串行串行串行串行串行串行q數據是一位一位傳送的數據是一位一位傳送的串行串行1位位q優點:優點:傳輸線少,連線簡單傳輸線少,連線簡單q缺點:缺點:速度慢速度慢q適用于遠距離適用于遠距離或數據量少的通信或數據量少的通信串行通信串行通信計算機計算機網絡網絡鼠標鼠標掃描儀掃描儀硬盤硬盤并行、并

2、行、 串行接口的應用?串行接口的應用?I2C SPIRS232USB常見的串行通信接口常見的串行通信接口:接收時鐘接收時鐘接收數據接收數據01110011發送時鐘發送時鐘發送數據發送數據011100110 收、發設備使用各自時鐘。收、發設備使用各自時鐘。 發送方時鐘與接收方時鐘同步。既保持位同發送方時鐘與接收方時鐘同步。既保持位同步,也保持字符同步。同步方法:步,也保持字符同步。同步方法: 外同步外同步 自同步自同步同步傳輸同步傳輸1位位 數據數據計算機計算機外設外設 1 2 3 4 5 6 7 81001111110011111同步時鐘同步時鐘1位位 數據數據計算機計算機異步傳輸異步傳輸外設

3、外設靠靠發送發送和和接收接收速率速率相同來保證相同來保證比特率:位比特率:位/秒秒(bps)波特率:碼元波特率:碼元/秒秒(Baud)高位高位先送先送發送發送速率速率接收接收速率速率15V15V:邏輯:邏輯1 1 15V15V:邏輯:邏輯0 0美國電子工業協會美國電子工業協會EIAEIA公布的串行總線標準公布的串行總線標準DB-25(陽頭)(陽頭)DB-9最少最少3 3根線根線RxD (3)TxD (2)地地 (5)RS232-CRS232-C傳輸距離短,傳輸速率低。傳輸距離短,傳輸速率低。遠程通信連接遠程通信連接 近程通信連接近程通信連接 MAX232RS-232C電平與電平與TTL電平轉換

4、驅動電路電平轉換驅動電路 RS-485用于半雙工用于半雙工 最多可以使用最多可以使用32 對差分驅動器對差分驅動器/接收器。還可以用接收器。還可以用中繼器。中繼器。 RS-485干擾抑制性好。因為阻抗低,無接地問題,干擾抑制性好。因為阻抗低,無接地問題,傳輸距離可達傳輸距離可達1200米,傳輸速率可達米,傳輸速率可達1Mbps。 RS-485常用于常用于一點對多點一點對多點的通信。一般采的通信。一般采用雙絞線的結構。用雙絞線的結構。 單片機通過單片機通過MAX485來完成來完成TTL/RS-485的的電平轉換。電平轉換。 普通的普通的PC機一般不帶機一般不帶RS485接口,因此要接口,因此要使

5、用使用RS-232C/RS-485轉換器轉換器。7.2 串行口的結構組成及控制寄存器串行口的結構組成及控制寄存器 2 2個物理上獨立的接收、發送緩沖器個物理上獨立的接收、發送緩沖器SBUFSBUF,占,占用同一地址用同一地址99H99H ;接收器是雙緩沖結構接收器是雙緩沖結構 。 P3.1P3.07.3 串行通信工作方式串行通信工作方式 發送條件發送條件 清清 SCON SCON 中發送中斷標志中發送中斷標志 TI = 0TI = 0 發送指令發送指令 MOV SBUF MOV SBUF,A A注注: : 需發送的需發送的 8 8 位字節數據送串行數據緩沖器位字節數據送串行數據緩沖器 SBUF

6、 SBUF 后將啟動異步發送開始。后將啟動異步發送開始。 起始位起始位 0 0、停止位、停止位 1 1 在執行發送指令時自動加入在執行發送指令時自動加入 發送傳輸線發送傳輸線 TXD TXD 發送發送 10 10 位數據結束位數據結束 發送中斷標志發送中斷標志 TI = 1TI = 1注注: : 若需繼續發送,置若需繼續發送,置TI = 0TI = 0,送數據到,送數據到 SBUFSBUF 接收條件接收條件 清清 SCON SCON 中接收中斷標志中接收中斷標志 RI = 0RI = 0 置置 SCON SCON 中接收控制標志中接收控制標志 REN = 1REN = 1 接收傳輸線接收傳輸線

7、 RXD RXD 接收同步位接收同步位 接收傳輸線接收傳輸線 RXD RXD 有從有從 1 1 到到 0 0 的信號的信號 接收數據接收數據 9 9 位數據送數據接收器位數據送數據接收器8 位字節數據送串行數據緩沖器位字節數據送串行數據緩沖器 SBUF1 位停止位送入位停止位送入 SCON 中的中的 RB8 = 1 接收接收 10 10 位數據結束位數據結束 接收中斷標志接收中斷標志 RI = 1RI = 1注注: 若需繼續接收,置若需繼續接收,置RI = 0 指定指定T1T1為波特率時鐘發生器(波特率時鐘可變)為波特率時鐘發生器(波特率時鐘可變))(2322812XfoscSMOD波特率時鐘

8、通常選擇定時器通常選擇定時器方式方式2 2(取(取foscfosc為為11.0592MHz11.0592MHz)序號序號波特率波特率SMODX11920010 xfd2960000 xfd3480000 xfa4240000 xf45120000 xe8見見P137表表7.2SIO:MOV SCON,#控制狀態字;控制狀態字;寫方式字且寫方式字且 TI=RI=0 (MOV PCON,#80H) ;波特率加倍;波特率加倍 ( MOV TMOD,#20H );T1作波特率發生器作波特率發生器 ( MOV TH1,#X ) ;選定波特率;選定波特率 ( MOV TL1,#X ) ( SETB TR1

9、) ( SETB EA) ;開串行口中斷;開串行口中斷 ( SETB ES)1. 查詢方式查詢方式TRAM:MOV A,R0 ;取數據;取數據 MOVSBUF,A ;發送一個字符;發送一個字符WAIT:JBCTI,NEXT ;等待發送結束;等待發送結束 SJMPWAITNEXT:INCR0 ;準備下一次發送;準備下一次發送 SJMPTRAM2. 中斷方式中斷方式ORG 0023H ;串行口中斷入口;串行口中斷入口AJMP SINTMAIN: ;初始化編程;初始化編程TRAM: MOV A,R0 ;取數據;取數據 MOV SBUF,A ;發送第一個字符;發送第一個字符 H: SJMP H ;其它

10、工作;其它工作 SINT: CLR TI ;中斷服務程序;中斷服務程序 INC R0 MOV A,R0 ;取數據;取數據 MOV SBUF,A ;發送下一個字符;發送下一個字符 RETI REN=1、RI=0等待接收,當等待接收,當RI=1,從,從SBUF讀讀取數據。取數據。 SETB REN CLR RIWAIT:JBCRI,NEXT ;查詢等待;查詢等待 SJMPWAITNEXT:MOVA,SBUF ;讀取接收數據;讀取接收數據 MOVR0,A;保存數據;保存數據 INCR0 ;準備下一次接收;準備下一次接收 SJMPWAIT查詢方式查詢方式7.4 串行通信設計應用舉例串行通信設計應用舉例

11、74LS164DCP89C51RxDTxDORG 0000HAJMP MAINORG 0023HAJMP SBRMAIN:MOV SCON, #00HSETB EASETB ESMOV A, #80HMOV SBUF, ASJMP $SBR: CLR TIACALL DELAYRR AMOV SBUF,ARETI用用1個串入并出寄存器擴展為個串入并出寄存器擴展為8位并行輸出口,并口接位并行輸出口,并口接8個個LED,并循環輪流顯示并循環輪流顯示實例實例1 利用利用74LS164擴展并行輸出口擴展并行輸出口,并實現發光二極管循并實現發光二極管循環控制功能。環控制功能。74LS16474LS164

12、為為8 8位串并轉換移位寄存器位串并轉換移位寄存器能將串行輸入數據轉為并行輸出能將串行輸入數據轉為并行輸出引腳引腳功能描述功能描述A、B串行數據輸入引腳串行數據輸入引腳QAQG并行數據輸出引腳并行數據輸出引腳CLOCK移位脈沖輸入端移位脈沖輸入端CLEAR移位寄存器清零端移位寄存器清零端#includesbit MR=P10;void delay() unsigned int i; for (i=0; i20000; i+) void main() unsigned char index;unsigned char LED;SCON = 0; /設置串行模塊工作在方式設置串行模塊工作在方式0w

13、hile (1) MR = 1; / 74LS164的的MR1,允許輸入數據,允許輸入數據 LED=0 x7f; for (index=0; index 1)|0 x80); delay(); 完整程序完整程序 補充補充實例實例 將將89C51單片機的單片機的TXD接接RXD,實現單片機串行口數,實現單片機串行口數據自發自收,并將接收的數據通過據自發自收,并將接收的數據通過P1口輸出到發光二口輸出到發光二極管顯示。系統時鐘頻率為極管顯示。系統時鐘頻率為11.0592MHz,自發自收的,自發自收的波特率為波特率為2400bps。編寫程序:要求單片機串行口工作。編寫程序:要求單片機串行口工作在方式

14、在方式1,從,從TXD發送數據發送數據0 x55H,從,從RXD將該數據讀將該數據讀回,并送回,并送P1口通過口通過8個發光二極管顯示。個發光二極管顯示。#include#define uchar unsigned char#define uint unsigned intmain() uchar i=0 x55; uint j=0; TMOD=0 x20; /設置定時器設置定時器1工作在模式工作在模式2 TL1=0 xf4; TH1=0 xf4; /設置定時器設置定時器1初值初值 PCON=0 x00; SCON=0 x50; /選擇工作方式選擇工作方式1,使能收發功能,使能收發功能 TR1

15、=1; /啟動定時器啟動定時器1 while(1) SBUF=i; /發送數據發送數據while(! TI); TI=0; /等待數據發送等待數據發送while(! RI); RI=0; /等待發送數據返回等待發送數據返回i=SBUF; /讀取接收數據讀取接收數據 P1=i; /送入送入P1口顯示口顯示 i=i; /將發送數取反將發送數取反 for(j=0;j33000;j+);完整程序完整程序 查詢方式查詢方式#includeunsigned char i=0 x55; unsigned int j=0;main() TMOD=0 x20; TL1=0 xF4; TH1=0 xF4; PCO

16、N=0 x00; SCON=0 x50; /選擇工作方式選擇工作方式1,使能收發功能,使能收發功能 TR1=1; /啟動定時器啟動定時器1 EA=1; ES=1; SBUF=i; /發送數據發送數據 while(1); 中斷方式中斷方式void uart_int(void) interrupt 4if(RI)RI=0;i=SBUF; P1=i; i=i; for(j=0;j33000;j+);SBUF=i;else TI=0;編制一個發送程序,將一個數組中的數據串行發送。串編制一個發送程序,將一個數組中的數據串行發送。串行口設定為工作方式行口設定為工作方式2,TB8為發送數據的奇偶校驗位。為發

17、送數據的奇偶校驗位。#include#includesbit p=PSW0;char s =MSC-51 Serial Communication Bus;void main (viod) char a,b=0; SCON=0 x80;/串行口方式串行口方式2 PCON=0 x00; a=strlen(s); 實驗實驗實例實例 for(;ba;b+) ACC=sb; TB8=p;/奇偶校驗奇偶校驗 SBUF=sb; while(!TI); TI=0; 請自學書上請自學書上P139雙機通信實例。并完成雙機通信實例。并完成第第3次團隊作業。次團隊作業。請自行設計一個雙機通信程序,實現兩個單片請自行

18、設計一個雙機通信程序,實現兩個單片機的相互控制。機的相互控制。要求:要求:自行設計硬件電路,完成相應軟件編程,自行設計硬件電路,完成相應軟件編程,在在proteus下進行仿真。提交電子版作業。采用下進行仿真。提交電子版作業。采用團隊作業方式,每個團隊不超過團隊作業方式,每個團隊不超過3人,學號和人,學號和姓名請寫在姓名請寫在PROTEUS仿真圖里。仿真圖里。小 結 用于串行口通信控制的主要寄存器是用于串行口通信控制的主要寄存器是SCON,可以設定,可以設定4 4種工作方式、接收允許、發送種工作方式、接收允許、發送/ /接收標志、接收標志、2 2個可編程位、個可編程位、1 1個多機通訊位。個多機通訊位。 串行通信串行通信方式方式0 0,主要用于,主要用于單片機單片機I/OI/O接口的擴展接口的擴展,在數,在數據的輸入和輸出控制中,據的輸入和輸出控制中,RXDRXD作為數據線作為數據線,TXDTXD輸出同步時鐘輸出同步時鐘脈沖脈沖。而且,在方式。而且,在方式0 0下,以下,以8 8位數據為一幀,不設起始位和位數據為一幀,不設起始位和停止位,先發送或接收最低位。停止位,先發送或接收最低位。 方式方式1 1的數據幀格式是的數據幀格式是1010位位,其中,一個起始位,其中,一個起始位,8 8個數個數據位和一個停止位。發送時由據位和一個停

溫馨提示

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

評論

0/150

提交評論