<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機c語言教程:C51開關(guān)分支語句

          單片機c語言教程:C51開關(guān)分支語句

          作者: 時間:2012-09-12 來源:網(wǎng)絡(luò) 收藏

          SM0、SM1 為串行口工作模式設(shè)置位,這樣兩位能對應(yīng)進行四種模式的設(shè)置??幢?8-2 串行口工作模式設(shè)置。

          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 串行口工作模式設(shè)置

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

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

          REM 為允許接收位,REM 置 1 時串行口允許接收,置 0 時禁止接收。REM 是由軟件置位或 清零。如果在一個電路中接收和發(fā)送引腳 P3.0,P3.1 都和上位機相連,在軟件上有串行口中斷 處理程序,當(dāng)要求在處理某個子程序時不允許串行口被上位機來的控制字符產(chǎn)生中斷,那么可 以在這個子程序的開始處加入 REM=0 來禁止接收,在子程序結(jié)束處加入 REM=1 再次打開串行口 接收。大家也能用上面的實際源碼加入 REM=0 來進行實驗。

          TB8 發(fā)送數(shù)據(jù)位 8,在模式 2 和 3 是要發(fā)送的第 9 位。該位能用軟件根據(jù)需要置位或 清除,通常這位在通信協(xié)議中做奇偶位,在多處理機通信中這一位則用于表示是地址幀還是 數(shù)據(jù)幀。

          RB8 接收數(shù)據(jù)位 8,在模式 2 和 3 是已接收數(shù)據(jù)的第 9 位。該位可能是奇偶位,地址/ 數(shù)據(jù)標(biāo)識位。在模式 0 中,RB8 為保留位沒有被使用。在模式 1 中,當(dāng) SM2=0,RB8 是已接 收數(shù)據(jù)的停止位。

          TI 發(fā)送中斷標(biāo)識位。在模式 0,發(fā)送完第 8 位數(shù)據(jù)時,由硬件置位。其它模式中則是在 發(fā)送停止位之初,由硬件置位。TI 置位后,申請中斷,CPU 響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。 在任何模式下,TI 都必須由軟件來清除,也就是說在數(shù)據(jù)寫入到 SBUF 后,硬件發(fā)送數(shù)據(jù),

          中斷響應(yīng)(如中斷打開),這個時候 TI=1,表明發(fā)送已完成,TI 不會由硬件清除,所以這個時候必須用軟件對其清零。

          RI 接收中斷標(biāo)識位。在模式 0,接收第 8 位結(jié)束時,由硬件置位。其它模式中則是在接 收停止位的半中間,由硬件置位。RI=1,申請中斷,要求 CPU 取走數(shù)據(jù)。但在模式 1 中,SM2=1 時,當(dāng)未收到有效的停止位,則不會對 RI 置位。同樣 RI 也必須要靠軟件清除。

          常用的串行口模式 1 是傳輸 10 個位的,1 位起始位為 0,8 位數(shù)據(jù)位,低位在先,1 位停止 位為 1。它的波特率是可變的,其速率是取決于定時器 1 或定時器 2 的定時值(溢出速率)。 AT89c51 和 AT89C2051 等 51 系列芯片只有兩個定時器,定時器 0 和定時器 1,而定時器 2是 89C52 系列芯片才有的。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();