新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C51串口的SCON寄存器及工作方式

C51串口的SCON寄存器及工作方式

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
一,串行口控制寄存器SCON

本文引用地址:http://butianyuan.cn/article/201611/318041.htm

它用于定義串行口的工作方式及實(shí)施接收和發(fā)送控制。字節(jié)地址為98H,其各位定義如下表:

D7

D6

D5

D4

D3

D2

D1

D0

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0、SM1:串行口工作方式選擇位,其定義如下:

SM0、SM1

工作方式

功能描述

波特率

0 0

方式0

8位移位寄存器

Fosc/12

0 1

方式1

10位UART

可變

1 0

方式2

11位UART

Fosc/64或fosc/32

1 1

方式3

11位UART

可變

其中fosc為晶振頻率

SM2:多機(jī)通訊控制位。在方式0時(shí),SM2一定要等于0。在方式1中,當(dāng)(SM2)=1則只有接收到有效停止位時(shí),RI才置1。在方式2或方式3當(dāng)(SM2)=1且接收到的第九位數(shù)據(jù)RB8=0時(shí),RI才置1。

REN:接收允許控制位。由軟件置位以允許接收,又由軟件清0來(lái)禁止接收。

TB8: 是要發(fā)送數(shù)據(jù)的第9位。在方式2或方式3中,要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。例如,可約定作為奇偶校驗(yàn)位,或在多機(jī)通訊中作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)志位。

RB8:接收到的數(shù)據(jù)的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8為接收到的停止位。在方式2或方式3中,RB8為接收到的第9位數(shù)據(jù)。

TI:發(fā)送中斷標(biāo)志。在方式0中,第8位發(fā)送結(jié)束時(shí),由硬件置位。在其它方式的發(fā)送停止位前,由硬件置位。TI置位既表示一幀信息發(fā)送結(jié)束,同時(shí)也是申請(qǐng)中斷,可根據(jù)需要,用軟件查詢(xún)的方法獲得數(shù)據(jù)已發(fā)送完畢的信息,或用中斷的方式來(lái)發(fā)送下一個(gè)數(shù)據(jù)。TI必須用軟件清0。

RI:接收中斷標(biāo)志位。在方式0,當(dāng)接收完第8位數(shù)據(jù)后,由硬件置位。在其它方式中,在接收到停止位的中間時(shí)刻由硬件置位(例外情況見(jiàn)于SM2的說(shuō)明)。RI置位表示一幀數(shù)據(jù)接收完畢,可用查詢(xún)的方法獲知或者用中斷的方法獲知。RI也必須用軟件清0。

二,串行口的工作方式

8051單片機(jī)的全雙工串行口可編程為4種工作方式,現(xiàn)分述如下:

1,方式0為移位寄存器輸入/輸出方式??赏饨右莆患拇嫫饕詳U(kuò)展I/O口,也可以外接同步輸入/輸出設(shè)備。8位串行數(shù)據(jù)者是從RXD輸入或輸出,TXD用來(lái)輸出同步脈沖。

(1)輸出串行數(shù)據(jù)從RXD引腳輸出,TXD引腳輸出移位脈沖。CPU將數(shù)據(jù)寫(xiě)入發(fā)送寄存器時(shí),立即啟動(dòng)發(fā)送,將8位數(shù)據(jù)以fos/12的固定波特率從RXD輸出,低位在前,高位在后。發(fā)送完一幀數(shù)據(jù)后,發(fā)送中斷標(biāo)志TI由硬件置位。

(2)輸入當(dāng)串行口以方式0接收時(shí),先置位允許接收控制位REN。此時(shí),RXD為串行數(shù)據(jù)輸入端,TXD仍為同步脈沖移位輸出端。當(dāng)(RI)=0和(REN)=1同時(shí)滿(mǎn)足時(shí),開(kāi)始接收。當(dāng)接收到第8位數(shù)據(jù)時(shí),將數(shù)據(jù)移入接收寄存器,并由硬件置位RI。

2,方式1為波特率可變的10位異步通訊接口方式。發(fā)送或接收一幀信息,包括1個(gè)起始位0,8個(gè)數(shù)據(jù)位和1個(gè)停止位1。

(1)輸出當(dāng)CPU執(zhí)行一條指令將數(shù)據(jù)寫(xiě)入發(fā)送緩沖SBUF時(shí),就啟動(dòng)發(fā)送。串行數(shù)據(jù)從TXD引腳輸出,發(fā)送完一幀數(shù)據(jù)后,就由硬件置位TI。

(2)輸入在(REN)=1時(shí),串行口采樣RXD引腳,當(dāng)采樣到1至0的跳變時(shí),確認(rèn)是開(kāi)始位0,就開(kāi)始接收一幀數(shù)據(jù)。只有當(dāng)(RI)=0且停止位為1或者(SM2)=0時(shí),停止位才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志RI;否則信息丟失。所以在方式1接收時(shí),應(yīng)先用軟件清零RI和SM2標(biāo)志。

3,方式2

方式2為固定波特率的11位UART方式。它比方式1增加了一位可程控為1或0的第9位數(shù)據(jù)。

(1)輸出: 發(fā)送的串行數(shù)據(jù)由TXD端輸出一幀信息為11位,附加的第9位來(lái)自SCON寄存器的TB8位,用軟件置位或復(fù)位。它可作為多機(jī)通訊中地址/數(shù)據(jù)信息的標(biāo)志位,也可以作為數(shù)據(jù)的奇偶校驗(yàn)位。當(dāng)CPU執(zhí)行一條數(shù)據(jù)寫(xiě)入SUBF的指令時(shí),就啟動(dòng)發(fā)送器發(fā)送。發(fā)送一幀信息后,置位中斷標(biāo)志TI。

(2)輸入: 在(REN)=1時(shí),串行口采樣RXD引腳,當(dāng)采樣到1至0的跳變時(shí),確認(rèn)是開(kāi)始位0,就開(kāi)始接收一幀數(shù)據(jù)。在接收到附加的第9位數(shù)據(jù)后,當(dāng)(RI)=0或者(SM2)=0時(shí),第9位數(shù)據(jù)才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志RI;否則信息丟失。且不置位RI。再過(guò)一位時(shí)間后,不管上述條件時(shí)否滿(mǎn)足,接收電路即行復(fù)位,并重新檢測(cè)RXD上從1到0的跳變。

4,工作方式3

方式3為波特率可變的11位UART方式。除波特率外,其余與方式2相同。



關(guān)鍵詞: C51串口SCON寄存器工作方

評(píng)論


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

關(guān)閉