求51单片机双机通讯C程序!!! 要求是全双工的!!!! 100

两个单片机A和B,A向B发送“电流,电压,压力”三个采样数据,此时A发送,B接收;B向A发送按键设定的“设定电流,设定电压,设定压力”三个数据,此时B发送,A接收。这几个... 两个单片机A和B,A向B发送“电流,电压,压力”三个采样数据,此时A发送,B接收;B向A发送按键设定的“设定电流,设定电压,设定压力”三个数据,此时B发送,A接收。
这几个数据可以用简单的变量代替,最好程序中有握手协议。
我在网上找了一些关于双机通讯的程序,但都是一个发一个收,而且一般都是发送一个数据,我这需要发送和接收几个数据,还请大侠们帮忙给这两个单片机的程序!!谢谢!! 邮箱:hmilysm@qq.com.
双机通讯用的是中断方式,查询方式貌似只能是半双工的。
展开
 我来答
百度网友85cdc95e6
2010-10-26
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
晕,先收3个,再发3个不就好了吗?中断中处理就可以了啊,给你点样子,自己去改下,波特率什么的自己处理吧,很快的
void COUNTER_com(void) interrupt 4 //主机接收程序
{
ucharx *EMS_agree;
uchar a;
uint b;
REC_ADDRESS //EMS_agree首地址初始化

//=======================接收数据中断 =====================================
if(RI){ ES=0; //如果数据输入 串行中断暂时禁止 32字节xdata接收缓冲区

do{
while(!RI); //接受指令
{if(b == 50000){ ES = 1; return; } b++; } //延时保护
b = 0;
(*EMS_agree) = SBUF;
RI =0;
EMS_agree++; //累加地址
if(EMS_agree > 0x0084 ){ES = 1;return;} //32字节;如果超过最大默认字节 侧退出
}while(SBUF != 0x04);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2010-11-02 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

多字节的数据传输,是需要制定规则的,收发双方都要按照规则通信。

参考下图。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leibin9888
2010-10-22 · 超过12用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:25.5万
展开全部
#include <AT89X51.H>
#include <stdio.h>
void main(void)
{
TMOD=0x21;
TH1 = 0xFD; //11.0592MHz 1200 波特率
TL1 = 0xFD;
SCON = 0x50; //串口方式1,允许接收
PCON=0X00;
TI = 1;
TR1 = 1; //启动定时器
while(1)
{
printf ("xx:你学会了监控第一步!!\n"); }
}

详细请一起交流!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ilovemoney1
2010-10-20 · TA获得超过100个赞
知道答主
回答量:46
采纳率:0%
帮助的人:24.5万
展开全部
可能会分什么单片机的把。51单片机是全双工的啊,单片机发送的是TTL电平不是“ 电流,电压,压力”啊是一串数据你要的话我这里有些程序你可以拿去看下 是双机,还有和电脑通信的都有
每天基本都在线要的话来拿把
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
单片机另类
2010-10-20 · TA获得超过247个赞
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:26.2万
展开全部
我给你发了一个主从通信的程序(包括proteus仿真文件),一个主机两个从机。如果只需要双机通信,就不需要判断从机号,可以省略TB8的设置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式