当前位置:首页 > > 充电吧
[导读];51 单片机的多机通信,有些特殊。它专有一个控制位 SM2 。;当把 SM2 设置为 1 后,单片机的串口,就仅仅接收《第 9 位为 1 的数据》。;对方发送的《第 9 位为 0 的数据》 ,接收机

;51 单片机的多机通信,有些特殊。它专有一个控制位 SM2 。

;当把 SM2 设置为 1 后,单片机的串口,就仅仅接收《第 9 位为 1 的数据》。

;对方发送的《第 9 位为 0 的数据》 ,接收机的串口是不理会的。


;本来,串行通信的第 9 位数据,通常都理解成奇偶校验位,还是可有可无的。

;但是,在 51 单片机多机通信的场合,第 9 位的意义就变了,而且还不可缺少。


;嗯,看来,还得把串口设置成方式 2 或方式 3,这才是《9 位数据》的通信方式。

;为了用 T1 控制波特率,还是用方式 3 比较合适。

;

;多机通信的流程如下:

;

;1.各从机,先设置 SM2 为 1,处于只接收《第 9 位为 1》的状态。

;2.主机,以《第 9 位为 1》的形式发送一个字节到全部从机。

;3.各从机把收到字节,与本机的号码相对比,应该只有一台从机是相同的。

;4.该从机,可以把自己的 SM2 清零了,此后,它就可以和主机进行双机通信。

;5.主机和该从机双机通信时,应该用《第 9 位为 0》的形式,以免被其它从机窃听。

;6.当该从机收到表示结束通信的字节时,再把自己的 SM2 置 1。


;看到了吧 ?

;SM2=1、SM2=0,都是在从机中进行修改,主机的 SM2 是 1 还是 0,无所谓。

;

;主机还是用 SM2=0 吧,省去从机发送的时,设定第九位的麻烦。

;如果非得想要设定,也可以把第九位当做奇偶校验位。

;

;有一个关于多机通信的题目:

;单片机通信,一个主机,二个从机。

;主机 P1 口设置要送的地址,P2 口设置要送的数据。

;从机 P1 口设置本机的地址,P2 口显示主机发送过来的数据。


;根据题目要求,做而论道画出了一个简化电路图如下:


;做而论道修改成功的程序如下:

;==============================================

;主机:P1 口设置要送的地址,P2 口设置要送的数据

;----------------------------------------------

    ORG   0000H

    JMP   MAIN

    ORG   0023H

    LJMP  UART_INT

MAIN: 

    MOV   SCON, #0D0H  ;方式3(9位数据),双机通信

    MOV   TMOD, #20H   ;T1定时模式2

    MOV   TH1, #0FDH   ;9600 bps @ 11.0592MHz

    MOV   TL1, #0FDH   ;

    SETB  TR1          ;启动T1

    SETB  ES

    SETB  EA

;-----------------------

WAIT:

    JB    P3.7, $      ;等待按下

    MOV   R6, #20

    DJNZ  R7, $        ;延时

    DJNZ  R6, $ - 2

    JB    P3.7, WAIT   ;消抖

    JNB   P3.7, $      ;等待释放

;-----------------------

    SETB  TB8          ;和全部从机通信

    MOV   SBUF, P1     ;给从机发送地址

    CLR   F0

    JNB   F0, $        ;等待发送完毕

    CLR   F0

;-----------------------下面等待从机回信

    MOV   R6, #3

WAIT2:

    DJNZ  R7, $

    JB    F0, SEND_DATA;

    DJNZ  R6, WAIT2    ;等三次

    SJMP  WAIT         ;从机未开机,不等了

;-----------------------

SEND_DATA:

    CLR   TB8          ;只和叫通的从机通信

    CLR   F0

    MOV   SBUF, P2     ;发送数据

    SJMP  WAIT

;-----------------------

UART_INT:

    JBC   TI, ACK1     ;发送完毕转移

    CLR   RI

    MOV   A, SBUF

    CJNE  A, #55H, ACK0;回信不正确转移

ACK1:  SETB  F0        ;设置标志

ACK0:  RETI

;-----------------------   

END

;==============================================




;==============================================

;从机:P1 口设置本机的地址,P2 口显示主机发来的数据

;----------------------------------------------

    ORG   0000H

    JMP   MAIN

    ORG   0023H

    JMP   RCE

MAIN:

    MOV   SCON, #0F0H  ;方式3(9位数据),多机通信

    MOV   TMOD, #20H   ;T1定时模式2

    MOV   TH1, #0FDH   ;9600 bps @ 11.0592MHz

    MOV   TL1, #0FDH   ;

    SETB  TR1          ;启动T1

    SETB  ES

    SETB  EA

    LJMP  $

;-----------------------   

RCE:

    JBC   TI, DIFF

    CLR   RI

    JNB   SM2, DATA1

    MOV   A, SBUF

    CJNE  A, P1, DIFF

    CLR   SM2          ;地址正确,改为双机通信

    MOV   SBUF, #55H   ;发送回信

DIFF:

    RETI

;-----------------------   

DATA1:

    MOV   P2, SBUF

    SETB  SM2          ;设为多机通信

    RETI

;--------------------------------------------

END

;============================================


;这个题目的要求比较简单,主从叫通后,仅仅通信了一个字节就完事了。


;这么简单,也可以不用交互式的通信,叫通从机后,主机只要再用 TB8=0 发送一次数据即可。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

8位单片机在嵌入式设计领域已经成为半个多世纪以来的主流选择。尽管嵌入式系统市场日益复杂,8位单片机依然不断发展,积极应对新的挑战和系统需求。如今,Microchip推出的8位PIC®和AVR®单片机系列,配备了先进的独立...

关键字: 单片机 嵌入式 CPU

在嵌入式系统开发中,程序烧录是连接软件设计与硬件实现的关键环节。当前主流的单片机烧录技术已形成ICP(在电路编程)、ISP(在系统编程)、IAP(在应用编程)三大技术体系,分别对应开发调试、量产烧录、远程升级等不同场景。...

关键字: 单片机 ISP ICP IAP 嵌入式系统开发

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

本文中,小编将对单片机予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 单片机 开发板 Keil

随着单片机系统越来越广泛地应用于消费类电子、医疗、工业自动化、智能化仪器仪表、航空航天等各领域,单片机系统面临着电磁干扰(EMI)日益严重的威胁。电磁兼容性(EMC)包含系统的发射和敏感度两方面的问题。

关键字: 单片机 电磁兼容

以下内容中,小编将对单片机的相关内容进行着重介绍和阐述,希望本文能帮您增进对单片机的了解,和小编一起来看看吧。

关键字: 单片机 复位电路

在这篇文章中,小编将为大家带来单片机的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 单片机 异常复位

今天,小编将在这篇文章中为大家带来单片机的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 单片机 仿真器

单片机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 单片机 中断 boot

一直以来,单片机都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来单片机的相关介绍,详细内容请看下文。

关键字: 单片机 数字信号 模拟信号
关闭