串行口通信原理及操作流程_第1頁
串行口通信原理及操作流程_第2頁
串行口通信原理及操作流程_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、串行口通信原理及操作流程51 單片機得串行口就是一個可編程全雙工得通信接 口,具有UART(通用異步收發(fā)器)得全部功能,能同時 進行數(shù)據得發(fā)送與接收,也可以作為同步移位寄存器使 用。51 單片機得串行口主要由兩個獨立得串行數(shù)據緩沖 寄存器SBUF(發(fā)送緩沖寄存器與接收緩沖寄存器)與發(fā) 送控制器、接收控制器、 輸入移位寄存器及若干控制門電 路組成。51 單片機可以通過特殊功能寄存器 SBUF 隊串行接 收或串行發(fā)送寄存器進行訪問, 兩個寄存器共用一個地址 99H,但在物理上就是兩個獨立得寄存器,由指令操作決 定訪問哪一個寄存器。執(zhí)行寫指令時訪問串行發(fā)送寄存 器;執(zhí)行讀指令時,訪問串行接收寄存器。

2、 (接收器具有 雙緩沖結構, 即在接收寄存器中讀出前一個已接收到得字 節(jié)之前, 便能接收第二個字節(jié),如果第二個字節(jié)已接收完 畢,而第一個字節(jié)還沒有讀出,則將丟失其中一個字節(jié), 編程時應引起注意。對于發(fā)送器,因為就是由 cpu 控制 得,所以不需要考慮。與串行口緊密相關得一個特殊功能寄存器就是串行 口控制寄存器SCON它用來設定串行口得工作方式、接 收 / 發(fā)送控制以及狀態(tài)標志等。串行口控制寄存器 scoN串行口控制寄存器 SCON 在特殊功能寄存器中,字節(jié) 地址為 98H,可位尋址,單片機復位時 SCOF 全部被清零位序號D7D6D5D4D3D2D1D0位符號SM0SM1SM2RENTB8RB

3、8T1R1SM0,SM1 為工作方式選擇位。串行口有四種工作方式,它們由 SM0 SM1 設定。其中方式一最為常用。SM2 為多機通信控制位。REN 為允許串行接收位。TB8 為方式 2、3 中方式數(shù)據得第九位。RB8 為方式 2、2 中接收數(shù)據得第九位。TI 為發(fā)送中斷標志位, 在方式 0 時,當串行發(fā)送第 8 位數(shù)據結束時, 或在其她方式, 串行發(fā)送停止位得開始時, 由內部硬件使 TI 置一,向 CPU 發(fā)出中斷申請。在中斷服 務程序中,必須使用軟件將其清零,取消此中斷申請。RI 為接收中斷標志位。 在方式 0 時,當串行接收第 8 位數(shù)據結束時, 或在其她方式, 串行接收停止位得中間時,

4、 由內部硬件使 RI 置一,向 CPU 發(fā)出中斷申請。在中斷服 務程序中,必須使用軟件將其清零,取消此中斷申請。串口工作方式 1 簡介( 0、 2、3 以后再說),串行口 方式傳送 1 幀數(shù)據共 10 位,其中一位起始位( 0),八位 數(shù)據位(最低位在前,高位在后),一位停止位( 1 )。 幀與幀之間可以有空閑,也可以無空閑。TXD( P3、1 )位數(shù)據發(fā)送引腳,RXD( P3、0)為數(shù)據接收引腳。其傳輸波 特率就是可變得,對于 51 單片機,波特率由定時器 1 得 溢出率決定。串行口方式 1 編程與實現(xiàn)當數(shù)據被寫入 SBUF 寄存器后,單片機自動開始從起 始位發(fā)送數(shù)據, 發(fā)送到停止位得開始時

5、, 由內部硬件使 TI置 1,向CPU申請中斷,接下來可在中斷服務程序中做 相應得處理,也可選擇不進入中斷。用軟件置 REN 為 1 時,接收器以所選擇波特率得 16 倍速率采樣 RXD 引腳電平,檢測到 RXD 引腳輸入電平發(fā)生 負跳變時,則說明起始位有效, 將其移入輸入移位寄存器, 并開始接收這一幀信息得其余位。 接收過程中, 數(shù)據從移 位寄存器右邊移入,起始位移至輸入移位寄存器最左邊 時, 控制電路進行最后一次移位。 當 RI=0 ,且 SM2=(0 或 接收到得停止位為 1時),將接收到得 9 位數(shù)據得前 8 位數(shù)據裝入接收 SBUF 第 9位(停止位)進入 RB8 并置 RI=1,向

6、 CPU 請求中斷。在具體操作串口之前需要對單片機得一些與串口有 關得特殊功能寄存器進行初始化設置, 主要就是設置產生 波特率得定時器 1、串行口控制與中斷控制。具體步驟如 下:確定 T1 得工作方式(編程 TMO寄存器)2 、 計算 T1 得初值,載入 TH1、TL13、啟動 T1 (編程 TCON 中得 TR1 位)4、確定串行口工作方式(編程 SCON 寄存器)5 、 串行口工作在中斷方式時,要進行中斷設置(編程IE,IP)/*實現(xiàn)功能:RS232 通信(串口通信)*/#include;#define uint unsigned int#define uchar unsigned char uchar flag;uchar date;void init()TMOD=0X20;/ 定時器 1 工作方式 2TH1=0 xfd;/9600TH0=0 xfd;/9600TR1=1;/ 啟動定時器 1REN=1;/ 允許串口接收SM0=0;/ 設定串口工作方式 1SM1=1;/ 設定串口工作方式 1EA=1; / 開總中斷ES=1;/ 開串口中斷void main()init();while(1)if(flag=1)ES=0; / 關閉串口中斷P1=date;SBUF=date;while(!TI);/ 等待串行發(fā)送停止位得開始

溫馨提示

  • 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

提交評論