|
在通信中要求單字節(jié)偶校驗,很少碰到在這里校驗的,一般都是幀校驗就可以了,但是為了提高精度,就加了偶校驗。那么用C語言怎么來處理單片機收發(fā)的偶校驗問題呢?直接使用項目中的要求:波特率:9600,偶檢驗,停止位1,數(shù)據(jù)位 51單片機奇偶校驗C51程序 采用偶校驗,單片機串口方式3,9位數(shù)據(jù),最后一位是奇偶校驗位。 偶校驗:就是發(fā)送的8位數(shù)據(jù)中1的個數(shù)為偶數(shù)時,TB8=0;為奇數(shù)時,TB8=1; 奇校驗:就是發(fā)送的8位數(shù)據(jù)中1的個數(shù)為奇數(shù)時,TB8=0;為偶數(shù)時,TB8=1; 由于PSW(程序狀態(tài)寄存器)中的P可以表達累加器A中“1”的個數(shù)的奇偶性,具體如下: P(PSW.0)奇偶標(biāo)志位: P=1,A中“1”的個數(shù)為奇數(shù) P=0,A中“1”的個數(shù)為偶數(shù) 所以要用P和TB8、RB8作為發(fā)送與接收的判據(jù),則必須使用偶校驗。 C語言程序如下:
發(fā)送程序
Void chek_even(uchar data)
{
ACC=data;
TB8=P;
SBUF=data;
While(!TI);
TI=0;
}
接收程序
Void chek_even(uchar data)
{
While(!RI);
RI=0;
data= SBUF;
ACC=data;
If(RB8==P)chek_flag=0;
Else chek_flag=1;
}
網(wǎng)上找的, 這兩個函數(shù)怎么用
|
評分
-
查看全部評分
|