新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)的簡(jiǎn)介——串行口、SCON

51單片機(jī)的簡(jiǎn)介——串行口、SCON

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
51單片機(jī)有一個(gè)全雙工串行通訊口,它即可作為UART(Universal Asynchronous Receiver/Transmitter),也可作為一個(gè)同步移位寄存器。而且作為UART時(shí),其具有多機(jī)通訊能力。
51單片機(jī)串行口由發(fā)送控制、接收控制、波特率輸入管理和發(fā)送/接收緩沖區(qū)SBUF(地址為99H)組成。SBUF作為發(fā)送和接收緩沖區(qū)其實(shí)際是分開(kāi)的兩個(gè)器件,數(shù)據(jù)不會(huì)相互覆蓋,但在對(duì)其尋址時(shí)都是99H,51單片機(jī)會(huì)根據(jù)讀或者寫(xiě)指令操作相應(yīng)的器件。
站在匯編角度來(lái)看,51單片機(jī)的串行口通訊操作體現(xiàn)為累加器Acc(地址E0H)和發(fā)送/接收緩沖區(qū)SBUF之間的數(shù)據(jù)傳遞。當(dāng)我們要發(fā)送數(shù)據(jù)時(shí),對(duì)串行口完成初始化設(shè)置后,數(shù)據(jù)由累加器A傳入SBUF,然后在發(fā)送控制器的控制下組成幀結(jié)構(gòu),并自動(dòng)從TXD端口發(fā)出,發(fā)送結(jié)束后置位TI(TI是特殊功能寄存器SCON的可獨(dú)立尋址位,參見(jiàn)SCON介紹),如果要繼續(xù)發(fā)送就在指令中將TI清0。接收數(shù)據(jù)時(shí),相當(dāng)于對(duì)串口完成初始化設(shè)置后,數(shù)據(jù)由SBUF傳入累加器Acc,在置位允許位(即設(shè)置SCON的獨(dú)立尋址位REN為1)后才開(kāi)始進(jìn)行串行接收操作,在接收控制器控制下,通過(guò)移位寄存器將串行數(shù)據(jù)輸入SBUF,接收結(jié)束后將RI(SCON中可獨(dú)立尋址位)置位,最后將數(shù)據(jù)送累加器Acc。
特殊功能寄存器SCON是串行口控制寄存器,用于存放串行口的控制和狀態(tài)信息,其地址為98H,具有位尋址功能,其各位的結(jié)構(gòu)如下圖所示:
其中各個(gè)位的功能及含義如下:
SM0、SM1:串行口工作方式選擇位,其組合含義如下圖所示:

SM2:多機(jī)通訊控制位。在方式2和方式3中用于多機(jī)通訊控制,在方式2、方式3的接收狀態(tài)中,若SM2=1,當(dāng)接收到的第9位(同時(shí)系統(tǒng)將第9位值賦予RB8)為0時(shí),舍棄接收到的數(shù)據(jù),RI置0;若第9位為1時(shí),將接收到的數(shù)據(jù)送入接收SBUF中,并將RI置1;而對(duì)于方式1,接收到有效的停止位時(shí),將RI置1。對(duì)于方式0,SM2應(yīng)該置0。
REN:允許接收位。REN置1時(shí)允許接收數(shù)據(jù),REN由指令置位或者復(fù)位。
TB8:第9位發(fā)送的數(shù)據(jù)。多機(jī)通訊時(shí)(即方式2、方式3)TB8表示主機(jī)發(fā)送的是地址還是數(shù)據(jù),TB8=0表示發(fā)送的是數(shù)據(jù),TB8=1表示發(fā)送的是地址。TB8由指令置位或者復(fù)位。
RB8:第9位接收的數(shù)據(jù)。用來(lái)存儲(chǔ)接收到的第9位數(shù)據(jù),用于標(biāo)明接收到的數(shù)據(jù)特征或者用于校驗(yàn)。對(duì)于方式0,不使用RB8。
TI:發(fā)送中斷標(biāo)志,由硬件設(shè)置,由軟件清0。方式0串行發(fā)送完8位數(shù)據(jù)后置位,其它方式串行發(fā)送停止位后置位。
RI:接收中斷標(biāo)志,由硬件設(shè)置,由軟件清0。方式0接收完8位數(shù)據(jù)后置位,其它方式接收到停止位時(shí)置位。
51單片機(jī)借用了PCON的D7位作為串行波特率系數(shù)SMOD控制位,PCON不可位尋址,其地址為87H,當(dāng)SMOD=1時(shí),波特率加倍。SMOD在PCON中的位置如下圖所示:



關(guān)鍵詞: 51單片機(jī)串行口SCO

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉