新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第11課 串口通信

        第11課 串口通信

        作者: 時間:2016-12-01 來源:網絡 收藏
        2、串行通信編程時主要應注意的事項
        3、51單片機串行口結構
        串行口電路也稱為通用異步收發器(UART).從原理上講,一個UART應包括發送器電路、接收器電路和控制電路。51單片機的UART已集成在其中,構成一個全雙工串行口,這個口即可以用于網絡通信,也可以實現串行異步通信,還可以作為同步移位寄存器使用。
        80C51的串行口通過引腳RXD(P30,串行口數據接收端)和引腳TXD(P31,串行數據發送端)與外療設備進行串行通信。如圖3為單片機串行口的結構。
        圖中共有兩個串行口緩沖寄存器(SBUF),一個是發送寄存器,一個是接收寄存器,以便單片機能以全雙工方式進行通信。串行發送時,從片內總線向發送SBUF寫入數據;接收時,從接收SBUF向片內總線讀出數據。它們都是可尋址的寄存器,但因為發送和接收不能同時進行,所以給這兩個寄存器賦以同一地址99H.
        在接收方式下,串行數據通過引腳RXD(P30)進入,由于在接收寄存器之前還有移位寄存器,從而構成了串行接收的雙緩沖結構,以避免在數據接收過程上中出現幀重疊錯誤,即在下一幀數據來時,前一幀數據還沒有讀走。
        在發送方式下,串行數據通過引腳TXD(P31)發出。與接收情況不同的,發送數據時,由于CPU是主動的,不會發生幀重疊錯誤,因此發送電路就不需又重緩沖結構,這樣可以提高數據發送的速度。
        4、相關的寄存器
        與串口通信相關的相關的寄存器主要有四個,串行口控制寄存器SCON、電源控制寄存器PCON、定時器工作方式寄存器TMOD、定時器控制寄存器TCON、中斷允許寄存器IE,后面主要跟波特率設置及中波相關,前面在講中斷和定時器已作過介紹,所以這里只對SCON和PCON寄存器進行介紹。
        (1)串行控制寄存器SCON
        串行控制寄存器SCON用于設置串行口的工作方式、監視串行口的工作狀態、控制發送與接收的狀態等。它是一個既可以字節尋址又可以位尋址的8位特殊功能寄存器。其格式如下。
        (1)SM0 SM1:串行口工作方式選擇位。其狀態組合所對應的工作方式如表9-1所示。
        (2) SM2:多機通信控制器位。在方式0中,SM2必須設成0。在方式1中,當處于接收狀態時,若SM2=1,則只有接收到有效的停止位“1”時,RI才能被激活成“1”(產生中斷請求)。在方式2和方式3中,若SM2=0,串行口以單機發送或接收方式工作,TI和RI以正常方式被激活并產生中斷請求;若SM2=1,RB8=1時,RI被激活并產生中斷請求。
        (3) REN:串行接受允許控制位。該位由軟件置位或復位。當REN=1,允許接收;當REN=0,禁止接收
        (4) TB8:方式2和方式3中要發送的第9位數據。該位由軟件置位或復位。在方式2和方式3時,TB8是發送的第9位數據。在多機通信中,以TB8位的狀態表示主機發送的是地址還是數據:TB8=1表示地址,TB8=0表示數據。TB8還可用作奇偶校驗位。
        (5) RB8:接收數據第9位。在方式2和方式3時,RB8存放接收到的第9位數據。RB8也可用作奇偶校驗位。在方式1中,若SM2=0,則RB8是接收到的停止位。在方式0中,該位未用。
        (6)TI:發送中斷標志位。TI=1,表示已結束一幀數據發送,可由軟件查詢TI位標志,也可以向CPU申請中斷。
        注意:TI在任何工作方式下都必須由軟件清0。
        (7)RI:接收中斷標志位。RI=1,表示一幀數據接收結束。可由軟件查詢RI位標志,也可以向CPU申請中斷。
        注意:RI在任何工作方式下也都必須由軟件清0。
        在AT89C51中,串行發送中斷TI和接收中斷RI的中斷入口地址是同是0023H,因此在中斷程序中必須由軟件查詢TI和RI的狀態才能確定究竟是接收還是發送中斷,進而作出相應的處理。單片機復位時,SCON所有位均清0。
         3、電源控制寄存器PCON
        在串口通信時,我們只用PCON寄存器的SMOD位,這一位主要跟波特率的設置有關。下面僅對這一位進行介紹。
        SMOD:串行口波特率倍增位。在工作方式1~工作方式3時,若SMOD=1,則串行口波特率增加一倍。若SMOD=0,波特率不加倍。系統復位時,SMOD=0。
        5、串行口的工作方式
        51單片機的串行口共有四種工種方式,分別為工作方式0、工作方式1、工作方式2及工作方式3,如圖1所示。采用何種工作方式主要靠串行口控制寄存器SCON中的SM0和SM1來決定。不同的工作方式,其一次傳送的數據位多少不同,同時,波特率的大小的設置也不同。
        圖1 串行口的四種工作方式
        (1)發送和接收
        為了便于大家撐握,這里只介紹工作方式1,其它工作方式大家用到時再自行學習。工作方式1每次傳送一幀數據為10位,1 個起始位、1 個停止位和8個數據位,低位在前,高位在后,如圖2所示。

        關鍵詞: 單片機串口通

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 伊宁市| 仁怀市| 班戈县| 克山县| 松原市| 沽源县| 遵义县| 海兴县| 本溪市| 阳谷县| 桓台县| 台北市| 宿松县| 新蔡县| 洪雅县| 南木林县| 曲沃县| 通辽市| 河西区| 贡山| 绵阳市| 罗江县| 仙游县| 永和县| 府谷县| 鄢陵县| 闽侯县| 集安市| 特克斯县| 庆阳市| 资中县| 库车县| 辉南县| 九寨沟县| 富阳市| 皮山县| 景谷| 连江县| 德清县| 齐齐哈尔市| 彭山县|