51單片機教程:單片機串行口介紹
8051單片機的通信方式有兩種:
并行通信:數(shù)據(jù)的各位同時發(fā)送或接收。 串行通信:數(shù)據(jù)一位一位次序發(fā)送或接收。參看下圖:
串行通信的方式:
異步通信:它用一個起始位表示字符的開始,用停止位表示字符的結束。其每幀的格式如下:
在一幀格式中,先是一個起始位0,然后是8個數(shù)據(jù)位,規(guī)定低位在前,高位在后,接下來是奇偶校驗位(能省略),最后是停止位1。用這種格式表示字符,則字符能一個接一個地傳送。
在異步通信中,CPU與外設之間必須有兩項規(guī)定,即字符格式和波特率。字符格式的規(guī)定是雙方能夠在對同一種0和1的串理解成同一種意義。原則上字符格式能由通信的雙方自由制定,但從通用、方便的角度出發(fā),一般還是使用一些標準為好,如采用ASCII標準。
波特率即數(shù)據(jù)傳送的速率,其定義是每秒鐘傳送的二進制數(shù)的位數(shù)。例如,數(shù)據(jù)傳送的速率是120字符/s,而每個字符如上述規(guī)定包含10數(shù)位,則傳送波特率為1200波特。
同步通信:在同步通信中,每個字符要用起始位和停止位作為字符開始和結束的標志,占用了時間;所以在數(shù)據(jù)塊傳遞時,為了提高速度,常去掉這些標志,采用同步傳送。由于數(shù)據(jù)塊傳遞開始要用同步字符來指示,同時要求由時鐘來實現(xiàn)發(fā)送端與接收端之間的同步,故硬件較復雜。
通信方向:在串行通信中,把通信接口只能發(fā)送或接收的單向傳送辦法叫單工傳送;而把數(shù)據(jù)在甲乙兩機之間的雙向傳遞,稱之為雙工傳送。在雙工傳送方式中又分為半雙工傳送和全雙工傳送。半雙工傳送是兩機之間不能同時進行發(fā)送和接收,任一時該,只能發(fā)或者只能收信息。
2.8051單片機的串行接口結構
8051單片機串行接口是一個可編程的全雙工串行通信接口。它可用作異步通信方式(UART),與串行傳送信息的外部設備相連接,或用于通過標準異步通信協(xié)議進行全雙工的8051多機系統(tǒng)也能通過同步方式,使用TTL或CMOS移位寄存器來擴充I/O口。
8051單片機通過管腳RXD(P3.0,串行數(shù)據(jù)接收端)和管腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通信。SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。它們有相同名字和地址空間,但不會出現(xiàn)沖突,因為它們兩個一個只能被CPU讀出數(shù)據(jù),一個只能被CPU寫入數(shù)據(jù)。
串行口的控制與狀態(tài)寄存器
串行口控制寄存器SCON
評論