




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第11章 C51串行接口程序設(shè)計 11.1 51系列單片機(jī)的串行接口 51系列單片機(jī)內(nèi)部集成的全雙工串行通信接口電路,常稱 為UART。該串行接口電路功能很強(qiáng),不僅可以進(jìn)行串行異 步數(shù)據(jù)的發(fā)送和接收,也可以作為一個同步移位寄存器使 用。 11.1.1 單片機(jī)串行通信概述 單片機(jī)和外部設(shè)備可以采用并行通信和串行通信兩種方法 進(jìn)行數(shù)據(jù)傳輸。 單片機(jī)并行通信 單片機(jī)串行通信 11.1.2 單片機(jī)串行接口的內(nèi)部結(jié)構(gòu) 51系列單片機(jī)的全雙工串行口主要由數(shù)據(jù)發(fā)送緩沖器、發(fā) 送控制器TI和接收控制器RI等組成,其結(jié)構(gòu)如圖所示。 11.1.3 串行接口控制寄存器SCON 控制寄存器SCON的字節(jié)地址為98H,
2、可進(jìn)行位尋址。該寄存 器用于選擇串行通信的工作方式和某些控制功能,包括接 收/發(fā)送控制及設(shè)置狀態(tài)標(biāo)志等。 11.1.4 特殊功能寄存器PCON 特殊功能寄存器PCON的單元字節(jié)地址為87H,不可 以進(jìn)行位尋址。特殊功能寄存器PCON用于CHMOS型 單片機(jī)中進(jìn)行電源控制,也稱為電源控制寄存器。 11.2 串行口工作模式0的C51程序設(shè)計 51系列單片機(jī)串行口的工作模式0是同步移位寄存器輸入/ 輸出方式,模式0的數(shù)據(jù)幀格式,如圖所示。從圖中可以看 出,模式0中的數(shù)據(jù)以8位為一幀,沒有起始位和停止位, 發(fā)送時低位在前,高位在后。在程序中可以設(shè)置控制寄存 器SCON的SM0=0和SM1=0來將串行口
3、設(shè)置為工作模式0。 11.2.1 模式0的波特率 8051單片機(jī)在串口模式0下,每個機(jī)器周期產(chǎn)生一個移位時 鐘,對應(yīng)著一個比特數(shù)據(jù)的發(fā)送和接收。因此,此時波特 率固定為8051單片機(jī)振蕩頻率的1/12,其波特率的計算公 式如下: 串口模式0波特率=fosc/12 例如,對于24MHz的外部晶體振蕩頻率,模式0可以獲得 24MHz /12=2Mbit/s的波特率。 同時,在串口模式0下,波特率不受波特率倍增位SMOD的影 響。因此,在C51程序設(shè)計時只要指定串口工作于模式0便 完成了串口速率的設(shè)置,而無需再設(shè)置波特率。 11.2.2 模式0的數(shù)據(jù)發(fā)送及C51程序設(shè)計 對于模式0的數(shù)據(jù)發(fā)送,單片機(jī)
4、的TXD引腳都用于發(fā)送同步 移位脈沖,而8位串行數(shù)據(jù)是通過單片機(jī)的RXD引腳來輸出。 1模式0的數(shù)據(jù)發(fā)送流程 2采用查詢方式的模式0數(shù)據(jù)發(fā)送C51程序設(shè)計 3采用中斷方式的模式0數(shù)據(jù)發(fā)送C51程序設(shè)計 11.2.2 模式0的數(shù)據(jù)發(fā)送及C51程序設(shè)計 1 1模式模式0 0的數(shù)據(jù)發(fā)送流程的數(shù)據(jù)發(fā)送流程 (1)首先對寄存器SCON進(jìn)行初始化。 (2)置串行接口控制寄存器SCON的TI=0,啟動串行口發(fā)送。 (3)執(zhí)行寫發(fā)送緩沖器指令,例如: SBUF=I;/輸出數(shù)據(jù)i到SBUF,啟動串行輸出 (4)準(zhǔn)備下一次數(shù)據(jù)發(fā)送。 11.2.3 模式0的數(shù)據(jù)接收及C51程序設(shè)計 對于模式0的數(shù)據(jù)接收,單片機(jī)的T
5、XD引腳都用于發(fā)送同步 移位脈沖,而8位串行數(shù)據(jù)是通過RXD引腳來輸入。 1模式0的數(shù)據(jù)接收流程 2采用查詢方式模式0數(shù)據(jù)接收的C51程序設(shè)計 3采用中斷方式模式0數(shù)據(jù)接收的C51程序設(shè)計 11.2.3 模式0的數(shù)據(jù)接收及C51程序設(shè)計 1 1模式模式0 0的數(shù)據(jù)接收流程的數(shù)據(jù)接收流程 (1)首先對寄存器SCON進(jìn)行初始化。 (2),在TXD端發(fā)送同步移位脈沖,在同步脈沖為低電平 的時候, 8位數(shù)據(jù)從RXD引腳由低位到高位逐位接收。 (3)當(dāng)8位數(shù)據(jù)接收完畢的時候,硬件自動置RI=1,請求 中斷,表示接收數(shù)據(jù)已裝入接收緩沖器,可以由CPU讀取。 例如: i=SBUF;/讀出數(shù)據(jù)到變量i中 (4
6、)準(zhǔn)備下一次數(shù)據(jù)接收。 11.3 串行口工作模式1的C51程序設(shè)計 串行口的工作模式1是波特率可變的串行異步通信方式,工 作模式1下數(shù)據(jù)幀的格式如圖所示。數(shù)據(jù)幀由10位組成,按 順序分別為起始位、8位數(shù)據(jù)位、停止位。數(shù)據(jù)在傳輸時, 低位在前,高位在后。在程序中可以設(shè)置控制寄存器SCON 的SM0=0和SM1=1來將串口設(shè)置為工作模式1。 11.3.1 模式1的波特率 串口的工作模式1為10位異步發(fā)送接收方式。其串行移位時 鐘脈沖由定時器T1的溢出率來決定,因此,波特率由定時 器T1的溢出率和波特率倍增位SMOD來共同決定。模式1的波 特率計算公式如下: 波特率=T1溢出率2SMOD/32 設(shè)置
7、模式1的波特率,需要對定時器T1進(jìn)行工作方式設(shè)置, 以便于得到需要的波特率發(fā)生器。一般使T1工作于模式2, 此時為初值自動加載的定時方式。如果計數(shù)器的初始值為X, 則每過256-X個機(jī)器周期的時候,定時器T1便將產(chǎn)生一次溢 出,溢出的周期為(256-X)*12/fosc。 11.3.2 模式1的數(shù)據(jù)發(fā)送及C51程序設(shè)計 串行口的工作模式1為10位異步發(fā)送接收方式,單片機(jī)TXD 引腳為數(shù)據(jù)發(fā)送端。通信的雙方不需要時鐘同步,發(fā)送方 和接收方都有自己的移位脈沖,通過設(shè)置共同的波特率來 實(shí)現(xiàn)同步。 1模式1的數(shù)據(jù)發(fā)送流程 2采用查詢方式的模式1數(shù)據(jù)發(fā)送C51程序設(shè)計 3采用中斷方式的模式1數(shù)據(jù)發(fā)送C5
8、1程序設(shè)計 11.3.2 模式1的數(shù)據(jù)發(fā)送及C51程序設(shè)計 1 1模式模式1 1的數(shù)據(jù)發(fā)送流程的數(shù)據(jù)發(fā)送流程 (1)初始化串口,設(shè)置SCON寄存器以及PCON寄存器。 (2)初始化定時器,設(shè)置波特率。 (3)置串行接口控制寄存器SCON的TI=0,啟動串行口發(fā)送。 (4)執(zhí)行寫發(fā)送緩沖器SBUF語句,示例如下: SBUF=0 x76;/將0 x76送入發(fā)送緩沖器 (5)在發(fā)送移位脈沖的作用下,數(shù)據(jù)幀依次從TXD引腳發(fā)出。 (6)在8位串行數(shù)據(jù)發(fā)送完畢后,也就是在插入停止位的時候,使TI 置1,用以通知CPU可以發(fā)送下一幀的數(shù)據(jù)。此時可以采用查詢或者中 斷兩種方式來獲知TI是否置位。當(dāng)TI置位后
9、,C51程序中清零TI,以便 于發(fā)送下一個數(shù)據(jù)。 11.3.3 模式1的數(shù)據(jù)接收及C51程序設(shè)計 串行口的工作模式1為10位異步發(fā)送接收方式,單片機(jī)RXD 引腳為數(shù)據(jù)接收端。模式1接收數(shù)據(jù)中的定時信號可以有兩 種,接收移位脈沖和接收字符的檢測脈沖。 串行口模式1接收數(shù)據(jù)時的接收移位脈沖,由定時器1的溢 出信號和波特率倍增位SMOD來共同決定,即由定時器1的溢 出率經(jīng)過16分頻或32分頻得到。 接收字符的檢測脈沖,其頻率是接收移位脈沖的16倍。在 接收一位數(shù)據(jù)的時候,有16個檢測脈沖,以其中的第7、8 和9個脈沖作為真正的接收信號的采樣脈沖。 11.4 串行口工作模式2的C51程序設(shè)計 串行口的
10、工作模式模式2為固定波特率的串行異步通信方式, 在模式2中數(shù)據(jù)幀的格式,如圖所示。一幀數(shù)據(jù)由11位構(gòu)成, 按照順序分別為:起始位1位、8位串行數(shù)據(jù)(低位在前)、 可編程位1位、停止位1位。在程序中可以設(shè)置控制寄存器 SCON的SM0=1和SM1=0來實(shí)現(xiàn)。 11.4.1 模式2的波特率 串口的工作模式2是11位異步發(fā)送接收方式。模式2下的波 特率的計算公式如下: 波特率= fosc2SMOD/64 從公式中可以看出,在模式2下,波特率由單片機(jī)的振蕩頻 率fosc和PCON的波特率倍增位SMOD共同決定。當(dāng)SMOD=0時, 波特率為fosc/64,當(dāng)SMOD=1時,波特率為fosc/32。串口模
11、 式2的波特率不由定時器來設(shè)置,只可選兩種:fosc/32或者 fosc/64。 11.4.2 模式2的數(shù)據(jù)發(fā)送及C51程序設(shè)計 在串行口的工作模式2中,TXD引腳為數(shù)據(jù)發(fā)送端。模式2的 發(fā)送共有9位有效的數(shù)據(jù),在啟動發(fā)送之前,需要將發(fā)送的 第9位,即可編程位的數(shù)值送入寄存器SCON中的TB8位。這 個編程標(biāo)志位可以由用戶自己定義,硬件不做任何規(guī)定。 例如,用戶可以將這一位定義為奇偶校驗位或地址/數(shù)據(jù)標(biāo) 志位。 1模式2的數(shù)據(jù)發(fā)送流程 2采用查詢方式的模式2數(shù)據(jù)發(fā)送C51程序設(shè)計 3采用中斷方式的模式2數(shù)據(jù)發(fā)送C51程序設(shè)計 11.4.2 模式2的數(shù)據(jù)發(fā)送及C51程序設(shè)計 1 1模式模式2 2
12、的數(shù)據(jù)發(fā)送流程的數(shù)據(jù)發(fā)送流程 (1)首先,初始化串口為工作模式2。 (2)設(shè)置波特率。 (3)置串行接口控制寄存器SCON的TI=0,啟動串行口發(fā)送,并裝入 TB8的值。 (3)執(zhí)行寫發(fā)送緩沖器SBUF語句,例如: SBUF=0 x46;/將數(shù)據(jù)0 x46寫入發(fā)送緩沖器 (4)硬件自動發(fā)送起始位,起始位為邏輯低電平。發(fā)送8位數(shù)據(jù),低 位首先發(fā)送,高位最后發(fā)送。發(fā)送第9位數(shù)據(jù),即TB8中的數(shù)值。硬件 自動發(fā)送停止位,停止位為邏輯高電平,同時置TI=1,發(fā)送完畢。 (5)在C51程序中可以采用查詢或中斷兩種方式獲知TI。如果TI置位, 則需要在軟件中清零TI,以便于下一次串行數(shù)據(jù)發(fā)送。 11.4.
13、3 模式2的數(shù)據(jù)接收及C51程序設(shè)計 串口的工作模式2是11位異步發(fā)送接收方式,單片機(jī)RXD引 腳為數(shù)據(jù)接收端。模式2的串行數(shù)據(jù)接收過程和模式1基本 類似,只不過模式1的第9位為停止位,而這里則是發(fā)送的 可編程位。 1模式2的數(shù)據(jù)接收流程 2采用查詢方式的模式2數(shù)據(jù)接收C51程序設(shè)計 3采用中斷方式的模式2數(shù)據(jù)接收C51程序設(shè)計 11.4.3 模式2的數(shù)據(jù)接收及C51程序設(shè)計 1 1模式模式2 2的數(shù)據(jù)接收流程的數(shù)據(jù)接收流程 (1)首先,初始化串口為模式2。 (2)設(shè)置波特率。 (3)當(dāng)檢測到從1到0的跳變的時候,確認(rèn)數(shù)據(jù)起始位0。開始接收一 幀的串行數(shù)據(jù),將收到的數(shù)據(jù)逐位地送入移位寄存器。
14、(4)當(dāng)RI=0,且SM2=0或接收到的第9位數(shù)據(jù)為1時,8位串行數(shù)據(jù)送入 接收緩沖器SBUF中。 (5)此時可以采用查詢或者中斷兩種方式來獲知RI是否置位。當(dāng)數(shù)據(jù) 送入接收緩沖器之后,便可以執(zhí)行讀SBUF語句來讀取數(shù)據(jù),例如: ch=SBUF;/讀取串行數(shù)據(jù),并保存在變量ch中 (6)最后,軟件中清零RI,以便于接收下一次串行數(shù)據(jù)。 11.5 串行口工作模式3的C51程序設(shè)計 串行口的工作模式模式3為11位異步發(fā)送接收方式,在模式 3中數(shù)據(jù)幀的格式,如圖所示。一幀數(shù)據(jù)由11位構(gòu)成,按照 順序分別為:起始位1位、8位串行數(shù)據(jù)(低位在前)、可 編程位1位、停止位1位。在程序中可以設(shè)置控制寄存器
15、SCON的SM0=1和SM1=1來實(shí)現(xiàn)。 11.5.1 模式3的波特率 模式3和模式2的工作方式是一樣的,不同的是,模式2僅有 兩個固定的波特率可選,而模式3的波特率由定時器1的溢 出率和波特率倍增位SMOD決定。 串口的工作模式3為11位異步發(fā)送接收方式。其串行移位時 鐘脈沖由定時器T1的溢出率來決定,因此,波特率由定時 器T1的溢出率和SMOD來共同決定。模式1和模式3的波特率 計算公式如下: 3波特率=T1溢出率2SMOD/32 11.5.1 模式3的波特率 串口模式3常用波特率參數(shù)設(shè)置 波特率( bit/s) fosc(MHz)SMOD值定時器T1工 作模式 初值 11060272H
16、1101202FEEBH 137.511.986021DH 120011.059202E8H 240011.059202F4H 480011.059202FAH 960011.059202FDH 1920011.059212FDH 625001212FFH 11.5.2 模式3的數(shù)據(jù)發(fā)送及C51程序設(shè)計 在串行口的工作模式3中,單片機(jī)的TXD引腳為數(shù)據(jù)發(fā)送端。 模式3的發(fā)送共有9位有效的數(shù)據(jù),在啟動發(fā)送之前,需要 將發(fā)送的第9位,即可編程位的數(shù)值送入寄存器SCON中的 TB8位。這個編程標(biāo)志位可以由用戶自己定義,硬件不做任 何規(guī)定。例如,用戶可以將這一位定義為奇偶校驗位或地 址/數(shù)據(jù)標(biāo)志位。
17、1模式3的數(shù)據(jù)發(fā)送流程 2采用查詢方式的模式3數(shù)據(jù)發(fā)送C51程序設(shè)計 3采用中斷方式的模式3數(shù)據(jù)發(fā)送C51程序設(shè)計 11.5.2 模式3的數(shù)據(jù)發(fā)送及C51程序設(shè)計 1 1模式模式3 3的數(shù)據(jù)發(fā)送流程的數(shù)據(jù)發(fā)送流程 (1)首先,初始化串口為工作模式3。 (2)初始化定時器,設(shè)置波特率。 (3)置串行接口控制寄存器SCON的TI=0,啟動串行口發(fā)送,并裝入 TB8的值。 (3)執(zhí)行寫發(fā)送緩沖器SBUF語句,例如: SBUF=0 x36;/將數(shù)據(jù)0 x36寫入發(fā)送緩沖器 (4)硬件自動發(fā)送起始位,起始位為邏輯低電平。發(fā)送8位數(shù)據(jù),低 位首先發(fā)送,高位最后發(fā)送。發(fā)送第9位數(shù)據(jù),即TB8中的數(shù)值。硬件
18、自動發(fā)送停止位,停止位為邏輯高電平,同時置TI=1,發(fā)送完畢。 (5)在C51程序中可以采用查詢或中斷兩種方式獲知TI。如果TI置位, 則需要在軟件中清零TI,以便于下一次串行數(shù)據(jù)發(fā)送。 11.5.3 模式3的數(shù)據(jù)接收及C51程序設(shè)計 串口的工作模式3是11位異步發(fā)送接收方式,單片機(jī)RXD引 腳為數(shù)據(jù)接收端。模式3的串行數(shù)據(jù)接收過程和模式2基本 類似。 1模式3的數(shù)據(jù)接收流程 2采用查詢方式的模式3數(shù)據(jù)接收C51程序設(shè)計 3采用中斷方式的模式3數(shù)據(jù)接收C51程序設(shè)計 11.5.3 模式3的數(shù)據(jù)接收及C51程序設(shè)計 1模式3的數(shù)據(jù)接收流程 (1)首先,初始化串口為模式3。 (2)初始化定時器,設(shè)置波特率。 (3)當(dāng)檢測到從1到0的跳變的時候,確認(rèn)數(shù)據(jù)起始位0。開始接收一 幀的串行數(shù)據(jù)。 (4)當(dāng)RI=0,且SM2=0或接收到的第
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- (一模)萍鄉(xiāng)市2025年高三第一次模擬考試政治試卷(含答案解析)
- 2025年中考道德與法治二輪復(fù)習(xí):文明與精神 高頻考點(diǎn)學(xué)案(含練習(xí)題及答案)
- 施工水源施工方案
- 阜陽機(jī)房消防施工方案
- 別墅獨(dú)院出租合同范例
- 雙方簽合同范例
- 建設(shè)工地保安工作流程與重點(diǎn)計劃
- 學(xué)校美術(shù)教育品牌形象建設(shè)計劃
- 人性化管理方案計劃
- 社會實(shí)踐與校外教學(xué)活動安排計劃
- 國產(chǎn)自主可控數(shù)據(jù)庫采購項目技術(shù)標(biāo)準(zhǔn)和服務(wù)要求
- 機(jī)械設(shè)計說明書-激光熔覆送粉器設(shè)計
- 瀝青砼質(zhì)量控制點(diǎn)及措施
- imedical8 1 0醫(yī)生站配置手冊
- RB/T 089-2022綠色供應(yīng)鏈管理體系要求及使用指南
- 家用牙齒美白儀對牙齒漂白的臨床應(yīng)用效果研究
- 李博《生態(tài)學(xué)》課后習(xí)題答案
- 生化檢驗質(zhì)控及失控分析
- 永磁同步電機(jī)地設(shè)計與電磁分析報告
- 全國各大媒體的報料熱線電話號碼
- 催化材料智慧樹知到答案章節(jié)測試2023年南開大學(xué)
評論
0/150
提交評論