《單片機應用技術(匯編語言)(第二版)》課件 項目七 串口通信應用_第1頁
《單片機應用技術(匯編語言)(第二版)》課件 項目七 串口通信應用_第2頁
《單片機應用技術(匯編語言)(第二版)》課件 項目七 串口通信應用_第3頁
《單片機應用技術(匯編語言)(第二版)》課件 項目七 串口通信應用_第4頁
《單片機應用技術(匯編語言)(第二版)》課件 項目七 串口通信應用_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機應用技術(匯編語言)(第二版)全國高級技工學校電氣自動化設備安裝與維修專業(yè)教材243243項目七串口通信應用244244串口通信應用串口是一種應用十分廣泛的通信接口,串口成本低、容易使用、通信線路簡單,可實現兩個設備的互相通信。單片機的串口可以使單片機與單片機、單片機與計算機、單片機與各式各樣的模塊互相通信,互傳數據信息。比如單片機和計算機的串口通信,單片機可以采集一些模擬量(如溫度,濕度,氣體濃度等),將這些模擬量轉換成數字量后通過串口通信接口傳輸給單片機或計算機,單片機或計算機再處理所采集模擬量,本項目以雙機通信為例介紹單片機串口通信應用。圖7-0-1串口連接線a)串口接口b)串口線245245任務雙機通信設計246246學習目標1.能對串口線進行正確連接。2.能編寫串口初始化程序。3.能用中斷或查詢方式接收或發(fā)送數據。4.能編寫串口接收和發(fā)送數據程序。5.會設計簡單的串口通信電路。6.會編寫簡單的串口通信應用程序。247247任務引入在工業(yè)自動化中實時控制和數據處理得到廣泛應用,本任務是采用兩片單片機進行雙機通信,一片單片機作為主機,模擬發(fā)送按鍵控制數據,另一片單片機作為從機,接收主機發(fā)送的控制數據,并根據接收到的數據去控制LED燈閃爍和熄滅。分析任務要求可知,該任務要實現兩塊單片機之間互相通信,可利用單片機串口通信方式,單片機1的P3.0/RXD引腳連接單片機2的P3.1/TXD引腳,單片機1的P3.1/TXD引腳接單片機2的P3.0/RXD引腳,如圖7-1-1所示。圖7-1-1MCS-51系列單片機雙機通信示意圖248248相關知識一、串行通信方式計算機通信是指計算機與外部設備或計算機與計算機之間的信息交換,主要有并行通信和串行通信兩種方式。并行通信是將數據同時通過并行線進行傳送,串行通信是將數據在一條傳輸線上逐個傳送。并行通信傳輸速率較快,但通信距離較短。串行通信傳輸速率較慢,但通信距離遠,抗干擾能力較強。本項目主要介紹串行通信。按數據傳送的方式,串行通信方式分為異步通信和同步通信兩種基本形式。1.異步通信異步通信是指通信的發(fā)送與接收設備使用各自的時鐘控制數據的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調,要求發(fā)送和接收設備的時鐘盡可能一致,異步通信示意圖如圖7-1-2所示。圖7-1-2異步通信示意圖249249相關知識250250一、串行通信方式2.同步通信同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。圖

7-

1

-3

兩種同步方法a)外同步

b)自同步此時,傳輸數據的位之間的距離均為“位間隔”的整數倍,同時傳送的字符間不留間隙,即保持位同步關系,也保持字符同步關系。發(fā)送方對接收方的同步可以通過兩種方法實現,如圖7-1-3所示。相關知識二、串行通信的數據傳輸方式串行通信的數據傳輸方式有單工、半雙工和全雙工三種,如圖7一1一4所示。圖

7

-

1

-

4

串行通行三種數據傳輸方式a)單工

b)半雙工

c)全雙工單工一是指數據只能單向傳輸。半雙工一是指數據能雙向傳輸,但不能同時雙向傳輸。全雙工一是指數據可以同時進行雙向傳輸。251251相關知識三、字符幀和波特率在串行通信中,字符幀格式和波特率是兩個重要的指標,由用戶根據實際情況選定。1.字符幀在串行異步通信中,數據通常以字符(或字節(jié))為單位組成字符幀傳送。字符幀也稱數據幀,由起始位、數據位、奇偶校驗位和停止位4部分組成,其中起始位、數據位和停止位是必需的,而奇偶校驗位可以根據實際要求決定是否采用。串行異步通信的字符幀格式如圖7-1-5所示。各部分的功能和結構如下:(1)起始位。位于字符幀開頭,占1位,始終為邏輯0,用于向接收端表示發(fā)送端開始發(fā)送一幀信息。(2)數據位。緊跟起始位之后,一般為8位,低位(LSB)在前。(3)奇偶校驗位。位于數據位后,占1位,用于表示串行通信中采用奇偶校驗,根據實際需要設定。252252相關知識三、字符幀和波特率1.字符幀圖7-1-5串行異步通信的字符幀格式(4)停止位。位于字符幀末尾,始終為邏輯1,可?。蔽?、1.5位或2位,用于向接收端表示一幀字符信息已發(fā)送完畢,也可為發(fā)送下一幀字符做準備。(5)空閑位。兩個相鄰字符幀之間可以無空閑位,也可以有若干空閑位,根據實際需要設定。253253相關知識三、字符幀和波特率2.波特率波特率是指每秒鐘傳送信號的數量,單位為Baud。波特率是串行通信非常重要的指標,用于表征數據傳輸的速度。波特率越高,數據傳送速度越快。四、MCS-51系列單片機串行接口結構MCS-51系列單片機串行接口結構如圖7-1-6所示,內部是一個全雙工的串行通信接口,它具有通用異步接收器/發(fā)送器的全部功能,能同時進行數據的發(fā)送和接收,也可作為同步移位寄存器使用。254254相關知識四、MCS-51系列單片機串行接口結構圖7-1-6MCS-51系列單片機串行接口結構SBUF是串口緩沖寄存器,發(fā)送數據的SBUF,稱為串口發(fā)送緩沖寄存器。接收數據的SBUF,稱為串口接收緩沖寄存器。波特率由T1溢出率決定。255255相關知識五、MCS-51系列單片機串行口有關的特殊功能寄存器1.串行口控制寄存器SCON與串行口緊密相關的一個特殊功能寄存器是串行口控制寄存器SCON,它用來設定串行口的工作方式、接收/發(fā)送控制以及設置狀態(tài)標志等。串行口控制寄存器SCON位符號見表7-1-1。其中,SM0、SM1是工作方式選擇位,串行口有4種工作方式,它們由SM0,SM1設定,見表7-1-2。256256相關知識五、MCS-51系列單片機串行口有關的特殊功能寄存器1.串行口控制寄存器SCONSM2是多機通信控制位,主要用于方式2和方式3。當串行口工作于方式2或3,以及SM2=1時,只有當接收到第9位數據(RB8)為1時,才把接收到的前8位數據送入SBUF,且置位RI發(fā)出中斷申請,否則會將接收到的數據放棄。當SM2=0時,就不管第9位數據是0還是1,都會將數據送入SBUF,并發(fā)出中斷申請。REN是允許串行接收位。當REN=1時,允許串行口接收數據;當REN=0時,禁止串行口接收數據。該位可以由軟件來設定。TB8是方式2,3中發(fā)送數據的第9位,可作為奇偶校驗位。RB8是方式2,3中接收數據的第9位。257257相關知識五、MCS-51系列單片機串行口有關的特殊功能寄存器1.串行口控制寄存器SCONTI是發(fā)送中斷標志位。在方式0中,發(fā)送完第8位數據時,由硬件自動置位。其他方式中,在發(fā)送停止位之初,由硬件自動置位。TI=1時,申請中斷,CPU響應中斷后,發(fā)送下一幀數據。在任何方式中,TI都必須由軟件先清零。RI是接收中斷標志位。在方式0中,接收到第8位結束時置1。其他方式中,接收到停止位時置1,要求CPU取走數據。在任何方式中,都必須由軟件清0。在系統(tǒng)復位時,SCON中的所有位都被清0。258258相關知識五、MCS-51系列單片機串行口有關的特殊功能寄存器1.串行口控制寄存器SCON【例】設置串口工作在方式1。SCON只需要將SM0和SM1設置為0和1即可,其他位可以全部置0,見表7-1-3。SCON設置語句如下:或者也可以用位設置語句:259259相關知識五、MCS-51系列單片機串行口有關的特殊功能寄存器2.電源管理寄存器PCONPCON用來管理單片機的電源部分,包括上電復位檢測、掉電模式、空閑模式等,PCON中只有一位SMOD與串行口工作有關。單片機復位時,PCON全部被清0。電源管理寄存器PCON位符號見表7-1-4。SMOD與串行口通信波特率有關。當SMOD=0時,串口方式為1、2、3時,波特率正常。當SMOD=1時,串口方式為1、2、3時,波特率加倍。260260相關知識六、波特率與定時器初值在串行通信中,收、發(fā)雙方對發(fā)送或接收數據的速率要有約定。通過偏程可對單片機串行口設定4種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。由于移入的移位時鐘的來源不同,所以每種方式的波特率計算公式也不相同,以下是4種工作方式波特率的計算公式。方式0的波特率=fosc/12方式1的波特率=(2SMOD/32)×(T1溢出率)方式2波特率=(2SMOD/64)×fosc方式3的波特率=(2SMOD/32)×(T1溢出率)式中,fosc為系統(tǒng)晶振頻率,通常為12MHz或11.0592MHz;SMOD是PCON寄存器的最高位;T1溢出率即定時器T1溢出的頻率。261261相關知識六、波特率與定時器初值表7-1-5列出了串口方式1,定時器T1方式2產生常用波特率時,TL1和TH1中所裝入的初值。262262相關知識六、波特率與定時器初值實際使用中,一般用51波特率計算器自動計算,如圖7-1-7所示波特率計算器,在晶振參數設定為11.0592MHz后,選擇波特率,如9600Baud,點擊計算自動列出標準波特率對應的定時器T1初始值為FD。圖7-1-7波特率計算器263263相關知識七、UART使用步驟1.設置串口工作模式S

C

O

N

S

M

0=

0,S

M

1

=

1

使其工作于模式1,當

R

E

N

=

1

時能接收。2.根據波特率計算公式設置波特率(方式0除外)注意,需要使定時器T1工作于自動重裝模式。使用定時器T

2

(

M

C

S

-

5

2系列單片機)可以達到較高的波特率。3.被特率是否需要倍速(方式0除外)如果使用定時器TI做波特率發(fā)生器且倍速后方能滿足波特率要求,則需要MOVPCON,#80H。PCON不影響定時器T2產生的波特率。264264相關知識七、UART使用步驟4.串口中斷串口發(fā)送一般會采用查詢方式,串口接收一般采用中斷模式。ES=1時可以打開串口中斷,隨后當EA=1時打開全局中斷。注意,要寫好中斷服務函數,而且51單片機的串口收發(fā)中斷共用,因此中斷服務函數中需要判斷I與的值。中斷向量標號是4.5.寫入/讀取數據向

S

B

溫馨提示

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

評論

0/150

提交評論