MCS-51單片機(jī)串行接口_第1頁
MCS-51單片機(jī)串行接口_第2頁
MCS-51單片機(jī)串行接口_第3頁
MCS-51單片機(jī)串行接口_第4頁
MCS-51單片機(jī)串行接口_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第七章 MCS-51單片機(jī)串行接口第一節(jié)串行通信的基本概念(一)學(xué)習(xí)要求1. 掌握串行通信的基本概念。2. 掌握異步通信和同步通信的區(qū)別。(二)內(nèi)容提要一:基本概念及分類串行通信是將數(shù)據(jù)的各位一位一位地依次傳送。適合于計算機(jī)之間、 計算機(jī)與外部設(shè)備之間的遠(yuǎn)距離通信。串行通信從傳輸方式分為:單工方式、半雙工方式、全雙工方式。從接收方式來說,串行通信有兩種方式:異步通信方式、同步通信方式。二:串行口的功能MCS 51單片機(jī)中的異步通信串行接口能方便地與其他計算機(jī)或傳送信息的外圍設(shè)備(如串行打印機(jī)、 CPU終端等)實現(xiàn)雙機(jī)、多機(jī)通信。串行口有4種工作方式,見表 7 1。方式0并不用于通信,而是通過外

2、接移位寄存器 芯片實現(xiàn)擴(kuò)展并行I/O接口的功能。該方式又稱為移位寄存器方式。方式 1、方式2、方 式3都是異步通信方式。方式 1是8位異步通信接口。一幀信息由10位組成,其格式見圖7 2a。方式1用于雙機(jī)串行通信。方式 2、方式3都是9位異步通信接口、一幀信息中包 括9位數(shù)據(jù),1位起始位,1位停止位,其格式見圖7 2b。方式2、方式3的區(qū)別在于波 特率不同,方式2、方式3主要用于多機(jī)通信,也可用于雙機(jī)通信。表7-1SM0SM1工位 式功能波特率00方式0移位寄存器方式fosc/1201方式08位通用異步接收器/發(fā)送器可變10方式09位通用異步接收器/發(fā)送器fosc/32 或 fosc/6411

3、方式09位通用異步接收器/發(fā)送器可變(三)習(xí)題與思考題1、什么是并行通信?什么是串行通信?各有何優(yōu)缺點?答:并行通信指數(shù)據(jù)的各位同時傳輸?shù)耐ㄐ欧绞?,串行通信是指各位?shù)據(jù)逐位順序傳輸?shù)耐ㄐ欧绞健?、什么是異步通信?什么是同步通信?各有何優(yōu)缺點?3、 什么是波特率?某異步串行通信接口每分鐘傳送1800個字符,每個字符由11位組成, 請計算出傳送波特率。第二節(jié)MCS-51串行接口的組成(一)學(xué)習(xí)要求(1) 了解申行接口的結(jié)構(gòu)。了解申行接口的控制與狀態(tài)寄存器工作原理。(二) 內(nèi)容提要一:串行接口的結(jié)構(gòu)串行接口主要由發(fā)送數(shù)據(jù)緩沖器、發(fā)送控制器、輸出控制門、接收數(shù)據(jù)緩沖器、接收控制器、輸入移位寄存器、波特

4、率發(fā)生器T1等組成。串行口中還有兩個特殊功能寄存器 SCON、PCON,特殊功能寄存器 SCON用來存放串 行口的控制和狀態(tài)信息。定時器/計數(shù)器 1(T1)與定時器/計數(shù)器 2(T2)都可構(gòu)成串行口的 波特率發(fā)生器,其波特率是否增倍可由特殊功能寄存器PCON的最高位控制。二:串行接口控制與狀態(tài)寄存器MCS - 51串行口的工作方式選擇、中斷標(biāo)志、可編程位的設(shè)置、波特率的增倍均是通 過兩個特殊功能寄存器 SCON和PCON來控制的。1 .電源和波特率控制寄存器 PCON電源控制寄存器 PCON的格式如下:D7 D 6 D5D4D3D 2 D 1D0SMOD一一一GF1GF0PDIDL電源和波特率

5、控制寄存器 PCON,其地址為87H,只能進(jìn)行字節(jié)尋址,不能按位尋址。PCON的最高位D7位作SMOD,是串行口波特率的增倍控制位。當(dāng) SMOD = 1時,波特率 加倍。例如在工作方式 2下,若SMOD = 0時,則波特率為 f°sc/64;當(dāng)SMOD = 1時,則 波特率為 f°sc/ 32,恰好增大一倍。系統(tǒng)復(fù)位時,SMOD位為0。串行口控制寄存器 SCON解SCON各位的含義如下:SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI98H9FH9EH9DH9CH9BH9AH99H98H(1) 串行口控制方式選擇位 SM0、SM1 ,其S

6、M0、SM1由軟件置位或清零,用于選 擇串行口的4種工作方式。(2) 多機(jī)通信控制位 SM2和接收中斷標(biāo)志位 RI SM2 = 1時,如果接收到的一幀信息 中的第九位數(shù)據(jù)為1,且原有的接收中斷標(biāo)志位 RI = 0,則硬件將RI置1;如果第九位數(shù)據(jù) 為0,則RI不置1 ,且所接收的數(shù)據(jù)無效。SM2 = 0時,只要接收到一幀信息,不管第九位數(shù)據(jù)是0還是1,硬件都置 RI = 0, RI由軟件清零。SM2由軟件置位或清零。多機(jī)通信時,SM2必須置1,雙機(jī)通信時,通常使 SM2 = 0。方式0時SM2必須為0。(3) 發(fā)送中斷標(biāo)志位 TI 在方式0中,發(fā)送完8位數(shù)據(jù)后,由硬件置位;在其它方 式中,在發(fā)

7、送停止位之初,由硬件使 TI = 1。TI置位后可向CPU申請中斷,任何方式中 TI 位都必須由軟件清除。(4 )接收中斷標(biāo)志 RI 在方式0中,接收完8位數(shù)據(jù)后,由硬件置位;在其它方式 中,在接收停止位的一半時由硬件將RI置位(還應(yīng)考慮SM2的設(shè)定)。RI被置位后可允許CPU申請中斷,任何方式中 TI位都必須由軟件來清除。串行發(fā)送中斷標(biāo)志 TI和接收中斷標(biāo)志 RI共用一個中斷源,CPU并不知道是TI還是RI 產(chǎn)生的中斷請求,所以在全雙工通信時,必須由軟件來斷別。(5) 允許接收控制位 RENREN = 1時允許接收,REN = 0時禁止接收。REN由軟 件置位或清零。(6) 發(fā)送數(shù)據(jù)D8位T

8、B8 TB8是方式2、方式3中要發(fā)送的第九位數(shù)據(jù),事先用軟 件寫入1或0。方式0、方式1不用。(7) 接收數(shù)據(jù) D8位RB8 方式2、方式3中,由硬件將接收到的第九位數(shù)據(jù)存入 RB8。方式1中,停止位存入 RB8。復(fù)位后SCON的所有位清零。(三) 習(xí)題與思考題1、MCS-51單片機(jī)的串行口由哪些功能部件組成?各有什么作用。2、特殊功能寄存器 SCON和PCON勺作用和工作過程是什么?第三節(jié)串行口的工作方式(一) 學(xué)習(xí)要求(1) 了解串行接口的工作方式。(2) 掌握波特率的計算。(二) 內(nèi)容提要一、串行接口的工作方式 0SM0 = 0、SM1 = 0串行口工作于方式 0,即串行寄存器方式或稱為

9、同步移位寄存器輸入 /輸出方式。CPU執(zhí)行一條寫SBUF的指令如MOV SBUF , A就啟動了發(fā)送過程。發(fā)送 的時序見圖7-1。接收時序見圖 7-2TfiSCON中的RI位RRECEIVESHIFTRXDfDfiTA IN)1|I|1|I|f圖7-1方式0發(fā)送時序pq S TkSBUFSENDSHIFT RXD (DATA OUT)n ri n ri ri ri ii iX 乂 X X X XXTXD (SHIFT CUDCK)11IT LILITI圖7-2 方式0接收時序串行口方式0不適用于兩個8051之間的數(shù)據(jù)通信,但可通過外接移位寄存器來擴(kuò)展單 片機(jī)的接口。例如,可以采用 74LS16

10、4可以擴(kuò)展并行輸出口,74LS165可以擴(kuò)展輸入口。二、串行口工作方式 1SM0 = 0, SM1 = 1串行口接口工作于方式 1,即將8位異步通信接口方式,結(jié)構(gòu)示意圖 見圖7-7。RXD為接收端,TXD為發(fā)送端。一幀信息由 10位組成,方式1的波特率可變, 由定時器/計數(shù)器 1或定時器/計數(shù)器 2的溢出速率以及 SMOD (PCON.7)決定,且發(fā)送 波特率與接收波特率可以不同。1. 發(fā)送CPU執(zhí)行一條寫SBUF指令后便啟動了串行口發(fā)送,數(shù)據(jù)從TXD輸出,時序見圖7-8a。在指令執(zhí)行期間,CPU送來 寫SBUF信號,將并行數(shù)據(jù)送入 SBUF,并啟動發(fā)送控制器,經(jīng)一個機(jī)器周期,發(fā)送控制器的SE

11、ND、DATA相繼有效,通過輸出控制門從TXD上逐位輸出一幀信號。一幀信號發(fā)送完畢后,SEND、DATA失效,發(fā)送控制器硬件置發(fā)送中斷標(biāo)志TI = 1,向CPU申請中斷。2. 接收方式1的接收時序見圖7-8b。允許接收位 REN被置1接收器就開始工作,跳變檢測器 以波特率16倍的速率采樣 RXD弓I腳上電平,當(dāng)采樣到從1到0的負(fù)跳變時,啟動接收控制器接收數(shù)據(jù),由于發(fā)送、接收雙方各自使用自己的時鐘,兩者的頻率總有少許差異。為了避免這種影響,控制器將 1位送時間等分成16分、位檢測器在 7、8、9三個狀態(tài)也就是在 位信號中央采樣 RXD三次。而且,三次采樣中至少兩次相同的值被確認(rèn)為數(shù)據(jù),這是為 了

12、減小干擾的影響。如果起始位接收到的值不是0,由起始位無效,復(fù)位接收電路。如果起始位為0,則開始開始接收本幀其他數(shù)據(jù)??刂破靼l(fā)出的內(nèi)部移位脈沖將RXD上的數(shù)據(jù)逐位移入移位寄存器,當(dāng) 8位數(shù)據(jù)及停止位全移入后:(1) 如果RI = 0、SM2 = 0,接收控制器發(fā)出 裝載SBUF信號,將8位數(shù)據(jù)裝入接收 數(shù)據(jù)緩沖器SBUF,停止裝入RB8,并置RI = 1,向CPU申請中斷。(2) 如果RI = 0、SM2 = 1,那么只有停止位為 1時才發(fā)生上述動作。(3) 如果RI = 0、SM2 = 1且停止位為0,(通常由傳輸過程中的干擾所致)所接收的 數(shù)據(jù)應(yīng)會丟失,不再恢復(fù)。(4) 如果RI = 1,則

13、所接收的數(shù)據(jù)在任何情況下都會丟失。無論出現(xiàn)哪一種情況,跳變檢測器將繼續(xù)采樣RXD引腳的負(fù)跳變,以便接收下一幀信息。接收器采用移位寄存器和SBUF雙緩沖結(jié)構(gòu),以避免在接收后一幀數(shù)據(jù)之前,CPU尚未及時響應(yīng)中斷將前一幀數(shù)據(jù)取走,造成兩幀數(shù)據(jù)重疊問題。 采用雙緩沖器后,前、后兩幀數(shù)據(jù)進(jìn)入SBUF的時間間隔至少有 10個位傳送周期。在后一幀數(shù)據(jù)送入SBUF之前,CPU有足夠的時間將前一幀數(shù)據(jù)取走。三、串行接口工作方式 2和與方式3串行口工作在方式 2、方式3時,為9位異步通信接口。發(fā)送或接收的一幀信息由11位組成,見圖7-2b。方式2與方式3僅波特率不同,方式 2的波特率為fos/32 ( SMOD

14、= 1 時)或fosc/64 (SMOD = 0時),而方式3的波特率由定時器/計數(shù)器具或定時器/計數(shù)器2及SMOD決定。1 .發(fā)送方式2、方式3發(fā)送時,數(shù)據(jù)從 TXD引腳輸出,附加的第九位數(shù)據(jù)由SCON中的TB8提供。CPU執(zhí)行一條寫入 SBUF的指令后立即啟動發(fā)送器發(fā)送。發(fā)送完一幀信息后由硬件 置 TI=1。2. 接收與方式1相似,REN置1后,跳變檢測器不斷對 RXD引腳采樣。當(dāng)采樣到負(fù)跳變后就 啟動接收控制器。位檢測器對每位數(shù)據(jù)采集 3個值,用采3取2辦法確定每位的數(shù)值。 當(dāng)?shù)?九位數(shù)據(jù)移入移位寄存器后,將8位數(shù)據(jù)裝入SBUF,第九位數(shù)據(jù)裝入 RB8,并置RI=1 ,其時序見圖2-26

15、b。與方式1相同,方式2、方式3中也設(shè)置有數(shù)據(jù)辨別功能,即當(dāng)RI = 1或SM2 = 1且第九位數(shù)據(jù)為0時所接收的一幀信息被丟失。四、各方式波特率的設(shè)計在串行通信中,收發(fā)雙方對發(fā)送或接收的數(shù)據(jù)速率(即波特率)要有一定的約定??赏?過對串行口編程設(shè)定。各種工作方式下其波特率的設(shè)置均有所不同,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可變的,由定時器 T1的溢出率確定。(1) 方式0的波特率方式。時,其波特率固定為振蕩頻率的1/12,并不受PCON中SMOD位的影響。因而,方式 0的波特率=fosc/12o(2) 方式2的波特率 方式2的波特率由系統(tǒng)的振蕩頻率 fosc和PCON

16、的最高位 SMOD 確定,即為 2 SMOD Xfosc/64。在 SMOD=0 時,波特率=fosc/64;在 SMOD= 1 時,波特 率=fosc/32。(3) 方式1、3的波特率MCS-51串行口方式1、3的波特率由定時器 T1的溢出率和SMOD的值共同確定,即方式1、3的波特率=(2 SMOD/ 32) X定時器T1的溢出率。其中定時器溢出率取決于計數(shù)速率和定時器的預(yù)置值。計數(shù)速率與TMOD寄存器中C/T的設(shè)置有關(guān)。當(dāng)C/T = 0時,為定時方式,計數(shù)速率 =fosc/12;當(dāng)C/T= 1時,為計數(shù)方 式,計數(shù)速率取決于外部輸入時鐘的頻率,但不能超過fosc/24 o定時器的預(yù)置值等

17、于 M - X, X為計數(shù)初值,M為定時器的最大計數(shù), 與操作模式有關(guān)。 (可取213、216、28)。如果為了到達(dá)很低的波特率,則可以選擇16位的操作模式,即模式1 ,或模式0 ,可以利用 T1中斷來實現(xiàn)重裝計數(shù)值。為能實現(xiàn)定時器計數(shù)初值重裝,則通常選擇操作模式2。在模式2中,TL1作計數(shù)用,TH1用于保存計數(shù)初值, 當(dāng)TL1計滿溢出時,TH1的值自動裝到TL1中。因此一般選用T1 工作于模式2作波特率發(fā)生器。設(shè) T1的計數(shù)初值為 X,設(shè)置C/T=0時,那么每過256- X 個機(jī)器周期,定時器 T1就會產(chǎn)生一次溢出。則T1的溢出周期為:溢出周期=12/foscX (256 X)溢出率為溢出周

18、期之倒數(shù),所以波特率=SMOD 2f oscX3212 (256 -X)2SMOD fosc384 (256 X)定時器T1模式2的計數(shù)初值由上式可得:SMODX =256 °384波特率(4)在8032/8052單片機(jī)中,工作方式1、工作方式3的波特率取決于定時器/計數(shù)器1、定時器/計數(shù)器2決定。由T2CON中的TCLK、RCLK選擇。發(fā)送器的波特率由 TCLK 選擇,TCLK = 1時,由定時器/計數(shù)器 2決定,TCLK = 0時,由定時器/計數(shù)器 1決定。 接收器的波特率由 RCLK選擇,RCLK = 1時,由定時器/計數(shù)器 2決定,RCLK = 0時,由 定時器/計數(shù)器1決定。定時器/計數(shù)器1構(gòu)成波特率發(fā)生器的波特率計算與8031 / 8051/8751相同。定時器/計數(shù)器 2構(gòu)成波特率發(fā)生器的波特率與SMOD無關(guān)。由于定時器狀態(tài)時(C/T2 = 0),加法計數(shù)器對時鐘脈沖 (fosc/2)計數(shù),所以波特率

溫馨提示

  • 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

提交評論