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

📄 主机.c

📁 利用AD7705与热敏电阻来检测实际的温度
💻 C
📖 第 1 页 / 共 5 页
字号:
     word=256*(qq[i]-0xa0)+qq[i+1]-0xa0;
     dis_word(j+3,0,0xf0);
    }
    if(union_variary.word<0)
     {
       word='-';
       dis_word(0x05,15,0xf9);
     }
   for(z=0;z<4;z++)
   {
     switch(*(limm+z))
     {
       case 0:
            word='0';
            break;
       case 1:
            word='1';
            break;
       case 2:
            word='2';
            break;
       case 3:
            word='3';
            break;
       case 4:
            word='4';
            break;
       case 5:
            word='5';
            break;
       case 6:
            word='6';
            break;
       case 7:
            word='7';
            break;
       case 8:
            word='8';
            break;
      case 9:
            word='9';
            break;
     }
     switch(z)
     {
       case 0:
            x=0x06;
            break;
       case 1:
            x=0x07;
            break;
       case 2:
            x=0x08;
            break;
      case 3:
            x=0x0a;
            xx=word;
            word='.';
            dis_word(0x09,15,0xf9);
            word=xx;
            break;
     }
     dis_word(x,15,0xf9);
   }
   for(i=0;i<1000;i++)
       for(j=0;j<100;j++);
  }
   overtime=0;
   send_byte(0xf4);
   P1=0xff;
}
/////////////////////////
read_err()//读误差
{
  uchar code w3[]={"超时"};
  uchar data z,x,xx,b1,b2;
  float y;
  uchar code ww1[]={"读零点误差按一"};
  uchar code ww2[]={"读满度误差按二"};
  uchar code ww3[]={"零点误差为"};
  uchar code ww4[]={"满度误差为"};
  k=3;
  send_byte(0xf4);
    for(i=0,j=0;i<13;i=i+2,j++)
    {
      word=256*(ww1[i]-0xa0)+ww1[i+1]-0xa0;
      dis_word(j+3,0,0xf0);
    }
    for(i=0,j=0;i<13;i=i+2,j++)
     {
       word=256*(ww2[i]-0xa0)+ww2[i+1]-0xa0;
       dis_word(j+3,1,0xf0);
     }
     for(i=0;i<1000;i++)
        for(j=0;j<10;j++);
     P1=0xff;
    while(P1!=0xee&&P1!=0xed)
       check_key();
    if(P1==0xee)//读零点误差
    {
      uchar code w1[]={"请输入子机号"};
      //uchar code w2[]={"读二号按二"};
      send_byte(0xf4);
      for(i=0,j=0;i<11;i=i+2,j++)
      {
       word=256*(w1[i]-0xa0)+w1[i+1]-0xa0;
       dis_word(j+3,0,0xf0);
      }
    /* for(i=0,j=0;i<9;i=i+2,j++)
     {
       word=256*(w2[i]-0xa0)+w2[i+1]-0xa0;
       dis_word(j+3,1,0xf0);
     }*/
    // for(i=0;i<1000;i++)    ///////
      // for(j=0;j<100;j++);   ////////
      delay(1000,1000);
     P1=0xff;
     while(P1!=0xee&&P1!=0xed&&P1!=0xeb&&P1!=0xe7&&P1!=0xde&&P1!=0xdd&&P1!=0xdb&&P1!=0xd7&&P1!=0xbe)
        check_key();
      b1=P1;
      send_byte(0xf4);
     switch(b1)
     {
       /*case 0x7d://0
            word='0';
            flag1=0;
            break;*/
       case 0xee://1
            word='1';
             sendbuf[1]=1;
            break;
       case 0xed://2
            word='2';
            sendbuf[1]=2;
            break;
       case 0xeb://3
            word='3';
            sendbuf[1]=3;
            break;
       case 0xe7://4
            word='4';
            sendbuf[1]=4;
            break;
       case 0xde://5
            word='5';
            sendbuf[1]=5;
            break;
       case 0xdd://6
            word='6';
            sendbuf[1]=6;
            break;
       case 0xdb://7
            word='7';
            sendbuf[1]=7;
            break;
       case 0xd7://8
            word='8';
            sendbuf[1]=8;
            break;
       case 0xbe://9
            word='9';
            sendbuf[1]=9;
            break;
     }
      sendbuf[2]=9;
      sendbuf[8]=sendbuf[1]+sendbuf[2]+sendbuf[3]+sendbuf[4]+sendbuf[5]+sendbuf[6]+sendbuf[7];
      send();
      j=0;
     while((RI==0)&&(j<1000))
         {
          j++;
         }
     if(j>=1000)
      overtime=1;
     else
     {
      overtime=0;
      RI=0;
     }
     if(overtime==0)
     {
      for(i=0;i<7;i++)
	    {
	       j1=0;
	       while(RI==0)
	            {
	               j1++;
	                  if(j1>1000)
	                    {
	                      break;				//超时退出
	                    }
	            }
	       RI=0;
	       if(j1>1000)
	         {
	          break;				//超时退出
	         }
	       buff[i]=SBUF;
	    }
       }
     if(j1>1000||overtime==1)
     {
       send_byte(0xf4);
       P1=0xff;
       for(i=0,j=0;i<3;i=i+2,j++)
        {
         word=256*(w3[i]-0xa0)+w3[i+1]-0xa0;
         dis_word(j+2,0,0xf0);
        }
       for(i=0;i<1000;i++)
         for(j=0;j<10;j++);
     }
    if(j1<1000&&overtime==0)
    {
     send_byte(0xf4);
     for(i=0,j=0;i<9;i=i+2,j++)
     {
       word=256*(ww3[i]-0xa0)+ww3[i+1]-0xa0;
       dis_word(j+3,0,0xf0);
     }
     union_variary.byte.hand=buff[1];
     union_variary.byte.ten=buff[2];
     union_variary.byte.several=buff[3];
     union_variary.byte.point=buff[4];
     if(union_variary.word<0)
     {
        y=-union_variary.word;
        error[0]=(int)y/100;
        error[1]=(int)(y-error[0]*100)/10;
        error[2]=(int)(y-error[0]*100-error[1]*10);
        error[3]=(int)(y*10-error[0]*1000-error[1]*100-error[2]*10);
     }
     else
     {
       error[0]=(int)union_variary.word/100;
       error[1]=(int)(union_variary.word-error[0]*100)/10;
       error[2]=(int)(union_variary.word-error[0]*100-error[1]*10);
       error[3]=(int)(union_variary.word*10-error[0]*1000-error[1]*100-error[2]*10);
     }
     limm=error;
     //word=*(lim+z);
     if(union_variary.word<0)
     {
       word='-';
       dis_word(0x05,15,0xf9);
     }
      for(z=0;z<4;z++) //
     {
      switch(*(limm+z))
      {
       case 0:
            word='0';
            break;
       case 1:
            word='1';
            break;
       case 2:
            word='2';
            break;
       case 3:
            word='3';
            break;
       case 4:
            word='4';
            break;
       case 5:
            word='5';
            break;
       case 6:
            word='6';
            break;
       case 7:
            word='7';
            break;
       case 8:
            word='8';
            break;
      case 9:
            word='9';
            break;
     }
     switch(z)
     {
       case 0:
            x=0x06;
            break;
       case 1:
            x=0x07;
            break;
       case 2:
            x=0x08;
            break;
      case 3:
            x=0x0a;
            xx=word;
            word='.';
            dis_word(0x09,15,0xf9);
            word=xx;
            break;
     }
     dis_word(x,15,0xf9);
   }
   for(i=0;i<1000;i++)
     for(j=0;j<100;j++);
   }
  }
// }
  if(P1==0xed)//读满度误差
  {
    uchar code w5[]={"请输入子机号"};
    //uchar code w6[]={"读二号按二"};
    send_byte(0xf4);
    for(i=0,j=0;i<11;i=i+2,j++)
      {
       word=256*(w5[i]-0xa0)+w5[i+1]-0xa0;
       dis_word(j+3,0,0xf0);
      }
     /*for(i=0,j=0;i<9;i=i+2,j++)
     {
       word=256*(w6[i]-0xa0)+w6[i+1]-0xa0;
       dis_word(j+3,1,0xf0);
     }*/
    // for(i=0;i<1000;i++)  //
     //  for(j=0;j<100;j++);
     delay(1000,1000);
     P1=0xff;
     while(P1!=0xee&&P1!=0xed&&P1!=0xeb&&P1!=0xe7&&P1!=0xde&&P1!=0xdd&&P1!=0xdb&&P1!=0xd7&&P1!=0xbe)
        check_key();
     b1=P1;
     send_byte(0xf4);
     switch(b1)
     {
       /*case 0x7d://0
            word='0';
            flag1=0;
            break;*/
       case 0xee://1
            word='1';
             sendbuf[1]=1;
            break;
       case 0xed://2
            word='2';
            sendbuf[1]=2;
            break;
       case 0xeb://3
            word='3';
            sendbuf[1]=3;
            break;
       case 0xe7://4
            word='4';
            sendbuf[1]=4;
            break;
       case 0xde://5
            word='5';
            sendbuf[1]=5;
            break;
       case 0xdd://6
            word='6';
            sendbuf[1]=6;
            break;
       case 0xdb://7
            word='7';
            sendbuf[1]=7;
            break;
       case 0xd7://8
            word='8';
            sendbuf[1]=8;
            break;
       case 0xbe://9
            word='9';
            sendbuf[1]=9;
            break;
     }
      sendbuf[2]=8;
      sendbuf[8]=sendbuf[1]+sendbuf[2]+sendbuf[3]+sendbuf[4]+sendbuf[5]+sendbuf[6]+sendbuf[7];
      send();
      j=0;
     while((RI==0)&&(j<100))
         {
          j++;
         }
    if(j>=100)
      overtime=1;
    else
    {
      overtime=0;
      RI=0;
     }
     if(overtime==0)
     {
      for(i=0;i<7;i++)
	    {
	       j1=0;
	       while(RI==0)
	            {
	               j1++;
	                  if(j1>1000)
	                    {
	                      break;				//超时退出
	                    }
	            }
	       RI=0;
	       if(j1>1000)
	         {
	          break;				//超时退出
	         }
	       buff[i]=SBUF;
	    }
       }
     if(j1>1000||overtime==1)
     {
       send_byte(0xf4);
       P1=0xff;
       for(i=0,j=0;i<3;i=i+2,j++)
        {
         word=256*(w3[i]-0xa0)+w3[i+1]-0xa0;
         dis_word(j+2,0,0xf0);
        }
       for(i=0;i<1000;i++)
         for(j=0;j<10;j++);
     }
    if(j1<1000&&overtime==0)
    {
     send_byte(0xf4);
     for(i=0,j=0;i<9;i=i+2,j++)
      {
        word=256*(ww4[i]-0xa0)+ww4[i+1]-0xa0;
        dis_word(j+3,0,0xf0);
      }
     union_variary.byte.hand=buff[1];
     union_variary.byte.ten=buff[2];
     union_variary.byte.several=buff[3];
     union_variary.byte.point=buff[4];
     if(union_variary.word<0)
     {
        y=-union_variary.word;
        error[0]=(int)y/100;
        error[1]=(int)(y-error[0]*100)/10;
        error[2]=(int)(y-error[0]*100-error[1]*10);
        error[3]=(int)(y*10-error[0]*1000-error[1]*100-error[2]*10);
     }
     else
     {
       error[0]=(int)union_variary.word/100;
       error[1]=(int)(union_variary.word-error[0]*100)/10;
       error[2]=(int)(union_variary.word-error[0]*100-error[1]*10);
       error[3]=(int)(union_variary.word*10-error[0]*1000-error[1]*100-error[2]*10);
     }
     limm=error;
     if(union_variary.word<0)
     {
       word='-';
       dis_word(0x05,15,0xf9);
     }
     for(z=0;z<4;z++) //
     {
      switch(*(limm+z))
      {
       case 0:
            word='0';
            break;
       case 1:
            word='1';
            break;
       case 2:
            word='2';
            break;
       case 3:
            word='3';
            break;
       case 4:
            word='4';
            break;
       case 5:
            word='5';
            break;
       case 6:
            word='6';
            break;
       case 7:
            word='7';
            break;
       case 8:
            word='8';
            break;
      case 9:
            word='9';
            break;
     }
     switch(z)
     {
       case 0:
            x=0x06;
            break;
       case 1:
            x=0x07;
            break;
       case 2:
            x=0x08;
            break;
      case 3:
            x=0x0a;
            xx=word;
            word='.';
            dis_word(0x09,15,0xf9);
            word=xx;
            break;
     }
     dis_word(x,15,0xf9);
   }
   for(i=0;i<1000;i++)
     for(j=0;j<100;j++);
  }
 }
  overtime=0;
  send_byte(0xf4);
  P1=0xff;
}
T_check()//温度校准
{
 uchar w1[]={"请输入子机号"};
 uchar w2[]={"按二校准子机二"};
 uchar w4[]={"成功"};
 uchar w3[]={"超时"};
 uchar w5[]={"请输入校准次序"};
 uchar w6[]={"校准请稍等"};
 uchar data l=0,z=0,b1=0;
 times++;
 k=3;
 send_byte(0xf4);
 for(i=0,j=0;i<11;i=i+2,j++)

⌨️ 快捷键说明

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