新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機串行口介紹

        單片機串行口介紹

        作者: 時間:2012-10-23 來源:網絡 收藏

        特殊功能寄存器PCON

        PCON是為了在CHMOS的上實現電源控制而附加的。其中最高位是SMOD。

        的工作方式

        8051的全雙工可編程為4種工作方式,現分述如下:

        方式0為移位寄存器輸入/輸出方式。可外接移位寄存器以擴展I/O口,也能外接同步輸入/輸出設備。8位串行數據者是從RXD輸入或輸出,TXD用來輸出同步脈沖。

        輸出 串行數據從RXD管腳輸出,TXD管腳輸出移位脈沖。CPU將數據寫入發送寄存器時,立即啟動發送,將8位數據以fos/12的固定波特率從RXD輸出,低位在前,高位在后。發送完一幀數據后,發送中斷標志TI由硬件置位。

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

        下面兩圖分別是方式0擴展輸出和輸入的接線圖。

        點擊瀏覽下一頁
        串行口接線圖>

        方式1為波特率可變的10位異步通信接口方式。發送或接收一幀信息,包括1個起始位0,8個數據位和1個停止位1。

        輸出 當CPU執行一條指令將數據寫入發送緩沖SBUF時,就啟動發送。串行數據從TXD管腳輸出,發送完一幀數據后,就由硬件置位TI。

        輸入 在(REN)=1時,串行口采樣RXD管腳,當采樣到1至0的跳變時,確認是開始位0,就開始接收一幀數據。只有當(RI)=0且停止位為1或者(SM2)=0時,停止位才進入RB8,8位數據才能進入接收寄存器,并由硬件置位中斷標志RI;不然信息丟失。所以在方式1接收時,應先用軟件清零RI和SM2標志。

        方式2

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

        輸出: 發送的串行數據由TXD端輸出一幀信息為11位,附加的第9位來自SCON寄存器的TB8位,用軟件置位或復位。它可作為多機通信中地址/數據信息的標志位,也能作為數據的奇偶校驗位。當CPU執行一條數據寫入SUBF的指令時,就啟動發送器發送。發送一幀信息后,置位中斷標志TI。

        輸入: 在(REN)=1時,串行口采樣RXD管腳,當采樣到1至0的跳變時,確認是開始位0,就開始接收一幀數據。在接收到附加的第9位數據后,當(RI)=0或者(SM2)=0時,第9位數據才進入RB8,8位數據才能進入接收寄存器,并由硬件置位中斷標志RI;不然信息丟失。且不置位RI。再過一位時間后,不管上述條件時否滿足,接收電路即行復位,并重新檢測RXD上從1到0的跳變。

        工作方式3

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

        波特率選擇

        如前所述,在串行通信中,收發雙方的數據傳送率(波特率)要有一定的約定。在8051串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時器T1的溢出率控制。

        方式0

        方式0的波特率固定為主振頻率的1/12。

        方式2

        方式2的波特率由PCON中的選擇位SMOD來決定,可由下式表示:

        波特率=2的SMOD次方除以64再乘一個fosc,也就是當SMOD=1時,波特率為1/32fosc,當SMOD=0時,波特率為1/64fosc

        3.方式1和方式3

        定時器T1作為波特率發生器,其公式如下:

        波特率=點擊瀏覽下一頁定時器T1溢出率

        T1溢出率= T1計數率/產生溢出所需的周期數

        式中T1計數率取決于它工作在定時器狀態還是計數器狀態。當工作于定時器狀態時,T1計數率為fosc/12;當工作于計數器狀態時,T1計數率為外部輸入頻率,此頻率應小于fosc/24。產生溢出所需周期與定時器T1的工作方式、T1的預置值有關。

        定時器T1工作于方式0:溢出所需周期數=8192-x

        定時器T1工作于方式1:溢出所需周期數=65536-x

        定時器T1工作于方式2:溢出所需周期數=256-x

        因為方式2為自動重裝入初值的8位定時器/計數器模式,所以用它來做波特率發生器最恰當。

        當時鐘頻率選用11.0592MHZ時,取易獲得標準的波特率,所以很多單片機系統選用這個看起來“怪”的晶體震蕩器就是這個道理。

        下表列出了定時器T1工作于方式2常用波特率及初值。

        38.jpg


        上一頁 1 2 下一頁

        關鍵詞: 單片機 串行口 80C51

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 呼和浩特市| 和政县| 罗山县| 霍州市| 宕昌县| 桐梓县| 洛川县| 梁河县| 水城县| 东乡县| 运城市| 江川县| 平原县| 民乐县| 新丰县| 洪泽县| 綦江县| 乌鲁木齐县| 满洲里市| 南充市| 抚顺县| 宾川县| 含山县| 重庆市| 东乌| 大城县| 枝江市| 柳江县| 广灵县| 沽源县| 台州市| 滨州市| 封开县| 剑阁县| 乐山市| 平潭县| 绥滨县| 东乡| 大足县| 舒兰市| 屯门区|