串口通用暫存器

SCON串列口控制暫存器通常在晶片或設備中為了監視或控制接口狀態,都會引用到接口控制暫存器。SCON 就是51 晶片的串列口控制暫存器。它的定址地址是98H,是一個可以位定址的暫存器,作用就是監視和控制51 晶片串列口的工作狀態。51 晶片的串口可以工作在幾個不同的工作模式下,其工作模式的設定就是使用SCON 暫存器。

它的各個位的具體定義如下:
SM0 SM1SM2REN TB8 RB8 TI RI
SM0、SM1 為串列口工作模式設定位,這樣兩位可以對應進行四種模式的設定。串列口工作模式設定。
SM0 SM1 模式 功能 波特率
0 0 0 同步移位暫存器 fosc/12
0 1 1 8位UART 可變
1 0 2 9位UART fosc/32 或fosc/64
1 1 3 9位UART 可變
在這裡只說明最常用的模式1,其它的模式也就一一略過,有興趣的朋友可以找相關的硬體資料查看。表中的fosc 代表振盪器的頻率,也就是晶振的頻率。UART 為(Universal Asynchronous Receiver)的英文縮寫。
SM2 在模式2、模式3 中為多處理機通信使能位。在模式0 中要求該位為0。
REN 為允許接收位,REN 置1 時串口允許接收,置0 時禁止接收。REN 是由軟體置位或清零。如果在一個電路中接收和傳送引腳P3.0,P3.1 都和上位機相連,在軟體上有串口中斷處理程式,當要求在處理某個子程式時不允許串口被上位機來的控制字元產生中斷,那么可以在這個子程式的開始處加入REN=0 來禁止接收,在子程式結束處加入REN=1 再次打開串口接收。大家也可以用上面的實際源碼加入REN=0 來進行實驗。
TB8 傳送數據位8,在模式2 和3 是要傳送的第9 位。該位可以用軟體根據需要置位或清除,通常這位在通信協定中做奇偶位,在多處理機通信中這一位則用於表示是地址幀還是數據幀。
RB8 接收數據位8,在模式2 和3 是已接收數據的第9 位。該位可能是奇偶位,地址/數據標識位。在模式0 中,RB8 為保留位沒有被使用。在模式1 中,當SM2=0,RB8 是已接收數據的停止位。
TI 傳送中斷標識位。在模式0,傳送完第8 位數據時,由硬體置位。其它模式中則是在傳送停止位之初,由硬體置位。TI 置位後,申請中斷,CPU 回響中斷後,傳送下一幀數據。在任何模式下,TI 都必須由軟體來清除,也就是說在數據寫入到SBUF後,硬體傳送數據,中斷回響(如中斷打開),這時TI=1,表明傳送已完成,TI 不會由硬體清除,所以這時必須用軟體對其清零。
RI 接收中斷標識位。在模式0,接收第8 位結束時,由硬體置位。其它模式中則是在接收停止位的半中間,由硬體置位。RI=1,申請中斷,要求CPU 取走數據。但在模式1 中,SM2=1時,當未收到有效的停止位,則不會對RI 置位。同樣RI 也必須要靠軟體清除。常用的串口模式1 是傳輸10 個位的,1 位起始位為0,8 位數據位,低位在先,1 位停止位為1。它的波特率是可變的,其速率是取決於定時器1 或定時器2 的定時值(溢出速率)。

相關詞條

熱門詞條

聯絡我們