求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.
双机通讯用的是中断方式,查询方式貌似只能是半双工的。 展开
这几个数据可以用简单的变量代替,最好程序中有握手协议。
我在网上找了一些关于双机通讯的程序,但都是一个发一个收,而且一般都是发送一个数据,我这需要发送和接收几个数据,还请大侠们帮忙给这两个单片机的程序!!谢谢!! 邮箱:hmilysm@qq.com.
双机通讯用的是中断方式,查询方式貌似只能是半双工的。 展开
5个回答
展开全部
晕,先收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);
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);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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"); }
}
详细请一起交流!
#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"); }
}
详细请一起交流!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能会分什么单片机的把。51单片机是全双工的啊,单片机发送的是TTL电平不是“ 电流,电压,压力”啊是一串数据你要的话我这里有些程序你可以拿去看下 是双机,还有和电脑通信的都有
每天基本都在线要的话来拿把
每天基本都在线要的话来拿把
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我给你发了一个主从通信的程序(包括proteus仿真文件),一个主机两个从机。如果只需要双机通信,就不需要判断从机号,可以省略TB8的设置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询