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

📄 caiji.c.bak

📁 我做的关于锅炉运行状况采集的产品
💻 BAK
📖 第 1 页 / 共 5 页
字号:
        print(title_6,2,1);
        print(title_7,4,1);
        print(title_8,6,1);
        ldelay(2000);
        switch (keyvalue)
         {
          case 5:
          write_e2(modu_2,cha_2,2,5);
        //  goto SET_CHANEL_PARAM_6;
          break;
          case 6:
          write_e2(modu_2,cha_2,2,6);
        //  goto SET_CHANEL_PARAM_6;
          break;
          case 7:
          write_e2(modu_2,cha_2,2,7);
        //  goto SET_CHANEL_PARAM_6;
          break;
          case 8:
          write_e2(modu_2,cha_2,2,8);
        //  goto SET_CHANEL_PARAM_6;
          break;
          case UP:
          goto SET_CHANEL_PARAM_5;
          default:
          break;
         }
       }//与down,switch相对
      default:
      break;
    }
}

void write_scale(unsigned char modu_3,unsigned char cha_3)
{
    unsigned char code input_scale[]="请输入量程";
    char code ecor[]="输入不正确!";
    char code success[]="设置成功";
    unsigned char data i=0,j,k=modu_3,l=cha_3,p;
    keybuff[8]=0;
    clear();
    print(input_scale,2,1);/* xi tong she ding */
    writebig(':',5,24);
    keybuff[0]='=';
    keybuff[1]=';';
    do
    {
        ldelay(5);
    	if((keyvalue<10)&&(keyvalue!=ESC))
    	{
    	    keybuff[i]=keyvalue;
            if(i<3)
    	    i++;
            writebig(keyvalue,5,32+8*i);
            keybuff[3]=0;
    	}
    	else if(keyvalue==ENTER)
    	{
            j=keybuff[0]*100+keybuff[1]*10+keybuff[2];
            chanel_str[k][l].scale=j*10;
       again_write_scale:
            write_24c021(k*32+l*4+2+0x10,j);
            p=read_24c021(k*32+l*4+2+0x10);
            if(p!=j)
             {
              p=0;
              goto again_write_scale;
             }
            clear();
            print(success,3,2);
            ldelay(150);
        }
    }while(keyvalue!=ESC);
}

void write_mode(unsigned char modu_4,unsigned char cha_4)
{
    unsigned char code mode_1[]="2:4-20";
    unsigned char code mode_2[]="1:0-10";
    unsigned char code mode_3[]="3:温度";
    keybuff[8]=0;
    clear();
    print(mode_2,0,1);/* xi tong she ding */
    print(mode_1,2,1);
    print(mode_3,4,1);
    ldelay(2000);
    switch (keyvalue)
    {
      case 1:
      write_e2(modu_4,cha_4,4,1);
      //goto SET_CHANEL_PARAM_2;
      break;
      case 2:
      write_e2(modu_4,cha_4,4,2);
      //goto SET_CHANEL_PARAM_2;
      break;
      case 3:
      write_e2(modu_4,cha_4,4,3);
      break;
      default:
      break;
    }
}

void write_e2(unsigned char modue1,unsigned char chane1,unsigned char kind,unsigned char position)
{
 unsigned char i=kind,k,j;
 char code success[]="设置成功";
 unsigned char code input_chanel_name[]="名称";
 unsigned char code input_chanel_title[]="标题";
 unsigned char code input_chanel_scale[]="量程";
 unsigned char code input_chanel_mode[]="模式";
 switch (i)
 {
  case 1:    //name
            chanel_str[modue1][chane1].name=position;
         again_write_name:
            write_24c021(modue1*32+chane1*4+0x10,position);
            k=read_24c021(modue1*32+chane1*4+0x10);
            if(k!=position)
             {
               k=0;
               goto again_write_name;
             }
            clear();
            print(input_chanel_name,2,10);
            print(success,4,2);
            ldelay(150);
            keyvalue=ESC;
            break;
  case 2:
            chanel_str[modue1][chane1].title=position;
         again_write_title:
            write_24c021(modue1*32+chane1*4+1+0x10,position);
            k=read_24c021(modue1*32+chane1*4+1+0x10);
            if(k!=position)
             {
              k=0;
              goto again_write_title;
             }
            clear();
            print(input_chanel_title,2,10);
            print(success,4,2);
            ldelay(150);
            keyvalue=ESC;
            break;
  case 4:
            chanel_str[modue1][chane1].mode=position;
         again_write_mode:
            write_24c021(modue1*32+chane1*4+3+0x10,position);
            k=read_24c021(modue1*32+chane1*4+3+0x10);
            if(k!=position)
             {
              k=0;
              goto again_write_mode;
             }
            clear();
            print(input_chanel_mode,2,10);
            print(success,4,2);
            ldelay(150);
            keyvalue=ESC;
            break;
 }
}
//*********************************------------------------------//
/*按键显示函数*/
void display_void()
{
    uchar code need_param[]="1:参数";
    uchar code need_data[]="2:数据";
    clear();
    print(need_param,0,1);/* xi tong she ding */
    print(need_data,2,1);
    ldelay(2000);
    switch (keyvalue)
    {
      case 1:
      display_param();
      break;
      case 2:
      display_value();
      break;
      default:
      break;
    }
}
void display_param()  //显示参数
{
  uchar code check_address[]="1.地址";
  uchar code check_moduel[]="2.模块数";
  uchar code check_chanel[]="3.所用通道数";
  uchar code check_chanel_param[]="4.通道参数";
  uchar data  addr;
  uchar i,j;
DISPLAY_BEGIN:
  clear();
  print(check_address,0,1);
  writebig(':',0,56);
  addr=device_address;
  ddatatobcd(addr);
  putstring(0);
  print(check_moduel,2,1);  //moduel_number
  addr=moduel_number;
  ddatatobcd(addr);
  putstring(2);
  print(check_chanel,4,1);
  print(check_chanel_param,6,1);
  ldelay(3000);
  switch (keyvalue)
  {
   case 3:
    check_chanel_number();
    goto DISPLAY_BEGIN;
   case 4:
    check_chanel_param_void();
    goto DISPLAY_BEGIN;
   default:
    break;
  }
  if(watch_send_flag)
  {
   keyvalue=0;
  }
}

void check_chanel_number()
{
    unsigned char addr;
    clear();
    print(input_moduel_number1,0,1);
    addr=moduel[0].use_chanel;
    ddatatobcd(addr);
    putstring(0);
    print(input_moduel_number2,2,1);
    addr=moduel[1].use_chanel;
    ddatatobcd(addr);
    putstring(2);
    print(input_moduel_number3,4,1);
    addr=moduel[2].use_chanel;
    ddatatobcd(addr);
    putstring(4);
    print(input_moduel_number4,6,1);
    writebig('>',6,110);
    addr=moduel[3].use_chanel;
    ddatatobcd(addr);
    putstring(6);
    ldelay(3000);
    switch(keyvalue)
    {
     case DOWN:
        clear();
        print(input_moduel_number5,0,1);
        addr=moduel[0].use_chanel;
        ddatatobcd(addr);
        putstring(0);
        print(input_moduel_number6,2,1);
        addr=moduel[1].use_chanel;
        ddatatobcd(addr);
        putstring(2);
        ldelay(1000);
     default:
        break;
    }
}
void check_chanel_param_void()
{
  BACK_2:
    clear();
    print(input_moduel_number1,0,1);
    print(input_moduel_number2,2,1);
    print(input_moduel_number3,4,1);
    print(input_moduel_number4,6,1);
    ldelay(3000);
    switch (keyvalue)
    {
       case 1:
         check_chanel_display(0);
         goto BACK_2;
       case 2:
         check_chanel_display(1);
         goto BACK_2;
       case 3:
         check_chanel_display(2);
         goto BACK_2;
       case 4:
         check_chanel_display(3);
         goto BACK_2;
       case 5:
         check_chanel_display(4);
         goto BACK_2;
       case 6:
         check_chanel_display(5);
         goto BACK_2;
       default:
         break;

    }

}
void check_chanel_display(uchar ccd)
{
  BACK_1:
    clear();
    print(input_chanel_number1,0,1);/* xi tong she ding */
    print(input_chanel_number2,2,1);
    print(input_chanel_number3,4,1);
    print(input_chanel_number4,6,1);
    ldelay(3000);
    switch (keyvalue)
    {
      case 1:
       check_chanel_now(ccd,0);
       goto BACK_1;
      case 2:
       check_chanel_now(ccd,1);
       goto BACK_1;
      case 3:
       check_chanel_now(ccd,2);
       goto BACK_1;
      case 4:
       check_chanel_now(ccd,3);
       goto BACK_1;
      case 5:
       check_chanel_now(ccd,4);
       goto BACK_1;
      case 6:
       check_chanel_now(ccd,5);
       goto BACK_1;
      case 7:
       check_chanel_now(ccd,6);
       goto BACK_1;
      case 8:
       check_chanel_now(ccd,7);
       goto BACK_1;
      default:
       break;
    }
}
void check_chanel_now(uchar p,uchar b)
{
    uchar code modu_name[]="模块";
    uchar code chan_name[]="通道";
    unsigned char addr;
    clear();
    print(modu_name,0,1);
    writebig(':',0,36);
    addr=p+1;
    ddatatobcd(addr);
    putstring(0);
    print(chan_name,2,1);
    writebig(':',2,36);
    addr=b+1;
    ddatatobcd(addr);
    putstring(2);
    moduel_display_step=p;
    chanel_display_step=b;
    init_display();
    display_var(display_title,4,65);
    display_var(display_name,4,1);
    display_var(display_mode,6,1);
    addr=chanel_str[p][b].scale/10;
    ddatatobcd(addr);
    putstring(6);
    ldelay(200);
}

void display_value()     //按键循环显示
{
  uchar data group,zl;
  moduel_display_step=0;
  chanel_display_step=0;
  nb_display_step=1;
  do{
    CHECK_BEGIN:
    clear();
    init_display();
    display_var(display_title,0,64);
    display_var(display_name,0,32);
    display_var(display_unit,2,80);
    ddatatobcd(nb_display_step);
    putstring_left(0);
    if(display_unit=="MPa")
    {
        dt2=chanel_str[moduel_display_step][chanel_display_step].display_data/10;
        dt1=(uint)(dt2);
    }
    else
    {
      if((chanel_str[moduel_display_step][chanel_display_step].display_data)==0.0)
        dt1=0;
      else
      {
        dt2=chanel_str[moduel_display_step][chanel_display_step].display_data*10;
        dt1=(uint)(dt2);
       }
     }
    dwordtobcd2(dt1);
    putstring5(2);
    chanel_display_step++;
    nb_display_step++;
    if(chanel_display_step==chanel_number[moduel_display_step])
    {
      moduel_display_step++;
      if(moduel_display_step==moduel_number)
      {
       moduel_display_step=0;
       nb_display_step=1;
      }
      chanel_display_step=0;
    }
    init_display();
    display_var(display_title,4,64);
    display_var(display_name,4,32);
    display_var(display_unit,6,80);
    ddatatobcd(nb_display_step);
    putstring_left(4);
    if(display_unit=="MPa")
    {
        dt2=chanel_str[moduel_display_step][chanel_display_step].display_data/10;
        dt1=(uint)(dt2);
    }
    else
    {
      if((chanel_str[moduel_display_step][chanel_display_step].display_data)==0.0)
        dt1=0;
      else
      {
        dt2=chanel_str[moduel_display_step][chanel_display_step].display_data*10;
        dt1=(uint)(dt2);
       }
     }
    dwordtobcd2(dt1);
    putstring5(6);
    writebig('>',6,110);
    chanel_display_step++;
    nb_display_step++;
    if(chanel_display_step==chanel_number[moduel_display_step])
    {
      moduel_display_step++;
      if(moduel_display_step==moduel_number)
      {
       moduel_display_step=0;
       nb_display_step=1;
      }
      chanel_display_step=0;
    }
    ldelay(3000);
    switch(keyvalue)
    {
      case DOWN:
       goto CHECK_BEGIN;
       break;
      default:
       break;
    }
    if(watch_send_flag)
    keyvalue=ESC;
  }while(keyvalue!=ESC);
}

⌨️ 快捷键说明

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