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

📄 主机.c

📁 利用AD7705与热敏电阻来检测实际的温度
💻 C
📖 第 1 页 / 共 5 页
字号:
     dis_word(j+3,3,0xf0);
    }
    word='E';
    dis_word(0x0f,50,0xf9);
    word='n';
    dis_word(0x10,50,0xf9);
    word='t';
    dis_word(0x11,50,0xf9);
    word='e';
    dis_word(0x12,50,0xf9);
    word='r';
    dis_word(0x13,50,0xf9);
   }
   if(k==12)
   {
    for(i=0,j=0;i<7;i=i+2,j++)
    {
     word=256*(ww[i]-0xa0)+ww[i+1]-0xa0;
     dis_word(j+3,3,0xf0);
    }
    word='1';
    dis_word(0x11,50,0xf9);
    word='0';
    dis_word(0x12,50,0xf9);
   }
   if(k==13)
   {
    for(i=0,j=0;i<13;i=i+2,j++)
    {
     word=256*(ww1[i]-0xa0)+ww1[i+1]-0xa0;
     dis_word(j+3,3,0xf0);
    }
   }
   if(k==14)
   {
    for(i=0,j=0;i<13;i=i+2,j++)
    {
     word=256*(ww2[i]-0xa0)+ww2[i+1]-0xa0;
     dis_word(j+3,3,0xf0);
    }
   }
   if(k==15)
   {
     for(i=0,j=0;i<7;i=i+2,j++)
    {
     word=256*(ww3[i]-0xa0)+ww3[i+1]-0xa0;
     dis_word(j+3,3,0xf0);
    }
    word='1';
    dis_word(0x11,50,0xf9);
    word='1';
    dis_word(0x12,50,0xf9);
   }
   if(k==16)
   {
     for(i=0,j=0;i<9;i=i+2,j++)
    {
     word=256*(ww4[i]-0xa0)+ww4[i+1]-0xa0;
     dis_word(j+3,3,0xf0);
    }
    word='0';
    dis_word(0x11,50,0xf9);
   }
}
/////////////////////////////////////////////////////////////////////////////////
dis_time()//显示时间
{
 uint i,j;
 k=3;
 dsz1302();
 for(i=0;i<1000;i++)
    for(j=0;j<1000;j++);
  send_byte(0xf4);
  P1=0xff;
}
///////////////////////////////////////////////////////////////////////////////////
frash()//更新时间,上限,下限,
{
   uchar data z=0,b1=0,kk=0,buf[6];
   uchar data flag=0;//正负数标志
   kk=P1;
   k=3;
   //延时
   delay(200,250);
   send_byte(0xf4);
   P1=0xff;
   while(P1==0xff)
     check_key();
   if(P1==0x7e)
   {
     flag=1;//负数
     word='-';
     dis_word(0x04,2,0xf9);
     }
   while(z<6)
   {
    check_key();
    delay(400,250);
    if(P1!=0xff&&P1!=0x77&&P1!=0x7b&&P1!=0x7e&&P1!=0xb7&&P1!=0xbb&&P1!=0xbd)
    {
     switch(P1)
     {
      /* case 0x7e:
            word="-";
            break; */
       case 0x7d://0
            word='0';
            buf[z]=0;
            break;
       case 0xee://1
            word='1';
            buf[z]=1;
            break;
       case 0xed://2
            word='2';
            buf[z]=2;
            break;
       case 0xeb://3
            word='3';
            buf[z]=3;
            break;
       case 0xe7://4
            word='4';
            buf[z]=4;
            break;
       case 0xde://5
            word='5';
            buf[z]=5;
            break;
       case 0xdd://6
            word='6';
            buf[z]=6;
            break;
       case 0xdb://7
            word='7';
            buf[z]=7;
            break;
       case 0xd7://8
            word='8';
            buf[z]=8;
            break;
       case 0xbe://9
            word='9';
            buf[z]=9;
            break;
     }
     z++;
     switch(z)
     {
      case 1:
           dis_word(0x05,2,0xf9);
           break;
      case 2:
           dis_word(0x06,2,0xf9);
           break;
      case 3:
           dis_word(0x07,2,0xf9);
           break;
      case 4:
           dis_word(0x08,2,0xf9);
           break;
      case 5:
           dis_word(0x09,2,0xf9);
           break;
      case 6:
           dis_word(0x0a,2,0xf9);
           break;
     }

     P1=0xff;
    }
   }
    z=0;
   while(P1!=0x7b&&P1!=0x77)
      check_key();
   ///////////////////////////////////////////////////////
   if(P1==0x77) //回车键
   {
      P1=0xff;
      if(kk==0xeb)//修改时间
      {
        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+2,0,0xf0);
          }
         /* for(i=0,j=0;i<15;i=i+2,j++)
          {
           word=256*(w2[i]-0xa0)+w2[i+1]-0xa0;
           dis_word(j+2,1,0xf0);
          }  */
       time[0]=buf[0]*10+buf[1];
       time[1]=buf[2]*10+buf[3];
       time[2]=buf[4]*10+buf[5];
       write_word(7,0,0); //允许写
       xsz1302();
       write_word(7,0x80,0);//禁止写
       sendbuf[2]=12;//写时钟
       sendbuf[3]=buf[0]*10+buf[1];
       sendbuf[4]=buf[2]*10+buf[3];
       sendbuf[5]=buf[4]*10+buf[5];
       P1=0xff;
       for(i=0;i<1000;i++)
          for(j=0;j<10;j++);
       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[8]=sendbuf[1]+sendbuf[2]+sendbuf[3]+sendbuf[4]+sendbuf[5]+sendbuf[6]+sendbuf[7];
       send();
      }
      if(kk==0xdb) //设置并送上限7
      {
        uchar w1[]={"请输入子机号"};
        uchar w2[]={"按二送给二号子机"};
        union_variary.word=(float)buf[0]*100+(float)buf[1]*10+(float)buf[2]*1+(float)buf[3]/10+(float)buf[4]/100+(float)buff[5]/1000;
        if(flag==1)
           union_variary.word=-union_variary.word;
        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+2,0,0xf0);
          }
         /* for(i=0,j=0;i<15;i=i+2,j++)
          {
           word=256*(w2[i]-0xa0)+w2[i+1]-0xa0;
           dis_word(j+2,1,0xf0);
          } */
       for(i=0;i<1000;i++)
          for(j=0;j<10;j++);
       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]=1;//send uplim
       sendbuf[3]=union_variary.byte.hand;
       sendbuf[4]=union_variary.byte.ten;
       sendbuf[5]=union_variary.byte.several;
       sendbuf[6]=union_variary.byte.point;
       sendbuf[8]=sendbuf[1]+sendbuf[2]+sendbuf[3]+sendbuf[4]+sendbuf[5]+sendbuf[6]+sendbuf[7];
       send();
       //send_buf(0 ,0,1,union_variary.byte.hand,union_variary.byte.ten,union_variary.byte.several,union_variary.byte.point,0) ;
      }
      if(kk==0xd7) //设置并送下限8
      {
        uchar w1[]={"请输入子机号"};
        uchar w2[]={"按二送给二号子机"};
       union_variary.word=(float)buf[0]*100+(float)buf[1]*10+(float)buf[2]*1+(float)buf[3]/10+(float)buf[4]/100+(float)buff[5]/1000;
       if(flag==1)
           union_variary.word=-union_variary.word;
       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+2,0,0xf0);
          }
         /* for(i=0,j=0;i<15;i=i+2,j++)
          {
           word=256*(w2[i]-0xa0)+w2[i+1]-0xa0;
           dis_word(j+2,1,0xf0);
          }  */
        for(i=0;i<1000;i++)
          for(j=0;j<10;j++);
        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]=2;//send downlim
       sendbuf[3]=union_variary.byte.hand;
       sendbuf[4]=union_variary.byte.ten;
       sendbuf[5]=union_variary.byte.several;
       sendbuf[6]=union_variary.byte.point;
       sendbuf[8]=sendbuf[1]+sendbuf[2]+sendbuf[3]+sendbuf[4]+sendbuf[5]+sendbuf[6]+sendbuf[7];
       send();
     }
      if(kk==0xbd)//设置误差11
      {
        union_variary.word=(float)buf[0]*100+(float)buf[1]*10+(float)buf[2]*1+(float)buf[3]/10+(float)buf[4]/100+(float)buff[5]/1000;
        if(flag==1)
           union_variary.word=-union_variary.word;
        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);
          }
        P1=0xff;
        while(P1!=0xee&&P1!=0xed)
           check_key();
        if(P1==0xee)//按一号键送零点误差
        {
          uchar code w1[]={"请输入子机号"};
          uchar code w2[]={"按二送二号零点"};
          sendbuf[2]=7;//零点误差命令
          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<13;i=i+2,j++)
         {
            word=256*(w2[i]-0xa0)+w2[i+1]-0xa0;
            dis_word(j+3,1,0xf0);
          }*/
        P1=0xff;
        delay(1000,1000);
        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;
     } 
        }
       if(P1==0xed) //送满度误差
       {
          uchar code w3[]={"请输入子机号"};
          uchar code w4[]={"按二送二号满度"};
          sendbuf[2]=6;//满度误差命令
          send_byte(0xf4);
          for(i=0,j=0;i<11;i=i+2,j++)
          {
           word=256*(w3[i]-0xa0)+w3[i+1]-0xa0;
           dis_word(j+3,0,0xf0);
          }
         /*for(i=0,j=0;i<13;i=i+2,j++)
         {
            word=256*(w4[i]-0xa0)+w4[i+1]-0xa0;
            dis_word(j+3,1,0xf0);
          }*/
        P1=0xff;
        //for(i=0;i<1000;i++)
          // for(j=0;j<100;j++);
          delay(1000,100);
        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)
     {

⌨️ 快捷键说明

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