新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > C51串口的SCON寄存器及工作方式

        C51串口的SCON寄存器及工作方式

        作者: 時間:2016-11-09 來源:網絡 收藏
        一,串行口控制寄存器SCON

        本文引用地址:http://www.104case.com/article/201611/318041.htm

        它用于定義串行口的工作方式及實施接收和發送控制。字節地址為98H,其各位定義如下表:

        D7

        D6

        D5

        D4

        D3

        D2

        D1

        D0

        SM0

        SM1

        SM2

        REN

        TB8

        RB8

        TI

        RI

        SM0、SM1:串行口工作方式選擇位,其定義如下:

        SM0、SM1

        工作方式

        功能描述

        波特率

        0 0

        方式0

        8位移位寄存器

        Fosc/12

        0 1

        方式1

        10位UART

        可變

        1 0

        方式2

        11位UART

        Fosc/64或fosc/32

        1 1

        方式3

        11位UART

        可變

        其中fosc為晶振頻率

        SM2:多機通訊控制位。在方式0時,SM2一定要等于0。在方式1中,當(SM2)=1則只有接收到有效停止位時,RI才置1。在方式2或方式3當(SM2)=1且接收到的第九位數據RB8=0時,RI才置1。

        REN:接收允許控制位。由軟件置位以允許接收,又由軟件清0來禁止接收。

        TB8: 是要發送數據的第9位。在方式2或方式3中,要發送的第9位數據,根據需要由軟件置1或清0。例如,可約定作為奇偶校驗位,或在多機通訊中作為區別地址幀或數據幀的標志位。

        RB8:接收到的數據的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8為接收到的停止位。在方式2或方式3中,RB8為接收到的第9位數據。

        TI:發送中斷標志。在方式0中,第8位發送結束時,由硬件置位。在其它方式的發送停止位前,由硬件置位。TI置位既表示一幀信息發送結束,同時也是申請中斷,可根據需要,用軟件查詢的方法獲得數據已發送完畢的信息,或用中斷的方式來發送下一個數據。TI必須用軟件清0。

        RI:接收中斷標志位。在方式0,當接收完第8位數據后,由硬件置位。在其它方式中,在接收到停止位的中間時刻由硬件置位(例外情況見于SM2的說明)。RI置位表示一幀數據接收完畢,可用查詢的方法獲知或者用中斷的方法獲知。RI也必須用軟件清0。

        二,串行口的工作方式

        8051單片機的全雙工串行口可編程為4種工作方式,現分述如下:

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

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

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

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

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

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

        3,方式2

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

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

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

        4,工作方式3

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



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 阜康市| 新化县| 邵武市| 洛川县| 永靖县| 镶黄旗| 双柏县| 理塘县| 沁源县| 东平县| 望奎县| 临沂市| 巫溪县| 长宁县| 普洱| 方山县| 弋阳县| 沁阳市| 淮滨县| 彝良县| 英德市| 泸溪县| 米泉市| 青铜峡市| 朝阳区| 托里县| 华阴市| 鱼台县| 华容县| 宿迁市| 拉萨市| 松原市| 惠水县| 讷河市| 周口市| 色达县| 昭苏县| 房产| 右玉县| 英德市| 阿勒泰市|