• 大小: 49KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: 其他
  • 标签: 双单片机  通讯  

资源简介

基于两个at89c52之间的并行通讯,附电路图

资源截图

代码片段和文件信息

//////////////////////////////////////////////////////////////////////////////////////////
//自定义通讯协议设置四个标记引脚分别为u1_outu1_in_over;u2_outu2_in_over表示通讯线路空闲
//u1_out为单片机1发送数据标记u1_in_over表示接收数据完毕由单片机1控制
//u2_out为单片机2发送数据标记u2_in_over表示接收数据完毕由单片机2控制
//最后为了以防传输时:当通讯线空闲时两个单片同时发送数据而造成的死机设置一个引脚为时间片
// time_patch.由单片机1控制time_patch = 0为单片机1发送时间片1为单片机2发送时间片
/////////////////////////////////////////////////////////////////////////////////////////

/*-------------单片机1---------------------*/
#include
#define uchar unsigned char
#define data_line P1
#define data_try P2
sbit u1_out = P3^0;
sbit u1_in_over = P3^3;
sbit u2_in_over =P3^4;
sbit time_patch = P3^5;
uchar temp;

void nop(void){}

void delayMs (uchar ms) 
{
uchar i;
while (--ms)
{
for (i = 0; i < 125; i++);
}
}

void get_data(void) interrupt 0
{
  EX0 = 0;
  data_line = 0xff;   //初始化引脚
  nop();
  temp = data_line;
  u1_in_over = 1;//接收完毕
  nop();
  u1_in_over = 0;
  data_try = temp;
  EX0 = 1;
}
void tp(void) interrupt 1
{
 time_patch =~time_patch;
 TH0 = 0xfe;TL0= 0x0c;

}
void send_data(uchar ch)
{
 
 while(u1_out);//等待总线空闲
 while(time_patch);//等待时间片的到来
 u1_out = 1;
 data_line = 0xff;
 nop();
 data_line = ch;
 while(u2_in_over);//等待U2接收完毕
 u1_out = 0;
 
}


void main(void)

  uchar ii;
  ET0 = 1;EX0 = 1;EA=1;
  IT0 = 1;
  TMOD = 0x01;
  TH0 = 0xfe;TL0= 0x0c;
  TR0 = 1;
  u1_out = 0; u1_in_over = 0;
  for(ii = 0;ii<255;ii++)
    {send_data(ii);
delayMs(50);
}
send_data(ii);

while(1);
 
 

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .......      6376  2009-08-30 18:27  单片机通讯(并行-半双工)\单片机1\STARTUP.A51

     文件       3966  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机1\U1

     文件       1745  2009-08-30 20:45  单片机通讯(并行-半双工)\单片机1\U1.c

     文件        486  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机1\U1.hex

     文件         36  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机1\U1.lnp

     文件       3832  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机1\U1.LST

     文件       6021  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机1\U1.M51

     文件       4402  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机1\U1.OBJ

     文件       1008  2009-08-30 20:45  单片机通讯(并行-半双工)\单片机1\U1.Opt

     文件       6436  2009-08-30 20:47  单片机通讯(并行-半双工)\单片机1\U1.plg

     文件       2095  2009-08-30 20:45  单片机通讯(并行-半双工)\单片机1\U1.Uv2

    .......      1008  2009-08-30 20:41  单片机通讯(并行-半双工)\单片机1\U1_Opt.Bak

    .......      2095  2009-08-30 20:40  单片机通讯(并行-半双工)\单片机1\U1_Uv2.Bak

    .......      6376  2009-08-30 18:27  单片机通讯(并行-半双工)\单片机2\STARTUP.A51

     文件       3361  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机2\U2

     文件       1589  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机2\U2.c

     文件        393  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机2\U2.hex

     文件         36  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机2\U2.lnp

     文件       3480  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机2\U2.LST

     文件       5282  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机2\U2.M51

     文件       3722  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机2\U2.OBJ

     文件        967  2009-08-30 20:42  单片机通讯(并行-半双工)\单片机2\U2.Opt

     文件       4234  2009-08-30 20:47  单片机通讯(并行-半双工)\单片机2\U2.plg

    .......      2095  2009-08-30 18:27  单片机通讯(并行-半双工)\单片机2\U2.Uv2

    .......       966  2009-08-30 20:30  单片机通讯(并行-半双工)\单片机2\U2_Opt.Bak

    .......      2095  2009-08-30 18:27  单片机通讯(并行-半双工)\单片机2\U2_Uv2.Bak

     文件      66587  2009-08-30 19:43  单片机通讯(并行-半双工)\电路\Last Loaded U1&U2.DBK

     文件      66587  2009-08-30 20:29  单片机通讯(并行-半双工)\电路\U1&U2.DSN

     文件       1052  2009-08-30 20:47  单片机通讯(并行-半双工)\电路\U1&U2.PWI

     目录          0  2009-08-30 20:45  单片机通讯(并行-半双工)\单片机1

............此处省略6个文件信息

评论

共有 条评论