<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機串行通信奇偶校驗的設置方法

51單片機串行通信奇偶校驗的設置方法

作者: 時(shí)間:2016-11-22 來(lái)源:網(wǎng)絡(luò ) 收藏
通常,串行通信的一幀的格式是8-n-1,即8位數據、無(wú)校驗、1個(gè)停止位。

有時(shí)為了提高準確度,需要增加一個(gè)“奇”校驗位或者“偶”校驗位。
對于高級語(yǔ)言的做法是很簡(jiǎn)單的,只要把格式命令“8-n-1”,改為“8-P-1”或“8-O-1”即可。

本文引用地址:http://dyxdggzs.com/article/201611/319592.htm

串行口在帶有校驗位的通信方式中,是先發(fā)送8位數據,然后再發(fā)送校驗位。

51單片機也可以按照帶有校驗位的方式進(jìn)行串行通信,這在51單片機中稱(chēng)為9位數據方式。
51單片機中有兩個(gè)位,分別稱(chēng)為T(mén)B8和RB8,它們在“無(wú)校驗”的時(shí)候,并沒(méi)有用處。
當51單片機用9位數據方式進(jìn)行串行通信的時(shí)候,TB8和RB8的作用如下:
51單片機在發(fā)送的時(shí)候,先發(fā)送8位數據,然后發(fā)送TB8中的內容;
51單片機在接收的時(shí)候,先接收8位數據,然后接收校驗位,存到RB8中。

編寫(xiě)51單片機程序的時(shí)候,應該在發(fā)送數據之前,在TB8中,寫(xiě)好待發(fā)送的校驗位。

8位數據的校驗位,可以利用單片機中奇偶標志位P來(lái)自動(dòng)生成,程序如下。

MOV A, #待發(fā)數據 ;數據進(jìn)了A,即刻生成奇偶標志位P
MOV C, P
MOV TB8, C ;校驗位送到TB8
MOV SBUF, A ;發(fā)送數據,以及P

由于P = 1則說(shuō)明A中有奇數個(gè)1,所以上述程序是“偶”校驗的形式。
如果要求的是“奇”校驗,則需要增加一條取反指令,如下:

MOV C, P
CPL C
MOV TB8, C ;校驗位送到TB8

接收方會(huì )把收到的8位數送到SBUF,第9位數,送到RB8,然后自動(dòng)設立RI = 1。
之后,就可以用RB8中的內容,對剛才收到的8位數進(jìn)行正確性檢驗。

另一個(gè)問(wèn)題:51單片機如何初始化成8-n-1(8數據位,無(wú)奇偶校驗位,1停止位)波特率,是用串口的模式幾?
本來(lái)想用串口的模式1,可是仔細一看,模式1是10異步通信方式,1起始位,8數據位,1停止位?
懸賞分:20 - 解決時(shí)間:2009-12-1 13:26
問(wèn)題補充:首先感謝一樓的回答。我還有些疑問(wèn),剛才用示波器看了下,當發(fā)送0xFF時(shí),示波器顯示一位低電平,其余為高電平,這點(diǎn)應該是對的,因為起始位是0.可是為什么發(fā)送0xAA時(shí),示波器的(起始位+數據位+停止位)序列是:0 + 0101 0101 + 1,而0x55的序列為:0 +1010 1010 + 1,這兩個(gè)值好像不對,是相反了,要是調一下剛好對?
;-----------------------------------------------------------------
最佳答案用串口的模式1,是10位異步通信方式。
1起始位,8數據位,1停止位,沒(méi)有奇偶校驗位。
這種模式就是:8-n-1(8數據位,無(wú)奇偶校驗位,1停止位)的模式。
完全符合你的要求。
--------------------
帶奇偶校驗位的,要用方式2或方式3。
把奇偶校驗位,放到TB8上,就可以發(fā)送了,這就是偶校驗。
接收的奇偶校驗位,在RB8中。
--------------------
呵呵,你還用上了示波器,奢侈!
你觀(guān)察的很正確。
記?。捍型ㄐ?,是“低位在前”。這就對了。
你補充的提問(wèn)太多了,都足夠再開(kāi)一、二個(gè)問(wèn)題了,這20分,真值!
;-----------------------------------------------------------------



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>