相关帖子
- • STC15单片机+DS3231+DS18B20+DHT11+OLED12864+ESP8266_01S组成网络时间 有待改善
- • 基于单片机的自行车里程表程序 大写N到底是什么性质的变量 在哪里声明
- • proteus仿真时[SPICE] Too many iterations without converge...怎么处理?求指点
- • 可以用单片机制作320*96大规模的点阵吗?
- • 有人能帮我解释下这个单片机公交车自动报站红外模块的原理吗?
- • STC8A8A8K单片机+蓝牙+电机控制+遥控灯--资料和PCB程序源码
- • c语言定时器T0方式2控制led点亮时间1s 仿真led闪得很快
- • stm32按键点灯仿真无反应 求帮助
- • stm32跑马灯仿真错误 求帮助
- • STC15F2K60S2单片机的二十个基本实验程序
在通信中要求单字节偶校验,很少碰到在这里校验的,一般都是帧校验就可以了,但是为了提高精度,就加了偶校验。那么用C语言怎么来处理单片机收发的偶校验问题呢?直接使用项目中的要求:波特率:9600,偶检验,停止位1,数据位 51单片机奇偶校验C51程序 采用偶校验,单片机串口方式3,9位数据,最后一位是奇偶校验位。 偶校验:就是发送的8位数据中1的个数为偶数时,TB8=0;为奇数时,TB8=1; 奇校验:就是发送的8位数据中1的个数为奇数时,TB8=0;为偶数时,TB8=1; 由于PSW(程序状态寄存器)中的P可以表达累加器A中“1”的个数的奇偶性,具体如下: P(PSW.0)奇偶标志位: P=1,A中“1”的个数为奇数 P=0,A中“1”的个数为偶数 所以要用P和TB8、RB8作为发送与接收的判据,则必须使用偶校验。 C语言程序如下:
发送程序
Void chek_even(uchar data)
{
ACC=data;
TB8=P;
SBUF=data;
While(!TI);
TI=0;
}
接收程序
Void chek_even(uchar data)
{
While(!RI);
RI=0;
data= SBUF;
ACC=data;
If(RB8==P)chek_flag=0;
Else chek_flag=1;
}
网上找的, 这两个函数怎么用
发送程序
Void chek_even(uchar data)
{
ACC=data;
TB8=P;
SBUF=data;
While(!TI);
TI=0;
}
接收程序
Void chek_even(uchar data)
{
While(!RI);
RI=0;
data= SBUF;
ACC=data;
If(RB8==P)chek_flag=0;
Else chek_flag=1;
}
网上找的, 这两个函数怎么用