⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 com_send.c

📁 这是单片机多机通信的C源码程序
💻 C
字号:
  #include <reg51.h>
  #include <intrins.h>
  #define uchar unsigned char
  #define uint unsigned int
    uchar data bb1[4]={1,2,3,4};
    uchar data bb2[4]={11,12,13,14};
   uchar data b1[4];                  
   sbit iop=P3^5;
   sbit INTin=P3^3;
   #define delay5() 	_nop_();	_nop_();	_nop_();	_nop_();	_nop_();
   #define delay15() 	_nop_();	_nop_();	_nop_();	_nop_();	_nop_();		_nop_();	_nop_();	_nop_();	_nop_();	_nop_();   	_nop_();	_nop_();	_nop_();	_nop_();	_nop_();

        bit send_two(uchar aa,uchar flag,uchar c,uchar data *b,uchar a)	
	{
	uchar i,n,mr;						
	EA=0;                                            
	P1=aa;						
	delay5();

	i=P1;						
	if (i!=aa)						
		{
		EA=1;
        P1=0xff;					
		return(0);				
		}

	INTin=0;						

	for(i=0;i<10;i++)				
		{
		if(iop==0)break;			
		if(i>5)
                   {
                    EA=1;
                    P1=0xff;
                    return(0);

                    }			
		}

	delay5();
	while(iop==0);						

        P1=flag;				
        iop=0;	delay5();	iop=1;	delay5();							

       	P1=c;				
        iop=0;	delay5();	iop=1;	delay5();	

        P1=a;                                   
        n=c;
        iop=0;delay15();
        P1=0xff;
        iop=1;delay5();
        if(flag==0)
        {
        for(i=0;i<a;i++)
         {
    	P1=b[i];				
    	iop=0;	n+=b[i];	delay15();	iop=1;	delay15();
         }
        }
          else if(flag==1)
        {
          for(i=0;i<a;i++)
         {
          while(iop==1);
          b[i]=P1;
          n=b[i]+n;
          while(iop==0);
         }
        }

        else
         {
          P1=0xff;
          EA=1;
          return(1);
         }
	P1=n;				
	iop=0;	delay5();	iop=1;	delay5();

	P1=0xff;						
	iop=0;	delay5();					

	mr=P1;						
	for(i=0;i<5;i++)
		{
                if(mr!=0xff)
                  {
                   break;
                  }
		mr=P1;					
		}

	mr=P1;						
	iop=1;						

	INTin=1;	EA=1;				
	if(mr==0x55)return(0);
	else return(1);				
	}

  main()
  {
     bit i;
     i=1;
aaa:
     while(i)
     {
     i=send_two(0x01,0x01,0x01,bb1,4);
     delay15();
      }
i=1;
goto aaa;
   }





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -