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

Python012

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

}

}

用位运算按位与得出校验数,参考代码如下:

#include<stdio.h>

int main()

{

char str[101]

int i,sum

gets(str)

i=sum=0

while(str[i]!=0)

sum+=str[i++]

printf("%d",sum&(0x0FF))

return 0

}

c语言的字符类型是以整数的形式存储在内存中的,这个整数就是这个字符的ascii码,所以只需要将字符以整数的形式输出即可。

代码如下:

#include

int main()

{

char c

c = getchar()

printf("%d\n", c)

return 0

}