『壹』 51單片機「和校驗」
CLR TB8
MOV A,@R0 ;GET DATA
MOV SBUF,A ;SEND
XRL A,R4
MOV R4,A
TRAN1: JNB TI,TRAN1 ;WAIT
這是XOR(異或)校驗吧...
把XRL A,R4改為ADD A,R4就是和校驗..
『貳』 單片機奇偶校驗
通常,串列通信的一幀的格式是8-n-1,即8位數據、無校驗、1個停止位。
有時為了提高准確度,需要增加一個「奇」校驗位或者「偶」校驗位。
對於高級語言的做法是很簡單的,只要把格式命令「8-n-1」,改為「8-P-1」或「8-O-1」即可。
串列口在帶有校驗位的通信方式中,是先發送8位數據,然後再發送校驗位。
51單片機也可以按照帶有校驗位的方式進行串列通信,這在51單片機中稱為9位數據方式。
51單片機中有兩個位,分別稱為TB8和RB8,它們在「無校驗」的時候,並沒有用處。
當51單片機用9位數據方式進行串列通信的時候,TB8和RB8的作用如下:
51單片機在發送的時候,先發送8位數據,然後發送TB8中的內容;
51單片機在接收的時候,先接收8位數據,然後接收校驗位,存到RB8中。
編寫51單片機程序的時候,應該在發送數據之前,在TB8中,寫好待發送的校驗位。
8位數據的校驗位,可以利用單片機中奇偶標志位P來自動生成,程序如下。
MOV A, #待發數據 ;數據進了A,即刻生成奇偶標志位P
MOV C, P
MOV TB8, C ;校驗位送到TB8
MOV SBUF, A ;發送數據,以及P
由於P = 1則說明A中有奇數個1,所以上述程序是「偶」校驗的形式。
如果要求的是「奇」校驗,則需要增加一條取反指令,如下:
MOV C, P
CPL C
MOV TB8, C ;校驗位送到TB8
接收方會把收到的8位數送到SBUF,第9位數,送到RB8,然後自動設立RI = 1。
之後,就可以用RB8中的內容,對剛才收到的8位數進行正確性檢驗。
另一個問題:51單片機如何初始化成8-n-1(8數據位,無奇偶校驗位,1停止位)波特率,是用串口的模式幾?
本來想用串口的模式1,可是仔細一看,模式1是10非同步通信方式,1起始位,8數據位,1停止位?
懸賞分:20 - 解決時間:2009-12-1 13:26
問題補充:首先感謝一樓的回答。我還有些疑問,剛才用示波器看了下,當發送0xFF時,示波器顯示一位低電平,其餘為高電平,這點應該是對的,因為起始位是0.可是為什麼發送0xAA時,示波器的(起始位+數據位+停止位)序列是:0 + 0101 0101 + 1,而0x55的序列為:0 +1010 1010 + 1,這兩個值好像不對,是相反了,要是調一下剛好對?
;-----------------------------------------------------------------
最佳答案用串口的模式1,是10位非同步通信方式。
1起始位,8數據位,1停止位,沒有奇偶校驗位。
這種模式就是:8-n-1(8數據位,無奇偶校驗位,1停止位)的模式。
完全符合你的要求。
『叄』 什麼樣的單片機才有編程和校驗方式
沒看懂你的問題,但凡是單片機,都可以進行程序設計,要不就成了不可編程的ASIC。
至於校驗方式,校驗是對於傳輸數據來講的,一些特殊單片機的串口、CAN介面、USB介面或是高級處理器的DDR2、PCI等介面,都帶有自動校驗。
『肆』 51單片機中C語言奇偶校驗位如何設置
在51單片機中,只要將一個值傳送給累加器,這個數的奇偶校驗值就會影響P。一般而言,在串列通訊中為確保傳輸數的准確,用到校驗位的情況比較多。以下是程序代碼:
#include<reg51.h>
main()
{
char dat;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0xd0;
while(1)
{
dat++;
ACC=dat;
TB8=P; //校驗位送第九數據位TB8
SBUF=ACC;
while(TI==0);
TI=0;
}
}
『伍』 51單片機里的和校驗,異或校驗,具體的步驟是什麼,代碼怎麼寫
和校驗就是把待校驗的數據位元組累加起來,最低的1位元組或2位元組與接收到的校驗和相符,則表明傳輸過程沒有問題。
異或校驗類似,把待校驗的數據位元組逐個進行按位異或運算,最後的結果與接收到的校驗值相符,則表明傳輸過程沒有問題,
『陸』 單片機串口通訊代碼和校驗
單片機串口通訊代碼和校驗的方法有很多,具體怎麼做,需要編制一個通信協議。
你說的把所有代碼加起來計算和,再與最後個位元組比較,這只是一種校驗和的方法。對於普通的通信可以用,方法簡單,程序也好寫。當然可以自己制定一個具體的協議,那些代碼相加,哪些代碼不加,和放在第幾個位元組。而求也有求代數和的,也有求異或和的。
Modbus協議採用的CRC16校驗的方法,比較成熟,用的也較多。這種程序在網上可以找到。
如果通信需要保密,還可以採用各種加密技術。
『柒』 51單片機進行串口通信的時候,如何設置奇校驗還是偶校驗
首先你需要設置串口工作模式為2或3
其次,你將SCON中的TB8設置為1或0來確定是奇校驗或偶校驗。
『捌』 單片機的CRC校驗
D行定義ROM數組,CRC16校驗的余式表格,ABC行那就是運算了哦,建議你看看CRC的書,描述起來要一大堆呢
『玖』 怎麼檢驗單片機是否合格
至於單片機嘛,也沒有什麼先進的儀器,如果你是自己用的話,也沒有必要,下個程序裝在板上試,別的也沒辦法了,一般新買的不可能是壞的!
『拾』 51單片機 奇偶校驗
呵呵,在這兩條指令的前後,你各忽略了一條指令。請看下列程序及說明:
MOV A, #待發數據 ;數據進了A,即刻生成校驗位P
MOV C, P
MOV TB8, C ;校驗位送到TB8
MOV SBUF, A ;發送數據,以及P
上述寫法,是偶校驗。奇校驗,需要增加一條取反指令,如下:
MOV C, P
CPL C
MOV TB8, C ;校驗位送到TB8
就這些。