51单片机“和校验”

单片机串口通讯代码和校验~

单片机串口通讯代码和校验的方法有很多,具体怎么做,需要编制一个通信协议。
你说的把所有代码加起来计算和,再与最后个字节比较,这只是一种校验和的方法。对于普通的通信可以用,方法简单,程序也好写。当然可以自己制定一个具体的协议,那些代码相加,哪些代码不加,和放在第几个字节。而求也有求代数和的,也有求异或和的。
Modbus协议采用的CRC16校验的方法,比较成熟,用的也较多。这种程序在网上可以找到。
如果通信需要保密,还可以采用各种加密技术。

可以用串口通讯模式3来收发。这是9位数据的收发模式,第九位可以作为奇偶校验位。
发送如下:
SPOUT:
MOV C,P ;奇偶位送C
MOV TB8,C ;送发送位
MOV SBUF,A ;发送数据
JNB TI,$
CLR TI
RET
接收如下:
SPIN:
JNB RI,$ ;等待接收数据
MOV A,SBUF;接收数据
MOV C,RB8 ;第九位送C
JC SPIN1 ;为1转
ORL C,P ;与奇偶位或运算
JC ERR ;为1(也就是不相等转错误)
SJMP SPOK
SPIN1:
ANL C,P ;与奇偶位与运算
JNC ERR ;为0则错误
SPOK:
RET
ERR:
MOV A,#0FFH
RET

和校验,也称为“累加和”校验。

发送方,把发送的数据,一个个的累加到R4(不管进位),最后发送出去。
接收方,把接收的数据,一个个的累加到R4(不管进位),再和最后收到的字节相比较,以此判断收到的正确与否。

如果不是用“累加”的方法,也是可以的。
楼主给出的 就是采用“异或”方法生成校验字节的;
数据到了对方,也应该采用相同的方法生成校验字节,进行检验。

CLR TB8
MOV A,@R0 ;GET DATA
MOV SBUF,A ;SEND
XRL A,R4
MOV R4,A
TRAN1: JNB TI,TRAN1 ;WAIT
这是XOR(异或)校验吧...

把XRL A,R4改为ADD A,R4就是和校验..

如何找到STC89C52RC单片机RXD TXD GND VCC及各针脚的定义
答:单片机的可擦除只读存储器可重复擦除100次,该器件采用ATMEL高密度非易失性存储器,与MCS-51指令集和输出管脚兼容。由于多功能8位CPU和闪存在一块芯片中的结合,ATMEL的89C51是一款高效的微控制器,89C2051是它的简化版,89C单片机为许多嵌入式控制系统提供了一种灵活、廉价的方案。

台达plc怎么通过485读单片机输入
答:接下来是通信协议的设置。台达PLC和单片机之间需要遵循相同的通信协议,才能实现数据的准确传输。这通常涉及到波特率、数据位、停止位和校验位等参数的设置。这些参数必须在PLC和单片机上保持一致,否则通信将无法建立。例如,如果PLC设置为9600波特率、8数据位、1停止位、无校验,那么单片机也必须采用相同的...

两个单片机txd和rxd直接连高波特率通信容易出错吗, 如果容易出错,怎么...
答:波特率高了出错很正常,一般都会出现。你可以用数据包的方式来发送数据。比如由5个字节构成的数据包,5个字节依次代表:包头,数据1,数据2,校验字,包尾。校验位可以采用简单的和校验,校验字=数据1+数据2(溢出没关系)。接收端检测到包头后来处理之后4个字节,检测包尾的正确性,计算校验字,比较...

我正在写一个单片机串口与PC机通信的程序,开始:0xf0,数据,结束0xff...
答:单片机作为从机,定义为接收状态,PC机的通信软件应主动向单片机发送询问数据,单片机接受到规定格式的数据后,即进行回答。若规定通信协议格式就是 开始0xf0, 数据,结束0xff。应在单片机接受中断中进行判断,若接收到0xf0,即认为数据流开始, 将其后接受的数据依次存在接收缓冲区里,直到检索到0xff,视为...

AT89S52单片机内设有四个并行的I/O,使用时有哪些特点和分工
答:掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据...

AT89C51单片机的结构原理与引脚功能
答:AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它...

AT89C51和AT89S51的区别?
答:AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网