串行口通信原理及操作流程_第1頁
串行口通信原理及操作流程_第2頁
串行口通信原理及操作流程_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

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

6、 CPU 請求中斷。在具體操作串口之前需要對單片機(jī)得一些與串口有 關(guān)得特殊功能寄存器進(jìn)行初始化設(shè)置, 主要就是設(shè)置產(chǎn)生 波特率得定時器 1、串行口控制與中斷控制。具體步驟如 下:確定 T1 得工作方式(編程 TMO寄存器)2 、 計算 T1 得初值,載入 TH1、TL13、啟動 T1 (編程 TCON 中得 TR1 位)4、確定串行口工作方式(編程 SCON 寄存器)5 、 串行口工作在中斷方式時,要進(jìn)行中斷設(shè)置(編程IE,IP)/*實(shí)現(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;/ 設(shè)定串口工作方式 1SM1=1;/ 設(shè)定串口工作方式 1EA=1; / 開總中斷ES=1;/ 開串口中斷void main()init();while(1)if(flag=1)ES=0; / 關(guān)閉串口中斷P1=date;SBUF=date;while(!TI);/ 等待串行發(fā)送停止位得開始

溫馨提示

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

評論

0/150

提交評論