新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機的簡介——串行口、SCON

        51單片機的簡介——串行口、SCON

        作者: 時間:2016-11-23 來源:網絡 收藏
        51單片機有一個全雙工串行通訊口,它即可作為UART(Universal Asynchronous Receiver/Transmitter),也可作為一個同步移位寄存器。而且作為UART時,其具有多機通訊能力。
        51單片機串行口由發送控制、接收控制、波特率輸入管理和發送/接收緩沖區SBUF(地址為99H)組成。SBUF作為發送和接收緩沖區其實際是分開的兩個器件,數據不會相互覆蓋,但在對其尋址時都是99H,51單片機會根據讀或者寫指令操作相應的器件。
        站在匯編角度來看,51單片機的串行口通訊操作體現為累加器Acc(地址E0H)和發送/接收緩沖區SBUF之間的數據傳遞。當我們要發送數據時,對串行口完成初始化設置后,數據由累加器A傳入SBUF,然后在發送控制器的控制下組成幀結構,并自動從TXD端口發出,發送結束后置位TI(TI是特殊功能寄存器SCON的可獨立尋址位,參見SCON介紹),如果要繼續發送就在指令中將TI清0。接收數據時,相當于對串口完成初始化設置后,數據由SBUF傳入累加器Acc,在置位允許位(即設置SCON的獨立尋址位REN為1)后才開始進行串行接收操作,在接收控制器控制下,通過移位寄存器將串行數據輸入SBUF,接收結束后將RI(SCON中可獨立尋址位)置位,最后將數據送累加器Acc。
        特殊功能寄存器SCON是串行口控制寄存器,用于存放串行口的控制和狀態信息,其地址為98H,具有位尋址功能,其各位的結構如下圖所示:
        其中各個位的功能及含義如下:
        SM0、SM1:串行口工作方式選擇位,其組合含義如下圖所示:

        SM2:多機通訊控制位。在方式2和方式3中用于多機通訊控制,在方式2、方式3的接收狀態中,若SM2=1,當接收到的第9位(同時系統將第9位值賦予RB8)為0時,舍棄接收到的數據,RI置0;若第9位為1時,將接收到的數據送入接收SBUF中,并將RI置1;而對于方式1,接收到有效的停止位時,將RI置1。對于方式0,SM2應該置0。
        REN:允許接收位。REN置1時允許接收數據,REN由指令置位或者復位。
        TB8:第9位發送的數據。多機通訊時(即方式2、方式3)TB8表示主機發送的是地址還是數據,TB8=0表示發送的是數據,TB8=1表示發送的是地址。TB8由指令置位或者復位。
        RB8:第9位接收的數據。用來存儲接收到的第9位數據,用于標明接收到的數據特征或者用于校驗。對于方式0,不使用RB8。
        TI:發送中斷標志,由硬件設置,由軟件清0。方式0串行發送完8位數據后置位,其它方式串行發送停止位后置位。
        RI:接收中斷標志,由硬件設置,由軟件清0。方式0接收完8位數據后置位,其它方式接收到停止位時置位。
        51單片機借用了PCON的D7位作為串行波特率系數SMOD控制位,PCON不可位尋址,其地址為87H,當SMOD=1時,波特率加倍。SMOD在PCON中的位置如下圖所示:



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 建湖县| 来凤县| 曲沃县| 博兴县| 镇坪县| 武功县| 大厂| 建德市| 竹北市| 庄河市| 噶尔县| 庄浪县| 舒兰市| 仁化县| 岳阳市| 景德镇市| 南康市| 大新县| 禹州市| 宜都市| 右玉县| 玉环县| 昌平区| 张掖市| 西峡县| 曲阳县| 周至县| 会泽县| 垫江县| 宜良县| 寿宁县| 建水县| 淮安市| 日土县| 宝坻区| 嵊泗县| 遵义市| 苗栗市| 延庆县| 廊坊市| 保定市|