




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、RS232串行通信相關1 異步串行通訊數(shù)據格式:一幀異步通訊的數(shù)據格式主要包含一下幾個部分:(1)起始位:起始位以一位低電平開始,表示發(fā)送端開始發(fā)送一幀數(shù)據。(2)數(shù)據位:數(shù)據位即要傳遞的數(shù)據信息,一般低位在前,高位在后,數(shù)據位長度一般為510位,常見為8位。(3)奇偶校驗位:用于校驗數(shù)據的正確性,可用奇校驗,或偶校驗。(4)停止位:用于向接收端表示一幀信息已經發(fā)送完畢,長度一般為12位。(5)空閑位:空閑位一般用高電平表示,用于通知接受端等待數(shù)據傳輸。圖一.串行通信數(shù)據格式2 波特率:在異步通信(收發(fā)設備各自使用自己的時鐘)中,除了規(guī)定好數(shù)據傳輸格式外,還要有規(guī)定好的波特率:1波特=1bps
2、(位/秒)在系統(tǒng)設計中,需根據通信需求選擇波特率:例,設計的數(shù)據傳輸率為300字節(jié)每秒,而每幀數(shù)據長度為11位,需要的波特率如下:300幀/秒*11位/幀=3300位/秒=3300bps3 RS232接口設計:1. RS232接口定義:(1)載波檢測(DCD)(2)接受數(shù)據(RXD) (3)發(fā)出數(shù)據(TXD) (4)數(shù)據終端準備好(DTR) (5)信號地線(SG) (6)數(shù)據準備好(DSR)(7)請求發(fā)送(RTS)(8)清除發(fā)送(CTS)(9)振鈴指示(RI)2. RS232接口針腳: 圖二. RS232接頭針腳定義4 51的串行口通信:1. 串行口控制寄存器SCON(98H):(1) SM0
3、,SM1:用于設置串口的工作方式,進行工作方式的選擇;(2) SM2:多機通信控制位,應用于方式2與方式3中;l 在方式0中,SM2應為0;l 在方式1處于接收時,若SM2=1,則只有收到有效的停止位后,RI置1;l 在方式2,3處于接收方式時:SM2=0,收到RB8(0或1)既可使收到的數(shù)據進入SBUF,也可以激活RI。SM2=1,收到的RB80時,收到的信息丟棄,不激活RI ;若收到的RB81時,收到的數(shù)據進入SBUF,并激活RI,進而在中斷服務中將數(shù)據從SBUF讀走。(3) REN:允許串行接收位;REN=0,禁止串行接收;REN=1,允許串行接收。(4) TB8:在方式2,3中,是發(fā)送
4、機要發(fā)送的第九位數(shù)據;l 可做奇偶校驗位,由軟件置位或復位。l 在多機通信中,可作為區(qū)別地址幀或數(shù)據幀的標識位,一般約定地址幀時,TB8為1,數(shù)據幀時,TB8為0。(5) RB8: 在方式2,3中,接收來自發(fā)送機的第9位數(shù)據(TB8);(6) TI:發(fā)送中斷標志,發(fā)送一幀結束,TI=1,必須軟件清零;(7) RI:接收中斷標志,接收一幀結束,RI=1,必須軟件清零。2. 電源功能寄存器PCON(87H):SMOD,波特率倍增位,在方式1、2、3時,波特率與SMOD有關:l SMOD=1時,波特率提高一倍;l 復位時,SMOD=0。3. 串行口的四種工作方式:(1) 方式0:8位同步移位寄存器(
5、用于I/O擴展);為同步工作方式,不能用于雙機通信,只能與外界的同步移位寄存器配套進行工作;如果想進行異步串行通信,只能使用方式1,2,3進行。使用方式0實現(xiàn)數(shù)據的移位輸入輸出時,實際上是把串行口變成為并行口使用。串行口作為并行輸出口使用時,要有“串入并出”的移位寄存器(例如 CD4094或74LS164、74HC164等)配合。l 一幀8位,無起、停位。l RXD:數(shù)據輸入/輸出端。 l TXD:同步脈沖輸出端,每個脈沖對應一個數(shù)據位。l 波特率B = fosc/12,如:fosc=12MHz,B=1MHz,每位數(shù)據1微秒。l 發(fā)送過程:寫入SBUF(啟動發(fā)送),一幀發(fā)送完,TI=1。l 接
6、收過程:REN=1且RI=0,啟動接收,一幀接收完,RI=1。方式0發(fā)送時序方式0接收時序 圖三 方式0串口通信電路連接(2) 方式1: 10位數(shù)據的異步通信l 一幀10位:起位+8位數(shù)據位+停位。l 波特率:用T1作波特率發(fā)生器,B=(2SMOD/32)×T1溢出率。l 發(fā)送:寫入SBUF(啟動發(fā)送),一幀發(fā)送完,TI=1。l 接收:REN=1,RI=0且停止位為1 (或SM2=0),將接收數(shù)據裝入SBUF,停止位裝入RB8,并使RI=1;否則丟棄接收數(shù)據,不置位RI。圖四 方式1傳輸數(shù)據幀格式方式1 發(fā)送數(shù)據幀時序方式1 接收數(shù)據幀時序(3) 方式2 ,3 :11位數(shù)據的異步通訊
7、l 一幀11位:起位+9位數(shù)據位+停位。l 第9位數(shù)據位在TB8/RB8中,常作校驗位或多機通訊標識位l 波特率: 方式2:B=(2SMOD/64)×fosc 。 方式3:B=(2SMOD/32)×T1溢出率 l 發(fā)送:先填寫TB8,寫入SBUF(啟動發(fā)送),發(fā)送完TI=1。l 接收:REN=1,RI=0且第9位為1 (或SM2=0),將接收數(shù)據裝入SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數(shù)據,不置位RI。圖五 方式2,3傳輸數(shù)據幀格式方式2,3發(fā)送數(shù)據幀時序方式2,3接收數(shù)據幀時序4. 波特率的計算:5. 串口初始化的具體步驟:(1) 串口初始化的一般步驟包括
8、:l 確定T1的工作方式(編程TMOD寄存器);l 計算T1的初值,裝載TH1、TL1;l 啟動T1(編程TCON中的TR1位);l 確定串行口控制(編程SCON寄存器);l 串行口在中斷方式工作時,還要進行中斷設置(編程IE、IP寄存器)。6. 51串口通信相關例程:(1) 串口初始化,晶振為11.0592M,方式1,波特率30057600。void InitCom(unsigned char BaudRate)unsigned char THTL;switch (BaudRate)case 1: THTL = 64; break; /波特率300case 2: THTL = 160; br
9、eak; /600case 3: THTL = 208; break; /1200case 4: THTL = 232; break; /2400case 5: THTL = 244; break; /4800case 6: THTL = 250; break; /9600case 7: THTL = 253; break; /19200case 8: THTL = 255; break; /57600default: THTL = 208;SCON = 0x50; /串口方式1,允許接收TMOD = 0x20; /定時器1定時方式2TCON = 0x40; /設定時器1開始計數(shù)TH1 = T
10、HTL;TL1 = THTL;PCON = 0x80; /波特率加倍控制,SMOD位RI = 0; /清收發(fā)標志TI = 0;TR1 = 1; /啟動定時器(2)向串口輸出一個字符(非中斷方式)void ComOutChar(unsigned char OutData)SBUF = OutData; /輸出字符while(!TI); /空語句判斷字符是否發(fā)完TI = 0; /清TI(3)向串口輸出一個字符串(非中斷方式)void ComOutStr(unsigned char *Str)while(*Str != 0x00) /判斷是否到了字符串的尾部SBUF = *Str; /輸出字符whi
11、le(!TI); /空語句判斷字符是否發(fā)完TI = 0; /清TIStr+; /字符串指針加一(4)從串口接收一個字符(非中斷方式)unsigned char ComInChar()unsigned char InData;while(!RI); /空語句判斷字符是否收完InData = SBUF; /保存COM緩沖字符RI = 0; /清RIreturn (InData); /返回收到的字符(5)從串口接收一個定長字符串(非中斷方式,只用于字符需有一個的idata字符串數(shù)組)/如unsigned char *Str;/unsigned char i="abcd"/InHa
12、ndStr = &i;void ComInStr(unsigned char *Str)while(*Str != 0x00) /判斷是否到了字符串的尾部while(!RI); /空語句判斷字符是否收完*Str = SBUF; /保存字符RI = 0; /清RIStr+; /字符串指針加一(6)向串口輸出一個回車換行void ComOutEnter(void)SBUF = 0x00;while(!TI);TI = 0;SBUF = 0x0A;while(!TI);TI = 0;7. 51串口通信初始化程序自動生成(自動生成初始化程序,復制即可):(1) 下載鏈接:(2) 軟件運行界面:
13、8. 串口工作在工作方式0例程:(1)電路原理圖:基本電路有51單片機和74LS164組成,51的RXD接164的AB管腳,TXD接164的CLK管腳,P32接164的CLEAR管腳。電路實現(xiàn)的功能是51通過串口發(fā)送0至255的數(shù)值,164通過譯碼,將收到的數(shù)值并行通過LED進行輸出?;?1的串口工作方式0,也僅用于如下的這種工作方式。(2)驅動程序:#include"reg51.h"#define uchar unsigned charsbit P32=P32;void Mode0_init();void Mode0_work();void delay();void main()Mode0_init();Mode0_work();void Mode0_init()SCON=0x00; /SM0,SM1都為0,設定串口工作方式為0ES=0; /禁止串口中斷P32=0; /P20的設置及輸出時序是為了對74LS164進行寄存器清零P32=1;void Mode0_wo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家禽孵化廠管理制度
- 弱電井施工管理制度
- 律師所案件管理制度
- 德克士庫存管理制度
- 快遞pda管理制度
- 快餐分餐間管理制度
- 總決算編制管理制度
- 總經辦規(guī)章管理制度
- 慈善會印章管理制度
- 成品庫盤點管理制度
- 流行病學傳染病流行病學幻燈片
- 藥物配伍禁忌查詢表
- 水 泵 安 裝 記 錄
- 參加培訓人員匯總表
- 0720小罐茶品牌介紹
- 常州市機械行業(yè)安管考試題庫
- 手術記錄-頸胸椎前后路脫位c7t
- PPT模板:小學生防溺水安全教育主題班會08課件(45頁PPT)
- 如何當好副職
- GB∕T 10544-2022 橡膠軟管及軟管組合件 油基或水基流體適用的鋼絲纏繞增強外覆橡膠液壓型 規(guī)范
- 低血糖的急救護理PPT課件
評論
0/150
提交評論