配料秤系统通讯程序的应用
在配料秤51单片机的多机通信中,为了保障主从机之间的可靠通信,通信接口必须具有识别功能。而串行口控制着寄存器SCON里的控制位SM2就是为了满足这一要求而设置的。且SM2控制位只在51单片机的串行工作方式2与方式3才起作用。
51单片机串行口的工作于方式二时,发送和接收一帧信息由11位组成∶1个起始位(0),8位数据(先为LSB),1个可编程的第9个数据位,1个停止位(1)。发送时,可编程位(TB8)根据需要设置为0或1(TB8不仅可以用作多机通信中的地址数据标志位,还可以用作数据的奇偶校验位)。配料秤系统接收时,可编程位被送入SCON中的RB8。51串行口方式3与方式2除了在波特率上外,其他方面相同。方式3的波特率可变,可通过程序控制定时器1和特定功能PCON里的SMOD位来设定各种需要的波特率;而方式2却只能选择两个固定的波特率,例如,若晶振的频率fosc=12MHz,工作方式2两个可选择的波特率分别为375K和187.5K。
在串行口以方式2或方式3接收之时,若SM2=1,表示置多机通信功能位,这时出现两种可能情况∶接收到第9位数据是为1时,数据才会装入到SBUF并置RI=1向CPU发出中断的请求;如若接收到第9位数据为0时,则不发生中断,信息被掉失。若SM2=0,则接收到的第9位数据无论是0还是1都产生RI=1中断标志,接收到的数据装入到SBUF里。按照上述情况配料秤系统中MCS51多机通信的过程安排如下:
(1)使所有的从机SM2位置1,处在只接收地址帧的状态(串行帧的第9位为1),对数据帧(串行口的第9位为0)不予理睬。
(2)当从机接收到主机发来的地址帧后,各从机将所接收的地址和本从机的地址比较,对于地址相符的从机,使得SM2清零以接收到主机随后发出来的每个信息,对于地址不相符合的从机,仍保持在SM2=1的状态,对于主机后期发出来的数据不作理睬,直到发送新的地址帧。
(3)当配料秤主机改为与另外从机联系时,可再发出地址帧来寻找其它从机。而先前被寻址过的从机在分析出主机是对其它从机寻址时,恢复其SM2=1,对随后发来的数据帧不予理睬”。