當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]與串口工作有關(guān)的特殊功能寄存器包括:串口控制寄存器SCON(圖4-18中的TI和RI均是該寄存器中的位)、串口緩沖區(qū)寄存器SBUF和電源控制寄存器PCON(圖4-18中的SMOD是該寄存器中的位)。

與串口工作有關(guān)的特殊功能寄存器包括:串口控制寄存器SCON(圖4-18中的TI和RI均是該寄存器中的位)、串口緩沖區(qū)寄存器SBUF和電源控制寄存器PCON(圖4-18中的SMOD是該寄存器中的位)。

1.串口緩沖區(qū)寄存器SBUF

串口緩沖區(qū)寄存器SBUF的地址是99H,不能按位尋址。雖然串口發(fā)送緩沖區(qū)和接收緩沖區(qū)的名稱均為SBUF,但是在物理上它們是獨(dú)立的。

可以通過(guò)指令的操作區(qū)分發(fā)送緩沖區(qū)和接收緩沖區(qū)。因?yàn)椋邮站彌_區(qū)只能被讀出、不能被寫(xiě)入,而發(fā)送緩沖區(qū)只能被寫(xiě)入、不能被讀出,所以在指令中,作為目的操作數(shù)的SBUF代表發(fā)送緩沖區(qū),作為源操作數(shù)的SBUF接收緩沖區(qū)。例如,指令“MOV SBUF,A”將累加器A中的數(shù)據(jù)寫(xiě)入發(fā)送緩沖區(qū);而指令“MOV A,SBUF”則將接收緩沖區(qū)的數(shù)據(jù)讀出并存入累加器A。

MCS-51單片機(jī)沒(méi)有專門(mén)的啟動(dòng)串口發(fā)送的指令,在滿足串口發(fā)送條件時(shí),任何向SBUF中寫(xiě)入數(shù)據(jù)的操作都可以啟動(dòng)串口的數(shù)據(jù)發(fā)送。在串口接收數(shù)據(jù)時(shí),必須及時(shí)讀取接收緩沖區(qū)中的數(shù)據(jù),否則其中的數(shù)據(jù)有可能被新接收的數(shù)據(jù)覆蓋而導(dǎo)致丟失。

2.串口控制寄存器SCON和電源控制寄存器PCON

串口控制寄存器SCON用于監(jiān)控串口的工作狀態(tài),其格式見(jiàn)表4-11。SCON中各位的作用如下:

(1)串口中斷請(qǐng)求標(biāo)志位TI和RI

串口有兩個(gè)中斷請(qǐng)求位,分別是發(fā)送中斷請(qǐng)求標(biāo)志位TI和接收中斷請(qǐng)求標(biāo)志位RI。

串口每發(fā)送完一個(gè)完整的字符幀后,TI被單片機(jī)硬件置1,并向CPU發(fā)出中斷請(qǐng)求。單片機(jī)的硬件任何時(shí)候都不會(huì)自動(dòng)將TI清0。再次發(fā)送數(shù)據(jù)前必須使用指令將TI清0,如指令“CLR TI”。另外,在中斷方式的串口程序設(shè)計(jì)中,若不及時(shí)將TI清0,單片機(jī)將誤認(rèn)為發(fā)送中斷請(qǐng)求一直存在,從而重復(fù)執(zhí)行串口中斷服務(wù)處理程序。

串口每接收到一個(gè)完整字符幀后,RI被單片機(jī)硬件置1,以向CPU發(fā)出中斷請(qǐng)求。接收新數(shù)據(jù)前,必須通過(guò)指令將RI清0,如指令“CLR RI”。同發(fā)送過(guò)程相似,在中斷方式的程序設(shè)計(jì)中,為了避免重復(fù)發(fā)出中斷請(qǐng)求,必須及時(shí)將RI清0。

另外,TI和RI均可由軟件指令置1和清零0,并且軟件置1對(duì)單片機(jī)的影響與硬件置1的完全相同。

(2)串口工作方式選擇位SM0和SM1

串口有4種工作方式,由SM0和SM1選擇,見(jiàn)表4-12。在表4-12中:

1)fosc是單片機(jī)的晶振頻率,影響串口的數(shù)據(jù)傳輸速度。

2)UART是“Universal Asynchronous Receiver/Transmitter”的縮寫(xiě),即通用的異步接收和發(fā)送器。

3)SMOD是電源控制寄存器PCON(見(jiàn)表4-13)的最高位。由表4-12中的波特率計(jì)算公式可知,當(dāng)SMOD由0變?yōu)?時(shí),與之相關(guān)的波特率將加倍,因此SMOD又被稱為波特率倍增位。

在表4-12出現(xiàn)了“T1溢出率”,下面將介紹表4-12中“T1溢出率”的計(jì)算方法,以及在串口方式1和方式2下,如何利用“T1溢出率”計(jì)算串口通信的波特率。

如圖4-18所示,定時(shí)/計(jì)數(shù)器T1是串口通信的波特率發(fā)生器,此時(shí)通常將T1設(shè)置為定時(shí)器且工作于工作方式2(自動(dòng)重裝初值的8位定時(shí)器),并屏蔽其中斷。T1溢出率是T1每秒鐘溢出的次數(shù),該次數(shù)與T1的初值有關(guān)。若假設(shè)T1的初值為M,則T1相鄰兩次溢出之間的時(shí)間間隔為(256-M)/(12/fosc),因此

式中,fosc為單片機(jī)的晶振頻率。

由表4-12和式(4-7)可知,串口的波特率計(jì)算方法見(jiàn)表4-14。在串行通信中,發(fā)送端和接收端須使用同樣的波特率。

表4-15給出了常用波特率及其相關(guān)設(shè)置,編程時(shí)可以通過(guò)查表的方式獲得定時(shí)器T1初值。另外,在計(jì)算波特率時(shí),若晶振頻率為11.0592MHz,則可以得到精確的T1初值(不會(huì)產(chǎn)生小數(shù)值),因此頻率為11.0592MHz的晶振在單片機(jī)系統(tǒng)中經(jīng)常被采用。

(3)允許接收位REN

REN是串口接收數(shù)據(jù)允許位,REN=0時(shí)禁止串口接收,REN=1時(shí)允許接收。該位可以由軟件指令置1或清0。

在串行通信過(guò)程中,只有當(dāng)RI=0且REN=1時(shí),才啟動(dòng)并允許串口接收,接收到的字符幀存入接收緩沖區(qū)。

(4)TB8

在工作方式2和工作方式3中,發(fā)送方TCON寄存器中的TB8將出現(xiàn)在發(fā)送字符幀中,并且位于數(shù)據(jù)位D7之后。另外,在具有一臺(tái)主機(jī)和多態(tài)從機(jī)的多機(jī)體通信中,TB8可以作為地址幀/數(shù)據(jù)幀的區(qū)分標(biāo)志。當(dāng)TB8=1時(shí),字符幀的數(shù)據(jù)位代表從機(jī)的編號(hào),即字符幀為地址幀;而當(dāng)TB8=0時(shí),數(shù)據(jù)位是實(shí)際要發(fā)送的數(shù)據(jù),即字符幀為數(shù)據(jù)幀。

(5)RB8

RB8與TB8相對(duì)應(yīng),在工作方式2和工作方式3中,接收方將接收到含有發(fā)送方TB8的字符幀,并且發(fā)送方的TB8將被硬件自動(dòng)送入接收方SCON寄存器的RB8位。換句話說(shuō),當(dāng)接收緩沖區(qū)接收到一個(gè)完整字符幀后,接收方RB8的值將與發(fā)送方TB8的值相同。

(6)多機(jī)控制位SM2

串口的方式2和方式3屬于多機(jī)通信方式,SM2用于控制實(shí)現(xiàn)多機(jī)通信。在多機(jī)通信系統(tǒng)中僅有一臺(tái)主機(jī),可以有多臺(tái)從機(jī)。每次通信時(shí),主機(jī)需從多臺(tái)從機(jī)中選擇一臺(tái)從機(jī)并與之進(jìn)行數(shù)據(jù)傳輸。因此,多機(jī)通信過(guò)程可以分為如下幾個(gè)步驟:

1)主機(jī)發(fā)向所有從機(jī)發(fā)送地址幀,地址幀的數(shù)據(jù)位代表從機(jī)編號(hào)。發(fā)送時(shí)要求主機(jī)的SM2=0,所有從機(jī)的SM2=1。

2)所有從機(jī)接收到地址幀后,將其中的從機(jī)編號(hào)與自身的編號(hào)相比較,比較相同的從機(jī)(即被主機(jī)選中的從機(jī))的SM2被清0,而其他從機(jī)的SM2依然為1。

3)被選中的從機(jī)與主機(jī)之間進(jìn)行一對(duì)一的數(shù)據(jù)傳輸。

4)主機(jī)與從機(jī)通信結(jié)束后,被選中從機(jī)的SM2被重新置1,為下一次多機(jī)通信做準(zhǔn)備。

多機(jī)通信中,從機(jī)接收數(shù)據(jù)后能否產(chǎn)生中斷請(qǐng)求,與SM2、RB8和RI的取值有關(guān),見(jiàn)表4-16。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉