PC机与多单片机的多机通信原理

我要做一个pc采集多个单片机数据的程序 现在思路就是每个单片机采集到数据通过rs485串口转换电路发送给pc pc通过轮询方式接收单片机数据 能给轮询那部分的程序 最好 谢谢!如果有更好的思路请指教,最好附上程序,非常感谢!!!!
我就是想问问通信协议这里的程序 有点不会写

用 modbus 协议通信啊!c预言编程的 很简单实用 还一看就懂! 485通信记得加上光电隔离 要不会烧坏芯片的!
你看看这部分的程序吧

if(receTimeOut>0)
{
receTimeOut--;
if(receTimeOut==0 && receCount>0) //判断通讯接收是否超时
{
b485Send = 0; //将485置为接收状态 同时满足俩条件
receCount = 0; //将接收地址偏移寄存器清零
checkoutError = 0; 校验位置置0
}
}
}

if(bt100ms)
{
bt100ms = 0;
b100ms = 1;
}
if(bt10ms) //判断中断10ms标志位是否1
{
bt10ms = 0; //清中断10ms标志位
b10ms = 1;

c200ms++; //200ms计时器加1
if(c200ms >= 20) //判断是否计时到200ms 200ms周期运行 一两一灭
{
c200ms = 0; //清200ms计时器
bRunLED = ~bRunLED; //取反运行指示灯
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-20
协议是固定的,只要将思路高清晰就行了,将每个单片机确定一个唯一的地址就可以了,轮换读数呗。
第2个回答  2010-05-18
先确定下一台PC对一片单片机你自己能不能做到?
可以做到的话就只剩下通信协议问题啦
第3个回答  2010-05-18
一楼正解。
第4个回答  2020-06-21

modbus
协议通信啊!c预言编程的
很简单实用
还一看就懂!
485通信记得加上光电隔离
要不会烧坏
芯片
的!
你看看这部分的
程序

if(receTimeOut>0)
{
receTimeOut--;
if(receTimeOut==0
&&
receCount>0)
//判断
通讯
接收是否超时
{
b485Send
=
0;
//将485置为接收状态
同时满足俩条件
receCount
=
0;
//将接收地址偏移
寄存器
清零
checkoutError
=
0;
校验位置置0
}
}
}
if(bt100ms)
{
bt100ms
=
0;
b100ms
=
1;
}
if(bt10ms)
//判断中断10ms标志位是否1
{
bt10ms
=
0;
//清中断10ms标志位
b10ms
=
1;
c200ms++;
//200ms
计时器
加1
if(c200ms
>=
20)
//判断是否计时到200ms
200ms周期运行
一两一灭
{
c200ms
=
0;
//清200ms计时器
bRunLED
=
~bRunLED;
//取反运行
指示灯
}
}

单片机和PC间数据的实时通信是如何实现的?
通过通信端口。目前单片机普遍支持的pc机通信端口有rs232和ethernet 在单片机内依照通信协议写程序就可以和pc进行通信 现在更有一些适配器,插在pc上,让pc扩展出can, spi, 等端口,这些端口在单片机上很普遍,这样也可以进行通信 最新的单片机也开始支持usb,某些支持usb的单片机只能读取u盘之类的设备,而另...

ms51单片机与pc通信,中间需要什么部件,求原理图
PC机一般使用8250或16550作为串行通讯的控制器,使用9针或25针的接插件将串行口的信号送出。该插座的信号定义如下:DB-25 DB-9 信号名称 方向 含 义 2 3 TXD 输出 数据发送端 3 2 RXD 输入 数据接收端 4 7 RTS 输出 请求发送(计算机要求发送数据)5 8 CTS 输入 清除发送(MODEM准备接收数...

在PC机与单片机组成的多机通信中如何在软件中设置从机地址?
如果是在 上位机部分设置, 就需要在MCU部分安装存储器如 24C01等 然后从PC 发指令把接收到的地址数据存储到24C01 中 注意 用PC设置MUC地址时需要用广播的方式,(因为MCU地址“尚未确定”)而且设置时总线上只能接1个MCU单元;如果MCU 部分有键盘可以考虑在MCU 上用键盘输入地址,然后存储在24C01 中...

怎么实现单片机和PC机进行SPI通讯?
5:SPI总线工作原理 SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为:控制寄存器SPCR,状态寄存器SPSR,数据寄存器。外围设备、网络控制器、LCD显示驱动器、A\/D转换器和MCU等。接口包括以下四种信号:(1)MOSI – 主器件数据输出,从...

上位机与下位机通讯方式的比较
通常PC机和单片机之间的通信是通过串行总线RS-232实现的。因此采用一种以MAX232为核心的通信接口电路。该接口电路适用于由一台PC机与多个8051单片机串行通信的设计,其原理和方法同样适用于PC机与其它单片机之间的串行数据通信。其原理框图见图1:图1 单片机与PC机通信原理框图 该框图中,起着重要作用的是RS-...

如何设计小区安防监控
系统通信 通信的发起方总是主机开始,由PC机控制通讯的主动性,单片机在通讯过程中处于被动地位。由于各分机共享同一频率,为避免冲突,PC机通过巡查分机的工作方式查询各单片机是否有信息要上报给PC机。 为了保证PC机与多台单片机之间能够准确、可靠的通信,确定一个明确而合理的通讯协议是关键。包括对数据格式、通讯方式、传...

我用的是三菱FX2N,想实现PLC和pc机的通信,就是plc实时的发送数据给Pc...
上下位机的通讯有两种方式,一种方式是上位机是主,下位机是从,就是上位机主动向下位机发送请求,比如读一条数据,上位机发送一条指令下来,之后再发一条读返回结果指令,PLC里的数据就读回来了,当然这里上位机是按照PLC提供的通讯协议格式进行收发数据的,也不考虑校验等因素,只是告诉你这个原理。...

如何实现单片机与CPLD通讯
2.串行方式通信:这个和协议有关系,选一种比较好的推荐一下 1)普通的UART那种串行通信方式一个起始位 8位数据位 一个结束位 CPLD检测到下降沿认为新的数据到来,然后开始将端口的数据读入 当然波特率要你自己来定 2)SPI 方式 这需要单片机测用端口模拟 两个数据线 一个时钟线CPLD只要检测到上升沿就开始读入数据 ...

你好 在单片机与计算机之间通信要加上一个电平转换芯片 比如我们用的...
它负责将单片机输出的+5V高电平变换成-12~-5V;也负责将单片机0V的低电平转换成+5~+12,反之也将PC机的信号转换成0V或5V的电平,这就是MAX232的作用,至于MAX232是如何做到这些的,电荷泵的原理是怎样的,就不在这里啰嗦了,百度一个MAX232的数据手册一看便知,以上这些希望对你有用。

单片机与pc串口研究背景是什么
在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。目前,...

相似回答