【文章內容簡介】
O D01T H 1 T L 1247。 2247。 1 6S B U FT 1 溢 出 率 SCON 是一個特殊功能寄存器,用以設定串行口的工作方式、接收 /發(fā)送控制以及設置狀態(tài)標志: 80C51串行口的控制寄存器 SM0和 SM1為工作方式選擇位,可選擇四種工作方式: ● SM2,多機通信控制位 ,主要用于方式 2和方式 3。當 接收機的 SM2=1時可以利用收到的 RB8來控制是否激活 RI( RB8= 0時不激活 RI,收到的信息丟棄;RB8= 1時收到的數(shù)據(jù)進入 SBUF,并激活 RI,進而在中斷服務中將數(shù)據(jù)從 SBUF讀走)。 當 SM2=0時,不論收到的 RB8為 0和 1,均可以使收到的數(shù)據(jù)進入SBUF,并激活 RI(即此時 RB8不具有控制 RI激活的功能)。通過控制 SM2,可以實現(xiàn)多機通信。 在方式 0時, SM2必須是 0。在方式 1時,若 SM2=1,則只有接收到有效停止位時, RI才置 1。 ● REN,允許串行接收位 。由軟件置 REN=1,則啟動串行口接收數(shù)據(jù);若軟件置 REN=0,則禁止接收。 ● TB8,在方式 2或方式 3中,是發(fā)送數(shù)據(jù)的第九位 ,可以用軟件規(guī)定其作用。可以用作數(shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀 /數(shù)據(jù)幀的標志位。 在方式 0和方式 1中,該位未用。 ● RB8,在方式 2或方式 3中,是接收到數(shù)據(jù)的第九位 ,作為奇偶校驗位或地址幀 /數(shù)據(jù)幀的標志位。在方式 1時,若 SM2=0,則 RB8是接收到的停止位。 ● TI,發(fā)送中斷標志位 。在方式 0時,當串行發(fā)送第 8位數(shù)據(jù)結束時,或在其它方式,串行發(fā)送停止位的開始時,由內部硬件使 TI置 1,向 CPU發(fā)中斷申請。在中斷服務程序中,必須用軟件將其清 0,取消此中斷申請。 ● RI,接收中斷標志位 。在方式 0時,當串行接收第 8位數(shù)據(jù)結束時,或在其它方式,串行接收停止位的中間時,由內部硬件使 RI置 1,向 CPU發(fā)中斷申請。也必須在中斷服務程序中,用軟件將其清 0,取消此中斷申請。 PCON中只有一位 SMOD與串行口工作有關 : SMOD( ) 波特率倍增位。在串行口方式 方式 方式 3時,波特率與 SMOD有關,當 SMOD=1時,波特率提高一倍。復位時, SMOD=0。 80C51串行口的工作方式 一、方式 0 方式 0時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數(shù)據(jù)由 RXD( )引腳輸入或輸出,同步移位脈沖由 TXD( )引腳輸出。發(fā)送和接收均為 8位數(shù)據(jù),低位在先,高位在后。波特率固定為 fosc/12。 方式 0輸出 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7寫 入 S B U FR X D ( 數(shù) 據(jù) )T X D ( 移 位 脈 沖 )T I ( 中 斷 標 志 ) 方式 0輸入 R E N = 1R X D ( 數(shù) 據(jù) 輸 入 )T X D ( 移 位 脈 沖 )R I = 0D 0 D 1 D 2 D 3D 4D 5 D 6 D 7 方式 0接收和發(fā)送電路 7 4 L S 1 6 4R X DT X DP 1 . 08 0 C 5 1C L RC L KABG N D7 4 L S 1 6 5R X DT X DP 1 . 08 0 C 5 1S / LC L KQG N D 二、方式 1 方式 1是 10位數(shù)據(jù)的異步通信口。 TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中 1位起始位, 8位數(shù)據(jù)位, 1位停止位。 停止位數(shù) 據(jù) 位 8 位起始位L S B M S B空閑空閑D 0D 71 幀 共 1 0 位 方式 1輸出 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7寫 入 S B U F停 止 位T X DT I ( 中 斷 標 志 )起 始 方式 1輸入 用軟件置 REN為 1時,接收器以所選擇波特率的 16倍速率采樣 RXD引腳電平,檢測到 RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當 RI=0,且 SM2=0(或接收到的停止位為 1)時,將接收到的 9位數(shù)據(jù)的前 8位數(shù)據(jù)裝入接收 SBUF,第 9位(停止位)進入 RB8,并置 RI=1,向 CPU請求中斷。 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7停 止 位R X DR I ( 中 斷 標 志 )起 始位 采 樣 脈 沖 三、方式 2和方式 3 方式 2或方式 3時為 11位數(shù)據(jù)的異步通信口。 TXD為數(shù)據(jù)發(fā)送引腳, RXD為數(shù)據(jù)接收引腳 。 方式 2和方式 3時起始位 1位,數(shù)據(jù) 9位(含 1位附加的第 9位,發(fā)送時為 SCON中的 TB8,接收時為 RB8),停止位 1位,一幀數(shù)據(jù)為 11位。方式 2的波特率固定為晶振頻率的 1/64或 1/32,方式 3的波特率由定時器 T1的溢出率決定。 停止位數(shù) 據(jù) 位 9 位起始位L S B M S B空閑空閑D 0D 71 幀 共 1 1 位R B 8 / T B 8 方式 2和方式 3輸出 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7寫 入 S B U F停 止 位T X DT I ( 中 斷 標 志 )起 始T B 8 發(fā)送開始時,先把起始位 0輸出到 TXD引腳,然后發(fā)送移位寄存器的輸出位( D0)到 TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由 TXD引腳輸出。 第一次移位時,停止位“ 1”移入輸出移位寄存器的第 9位上 ,以后每次移位,左邊都移入 0。當停止位移至輸出位時,左邊其余位全為 0,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置 TI=1,向 CPU請求中斷。 方式 2和方式 3輸入 接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位 0移到最左邊時,控制電路進行最后一次移位。當 RI=0,且 SM2=0(或接收到的第 9位數(shù)據(jù)為 1)時,接收到的數(shù)據(jù)裝入接收緩沖器 SBUF和 RB