單片機原理與接口技術.ppt_第1頁
單片機原理與接口技術.ppt_第2頁
單片機原理與接口技術.ppt_第3頁
單片機原理與接口技術.ppt_第4頁
單片機原理與接口技術.ppt_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第6章,單片機原理與接口技術,第6章 串行通信,本章要點,異步通信和同步通信 串行通信波特率 串行通信的制式 串行通信的校驗 串行口特殊功能寄存器 串行工作方式,串行通信優(yōu)點:便于長距離傳送 缺點:傳送速度較慢,計算機與外界信息交換稱為通信。,通信的基本方式可分為并行通信和串行通信:,并行通信是數(shù)據(jù)的各位同時發(fā)送或同時接收;,串行通信是數(shù)據(jù)的各位依次逐位發(fā)送或接收。,并行通信優(yōu)點:傳送速度快 缺點:不便長距離傳送,異步通信對硬件要求較低,實現(xiàn)起來比較簡單、靈活,適用于數(shù)據(jù)的隨機發(fā)送/接收,但因每個字節(jié)都要建立一次同步,即每個字符都要額外附加兩位,所以工作速度較低,在單片機中主要采用異步通信方式

2、。,6-1 串行通信概述,一、異步通信和同步通信,串行通信按同步方式可分為異步通信和同步通信。,1、異步通信,異步通信依靠起始位、停止位保持通信同步。,異步通信數(shù)據(jù)傳送按幀傳輸,一幀數(shù)據(jù)包含起始位、數(shù)據(jù)位、校驗位和停止位。,幀格式,一個字符由四部分組成:起始位、數(shù)據(jù)位、奇偶校驗位和停止位。,停止位(1)停止位用來表征字符的結束。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已傳送完畢,同步通信傳輸速度較快,但要求有準確的時鐘來實現(xiàn)收發(fā)雙方的嚴格同步,對硬件要求較高,適用于成批數(shù)據(jù)傳送。,2、 同步通信,同步通信依靠同步字符保持通信同步。,同步通信是由12個同步字符和多字節(jié)數(shù)

3、據(jù)位組成,同步字符作為起始位以觸發(fā)同步時鐘開始發(fā)送或接收數(shù)據(jù);多字節(jié)數(shù)據(jù)之間不允許有空隙,每位占用的時間相等;空閑位需發(fā)送同步字符。,波特率的倒數(shù)即為每位傳輸所需的時間。 相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。,二、串行通信波特率,波特率bps(bit per second)定義: 每秒傳輸數(shù)據(jù)的位數(shù),即:,1波特 = 1位/秒(1bps),三、串行通信的制式,串行通信按照數(shù)據(jù)傳送方向可分為三種制式:,單工制式是指甲乙雙方通信時只能單向傳送數(shù)據(jù),發(fā)送方和接收方固定。,1、單工制式(Simplex),半雙工制式是指通信雙方都具有發(fā)送器和接收器,既可發(fā)送也可接收,

4、但不能同時接收和發(fā)送,發(fā)送時不能接收,接收時不能發(fā)送。,2、半雙工制式(Half Duplex),全雙工制式是指通信雙方均設有發(fā)送器和接收器,并且信道劃分為發(fā)送信道和接收信道,因此全雙工制式可實現(xiàn)甲乙雙方同時發(fā)送和接收數(shù)據(jù),發(fā)送時能接收,接收時也能發(fā)送。,3、全雙工制式(Full Duplex),四、串行通信的校驗,3、循環(huán)冗余碼校驗 (Cyclic Redundancy Check,簡稱CRC),1、奇偶校驗,2、累加和校驗,80C51系列單片機有一個全雙工的串行口,這個口既可以用于網絡通信,也可以實現(xiàn)串行異步通信,還可以作為同步移位寄存器使用。,6-2 80C51串行口,發(fā)送時,只需將發(fā)送

5、數(shù)據(jù)輸入SBUF,CPU將自動啟動和完成串行數(shù)據(jù)的發(fā)送; 接收時,CPU將自動把接收到的數(shù)據(jù)存入SBUF,用戶只需從SBUF中讀出接收數(shù)據(jù)。,一、串行口特殊功能寄存器,1、串行數(shù)據(jù)緩沖器SBUF,在邏輯上只有一個,既表示發(fā)送寄存器,又表示接收寄存器,具有同一個單元地址99H,用同一寄存器名SBUF。 在物理上有兩個,一個是發(fā)送緩沖寄存器,只能寫;另一個是接收緩沖寄存器;只能讀。,2、串行控制寄存器SCON,3、電源控制寄存器PCON, SM0 SM1 串行口工作方式選擇位。 SM2 多機通信控制位。 REN 允許接收控制位。REN=1,允許接收。 TB8 方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。

6、RB8 方式2和方式3中要接收的第9位數(shù)據(jù)。 TI 發(fā)送中斷標志。 RI 接收中斷標志。,SMOD=1,串行口波特率加倍。PCON寄存器不能進行位尋址。,二、串行工作方式 80C51串行通信共有4種工作方式,由串行控制寄存器SCON中SM0 SM1決定。 1、串行工作方式0(同步移位寄存器工作方式) 以RXD(P3.0)端作為數(shù)據(jù)移位的輸入/輸出端, 以TXD(P3.1)端輸出移位脈沖。 移位數(shù)據(jù)的發(fā)送和接收以8位為一幀,不設起始位和停止位,無論輸入/輸出,均低位在前高位在后。 其幀格式為:,方式0可將串行輸入輸出數(shù)據(jù)轉換成并行輸入輸出數(shù)據(jù)。, 數(shù)據(jù)發(fā)送,在移位時鐘脈沖(TXD)的控制下,數(shù)據(jù)

7、從串行口RXD端逐位移入74HC164 SA、SB端。當8位數(shù)據(jù)全部移出后,SCON寄存器的TI位被自動置1。其后74HC164的內容即可并行輸出。74HC164 CLR為清0端,輸出時CLR必須為1,否則74HC164 Q0Q7輸出為0。,串行口作為并行輸出口使用時,要有“串入并出”的移位寄存器配合。如(CD4094或74LS164),(2) 數(shù)據(jù)接收,串行口作為并行輸入口使用時,要有“并入串出”的移位寄存器配合。(如CD4014或74LS165),74HC165 S/L端為移位/置入端,當S/L=0時,從Q0Q7并行置入數(shù)據(jù),當S/L=1時,允許從QH端移出數(shù)據(jù)。在80C51串行控制寄存器

8、SCON中的REN=1時,TXD端發(fā)出移位時鐘脈沖,從RXD端串行輸入8位數(shù)據(jù)。當接收到第8位數(shù)據(jù)D7后,置位中斷標志RI,表示一幀數(shù)據(jù)接收完成。, 波特率 方式0 波特率固定,為單片機晶振頻率的十二分之一。 應用舉例 【例6-1】電路如圖所示,試編制程序按下列順序要求每隔0.5秒循環(huán)操作。, 從右向左依次點亮,每次亮一個; 從左向右依次點亮,每次增加一個,直至全部點亮; 返回從不斷循環(huán)。, 8個發(fā)光二極管全部點亮;, 從左向右依次暗滅,每次減少一個,直至全滅;, 從左向右依次點亮, 每次亮一個;,解:編程如下:,LIGHT:MOV SCON,#00H ;串行口方式0 CLR ES ;禁止串行

9、中斷 MOV DPTR,#TAB ;置發(fā)光二極管亮暗控制字表首址 LP1: MOV R7,#0 ;置順序編號0 LP2: MOV A,R7 ;讀順序編號 MOVC A,A+DPTR ;讀控制字 CLR P1.0 ;關閉并行輸出 MOV SBUF,A ;啟動串行發(fā)送 JNB TI,$ ;等待發(fā)送完畢 CLR TI ;清發(fā)送中斷標志 SETB P1.0 ;開啟并行輸出 LCALL DLY500ms ;調用延時0.5秒子程序(參閱例4-13) INC R7 ;指向下一控制字 CJNE R7,#30,LP2 ;判循環(huán)操作完否?未完繼續(xù) SJMP LP1 ;順序編號029依次操作完畢,從0開始重新循環(huán),

10、TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;從左向右依次暗滅, 每次減少一個,直至全滅; DB 80H,40H,20H,10H,08H,04H,02H,01H;從左向右依次點亮,每次亮一個 DB 02H,04H,08H,10H,20H,40H,80H;從右向左依次點亮,每次亮一個 DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH;從左向右依次點亮, 每次增加一個,直至全部點亮;,【例6-2】電路如圖所示,試編制程序輸入K1K8狀態(tài)數(shù)據(jù),并存入內RAM 40H。,解:編程如下: KIN: MOV SCON,#00H;串行口方式0 CL

11、R ES ;禁止串行中斷 CLR P1.0 ;鎖存并行輸入數(shù)據(jù) SETB P1.0 ;允許串行移位操作 SETB REN ;允許并啟動接收(TXD發(fā)送移位脈沖) JNB RI,$ ;等待接收完畢 MOV 40H,SBUF ;存入K1K8狀態(tài)數(shù)據(jù) RET ;,2、串行工作方式1 方式1是一幀10位的異步串行通信方式,包括1個起始位,8個數(shù)據(jù)位和一個停止位。 其幀格式為:, 數(shù)據(jù)發(fā)送 發(fā)送時只要將數(shù)據(jù)寫入SBUF,在串行口由硬件自動加入起始位和停止位,構成一個完整的幀格式。然后在移位脈沖的作用下,由TXD端串行輸出。一幀數(shù)據(jù)發(fā)送完畢,將SCON中的TI置1。 數(shù)據(jù)接收 接收時,在REN=1前提下,

12、當采樣到RXD從1向0跳變狀態(tài)時,就認定為已接收到起始位。隨后在移位脈沖的控制下,將串行接收數(shù)據(jù)移入SBUF中。一幀數(shù)據(jù)接收完畢,將SCON中的RI置1,表示可以從SBUF取走接收到的一個字符。,2SMOD,32,fosc,12 波特率,在實際應用時,通常是先確定波特率,后根據(jù)波特率求T1定時初值,因此上式又可寫為:, 波特率,方式1波特率可變,由定時/計數(shù)器T1的計數(shù)溢出率來決定。,波特率 = 2SMOD(T1溢出率)/ 32,其中SMOD為PCON寄存器中最高位的值,SMOD=1表示波特率倍增。T1的溢出率為T1定時時間的倒數(shù)。,T1初值 = 256 , 應用舉例,【例6-3】設甲乙機以串

13、行方式1進行數(shù)據(jù)傳送,fosc=11.0592MHz,波特率為1200b/s。甲機發(fā)送的16個數(shù)據(jù)存在內RAM 40H4FH單元中,乙機接收后存在內RAM 50H為首地址的區(qū)域中。,T1初值 = 256 - = 232 = E8H,32,121200,解:串行方式1波特率取決于T1溢出率(設SMOD=0),計算T1定時初值:,11059200,20,甲機發(fā)送子程序:,MOV TMOD,#20H;置T1定時器工作方式2 MOV TL1,#0E8H;置T1計數(shù)初值 MOV TH1,#0E8H;置T1計數(shù)重裝值 CLR ET1;禁止T1中斷 SETB TR1;T1啟動 MOV SCON,#40H;置

14、串行方式1,禁止接收 MOV PCON,#00H;置SMOD=0(SMOD不能位操作) CLR ES;禁止串行中斷 MOV R0,#40H;置發(fā)送數(shù)據(jù)區(qū)首地址 MOV R2,#16;置發(fā)送數(shù)據(jù)長度MOVA,R0;讀一個數(shù)據(jù) MOVSBUF,A;發(fā)送 JNBTI,$;等待一幀數(shù)據(jù)發(fā)送完畢 CLRTI;清發(fā)送中斷標志 INCR0;指向下一字節(jié)單元 DJNZR2,TRSA;判16個數(shù)據(jù)發(fā)完否?未完繼續(xù) RET ;,TXDA:,TRSA:,MOV TMOD,#20H;置T1定時器工作方式2 MOV TL1,#0E8H;置T1計數(shù)初值 MOV TH1,#0E8H;置T1計數(shù)重裝值 CLR ET1;禁止T

15、1中斷 SETB TR1;T1啟動 MOV SCON,#40H;置串行方式1,禁止接收 MOV PCON,#00H;置SMOD=0(SMOD不能位操作) CLR ES;禁止串行中斷 MOV R0,#50H;置接收數(shù)據(jù)區(qū)首地址 MOV R2,#16;置接收數(shù)據(jù)長度 SETB REN;啟動接收 JNB RI,$;等待一幀數(shù)據(jù)接收完畢 CLR RI;清接收中斷標志 MOV A,SBUF;讀接收數(shù)據(jù) MOV R0,A;存接收數(shù)據(jù) INC R0;指向下一數(shù)據(jù)存儲單元 DJNZ R2,RDSB;判16個數(shù)據(jù)接收完否?未完繼續(xù) RET ;,乙機接收子程序:,RXDB:,RDSB:,方式2是一幀11位的串行通

16、信方式,即1個起始位,8個數(shù)據(jù)位,1個可編程位TB8/RB8和1個停止位, 其幀格式為:,3、 串行工作方式2,波特率=2SMOD fosc/64,可編程位TB8/RB8既可作奇偶校驗位用,也可作控制位(多機通信)用,其功能由用戶確定。,數(shù)據(jù)發(fā)送和接收與方式1基本相同,區(qū)別在于方式2把發(fā)送/接收到的第9位內容送入TB8/RB8。,波特率:方式2波特率固定,即fosc/32和fosc/64。 如用公式表示則為:,【例6-4】 設計一個串行方式2發(fā)送子程序(SMOD=1),將片內RAM 50H5FH中的數(shù)據(jù)串行發(fā)送,第9數(shù)據(jù)位作為奇偶校驗位。接到接收方核對正確的回復信號(用FFH表示)后,再發(fā)送下

17、一字節(jié)數(shù)據(jù),否則再重發(fā)一遍。,解:程序如下:,MOV A,R0 ;讀數(shù)據(jù) MOV C,PSW.0 ;奇偶標志送TB8 MOV TB8,C ; MOV SBUF,A ;啟動發(fā)送 JNB TI,$ ;等待一幀數(shù)據(jù)發(fā)送完畢 CLR TI ;清發(fā)送中斷標志 SETB REN ;允許接收 CLR RI ;清接收中斷標志 JNB RI,$ ;等待接收回復信號 MOV A,SBUF ;讀回復信號 CPL A ;回復信號取反 JNZ TRLP ;非全0(回復信號FFH,錯誤),轉重發(fā) INC R0 ;全0(回復信號=FFH,正確), 指向下一數(shù)據(jù)存儲單元 CJNE R0,#60H,TRLP ;判16個數(shù)據(jù)發(fā)送

18、完否?未完繼續(xù) RET ;,TRLP:,MOV SCON,#80H ;置串行方式2,禁止接收 MOV PCON,#80H ;置SMOD=1 MOV R0,#50H;置發(fā)送數(shù)據(jù)區(qū)首址,TRS2:,【例6-5】 編制一個串行方式2接收子程序,接收上例發(fā)送的16個數(shù)據(jù),存首址為40H的內RAM中,并核對奇偶校驗位,接收核對正確,發(fā)出回復信號FFH;發(fā)現(xiàn)錯誤,發(fā)出回復信號00H,并等待重新接收。,RXD2: MOV SCON,#80H ;置串行方式2,禁止接收 MOV PCON,#80H ;置SMOD=1 MOV R0,#40H ;置接收數(shù)據(jù)區(qū)首址 SETB REN ;啟動接收 RWAP: JNB RI,$ ;等待一幀數(shù)據(jù)接收完畢 CLR RI ;清接收中斷標志 MOV A,SBUF ;讀接收數(shù)據(jù),并在PSW中產生接收數(shù)據(jù)的奇偶值 JB PSW.0,ONE ;P=1,轉另判 JB RB8,ERR ;P=0,R

溫馨提示

  • 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

提交評論