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

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

}

}

二进制1100001的奇偶校验码是1,因为这个二进制数中1的个数是2,是偶数,因此奇偶校验码应该是1。

以下是一个C语言程序,用于计算任意长度的二进制数的奇偶校验码:

#include <stdio.h>

#include <string.h>

int main() {

char binary[100] // 存放二进制数的字符串

int len // 二进制数的长度

int count = 0 // 1的个数

int parity_bit // 奇偶校验位

// 从标准输入读入一个二进制数

printf("请输入一个二进制数:")

scanf("%s", binary)

// 计算二进制数中1的个丛雀指数

len = strlen(binary)

for (int i = 0i <leni++) {

if (binary[i] == '1') {

count++

}

}

// 根据1的个数确定奇偶校验位

if (count % 2 == 0) {

parity_bit = 1

} else {

parity_bit = 0

}

// 输出渗配奇偶校验码

printf("二进制数的奇偶校验码为:%d\n", parity_bit)

return 0

}

该程序使用 scanf() 函数从标准输入读入一个二岁贺进制数,然后使用 strlen() 函数计算二进制数的长度,并遍历字符串计算其中1的个数。最后根据1的个数确定奇偶校验位,并输出结果。需要注意的是,在实际应用中,需要对输入的二进制数进行合法性检查,确保它只包含0和1两个字符。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12471953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存