單片機串口通信_第1頁
單片機串口通信_第2頁
單片機串口通信_第3頁
單片機串口通信_第4頁
單片機串口通信_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機串口通信第一頁,共三十二頁,2022年,8月28日2.同步方式同步方式僅在開始用若干字符作為同步號令,然后連續(xù)發(fā)送數(shù)據(jù),如圖所示。由于沒有在每一個字符中,配置起始、停止位,所以結構緊湊,傳輸效率高、速度快,其組成如下圖所示:

同步傳輸方式比異步傳輸方式速度快,這是它的優(yōu)勢。但同步傳輸方式也有其缺點,即它必須要用一個時鐘來協(xié)調收發(fā)器的工作,所以它的設備也較復雜。例如IIC通信,SPI通信等第二頁,共三十二頁,2022年,8月28日三串行通信的數(shù)據(jù)通路形式:

1.單工方式:指通信雙方,一方只能發(fā)送,另一方只能接收,傳送方向是單一的。

2.半雙工方式:通信雙方只有一根傳輸線(共地),但任何一方都可以發(fā)送,當一方發(fā)送時,另一方只能接收。

3.全雙工方式:需要通信雙方連接兩條傳輸線(共地),一條是將數(shù)據(jù)從甲方送到乙方,另一條是從乙方送到甲方。允許雙向同時發(fā)送。第三頁,共三十二頁,2022年,8月28日MCS-51串行通信接口單片機串口的特點:全雙工、異步、串口單片機串口由RXD和TXD構成。MCS-51單片機是

位CPU;串行通信接口中,數(shù)據(jù)是一位一位按順序向外傳送的。單片機是如何將數(shù)據(jù)進行串-并以及并-串的轉換?

第四頁,共三十二頁,2022年,8月28日

7.2.1通用的異步接收/發(fā)送器UART

在串行通信中,數(shù)據(jù)是一位一位按順序進行傳送的,而計算機內部的數(shù)據(jù)是并行傳輸?shù)?。因此當計算機向外發(fā)送數(shù)據(jù)時,必須先將并行數(shù)據(jù)轉換為串行數(shù)據(jù),然后再發(fā)送;反之,當計算機接收數(shù)據(jù)時,又必須先將串行數(shù)據(jù)轉換為并行數(shù)據(jù),然后再輸入計算機內部。

MCS-51單片機串口有一個核心部件——通用的異步接收/發(fā)送器,簡稱UART(UniversalAsynohronousReceiver/Transmitter),就是完成并→串或串→并變換的硬件電路,其結構如圖7-6所示。第五頁,共三十二頁,2022年,8月28日圖7-6硬件UART結構圖第六頁,共三十二頁,2022年,8月28日工作原理:接收數(shù)據(jù)時,串行數(shù)據(jù)由RXD端(ReceiveData)經接收門進入移位寄存器,再經移位寄存器輸出并行數(shù)據(jù)到接收緩沖器SBUF,最后通過數(shù)據(jù)總線送到CPU,是一個雙緩沖結構,以避免接收過程中出現(xiàn)幀重疊錯誤。發(fā)送信息時,CPU將數(shù)據(jù)經過數(shù)據(jù)總線送給發(fā)送緩沖器SBUF后,直接由控制器控制SBUF移位,經發(fā)送門輸出至TXD,為單緩沖結構,由于(CPU主動)不會發(fā)生幀重疊錯誤,發(fā)送緩沖器與接收緩沖器在物理上是相互獨立的,但在邏輯上只有一個,共用地址單元99H。對發(fā)送緩沖器只存在寫操作,對接收緩沖器只能讀操作。接收和發(fā)送數(shù)據(jù)的速度由控制器發(fā)出的移位脈沖所控制,其可由內部定時器T1產生的時鐘獲得,此時定時器T1作為波特率發(fā)生器使用。第七頁,共三十二頁,2022年,8月28日二、串行通信的傳送速度串行通信的數(shù)據(jù)傳送是按位進行的,每秒所傳送的位數(shù)稱為波特率,如果數(shù)據(jù)傳送的速度為每秒120幀,每個幀包含10位,則每秒傳送1200位,即波特率為1200。

10?120=l200bit/s=1200baut

每位傳送的時間T等于波特率的倒數(shù),如上例波特率為1200則每位傳送時間為

T=0.833ms

國際上規(guī)定的標準波特率系列為300、600、1200、1800、2400、4800、9600和19200bit/s。第八頁,共三十二頁,2022年,8月28日波特率的計算例:某異步通訊接口的波特率為120,則該接口每秒種傳送

數(shù)據(jù)。例:某串口異步通信接口,其字符幀格式為1個起始位,1個校驗位,8個數(shù)據(jù)位和一個停止位,當通信接口每分鐘傳送1200位數(shù)據(jù)時,其傳送波特率為。A.4800位B.20位C.600位 D.30位第九頁,共三十二頁,2022年,8月28日

四、串行通信的校驗方式,

奇校驗:根據(jù)數(shù)據(jù)中1的個數(shù),決定校驗位是否置1。以使1的個數(shù)總和為奇數(shù)。

偶校驗,根據(jù)數(shù)據(jù)中1的個數(shù),決定校驗位是否置1,以使1的個數(shù)總和為偶數(shù)。2.一組數(shù)據(jù)的校驗方法在一組數(shù)據(jù)之后發(fā)送數(shù)據(jù)代數(shù)和或在一組數(shù)據(jù)之后加發(fā)數(shù)據(jù)異或值。

1.異步通信中單個字符的校驗方法通常是在單個字符末位后面,附加一個校驗位。第十頁,共三十二頁,2022年,8月28日一、數(shù)據(jù)緩沖器SBUF

發(fā)送數(shù)據(jù) 通過指令MOVSBUF,A將數(shù)據(jù)寫入SBUF,然后串口自動將數(shù)據(jù)按事先設置的方式及速率從TXD(P3.1)端口輸出,數(shù)據(jù)發(fā)送完畢,串口向CPU申請中斷,且通過硬件將TI置1,表示發(fā)送已經結束,等待寫入第二幀數(shù)據(jù)。

接收數(shù)據(jù) 當有數(shù)據(jù)送給單片機串口時,串口按事先設置的方式及速率自動從端口TXD(P3.1)接收數(shù)據(jù),數(shù)據(jù)校驗正確后送SBUF,一幀數(shù)據(jù)接收完畢RI=1,串口向CPU請求中斷且表示接收已經結束。單片機只要通過執(zhí)行:MOVA,SBUF第十一頁,共三十二頁,2022年,8月28日串行口的控制寄存器

MCS-51的串行口有四種工作方式,用戶可以通過對串行控制寄存器SCON編程來設定。此外,還有波特率控制寄存器PCON,必須詳細了解這些特殊功能寄存器,才能正確應用串行通信接口。

1.串行口控制寄存器SCON

特殊功能寄存器SCON的地址為98H,具有位地址,可位尋址,復位時為00H,其格式如下:SM0、SM1:串行口的方式選擇位,見表7-1。

第十二頁,共三十二頁,2022年,8月28日SM2:方式2和方式3的多機通信控制位;REN:允許串行接收位。TB8:在方式2和方式3中,發(fā)送的第9位數(shù)據(jù),需要時由軟件置位或復位。RB8:在方式2和方式3中,接收到的第9位數(shù)據(jù);在方式1時,RB8是接收到的停止位;在方式0,不使用RB8。TI:發(fā)送中斷標志。TI必須由軟件清“0”RI:接收中斷標志,RI必須由軟件清“0”。

第十三頁,共三十二頁,2022年,8月28日

2.特殊功能寄存器PCON

特殊功能寄存器PCON的地址為87H,沒有位地址。其格式如下:PCON的最高位是串行口波特率系數(shù)控制位SMOD,當SMOD為“1”時,方式2,3中使波特率加倍。PCON的其他位為掉電方式控制位,詳見2.4節(jié)。第十四頁,共三十二頁,2022年,8月28日單片機串行接口的工作方式一、串行口工作方式0:串口擴展為并口1)波特率固定為發(fā)送—位數(shù)據(jù)等于一個機器周期。2)不論是發(fā)送還是接收,數(shù)據(jù)都是從RXD(P3.0)端出入。TXD端而作為同步移位脈沖輸出端。3)工作于方式0時,可將串行接口擴展為并行接口,第十五頁,共三十二頁,2022年,8月28日7.2.3串行接口的工作方式

串行通信接口有4種工作方式,它們由SCON中的SM0、SM1決定。下面從應用的角度,重點討論各種工作方式的功能特性和工作原理。

1.方式0——移位寄存器方式方式0通過外接一個移位寄存器擴展一個并行的輸入/輸出口。

(1)發(fā)送方式0發(fā)送時,串行口上外接74LS164移位寄存器。其接口如圖7-7所示。

(2)接收方式0接收時,串行口上外接并行輸入串行輸出移位寄存器74LS166,其接口如圖7-8所示。圖7-7方式0發(fā)送接口圖圖7-8方式0接收接口圖

DATA第十六頁,共三十二頁,2022年,8月28日必須注意:在接收時,除了設置SCON控制字為方式0外,還應設置允許接收控制位REN為“1”,清除RI中斷標志,才能啟動接收器工作。方式0工作時,必須使SCON控制字的SM2位(多機通信控制位)為“0”,從而不影響TB8和RB8位。由于波特率固定,故無需用定時器提供。但以中斷方式傳輸數(shù)據(jù)時,CPU響應中斷不會自動清除TI、RI標志,所以在中斷服務程序中,必須由指令將TI、RI清“0”。

方式1:方式1為8位異步通信接口,1幀信息為10位,即1位起始位(0)、8位數(shù)據(jù)(低位在前)及1位停止位(1),如圖7-9所示。TXD為發(fā)送端,RXD為接收端,波特率由定時器T1的溢出率來決定。圖7-9方式1數(shù)據(jù)格式第十七頁,共三十二頁,2022年,8月28日(1)發(fā)送:

CPU向發(fā)送緩沖器SBUF寫入一個數(shù)據(jù)后,便啟動串行口在TXD端輸出幀信息,先發(fā)送起始位“0”,接著從低位開始依次輸出8位數(shù)據(jù),最后輸出停止位。發(fā)送完一幀信息后,發(fā)送中斷標志TI置“1”,向CPU請求中斷。(2)接收:當允許接收位REN置“1”后,接收器便采樣RXD端電平,當采樣到“1”到“0”的跳變時,啟動接收器接收。計數(shù)器的16個狀態(tài)把1位時間等分成16份,并在第7、8、9個計數(shù)狀態(tài)時,采樣RXD電平。因此,每一位的數(shù)值采樣三次,取其中至少有兩次相同的值為確認值。啟動后,如果三次采樣的確認值不是“0”,則起始位無效,復位接收電路重新檢測。如果確認值為“0”,起始位有效,則開始按從低位到高位的順序接收一幀的數(shù)據(jù)信息。

必須注意,在方式1接收中設置有數(shù)據(jù)辨識功能:只有同時滿足以下兩個條件時,接收到的數(shù)據(jù)才有效,才會將數(shù)據(jù)裝入SBUF,并置RI為“1”,向CPU請求中斷;否則,所接收的數(shù)據(jù)幀無效。當SM2=1時,接收到的停止位“1”裝入RB8中。①RI=0。②接收到停止位為“1”。第十八頁,共三十二頁,2022年,8月28日

方式1的特點:

1)波特率可變串口波特率由定時器T1產生,T1工作于方式2,并決定于T1定時時間,而T1的定時時間決定于裝入的時間常數(shù)N,因此可根據(jù)時間常數(shù)N推出波特率,即 2)傳送數(shù)據(jù)為8位,連同一位起始位、一位停止位組成一幀,即一幀為10位,發(fā)送由TXD輸出,接收由RXD輸入,可構成全雙工的串行通信端口。

例:設計波特率為4800b/s,晶振頻率為11.0592MHz,定時器T1工作在方式2,SMOD=0,則計數(shù)器初值為

。第十九頁,共三十二頁,2022年,8月28日

3.方式2、方式3

串行口工作在方式2、方式3時,為9位異步通信口,1幀信息由11位組成,即1位起始位、8位數(shù)據(jù)D0~D7(低位在前)、1位可編程的第9位D8(發(fā)送時,第9位為SCON中的TB8;接收時,第9位為SCON中的RB8)及1位停止位,如圖7-10所示。圖7-10方式2、方式3數(shù)據(jù)格式(1)發(fā)送:當CPU向發(fā)送緩沖器SBUF寫入一個數(shù)據(jù)后,便立即啟動發(fā)送器發(fā)送。先發(fā)送起始位“0”,接著從低位開始依次輸出8位數(shù)據(jù),再發(fā)送SCON中的TB8,最后輸出停止位。發(fā)送完一幀信息后,發(fā)送中斷標志TI置“1”,向CPU請求中斷。(2)接收:使用與方式1類似的方法識別起始位。必須注意,方式2、方式3接收中也設置有數(shù)據(jù)辨識功能:只有同時滿足以下兩個條件時,接收到的數(shù)據(jù)才有效,才能將接收到的數(shù)據(jù)裝入SBUF和RB8,并置RI為“1”;否則,所接收的數(shù)據(jù)幀無效。①RI=0。②接收到的停止位為“1”。

方式2、方式3的區(qū)別:方式2的波特率為fosc/32或fosc/64,而方式3的波特率可變。

第二十頁,共三十二頁,2022年,8月28日三、串口工作方式2、3

方式2、3的工作性能

1)方式2波特率固定,并等于。

方式3波特率計算方法同方式1,即等于。

2)一幀數(shù)據(jù)為11位,包括1位起始位、8位數(shù)據(jù)位、1位可編程位、1位停止位。數(shù)據(jù)位低位在前高位在后,第9位可編程位發(fā)送時從SCON中的TB8取出,接收時第9位存SCON中的RB8。返回本章首頁第二十一頁,共三十二頁,2022年,8月28日第四節(jié)串口初始化編程一、計算波特率串口方式0

串口方式1和串口方式3

串口方式2

第二十二頁,共三十二頁,2022年,8月28日二、對SCON、PCON、TMOD初始化 以設計一8051單片機控制系統(tǒng)為例,設主振頻率為12MHz,要求串口發(fā)送數(shù)據(jù)為8位、波特率為1200bps.則初始化步驟為:

1.先按波特率要求,計算T1的時間常數(shù)N,設SMOD=1。 已知主振頻率為12MHz,波特率為1200bps.,串口工作于方式1,按式7-4可求得

N=203.92≈0CCH 2.寫出初始化程序

MOVSCON,#50H;串行口工作于方式1 MOVPCON,#80H;SMOD=1,

MOVTMOD,#20H;T1工作方式2定時方式

MOVTHl,#0CCH;設置時間常間為N MOVTLl,#0CCH;自動裝入時間常數(shù)

SETBTR1 ;啟動T1返回本章首頁第二十三頁,共三十二頁,2022年,8月28日單片機雙機通信實驗1號單片機鍵盤上輸入的數(shù)字可以在2號單片機的顯示器LED上顯示出來。第二十四頁,共三十二頁,2022年,8月28日第二十五頁,共三十二頁,2022年,8月28日第二十六頁,共三十二頁,2022年,8月28日1.甲乙兩機點到點通信

設甲、乙二機為相距很近(1m之內)的MCS-51應用系統(tǒng),則可將它們的串行口直接相連,以實現(xiàn)全雙工的雙機通信,如圖7-19所示。當需要增加通信距離時,可以采用RS-232或RS-422標準進行雙機通信。為了減少線路干擾,在收、發(fā)的數(shù)據(jù)端還可以采用光電隔離器(見圖7-16)。圖7-19雙機通信第二十七頁,共三十二頁,2022年,8月28日【例】設有甲、乙兩臺單片機fosc=11.059MHz,用調用子程序的方法編程序。1#機(發(fā)送機):從內部RAM單元20H~25H中取出6個ASCII碼數(shù)據(jù),在最高位加上奇偶校驗位后由串行口發(fā)送。采用8位異步通信,波特率為1200b/s。2#機(接收機):接收器把接收到的6個ASCII碼數(shù)據(jù),先進行奇偶校驗。若傳送正確,則將數(shù)據(jù)依次存放在內部RAM區(qū)20H~25H單元中。若奇偶出錯,則將“0FFH”存入相應的單元中。解:圖7-20為甲機發(fā)送、乙機接收程序流程圖。第二十八頁,共三十二頁,2022年,8月28日圖7-20單工通信流程圖第二十九頁,共三十二頁,2022年,8月28日(1)1#機,主程序:ORG0000H AJMPMAINTORG0030H;主程序入口地址MAINT:MOVSP,#60HMOVTMOD,#20H ;置定時器T1為工作方式2MOVTH1,#0E8H ;置波特率1200b/s的計數(shù)初值MOVTL1,#0E8H MOVSCON,#40H ;串行口工作方式1SETB TR1 ;啟動定時器T1工作MOVR0,#20H ;數(shù)據(jù)首地址→R0MOVR7,#06H ;傳送字節(jié)數(shù)→R7LOOP:MOVA,@R0 ;取一個待傳送的數(shù)據(jù)字節(jié)LCALLOUT1 ;調用串行口發(fā)送子程序INCR0 ;修改地址指針DJNZR7,LOOP ;若未全部發(fā)送完,則轉LOOP繼續(xù)SJMP$

第三十頁,共三十二頁,2022年,8月28日發(fā)送子程序OUT1:OUT1:MOVC,P ;設置奇偶校驗位(補奇)

CPLCMOVACC.7,C MOVSBUF,A ;啟動串行口發(fā)送數(shù)據(jù)

JNBTI,$ ;等待數(shù)據(jù)字節(jié)發(fā)送完畢

CLRTI ;清發(fā)送標志TI為下一數(shù)據(jù)串行發(fā)送做準備

RET ;子程序返回(2)乙機,主程序:

ORG0000H AJMPMAINDORG0030H ;主程序入口地址MAIND:

溫馨提示

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

評論

0/150

提交評論