您好,这是单片机串口通信的奇偶校验。
偶校验:就是发送的8个数据位的1的个数为偶数时,TB8=0;为奇数时,TB8=1;
奇校验:与偶校验相反的TB8。 先讲发送字节时的偶校验:
先看下汇编的解决方案是什么: MOV A,@R0 MOV C,P MOV TB8,C MOV SBUF,@R0
再看下C语言的解决方案:
void chk_even(uchar dat)//要发送的数据位dat { ACC=dat; TB8=P; SBUF=dat; while(TI==0); TI=0;
}
这只是发送的一个字节的偶校验 ,接收时的为RB8位,应该能看懂,要是还是感觉吃力的话,就继续查资料。 |