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

📄 connect.c

📁 单片机实现ds18b20温度采集,非常具有学习性,对初学者很有帮助
💻 C
字号:
#include<regx52.h>
#include<ds18b20.h>
#include<ds18b201.h>
#include<ds18b202.h>
#include<ds18b203.h>
#include<ds18b204.h>
#include<chuank.h>
bit flag1=0,flag2=0; //连接标志位
unsigned fa1[4],fa2[4],fa3[4],fa4[4],fa5[4];//fal[0]:代表具体的那一路信号。fa1[1]:代表数据的正负。fa1[2]:low、fa1[3]:high
 void display(int a)//五路温度检测
 { switch(a)
	   {case 0:
	   getTmpValue(); 
	   fa1[0]=1; fa1[1]=flag; fa1[2]=low; fa1[3]=high;break;
	   case 1:
	   getTmpValue1(); 
	   fa2[0]=2; fa2[1]=flag; fa2[2]=low; fa2[3]=high;break;
	   case 2:
	   getTmpValue2(); 
	   fa3[0]=3; fa3[1]=flag; fa3[2]=low; fa3[3]=high;break;
	   case 3:
	   getTmpValue3(); 
	   fa4[0]=4; fa4[1]=flag; fa4[2]=low; fa4[3]=high;break;
	   case 4:
	   getTmpValue4(); 
	   fa5[0]=5; fa5[1]=flag; fa5[2]=low; fa5[3]=high;break;
	   }
  
	/*if(a==0)
      {
	   getTmpValue(); 
	   fa1[0]=0; fa1[1]=flag; fa1[2]=low; fa1[3]=high;
	  }
	  else
	   {
        getTmpValue1();
	    fa2[0]=1; fa2[1]=flag; fa2[2]=low; fa2[3]=high;*/

  }
  ////////////////////////////主函数
void main()
{unsigned rec,shu,i;
 int ji=0;
 uartinit();   //串口初始化函数 
 sendchar('A');////首先发送联络信号A uns

/*	 while(1)
 {
  display(0);
  display(1);
  display(2);
  display(3);
  display(4); 
  if(flag2==0)sendchar('A');//说明未联系到乙机(则继续发送联系信号A)
       else if(flag2==1)     ///因为当flag2=1时说明,两机通信已经正常了,现在可以传送温度
	    {  
		 ji++;
         shu=ji%5;
		   if(shu==0)          // 分开发送
	         {
			  for(i=0;i<4;i++)      
	            { 
				 delay(10);      //稍作延时再发送下一位数据,这样会比较准确一点
	             sendchar(fa1[i]);//发送一路(温度信号)信号
			    }
			 }
			   if(shu==1)
			   {
			    for(i=0;i<4;i++)      
	              {
				   delay(10);        //稍作延时再发送下一位数据,这样会比较准确一点
	               sendchar(fa2[i]);//发送第二路路(温度信号)信号
			      }
			    }
			 if(shu==2)
			   {
			    for(i=0;i<4;i++)      
	              {
				   delay(10);        //稍作延时再发送下一位数据,这样会比较准确一点
	               sendchar(fa3[i]);//发送第二路路(温度信号)信号
			      }
			    }
			  if(shu==3)
			   {
			    for(i=0;i<4;i++)      
	              {
				   delay(10);        //稍作延时再发送下一位数据,这样会比较准确一点
	               sendchar(fa4[i]);//发送第二路路(温度信号)信号
			      }
			    }
				if(shu==4)
			   {
			    for(i=0;i<4;i++)      
	              {
				   delay(10);        //稍作延时再发送下一位数据,这样会比较准确一点
	               sendchar(fa5[i]);//发送第二路路(温度信号)信号
			      }
			    }
			}

           
  }*/

 
}
//////串口中断函数
void R_uart(void) interrupt 4////串口中断函数
{
sendchar('A');
 /*unsigned rec;
 if(RI==1)                ///只针对接收中断
 {
    RI=0;
	rec=SBUF;
	if(rec=='B')  //说明两机已经联系上了  //就可以开始发送需要传输的数据
	  {
	   flag2=1;
      }
      
	
   }*/

}


⌨️ 快捷键说明

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