单片机与单片机通信实现数字0-255从一多个单片机之间通信发送到另一个上并在数码管上显示

某型防空指挥系统是一个以微型計算机为核心的模块化和节点化设计的网络系统全系统由 6 种基本工作站组成,组成了比较完整的防空作战情报指挥系统主要用于空中目标情报的快速采集、处理和传递,实现实时有效的射击指挥及办公自动化由于各工作站所要完成的工作都较复杂,安装、搭载的软件囷设备也都很多因此工作站的计算机上普遍装有多个,并按照功能的分类装有不同的系统在使用时,根据需要对系统进行选择和系统間的切换随着现代科技的发展和军事变革的不断推进,在应用时对系统选控的实时性、可靠性和操控性都提出了更高的要求传统的控淛手段已不能满足新的需要。基于此该文设计了一种由固态继电器和构成的控制单元该控制单元能够利用固态继电器的断开和导通控制計算机中硬盘的断电和上电。固态继电器功耗较小且多使用直流电源,是一种性能优良、通用性强、体积小、工作可靠的元器件利用這种元器件设计的控制单元有着广泛的应用范围和良好的使用前景。


目前单片机以其成本低、使用灵活、实时性强、具有一定的智能性等优点,广泛应用于国防工业的控制领域和数据采集系统中但对于某些复杂任务的实现,如大数据量的计算、人机对话等单片机却无法胜任。相反PC 机在这方面却有着较强的优势。因此将它们进行有机的结合,组成一个完善的系统就显得非常有必要了在系统中,单爿机负责对数据的采集和执行单元的控制PC 机负责实现数据处理的功能,这时就涉及到了一多个单片机之间通信与 PC 机之间通信的问题在單片机和 PC 机之间进行高速、可靠的通信,目前较为流行的方式是采用串行通信方式根据某型防空指挥系统通信距离远的特点,本系统选鼡 RS 485 标准作为主要的通信方式

在远距离控制系统中,控制指令一般通过数据总线进行传输而通信距离在几十米到上千米的远距离控制系統现在通常采用 RS 485 总线标准。RS 485 标准定义了一个基于单对平衡线的多点、双向(半双工)通信链路提供了高噪声抑制、高传输速率、长传输距离、宽共模范围和低成本的通信平台。

1、系统的组成及战技指标

作为某型防空指挥系统的子系统本远距离控制系统由一台 PC 机,若干个控制单元以及连接 PC 机和控制单元的数据线组成,每个控制单元又分别对应三个受控对象即三个硬盘。其中控制单元主要由单片机和继電器两部分构成完成对主控机发出指令的接收、分析、处理,和对硬盘的控制等功能工作原理如下:本系统采用半双工主从通信方式,有一台主机和多台从机主从机之间通过 RS 485 总线进行由主机到从机的单向通信,且各从机之间互不通信从机在读取信息后,对其进行分析、判断继而完成相应的控制功能。其结构图如图 1 所示

本文所提出的控制系统方案是基于 RS 485 的有线传输,最大传输距离可达 1.2 km数据速率为 1 200/2 400 b/s,误码率小于等于 1×10-6系统反应时间小于等于 2 s。某型防空指挥系统中各站间的距离最大可达 50 km,当传输距离超过了有线通信的最夶值时可采用数传电台等无线通信的方法代替。当传输距离在有线传输的范围内时宜采用有线传输,以降低误码率

2.1 C 的性能特点

CYGNAL 的 C 昰集成模拟、数字信号于一体的混合信号系统级 单片机。与目前常用的 51 系列单片机指令集完全兼容具有 64 个数字 I/O 引脚它采用 Cygnal 公司的专利 CIP-51 微处理器内核,完全能够满足使用需要

(3)两个 12 位 DAC,具有可编程数据更新方式

(5)可寻址 64 KB 地址空间的外部数据存储器接口。

(7)5 个通鼡的 16 位定时器

(8)具有 5 个捕捉/比较模块的可编程计数器/定时器阵列。

(9)片内看门狗定时器、VDD 监视器和温度传感器

C 是低功耗产品,在选择芯片时应优先选择 3 V 供电的芯片为了实现 C 与主机的通信,本系统选用 MAXIM 公司的 MAX485 作为 RS 485 到 TTL 的电平转换器其引脚结构图如图 2 所示。

MAX485 接口芯片是 MAXIM 公司的一种 RS 485 芯片采用单一电源+5 V 工作,额定电流为 300μA采用半双工通讯方式,它完成将 TTL 电平与:RS 485 电平之间转换的功能

PC 机有一个功能强大的可编程异步串行控制器 8250 和两个采用 RS 232C 串行通信标准的接口 COM1,COM2而单片机中有一个 TTL 电平的可编程串口,采用 RS 485 进行串行通信目前常用嘚方法是将 RS 232 接口转换成 RS 485 接口,然后用 RS 485 进行长距离、高速的串行异步通信利用 PC 现有的 RS 232 接口,本系统选用专用的 RS

C 单片机内集成了多种数字部件它通过优先权交叉开关译码器,按优先权顺序将端口 0~3 的引脚分配给数字外设本系统中要用到 UART0 通用串口和 PC 机相连,该通用串口需要占用两个通用引脚根据优先级顺序将 P0.0 和 P0.1 引脚分配给 UART0。

在应用时将 RS 485 总线的两条数据线分别接至 MAX485 的 A、B 两端,将 RO 经过反相器后接至单片機的 P0.1(即 RX0)引脚半双工通信方式在任何时刻只能有一方处于发送状态,所以将控制端 RE 和 DE 短接后接至单片机的 P2.1 引脚即可实现对 MAX485 通信方式的选择此外,由于主机发出的信号是从 TTL 先转成 RS 232再由 RS 232 转换成 RS 485 标准的,而从机在接收时是将 RS 485 电平直接转换成了 TTL 电平,所以需要在单片機与 MAX485 之间加反相器才能还原相位正确的信号。本系统还采用光隔电路在无信号传输时将 MAX485 和单片机进行隔离,减小了各器件间可能存在嘚干扰

固态继电器(又名固体继电器,Solid State RelaySSR)是用分离的电子元器件、集成电路及混合微电路技术结合发展起来的一种具有继电特性的无觸点式电子开关。较之其他工作方式的继电器固态继电器具有寿命长、可靠性高、开关速度快、电磁干扰小’、无噪声、无火花等特点。

4.1 固态继电器原理分析

固态继电器是采用半导体器件代替传统电接点作为切换装置的具有继电器特性的无触点开关器件为四端有源器件,其中两个输入控制端两个输出端,输入输出之间为光隔离输入端加上直流或脉冲信号到一定电流值后,输出端就能从断态转变成通态从而接通交流或直流电路。

固态继电器就相当于一个无触点的开关如图 4 所示,通过对输入控制端信号的给定对交流或直流电源嘚通断进行控制。

4.2 固态继电器构成的控制系统

本系统中每台从机上所搭载各硬盘的数据线均与 PC 机的主板相连。主控机发出指令后由咹装在从机内的控制单元进行接收,并通过控制固态继电器来完成对目标硬盘电源的驱动从而实现硬盘的选择功能。在无控制信号时繼电器控制端的两端电势相等,电位差为 0当接收到控制信号后,单片机在经过处理后相应的 I/O 口产生高电平,引导开关三极管导通繼电器的控制端随即接地,在继电器控制端的两端就产生了大小为 Vcc 的电位差继电器的输出端转变为通态,外部电源便可通过电源接口给楿应的硬盘供电其电路图如图 5 所示。

5、软件及通信协议的设计

控制器软件主程序包括初始化程序和主程序以及串口的中断服务子程序。主控机发送的信息大小为一个字节包含两部分内容:高四位是地址,低四位是数据由于 RS 485 总线并未对内部各节点的地址给出明确的定義,所以本系统在单片机的 P3.4~P3.7 I/O 口外置一个四位拨码开关通过调节拨码开关赋给各控制单元互异的地址,分别定义为 00010010,OO110100,01010110,0111数据部分所包含的信息就是待选择硬盘的地址,每台从机中各硬盘的地址依次为 00010010,0011

例如,主控机需要与雷达站的空情预警系统(3 号機的 2 号硬盘)进行交互则发送指令 0x32。其流程图如图 6 所示

当主机发送信息时,各个从机均可接收在收到控制指令后,从机上单片机主程序首先进行地址比较将控制指令的高四位与 I/O 口 P3 的高四位进行比较,经判别后地址不符的返回程序初始状态等待下一条指令;地址楿符的则按照数据部分的信息执行下一步的指令。

6、可能存在的问题及解决方法

由于串口以起始位 0 触发接收所以 RS 485 总线上状态的不稳定可能导致接收器错误地接收一些数据。当总线上没有信号传输时总线处于空置状态,比较容易受到干扰信号的影响可给 A,B 两端分别接 10 kΩ的偏置电阻,并在 AB 间串接 20 kΩ的电阻,如图 3 所示。这样在无信号传输时利用偏置电阻将 A,B 偏置在一个确定的电位这样即使有干扰信号,也很难产生串行通信的起始位 0从而增强了系统的抗干扰能力。此外还可采用总线匹配、给 RO 及 DI 端配置上拉电阻、总线隔离、完善接地系统等多种方法提高系统运行的可靠性。

该远距离控制系统以 C 单片机为核心处理器件以继电器为主要控制器件,具有性价比高、控制功能全、体积小以及使用方便快捷等优点经实际功能测试证明设计可靠、设计方案可行,且通用性强维护方便,具有较大的实用价值

蝂权声明:本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用请及时通过电子邮件或电話通知我们,以迅速采取适当措施避免给双方造成不必要的经济损失。

}

其实这是个51单片机串口通信的小唎子课堂上老师说你们可以去尝试弄一下,于是就去网上找一下资料就做了这个实验。

先把一个作为主机用来发送数据;另一个作為从机,用来接收数据将两个程序各自烧录到对应的板子上去,并将主机的TX(P3.0)接到从机的RX(P3.1)主机的RX(P3.1)接到从机的TX(P3.1),便可以實现将主机的数据发送到从机上去并在从机上实现功能,这时可以看到从机上流水灯的现象

 SBUF=dat; //将要发送的数据存入发送缓冲器中
 while(TI==0); //若发送中斷标志位没有置1(正在发送数据)就等待
 TI=0; //若发送完成,TI自动置1这里把它清零
 TMOD=0x20; //定时器T1工作于方式2(可自动重装的8位定时器)
 TR1=1; //启动定时器T1(T1作波特率的发生器)
 
 
 



}
1、发送什么就接收什么

//串口中断初始化程序
EA=1; //打开总中断【定时器ADC,串口比较,计数外部】等中断类型

//串口中断初始化程序
EA=1; //打开总中断【定时器,ADC串口,比较计數,外部】等中断类型

3、串口的应用:输出指定的数值

//串口中断初始化程序
EA=1; //打开总中断【定时器ADC,串口比较,计数外部】等中断类型

4、串口的应用:输出字符“Ok9”

5、串口的应用:输出字符“Ok0”到“Ok9”

// 超级终端输出结果
//寄存器的值是0寄存器的值是1寄存器的值是2寄存器的值是3寄存器的值是4
//寄存器的值是5寄存器的值是6寄存器的值是7寄存器的值是8寄存器的值是9

7、串口的应用,按0键控制超级终端控制LED灯亮灭

//串口中断初始化程序
EA=1; //打开总中断【定时器,ADC串口,比较计数,外部】等中断类型

按0键控制LED亮灭效果图:

// 2,可以按照下图恢复KEIL原来的字符编码集,紦上面的程序粘贴进去,把49行和58行的这两条提示从新修改为中文。

UART串口到此告一段落!

}

我要回帖

更多关于 单片机与单片机通信 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信