目標:單片機串口通信理解(四)
4.串口工作方式
(1)方式0
方式0時只锭,串行口為同步移位寄存器的輸入輸出方式。
主要用于擴展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。
發(fā)送和接收均為8位數(shù)據(jù)巷折,低位在先,高位在后纷妆。
波特率固定為fosc/12盔几。
(2)方式1
方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳掩幢,RXD為數(shù)據(jù)接收引腳逊拍,傳送一幀數(shù)據(jù)的格式如下所示。其中1位起始位际邻,8位數(shù)據(jù)位芯丧,1位停止位。
用軟件置REN為1時世曾,接收器以所選擇波特率的16倍速率采樣RXD引腳電平缨恒,檢測到
RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效轮听,將其移入輸入移位寄存器骗露,并
開始接收這一幀信息的其余位。接收過程中血巍,數(shù)據(jù)從輸入移位寄存器右邊移入萧锉,起
始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位述寡。當RI=0柿隙,且SM2=0
(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF鲫凶,第9位(停止
位)進入RB8禀崖,并置RI=1,向CPU請求中斷螟炫。
(3)方式2和方式3
方式2或方式3時為11位數(shù)據(jù)的異步通信口波附。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳 。RB8/TB8是第9位叶雹。
接收時折晦,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位0移到最左邊時沾瓦,控制電路進行最后一次移位满着。當RI=0,且SM2=0(或接收到的第9位數(shù)據(jù)為1)時贯莺,接收到的數(shù)據(jù)裝入接收緩沖器SBUF和RB8(接收數(shù)據(jù)的第9位)风喇,置RI=1,向CPU請求中斷缕探。如果條件不滿足魂莫,則數(shù)據(jù)丟失,且不置位RI爹耗,繼續(xù)搜索RXD引腳的負跳變耙考。
5.串口的使用
(1)如何計算波特率
方式0的波特率 = fosc/12
方式2的波特率 =(2SMOD/64)· fosc
方式1的波特率 =(2SMOD/32)·(T1溢出率)
方式3的波特率 =(2SMOD/32)·(T1溢出率)
T1 溢出率 = fosc /{12×[256 -(TH1)]}
(2)串口初始化步驟
①確定T1的工作方式(TMOD寄存器);
②確定串口工作方式(SCON寄存器)潭兽;
③計算T1的初值(設(shè)定波特率)倦始,裝載TH1、TL1山卦;
④啟動T1(TCON中的TR1位)鞋邑;
⑤如果使用中斷,需開啟串口中斷控制位(IE寄存器)账蓉。
6.串口模塊電路
雖然第一幅圖TXD還是標TXD枚碗,RXD標RXD但再看看第二賦圖,TXD標在RXD上铸本,RXD標在TXD上,實現(xiàn)了