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

📄 try0.c

📁 多路数据采集 +lcd +菜单功能显示 max485通信
💻 C
📖 第 1 页 / 共 2 页
字号:
                  break ;
               }
              else
              {
                  if(y+1==2)
                  {
                     adtemp[0][address].adh=0xaa;
                     adtemp[0][address].adl=0xaa;
                     adtemp[0][address].adig=0x0f;
                     address++;

                  }
              }
            }






        // address++;

         if((address==4))

          {
             b=point1;
             c=point2;
             point1=(point1+12)%0x7fef;

             point2=(point2+12)%0x7fef;
             for(a=0;a<4;a++)
              {
                    eepwrite(c/256,c%256,adtemp[0][a].adh);
                    //addate[9][a].adh=adtemp[0][a].adh;
                    check();

                    c=c++;
                    c=c%0x7fef;
                    //if(c==0x7fef)
                    //  c=0;

                    eepwrite(c/256,c%256,adtemp[0][a].adl);
                    //addate[9][a].adl=adtemp[0][a].adl;
                    check();

                    c++;
                    c=c%0x7fef;
                    //if(point2==0x7fef)
                    //  point2=0;

                    eepwrite(c/256,c%256,adtemp[0][a].adig);
                    //addate[9][a].adig=adtemp[0][a].adig;
                    check();
                    c++;
                    //if(point2==0x7fef)
                     // point2=0;
                     c=c%0x7fef;
               }





            address=0;
            ms50=0;
           /*if(qi==0)
           { adp1++;
            adp2++;
            adp1=adp1%10;  //十路中的循环
            adp2=adp2%10;//十路循环
            }*/
          }

      }



}



void ext1() interrupt 2
{
}

void time1() interrupt 3
{
}

void serial() interrupt 4   //串行中断 接收数据
{

//读回来的数据还没有保存到eeprom
    uchar ud=0;
    if(TI==1)
       ;
    else
    { if(RI==1)
       {
          // qi++;

             switch(qi)
             {
               case 0:
                    adtemp[0][address].adh=SBUF;   //这里应该与上一个数
                    qi++;
                    se=0;
                    break;
               case 1:
                    adtemp[0][address].adl=SBUF;
                    se=0;
                     qi++;
                    break;
               case 2:
                    adtemp[0][address].adig=SBUF;
                    se=0;
                    qi++;
                    break;
               case 3:
                    ud=SBUF;
                    if(adtemp[0][address].adh+adtemp[0][address].adl+adtemp[0][address].adig==ud)
                    {
                       se=1;
                       ms6=1;
                    }



                    qi=0;


                    break;
             }


      RI=0;



        }







    }

}







void main(void)
{    uchar i,j,led,mul,m;
     uint n;



//***********************************************************************************//
    {     //一般的初始化
      SP=0x60;
      con=0;         //  开液晶屏
      cs=1;          //  iic eeprom 有效
      delay(100);
      disinit();     //液晶显示初始化
      //adp2=9;  //指向最后一点数据
      //adp1=0;  //指向第一点数据
     }      // 一般的初始化结束


  //   eepwrite(0x7f,0xff,0x00);
   //  check();
   //  eepwrite(0x7f,0xfa,0x1);
   //  check();







     //point1=eepread(0x7f,0xff);
    // point1<<=8;
    // point1=point1|eepread(0x7f,0xfe);
     point2=eepread(0x7f,0xff);
     point2<<=8;
     point2=point2|eepread(0x7f,0xfe);

     point1=(point2-0x78)%0x7fef;


     which=eepread(0x7f,0xfb); //读出上次掉电前转换的是哪一路
     select=eepread(0x7f,0xfa);//读出上次掉电前是什么模式

     move=eepread(0x7f,0xf9);

     pause=eepread(0x7f,0xf8);  //初始值可以写进去

     n=point1;

//****************************************读出数据最后一次写入的10点数据***********************************//
      // point1=0;
       for(i=0;i<3;i++)
       for(j=0;j<4;j++)
          { // addate[10][4];

            addate[i][j].adh=eepread(n/256,n%256);
            n++;
            n=n%0x7fef;

            addate[i][j].adl=eepread(n/256,n%256);
            n++;
            n=n%0x7fef;
            addate[i][j].adig=eepread(n/256,n%256);
            n++ ;
            n=n%0x7fef;
          }

       for(i=7;i<14;i++)
       for(j=0;j<4;j++)
          {

            addate[i][j].adh=eepread(n/256,n%256);
            n++;
            n=n%0x7fef;

            addate[i][j].adl=eepread(n/256,n%256);
            n++;
            n=n%0x7fef;
            addate[i][j].adig=eepread(n/256,n%256);
            n++ ;
            n=n%0x7fef;
          }


           maxinit();//总线485通信初始化
           ET0=1;
           TR0=1;
           IE0=0;
           EX0=1;    //kai wai bu zhong duan
           select=1;
       //    pause=0;

           while(1)
           {   //which
               ms2=1;
              if(select==1)
               {




                  if(ms2==1)
                   {

                     ms2=0;
                     m=(mul)%10;

                     j=m;
                     if(j>=3)
                       j=j+4;

                   //z中断应不应该关掉呢??  不能关的
                    for(i=0;i<4;i++)
                        {

                         if(i==1)
                                 write(0x90,0);
                         else
                            if(i==2)
                                    write(0x88,0);
                            else
                                write(0x80+i*8,0);


                          write(0x30+i,1);

                          write(':',1);


                          write(' ',1);

                          write(0x30+addate[j][i].adh/10,1);

                          write('.',1);

                          write(0x30+addate[j][i].adh%10,1);

                          write(0x30+addate[j][i].adl/10,1);

                          write(0x30+addate[j][i].adl%10,1);

                          write('(',1);

                          write('V',1);

                          write(')',1);

                          write(' ',1);


                          write(0x30+addate[j][i].adig,1);

                         // write(0x30+addate[j][i].adig%10,1);

                          write(' ',1);


                          write(0x30+m,1);

                      }  //for

                   }     //ms2

                  led=key();

                  if(led!=0xff)
                  {
                    if(led==10)
                    {
                     select=0;
                     pause=0;
                    }
                    else
                      if(led==11)
                      {
                        ;//pause=!pause;
                      }
                      else
                        mul=led;
                   }


               } //select
              else
               {


                  if(pause==1)
                   {

                     led=key();

                  if(led!=0xff)
                  {
                    if(led==10)
                    { mul=0;
                     select=1;
                      ET0=0;
                      n=point1;
                     for(i=0;i<3;i++)
                            for(j=0;j<4;j++)
                        { // addate[10][4];

                        addate[i][j].adh=eepread(n/256,n%256);
                        n++;
                        n=n%0x7fef;

                        addate[i][j].adl=eepread(n/256,n%256);
                        n++;
                        n=n%0x7fef;
                        addate[i][j].adig=eepread(n/256,n%256);
                        n++ ;
                        n=n%0x7fef;
                        }

                       for(i=7;i<14;i++)
                       for(j=0;j<4;j++)
                       {

                        addate[i][j].adh=eepread(n/256,n%256);
                        n++;
                        n=n%0x7fef;

                        addate[i][j].adl=eepread(n/256,n%256);
                        n++;
                        n=n%0x7fef;
                        addate[i][j].adig=eepread(n/256,n%256);
                        n++ ;
                        n=n%0x7fef;
                        }

                       ET0=1;

                    }
                    else
                      if(led==11)
                      {
                        pause=!pause;
                      }
                      else
                        mul=led;
                   }
                      continue   ;
                   }
                  else
                   {
                     if(ms2)
                      { ms2=0;

                        for(i=0;i<4;i++)
                         {

                          if(i==1)
                         write(0x90,0);
                         else
                            if(i==2)
                            write(0x88,0);
                            else
                            write(0x80+8*i,0);
                          write(0x30+i,1);

                          write(':',1);

                          //write(' ',1);
                          write(' ',1);

                          write(0x30+adtemp[0][i].adh/10,1);

                          write('.',1);

                          write(0x30+adtemp[0][i].adh%10,1);

                          write(0x30+adtemp[0][i].adl/10,1);

                          write(0x30+adtemp[0][i].adl%10,1);

                          write('(',1);

                          write('V',1);

                          write(')',1);

                          write(' ',1);

                          write(0x30+adtemp[0][i].adig,1);

                          //write(0x30+adtemp[0][i].adig%10,1);

                          write(' ',1);

                          write(0x30+9,1);

                         }   //for i=0
                       }     //if ms2

                     }         //else2

                   led=key();

                  if(led!=0xff)
                  {
                    if(led==10)
                    {
                     mul=0;
                     select=1;
                     ET0=0;
                     n=point1;
                     for(i=0;i<3;i++)
                            for(j=0;j<4;j++)
                        { // addate[10][4];

                        addate[i][j].adh=eepread(n/256,n%256);
                        n++;
                        n=n%0x7fef;

                        addate[i][j].adl=eepread(n/256,n%256);
                        n++;
                        n=n%0x7fef;
                        addate[i][j].adig=eepread(n/256,n%256);
                        n++ ;
                        n=n%0x7fef;
                        }

                       for(i=7;i<14;i++)
                       for(j=0;j<4;j++)
                       {

                        addate[i][j].adh=eepread(n/256,n%256);
                        n++;
                        n=n%0x7fef;

                        addate[i][j].adl=eepread(n/256,n%256);
                        n++;
                        n=n%0x7fef;
                        addate[i][j].adig=eepread(n/256,n%256);
                        n++ ;
                        n=n%0x7fef;
                        }

                       ET0=1;

                    }
                    else
                      if(led==11)
                      {
                        pause=!pause;
                      }
                      else
                        mul=led;
                   }

                }         // else1
           } // while

}  // main


⌨️ 快捷键说明

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