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;
//其他串口发送代码
}