<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 串行口通信原理及操作流程

          串行口通信原理及操作流程

          作者: 時間:2016-12-01 來源:網絡 收藏
          51單片機的串行口是一個可編程全雙工的通信接口,具有UART(通用異步收發(fā)器)的全部功能,能同時進行數據的發(fā)送和接收,也可以作為同步移位寄存器使用。

          51單片機的串行口主要由兩個獨立的串行數據緩沖寄存器SBUF(發(fā)送緩沖寄存器和接收緩沖寄存器)和發(fā)送控制器、接收控制器、輸入移位寄存器及若干控制門電路組成。

          本文引用地址:http://www.ex-cimer.com/article/201612/324175.htm

          51 單片機可以通過特殊功能寄存器SBUF隊串行接收或串行發(fā)送寄存器進行訪問,兩個寄存器共用一個地址99H,但在物理上是兩個獨立的寄存器,由指令操作決定訪問哪一個寄存器。執(zhí)行寫指令時訪問串行發(fā)送寄存器;執(zhí)行讀指令時,訪問串行接收寄存器。(接收器具有雙緩沖結構,即在接收寄存器中讀出前一個已接收到的字節(jié)之前,便能接收第二個字節(jié),如果第二個字節(jié)已接收完畢,而第一個字節(jié)還沒有讀出,則將丟失其中一個字節(jié),編程時應引起注意。對于發(fā)送器,因為是由 cpu控制的,所以不需要考慮。

          與串行口緊密相關的一個特殊功能寄存器是串行口控制寄存器SCON,它用來設定串行口的工作方式、接收/發(fā)送控制以及狀態(tài)標志等。

          串行口控制寄存器SCON

          串行口控制寄存器SCON在特殊功能寄存器中,字節(jié)地址為98H,可位尋址,單片機復位時SCON全部被清零。

          位序號

          D7

          D6

          D5

          D4

          D3

          D2

          D1

          D0

          位符號

          SM0

          SM1

          SM2

          REN

          TB8

          RB8

          T1

          R1

          SM0,SM1為工作方式選擇位。串行口有四種工作方式,它們由SM0、SM1設定。其中方式一最為常用。

          SM2為多機通信控制位。

          REN為允許串行接收位。

          TB8為方式2、3中方式數據的第九位。

          RB8為方式2、2中接收數據的第九位。

          TI為發(fā)送中斷標志位,在方式0時,當串行發(fā)送第8位數據結束時,或在其他方式,串行發(fā)送停止位的開始時,由內部硬件使TI置一,向CPU發(fā)出中斷申請。在中斷服務程序中,必須使用軟件將其清零,取消此中斷申請。

          RI為接收中斷標志位。在方式0時,當串行接收第8位數據結束時,或在其他方式,串行接收停止位的中間時,由內部硬件使RI置一,向CPU發(fā)出中斷申請。在中斷服務程序中,必須使用軟件將其清零,取消此中斷申請。

          串口工作方式1簡介(0、2、3以后再說),串行口方式傳送1幀數據共10位,其中一位起始位(0),八位數據位(最低位在前,高位在后),一位停止位(1)。幀與幀之間可以有空閑,也可以無空閑。TXD(P3.1)位數據發(fā)送引腳,RXD(P3.0)為數據接收引腳。其傳輸波特率是可變的,對于51單片機,波特率由定時器1的溢出率決定。

          串行口方式1編程與實現

          當數據被寫入SBUF寄存器后,單片機自動開始從起始位發(fā)送數據,發(fā)送到停止位的開始時,由內部硬件使TI置1,向CPU申請中斷,接下來可在中斷服務程序中做相應的處理,也可選擇不進入中斷。

          用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數據從移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當 RI=0,且SM2=0(或接收到的停止位為1時),將接收到的9位數據的前8位數據裝入接收SBUF,第9位(停止位)進入RB8,并置RI=1,向 CPU請求中斷。


          上一頁 1 2 下一頁

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();