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

资源简介

这是一个基于51单片机的RS485多机通讯,一台主机,三台主机,从机地址可通过拔码开关选择,如,主机要发送数据给从机,则将主机选中要发送的从机地址。然后对应的按键有对应的值。即可以送,有参考价格

资源截图

代码片段和文件信息

#include
sbit RE_DE=P1^7;
 unsigned char code SEG7[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
unsigned char key;
unsigned char addr;
/*--------------------------------------------------
功能:延时子函数
**************************************************/
void delay(unsigned char m)
{
  unsigned char ij;
  for(i=0;i  {
   for(j=0;j<121;j++)
   {;}
   }
  }
/*************************************************8
功能:发送子函数
说明:将按键按下对应的值送到每个从机上
**************************************************/
void send(unsigned char dd)
{
  
  RE_DE=1;
  TB8=0;
  SBUF=dd;
  while(!TI);
  TI=0;
  }
/************************************************
功能:按键中断子程序
说明:判断是否有按键按下
**************************************************/
unsigned char scan_key(void)  //第一种
{
  unsigned char temp;
  temp=P3;
  return temp;
  }
/**************************************************88
功能:对相应的键值处理
****************************************************/
unsigned char key_return(void)
{
 unsigned char keysflag;
   if(P3!=0xff)
{
  delay(10);
   P3=0xff;
   if(P3!=0xff)flag=scan_key();
   }
  switch(flag)
 {
  case 0xfb:keys=77;break;
  case 0xf7:keys=88;break;
  case 0xef:keys=99;;break;
  case 0xdf:keys=199;break;
  default:break;
  }
return keys;
}
/*********************************************8
功能:初始化串口
说明:对波特率及选择串口方式
**********************************************/
void Initial(void)
{
  TMOD =0x20;     // 定时器T1使用工作方式2
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1; // 开始计时
PCON = 0x00; // SMOD = 1
SCON = 0xf8; // 工作方式,9位数据位,波特率9600kbit/s,允许接收 
ES   = 1;
EA   = 1;
}

 void main()
 {
   Initial();
   RE_DE=1; 
   while(1)
   {
    key=key_return();

P1 = 0xff; // 通过P0口读要访问的从机地址 
addr =P1&0x0f;
TB8=1;
SBUF = addr;
 while(!TI);
  TI = 0;
send(key);
P2=SEG7[key%10];P0=0xfe;delay(2);
P2=SEG7[(key%100)/10];P0=0xfd;delay(2);
P2=SEG7[key/100];P0=0xfb;delay(2);
}
   }



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

     文件        221  2008-11-06 09:10  RS485多机通讯,地址可设定\master.plg

     文件       2140  2008-11-05 16:31  RS485多机通讯,地址可设定\master.c

     文件         44  2008-11-05 16:31  RS485多机通讯,地址可设定\master.lnp

     文件       7364  2008-11-05 16:31  RS485多机通讯,地址可设定\master.M51

     文件        775  2008-11-05 16:31  RS485多机通讯,地址可设定\master.hex

     文件       4784  2008-11-05 16:31  RS485多机通讯,地址可设定\master.LST

     文件       5332  2008-11-05 16:31  RS485多机通讯,地址可设定\master.OBJ

     文件       4729  2008-11-05 16:31  RS485多机通讯,地址可设定\master

     文件       2957  2008-11-05 16:56  RS485多机通讯,地址可设定\sing.plg

     文件       1741  2008-11-05 16:55  RS485多机通讯,地址可设定\sing.c

     文件         40  2008-11-05 16:55  RS485多机通讯,地址可设定\sing.lnp

     文件       6347  2008-11-05 16:55  RS485多机通讯,地址可设定\sing.M51

     文件        694  2008-11-05 16:55  RS485多机通讯,地址可设定\sing.hex

     文件       4829  2008-11-05 16:55  RS485多机通讯,地址可设定\sing.LST

     文件       4410  2008-11-05 16:55  RS485多机通讯,地址可设定\sing.OBJ

     文件       4015  2008-11-05 16:55  RS485多机通讯,地址可设定\sing

    .......         0  2008-11-05 16:32  RS485多机通讯,地址可设定\sing_Uv2.Bak

     文件       2151  2008-11-05 16:56  RS485多机通讯,地址可设定\sing.Uv2

     文件        989  2008-11-05 16:56  RS485多机通讯,地址可设定\sing.Opt

    .......         0  2008-11-05 15:43  RS485多机通讯,地址可设定\master_Uv2.Bak

     文件       2146  2008-11-05 16:56  RS485多机通讯,地址可设定\master.Uv2

    .......       314  2008-11-05 15:43  RS485多机通讯,地址可设定\master_Opt.Bak

     文件        979  2008-11-05 16:56  RS485多机通讯,地址可设定\master.Opt

     目录          0  2008-11-05 15:40  RS485多机通讯,地址可设定

----------- ---------  ---------- -----  ----

                57001                    24


评论

共有 条评论