串行口是單片機(jī)與外界進(jìn)行信息交換的工具,8051單片機(jī)的通信方式有兩種:
并行通信:數(shù)據(jù)的各位同時(shí)發(fā)送或接收。
串行通信:數(shù)據(jù)一位一位次序發(fā)送或接收。
串行通信的方式
異步通信
用一個(gè)起始位0表示字符的開始,用停止位1表示字符的結(jié)束,中間夾著8個(gè)數(shù)據(jù)位,字符能一個(gè)接一個(gè)傳送
CPU與外設(shè)之間必須有字符格式和波特率兩項(xiàng)規(guī)定
字符格式規(guī)定能使雙方把0和1串理解成同一種意義,原則上自由制定,通用角度使用標(biāo)準(zhǔn)如ASCII
波特率即數(shù)據(jù)傳輸速率,每秒傳送的二進(jìn)制位數(shù),如120字符/s,每個(gè)字符10數(shù)位,則傳送波特率為1200波特
同步通信
去掉了開始結(jié)束標(biāo)志提高速度,但由于數(shù)據(jù)塊傳遞開始要用同步字符來指示,同時(shí)要求由時(shí)鐘來實(shí)現(xiàn)發(fā)送端與接收端之間的同步,故硬件較復(fù)雜。
通信方向
在串行通信中,把通信接口只能發(fā)送或接收的單向傳送辦法叫單工傳送;把數(shù)據(jù)能雙向傳遞稱為雙工傳送。半雙工傳送兩機(jī)之間不能同時(shí)進(jìn)行發(fā)送和接收,任一時(shí)該,只能發(fā)或者只能收信息。全雙工傳送是能同時(shí)發(fā)送接收。
串行接口結(jié)構(gòu)
51單片機(jī)一個(gè)可編程的全雙工串行通信接口??捎米鳟惒酵ㄐ欧绞剑?a href="http://www.www27dydycom.cn/tags/uart/" target="_blank">UART),與串行傳送信息的外部設(shè)備相連接?;蛴糜谕ㄟ^同步或異步標(biāo)準(zhǔn)通信協(xié)議進(jìn)行全雙工的8051多機(jī)系統(tǒng),使用TTL或CMOS移位寄存器來擴(kuò)充I/O口。
8051單片機(jī)通過管腳RXD(P3.0,串行數(shù)據(jù)接收端)和管腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通信。SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。它們有相同名字和地址空間,但不會(huì)出現(xiàn)沖突,因?yàn)樗鼈儍蓚€(gè)一個(gè)只能被CPU讀出數(shù)據(jù),一個(gè)只能被CPU寫入數(shù)據(jù)。
串行口的控制與狀態(tài)寄存器
串行口控制寄存器 SCON
用于定義串行口的工作方式及實(shí)施接收和發(fā)送控制,字節(jié)地址為98H
SM0、SM1:串行口工作方式選擇位
串行口的工作方式
方式0
○為移位寄存器輸入/輸出方式??赏饨右莆患拇嫫饕詳U(kuò)展I/O口,也能外接同步輸入/輸出設(shè)備。8位串行數(shù)據(jù)者是從RXD輸入或輸出,TXD用來輸出同步脈沖。○輸出:發(fā)送完畢后終端標(biāo)志T1硬件置位。(同其他)○輸入:當(dāng) RI =0和REN =1同時(shí)滿足開始接收,接收到第八位后數(shù)據(jù)移至寄存器,硬件置位RI。
方式1
○為波特率可變的10位異步通信方式?!疠敵觯寒?dāng)執(zhí)行一條指令將數(shù)據(jù)寫入發(fā)送緩沖SBUF時(shí),就啟動(dòng)發(fā)送,發(fā)送完一幀硬件置位T1○輸入:檢測(cè)1-0跳變,使用前用軟件清零RI和SM2
方式2
○為固定波特率的11位UART方式。它比方式1增加了一位可程控為1或0的第9位數(shù)據(jù)?!疠敵觯?1位,附加第九位是SCON的TB8位,可作為多機(jī)通信中地址/數(shù)據(jù)信息標(biāo)志位、奇偶校正位。別的同其他○輸入:123同
方式3
為波特率可變的11位UART方式。除波特率外,其余與方式2相同。
波特率選擇
方式0:方式0的波特率固定為主振頻率的1/12。
方式2:
波特率由 PCON 中的SMOD位決定
波特率=2SOMD/64*fosc,SMOD=0或1
方式1和3:
波特率=定時(shí)器T1溢出率
T1溢出率= T1計(jì)數(shù)率/產(chǎn)生溢出所需的周期數(shù)
T1計(jì)數(shù)率取決于它工作在定時(shí)器狀態(tài)還是計(jì)數(shù)器狀態(tài)。
○當(dāng)工作于定時(shí)器狀態(tài)時(shí),T1計(jì)數(shù)率為fosc/12;○當(dāng)工作于計(jì)數(shù)器狀態(tài)時(shí),T1計(jì)數(shù)率為外部輸入頻率,此頻率應(yīng)小于fosc/24。
產(chǎn)生溢出所需周期與定時(shí)器T1的工作方式、T1的預(yù)置值有關(guān)。
○定時(shí)器T1工作于方式0:溢出所需周期數(shù)=8192-x○定時(shí)器T1工作于方式1:溢出所需周期數(shù)=65536-x○定時(shí)器T1工作于方式2:溢出所需周期數(shù)=256-x
因?yàn)榉绞?為自動(dòng)重裝入初值的8位定時(shí)器/計(jì)數(shù)器模式,所以用它來做波特率發(fā)生器最恰當(dāng)。
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44991瀏覽量
650436 -
串行口
+關(guān)注
關(guān)注
1文章
43瀏覽量
11098
原文標(biāo)題:?jiǎn)纹瑱C(jī)串行口介紹
文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
51單片機(jī)的串行口擴(kuò)展方法
單片機(jī)串行口應(yīng)用舉例
單片機(jī)教程二十一:單片機(jī)串行口通信程序設(shè)計(jì)
單片機(jī)串行口的并行通信技術(shù)

基于51單片機(jī)匯編語言教程:22課單片機(jī)串行口通信程序設(shè)計(jì)
51單片機(jī)教程之80C51單片機(jī)的串行口介紹及如何進(jìn)行串行總線的擴(kuò)展

51單片機(jī)教程之51單片機(jī)的串行口應(yīng)用舉例資料說明

單片機(jī)的串行口詳細(xì)資料介紹及串行通信的詳細(xì)說明

單片機(jī)--串行口實(shí)驗(yàn)

評(píng)論