51单片机中C语言奇偶校验位如何设置?

Python022

51单片机中C语言奇偶校验位如何设置?,第1张

在51单片机中,只要将一个值传送给累加器,这个数的奇偶校验值就会影响P。一般而言,在串行通讯中为确保传输数的准确,用到校验位的情况比较多。以下是程序代码:

#include

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

}

}

MOV

A,

#待发数据

数据进了A,即刻生成校验位P

MOV

C,

P

MOV

TB8,

C

校验位送到TB8

MOV

SBUF,

A

发送数据,以及P

上述写法,是偶校验。奇校验,需要增加一条取反指令,如下:

MOV

C,

P

CPL

C

MOV

TB8,

C

校验位送到TB8