串行口通信功能_第1頁
串行口通信功能_第2頁
串行口通信功能_第3頁
串行口通信功能_第4頁
串行口通信功能_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、AT89S51的串行口通信功能,課題八,本次課的目標,學習完本課題后,您將能夠: 清楚串行通信基礎中的通信分類和通信制式。 清楚AT89S51單片機如何實現(xiàn)串行通信功能。 初步具備使用串行通信功能來解決實際問題的能力。 初步具備使用串行口中斷功能來解決實際問題的能力。,1/15,本次課講解內容,一. 串行通信基礎 二. AT89S51的串行通信功能 三. AT89S51串行口的工作方式 四. AT89S51的串行口中斷源 五. AT89S51串行口中斷的應用步驟,2/15,一. 串行通信基礎,1串行通信的分類,3/15,同步通信: 數(shù)據(jù)傳送在雙方同步脈沖的控制下進行,雙方時鐘源需同步。,異步通

2、信: 數(shù)據(jù)傳送以字符幀格式進行傳送,雙方時鐘源彼此獨立。,2異步通信字符幀,字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、校驗位、停止位四部分組成。,起始位: 位于字符幀開頭,只占1位。,數(shù)據(jù)位: 緊跟起始位之后,低位在前高位在后。,校驗位: 數(shù)據(jù)位之后,占用1位,用于串行通信數(shù)據(jù)的奇校驗或偶校驗。,停止位: 位于字符幀末尾,表示該幀信息傳遞完畢。,3異步通信的波特率,4/15,波特率的定義為每秒鐘傳送二進制數(shù)碼的個數(shù),單位是bps,即 位/秒。,用波特率來反映數(shù)據(jù)傳輸?shù)乃俣?,波特率越高,幀?shù)據(jù)傳輸速度越快。,4串行通信的制式,半雙工制式: 通信數(shù)據(jù)從A站到B站或從B站到A站,雙方不能同時收發(fā)。,全雙工

3、制式: 通信數(shù)據(jù)在A站和B站間可以同時發(fā)送和接收。,二. AT89S51的串行通信功能,1AT89S51的內部串行通信接口,5/15,AT89S51內部含有一個全雙工串行通信接口,由串行口控制寄存器SCON、發(fā)送和接收電路、串行數(shù)據(jù)緩沖寄存器SBUF組成。,發(fā)送與接收的SBUF在物理上獨立存在,在使用上同名,單片機僅靠指令區(qū)分。,發(fā)送串行數(shù)據(jù)使用 MOV SBUF , A ;這里的SBUF是發(fā)送緩沖寄存器SBUF。在C語言中,向SBUF中寫入數(shù)據(jù)就是串行口發(fā)送。,接收串行數(shù)據(jù)使用 MOV A , SBUF ;這里的SBUF是接收緩沖寄存器SBUF 。在C語言中,向讀取SBUF中數(shù)據(jù)就是串行口接

4、收。,2AT89S51的外部串行通信引腳,6/15,串行數(shù)據(jù)接收端RXD P3.0(10號引腳)。,串行數(shù)據(jù)發(fā)送端TXD P3.1(11號引腳)。,3AT89S51的波特率發(fā)生器,固定波特率由晶振分頻產生。,可變波特率由T1定時器溢出頻分頻產生。,具體波特率大小由SCON中方式位和相關的傳遞參數(shù)決定。,4串行口控制寄存器SCON,SCON寄存器,7/15,特點: 8位、可位尋址、復位后內容為00H;,作用: 設置串行口的工作方式,提供串行口工作的標志位;,SM0、SM1: 串行口四種工作方式設置位; SM2: 多機通信位。SM2=0,單機對單機通信;SM2=1,多機通信; REN: 接收允許控

5、制位。REN=0,禁止接收;REN=1,允許接收; TB8: 發(fā)送數(shù)據(jù)第9位; RB8: 發(fā)送數(shù)據(jù)第9位; TI: 發(fā)送中斷標志位; RI: 接收中斷標志位;,8/15,串行數(shù)據(jù)緩沖寄存器SBUF,特點: 8位、復位后內容不確定;,作用: 做串行數(shù)據(jù)發(fā)送接受緩沖區(qū),完成串行數(shù)據(jù)的發(fā)送和接收功能。,三. AT89S51串行口的工作方式,1方式0,9/15,將SCON中的SM0 SM1設置成00即可。(SM2、TB8、RB8不起作用,設為0),方式0下,串行口是作為同步的移位寄存器來使用,波特率為機器周期。(fosc/12),RXD(10引腳)上發(fā)送8位數(shù)據(jù),TXD(11引腳)上發(fā)送同步脈沖。,發(fā)

6、送數(shù)據(jù)在TI=0下通過向SBUF寫入數(shù)據(jù)來完成。,接收數(shù)據(jù)在RI=0且REN=1下來啟動的。,2方式1,10/15,將SCON中的SM0 SM1設置成01即可。(SM2、TB8、RB8不起作用,設為0),方式1下,串行口是作10位異步收發(fā)通信,波特率為T1溢出頻率的1/32。,RXD(10引腳)上接收10位數(shù)據(jù)幀,TXD(11引腳)上發(fā)送10位數(shù)據(jù)幀。,發(fā)送數(shù)據(jù)在TI=0下通過向SBUF寫入數(shù)據(jù)來完成。,接收數(shù)據(jù)在RI=0且REN=1下來啟動的。,3方式2,11/15,將SCON中的SM0 SM1設置成10即可。,11位異步收發(fā),波特率為fosc/64。,4方式3,將SCON中的SM0 SM1

7、設置成11即可。,11位異步收發(fā),波特率為T1溢出頻率的1/32。,四AT89S51的串行口中斷源,12/15,接收中斷標志RI,中斷矢量0023H,編號4;,發(fā)送中斷標志TI,中斷矢量0023H,編號4;,一幀數(shù)據(jù)發(fā)送完畢會使TI自動置1,向CPU提出發(fā)送中斷申請;,一幀數(shù)據(jù)接收完畢會使RI自動置1,向CPU提出接收中斷申請;,AT89S51單片機響應串行口中斷請求后不會將中斷標志位清0,在使用中必須人工將RI、TI標志清0,否則串行口將不能接收和發(fā)送數(shù)據(jù)幀。,五AT89S51串行口中斷的應用步驟,13/15,1設置外部中斷請求允許位,設置IE寄存器中的EA、ES; 2根據(jù)需要設置SCON寄存器,確定串行口的工作方式并初始化標志位; 3波特率與T1有關則設置TMOD寄存器,設定T1的工作方式; 4推算出對應波特率T1寄存器的初值,傳遞到T1; 5啟動T1定時器,T1便成為了波特率發(fā)生器; 6將電源控制寄存器PCON最高位SMOD設置成1,單片機系統(tǒng)的波特率將翻一倍; 7編寫中斷處理子函數(shù), 中斷編號是4;,本課題的要求,本課題教學完成后,初學者必須做到: 正確理解串行異步通信中字符幀格式和波特率兩個重要通信指標。 正確理解串行通信中單工、半雙工、全雙

溫馨提示

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

評論

0/150

提交評論