久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機c語言教程:C51開關分支語句

單片機c語言教程:C51開關分支語句

作者: 時間:2012-09-12 來源:網絡 收藏

SM0、SM1 為串行口工作模式設置位,這樣兩位能對應進行四種模式的設置。看表 8-2 串行口工作模式設置。

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

可變

表 8-2 串行口工作模式設置

在這里只說明最常用的模式 1,其它的模式也就一一略過,有興趣的朋友能找相關的 硬件資料查看。表中的 fosc 代表振蕩器的頻率,也就是晶體震蕩器的頻率。UART 為(Universal Asynchronous Receiver)的英文縮寫。

SM2 在模式 2、模式 3 中為多處理機通信使能位。在模式 0 中要求該位為 0。

REM 為允許接收位,REM 置 1 時串行口允許接收,置 0 時禁止接收。REM 是由軟件置位或 清零。如果在一個電路中接收和發送引腳 P3.0,P3.1 都和上位機相連,在軟件上有串行口中斷 處理程序,當要求在處理某個子程序時不允許串行口被上位機來的控制字符產生中斷,那么可 以在這個子程序的開始處加入 REM=0 來禁止接收,在子程序結束處加入 REM=1 再次打開串行口 接收。大家也能用上面的實際源碼加入 REM=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 的定時值(溢出速率)。 AT89c51 和 AT89C2051 等 51 系列芯片只有兩個定時器,定時器 0 和定時器 1,而定時器 2是 89C52 系列芯片才有的。



評論


相關推薦

技術專區

關閉