51单片机实现串口偶校验

1. STC单片机串口

在这里插入图片描述
在这里插入图片描述

2. PSW是一个8位寄存器。PSW的全称是Program Status Word,即程序状态字。

在这里插入图片描述
奇偶标志位P
每执行一条汇编指令,单片机都能根据A中1的个数的奇偶自动令P置位或清零,奇为1,偶为0。P可以填入TB8,作为偶校验。
此标志位对串行通信的数据传输非常有用,通过就校验可以检验传输的可靠性。

3. 奇偶校验

奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。

在这里插入图片描述

偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。
在这里插入图片描述

4. STC单片机串口实现偶校验
//uart.c
unsigned char var0,var;		//var0一定要是全局变量

void Uart_isr( void ) interrupt 4
{
	uint8_t tmpBuf;

	RI = 0;
	tmpBuf= SBUF;

    var = tmpBuf; 
    var0= 0;
    var += var0;
	if(RB8 == P)        //偶校验OK
	{
		//数据接收处理
	}
}


void Uart1Init(void)
{
	//SCON = 0x40; //0100,0000 8 位可变波特率,无校验位, 串口1模式1
	SCON = 0xC0; //1100,0000 9 位可变波特率,偶校验位, 串口1模式3
	//其他串口初始化代码

}
void UartSend(uint8_t var)
{
	var0 = 0;
	var += var0;
	TB8 = P;
	SBUF = var;
	//其他串口发送代码
}

版权声明:本文为lljss1980原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。