ZKX's LAB

51单片机串口方式2中的TB8到底是用来奇偶校验还是定义地址数据的? 支持奇偶校验功能的单片机

2020-07-21知识17

51单片机 奇偶校验 呵呵,在这两条指令的前后,你各忽略了一条指令。请看下列程序及说明:MOV A,#待发数据;数据进了A,即刻生成校验位PMOV C,PMOV TB8,C;校验位送到TB8MOV SBUF,A;发送数据,以及P上述写法,是偶校验。奇校验,需要增加一条取反指令,如下:MOV C,PCPL CMOV TB8,C;校验位送到TB8就这些。简述怎样在8051单片机中实现带奇偶校验的串行通信 带奇偶校验的串行通讯,使用模式2或模式3,即9位数据的串口通讯,发送的第九位数据放入到TB8中,接收的数据在RB8中,发送时将校验位P放入到TB8,发送接收数据后,可以根据RB8与接收数据的奇偶值相比较来确定接收数据的正确性。单片机奇偶校验 通常,串行通信的一帧的格式是8-n-1,即8位数据、无校验、1个停止位。有时为了提高准确度,需要增加一个“奇”校验位或者“偶”校验位。对于高级语言的做法是很简单的,只要把格式命令“8-n-1”,改为“8-P-1”或“8-O-1”即可。串行口在带有校验位的通信方式中,是先发送8位数据,然后再发送校验位。51单片机也可以按照带有校验位的方式进行串行通信,这在51单片机中称为9位数据方式。51单片机中有两个位,分别称为TB8和RB8,它们在“无校验”的时候,并没有用处。当51单片机用9位数据方式进行串行通信的时候,TB8和RB8的作用如下:51单片机在发送的时候,先发送8位数据,然后发送TB8中的内容;51单片机在接收的时候,先接收8位数据,然后接收校验位,存到RB8中。编写51单片机程序的时候,应该在发送数据之前,在TB8中,写好待发送的校验位。8位数据的校验位,可以利用单片机中奇偶标志位P来自动生成,程序如下。MOV A,#待发数据;数据进了A,即刻生成奇偶标志位PMOV C,PMOV TB8,C;校验位送到TB8MOV SBUF,A;发送数据,以及P由于P=1则说明A中有奇数个1,所以上述程序是“偶”校验的形式。如果要求的是“奇”校验,则需要增加一条取反指令,如下:MOV C,PCPL C。

#串行通信#波特率#奇偶校验#通信#单片机

qrcode
访问手机版