标题: 单片机串行通信奇校验验代码怎么写,我的老是出错 [打印本页]

作者: YUKIAd0w    时间: 2023-5-10 23:48
标题: 单片机串行通信奇校验验代码怎么写,我的老是出错
单片机源程序如下:
  1. #include <reg51.h>

  2. void main()
  3. {
  4.         SCON=0xd0;
  5.         PCON=0x80;
  6.         
  7.         TH1=0xFD;
  8.         TL1=0xFD;
  9.         
  10.         TR1=1;
  11.         ES=1;
  12.         EA=1;
  13.         
  14.         
  15.         TMOD=0x20;
  16.         
  17.         
  18.          
  19.         P2=0xff;
  20.         
  21.         
  22.         
  23.         while(1)
  24.         {
  25.         SBUF=P2;
  26.                 while(!TI);
  27.                 TI=0;
  28.                 while(!RI);
  29.                 RI=0;
  30.                 P0=SBUF;
  31.         }
  32.         

  33. } void server() interrupt 4
  34. {
  35.         
  36.                
  37.         }
复制代码



求助大佬,奇校验代码怎么写,我的老是出错

作者: yzwzfyz    时间: 2023-5-11 15:12
1、将串行数据做成9位数据传输。
2、发送数据时将数据中的奇偶性,放入第9位中(TB8),再发送。
3、接收时,下载数据后,将第9位(RB9)与下载的数据中的奇偶性做比较,便可识别。
作者: Hephaestus    时间: 2023-5-11 15:38
先随便定义一个变量 char ch;

这一句SBUF=P2;改成如下:
ch=P2;
TB8=!P;
SBUF=ch;

接收也做类似处理
ch=SBUF;
if(RB8!=P){ /**** odd parity success ****/
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1