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

📄 lcm16864zk.c

📁 一个基于51单片机的报警系统。包含有电路图
💻 C
📖 第 1 页 / 共 3 页
字号:
   if(RKEY==0)
   {
    while(1)
     {if(RKEY==1) break;}
    WritCommand(0x95);
     i=~i;
     if(i==1)
     {
     WritCommand(0x95);
     WritData(0xa3);WritData(0xd9);
     WritCommand(0x10);
      }
      else
      {
       WritCommand(0x95);
       WritData(0xa3);WritData(0xce);
       WritCommand(0x10);
      }
    }
   }
   WritCommand(0x95);
 }
}

void AlarmRelay(void)
{
 bit i=1;
 WritCommand(0x01);
 ShowPart7();                   //接力报警:Y
 ShowPart4();
 while(1)
 {
  if(LKEY==0)
  {
   Delay_ms(10);
   if(LKEY==0)
   {
    while(1)
    {if(LKEY==1) break;}
    if(i==1)
    {
     RobData=RobData|0x04;
     }
     else
     {
      RobData=RobData&0xfb;
     }

    }
   break;
   }
  if(RKEY==0)
  {
   Delay_ms(10);
   if(RKEY==0)
   {
    while(1)
     {if(RKEY==1) break;}
    WritCommand(0x95);
     i=~i;
     if(i==1)
     {
     WritCommand(0x95);
     WritData(0xa3);WritData(0xd9);
     WritCommand(0x10);
      }
      else
      {
       WritCommand(0x95);
       WritData(0xa3);WritData(0xce);
       WritCommand(0x10);
      }
   }
  }
  WritCommand(0x95);
 }

}


void BlankLocal(void)
{
 bit i=1;
 WritCommand(0x01);
 ShowPart8();                                          //封锁现场:Y
 ShowPart4();
 while(1)
 {
  if(LKEY==0)
  {
   Delay_ms(10);
   if(LKEY==0)
   {
    while(1)
    {if(LKEY==1) break;}
    if(i==1)
    {
     RobData=RobData|0x08;
     }
     else
     {
      RobData=RobData&0xf7;
     }

   }
   break;
  }
  if(RKEY==0)
  {
   Delay_ms(10);
   if(RKEY==0)
   {
    while(1)
     {if(RKEY==1) break;}
    WritCommand(0x95);
     i=~i;
     if(i==1)
     {
     WritCommand(0x95);
     WritData(0xa3);WritData(0xd9);
     WritCommand(0x10);
      }
      else
      {
       WritCommand(0x95);
       WritData(0xa3);WritData(0xce);
       WritCommand(0x10);
      }
   }
   WritCommand(0x95);
  }
 }

}
void EjectFog(void)
{
  bit i=1;
 WritCommand(0x01);
 ShowPart9();                                          //喷射眠雾:Y
 ShowPart4();
 while(1)
 {
  if(LKEY==0)
  {
   Delay_ms(10);
   if(LKEY==0)
   {
    while(1)
    {if(LKEY==1) break;}
    if(i==1)
    {
     RobData=RobData|0x10;
     }
     else
     {
      RobData=RobData&0xef;
     }

   }
   break;
  }
  if(RKEY==0)
  {
   Delay_ms(10);
   if(RKEY==0)
   {
    while(1)
     {if(RKEY==1) break;}
     WritCommand(0x95);
     i=~i;
     if(i==1)
     {
     WritCommand(0x95);
     WritData(0xa3);WritData(0xd9);
     WritCommand(0x10);
      }
      else
      {
       WritCommand(0x95);
       WritData(0xa3);WritData(0xce);
       WritCommand(0x10);
      }
     }
   }
   WritCommand(0x95);
  }

}


void EmployeeNum(void)
{
 uchar k=0,j;
 uchar CodeN[4]={0,0,0,0};
 WritCommand(0x01);
 ShowPart10();                        //员工编号 0
 ShowPart1();
 while(k<4)
     {
     if(LKEY==0)
       {
        Delay_ms(10);
        if(LKEY==0)
         {
          CodeN[k]=j;
            while(1)
            {
            if(LKEY==1) break;
            }
            break;
          }
        }
     if(MKEY==0)
              {
                 Delay_ms(5);
                 if(MKEY==0)
                  {
                    j++;
                    if(j>9) j=0;
                    WritData(0xa3);
                    WritData(0xb0+j);         //显示下个数
                    WritCommand(0x10);
                    while(1)
                    {
                    if(MKEY==1) break;
                    }
                  }
                }
      if(RKEY==0)
              {
                Delay_ms(10);          //延时去抖动
                if(RKEY==0)
                {
                    CodeN[k]=j;
                    WritCommand(0x14);
                    k++;
                    if(k>=4)
                    {k=0;WritCommand(0x94);}
                    WritData(0xa3);
                    WritData(0xb0);
                    WritCommand(0x10);
                    j=0;
                    while(1)
                     {
                      if(RKEY==1) break;
                     }
                  }
                 }
        ShowTime();
        WritCommand(0x94+k);
        Delay_ms(10);
     }
   k=(CodeN[0]<<4)+CodeN[1];
   pdx++;
   *pdx=k;
   pdx++;
   k=(CodeN[2]<<4)+CodeN[3];
   *pdx=k;
}
void AnlNum(void)         //最少与数
{
 uchar k=0,j;
 WritCommand(0x01);
 ShowPart11();                        //最少与数 0
 ShowPart1();
 while(k<2)
     {
     if(LKEY==0)
       {
        Delay_ms(10);
        if(LKEY==0)
         {
            pdx++;
            *pdx=j;
            while(1)
            {
            if(LKEY==1) break;
            }
            break;
          }
        }
     if(MKEY==0)
              {
                 Delay_ms(5);
                 if(MKEY==0)
                  {
                    j++;
                    if(j>9) j=0;
                    WritData(0xa3);
                    WritData(0xb0+j);         //显示下个数
                    WritCommand(0x10);
                    while(1)
                    {
                    if(MKEY==1) break;
                    }
                  }
                }
      if(RKEY==0)
              {
                Delay_ms(10);          //延时去抖动
                if(RKEY==0)
                {
                     WritCommand(0x96);
                     WritData(0xa3);
                     WritData(0xb0);
                     WritCommand(0x10);
                  }
                 }
        ShowTime();
        WritCommand(0x95);
        Delay_ms(10);
     }

}

void AnlSet(void)          //逻辑关系
{
  bit i=1;
 WritCommand(0x01);
 ShowPart12();                        //逻辑关系: A
 ShowPart4();
 while(1)
     {
     if(LKEY==0)
       {
        Delay_ms(10);
        if(LKEY==0)
         {
            pdx++;
            *pdx=i;
            while(1)
            {
            if(LKEY==1) break;
            }
            break;
          }
        }

      if(RKEY==0)
              {
                Delay_ms(10);          //延时去抖动
                if(RKEY==0)
                {
                  WritCommand(0x95);
                  i=~i;
                  if(i==1)
                   {
                    WritCommand(0x95);
                    WritData(0xa6);WritData(0xa1);
                    WritCommand(0x10);
                    }
                     else
                       {
                       WritCommand(0x95);
                       WritData(0xa6);WritData(0xa2);
                       WritCommand(0x10);
                       }

                  }
                 }
        ShowTime();
        WritCommand(0x95);
        Delay_ms(10);
     }
}

void AnlTime(void)        //与等待时间
{
 uchar j=0,k=0;
 uchar CodeN[3]={0,0,0};
 WritCommand(0x01);
 ShowPart13();                        //与等时间:000S
 ShowPart1();
 WritCommand(0x94);
 while(k<3)
     {
     if(LKEY==0)
       {
        Delay_ms(10);
        if(LKEY==0)
         {

            CodeN[k]=j;
            while(1)
            {
            if(LKEY==1) break;
            }
            break;
          }
        }
             if(MKEY==0)
              {
                 Delay_ms(5);
                 if(MKEY==0)
                  {
                    j++;
                    if(j>9) j=0;
                    WritData(0xa3);
                    WritData(0xb0+j);         //显示下个数
                    WritCommand(0x10);
                    while(1)
                    {
                    if(MKEY==1) break;
                    }
                  }
                }
      if(RKEY==0)
              {
                Delay_ms(10);          //延时去抖动
                if(RKEY==0)
                {
                    CodeN[k]=j;
                    WritCommand(0x14);
                    k++;
                    if(k>=3)
                    {k=0;WritCommand(0x94);}
                    WritData(0xa3);
                    WritData(0xb0);
                    WritCommand(0x10);
                    j=0;
                    while(1)
                     {
                      if(RKEY==1) break;
                     }

                  }
                 }
        ShowTime();
        WritCommand(0x94+k);
        Delay_ms(10);
     }
 k=CodeN[0]*100+CodeN[1]*10+CodeN[2];
 pdx++;
 *pdx=k;
}

void RobSet1(void)             //填写  不填  继续
{
 uchar i;
 WritCommand(0x0c);
 ShowPart14();
 while(1)
   {
     if(LKEY==0)
       {
        Delay_ms(10);
        if(LKEY==0)
         {
          while(1)
            {
            if(LKEY==1) break;
            }
            pdx=0x0100;
            i=*pdx;
            *pdx=i+1;
            break;
          }
        }
        if(MKEY==0)
       {
        Delay_ms(10);
        if(MKEY==0)
         {

            RobSetNext();

            while(1)
            {
            if(LKEY==1) break;
            }
            break;
          }
        }
      if(RKEY==0)
              {
                Delay_ms(10);          //延时去抖动
                if(RKEY==0)
                {
                  pdx=0x0100;
                  i=*pdx;
                  *pdx=i+1;
                  RobSetNext();
                 }
               }
        ShowTime();

        Delay_ms(10);
     }
 }


////}////////////////////////////////////////////防盗设置

void StealSet(void)
{
 uchar j;
// uchar CodeN[2];
 WritCommand(0x01);                     //清零
 WritCommand(0x0c);
 WritCommand(0x92);
 WritData(0xb7);WritData(0xc0);WritData(0xb5);WritData(0xc1);   //防盗设置
 WritData(0xc9);WritData(0xe8);WritData(0xd6);WritData(0xc3);

  ShowPart5();         //进入  另选
 while(1)
 {
  if(RKEY==0)
  {
   while(1){if(RKEY==1) break; }

   break;
  }
  if(LKEY==0)
  {
   while(1) {if(LKEY==1)break;}
   RobData=0x00;
   TeleAlarm();
   WhistleAlarm();
   AlarmRelay();
   BlankLocal();
   EjectFog();
   pdx=0x0201;
   *pdx=RobData;
   j=EjectorNum();
   StealSet1(j);
   break;
   }
   Delay_ms(10);
   ShowTime();
  }
 }

void StealSet1(uchar num)
{
 uchar i,j;
 WritCommand(0x0c);                                  //填写  不填  继续
 ShowPart14();
 while(1)
   {
     if(LKEY==0)
       {
        Delay_ms(10);
        if(LKEY==0)
         {
            pdx=0x0200;
            i=*pdx;
            *pdx=i+1;
            pdx=0x0202+i+1;
            *pdx=num;

            while(1)
            {
            if(LKEY==1) break;
            }
            break;
          }
        }
        if(MKEY==0)
       {
        Delay_ms(10);
        if(MKEY==0)
         {

            StealSet();

            while(1)
            {
            if(LKEY==1) break;
            }
            break;
          }
        }
      if(RKEY==0)
              {
                Delay_ms(10);          //延时去抖动
                if(RKEY==0)
                {
                  pdx=0x0200;
                  i=*pdx;
                  *pdx=i+1;
                  j=EjectorNum();
                  pdx=0x0202+i;
                  *pdx=j;
                 }
               }
        ShowTime();
        Delay_ms(10);
     }
 }


uchar EjectorNum(void)
{
 uchar k=0,j=0;
 uchar CodeN[2]={0,0};;
 WritCommand(0x01);
 WritCommand(0x0e);
 ShowPart2();                                   //发射器编号:00
 ShowPart1();
 while(k<2)
     {

     if(LKEY==0)
       {
        Delay_ms(10);
        if(LKEY==0)
         {
          CodeN[k]=j;
            while(1)
            {
            if(LKEY==1) break;
            }
            k++;
          }
        }
     if(MKEY==0)
              {
                 Delay_ms(5);
                 if(MKEY==0)
                  {
                    j++;
                    if(j>9) j=0;
                    WritData(0xa3);
                    WritData(0xb0+j);         //显示下个数
                    WritCommand(0x10);
                    while(1)
                    {
                    if(MKEY==1) break;
                    }
                  }
                }
      if(RKEY==0)
              {
                Delay_ms(10);          //延时去抖动
                if(RKEY==0)
                {
                    CodeN[k]=j;
                    WritCommand(0x14);
                    k++;
                    if(k>=2)
                    {k=0;WritCommand(0x96);}
                    WritData(0xa3);
                    WritData(0xb0);
                    WritCommand(0x10);
                    j=0;
                    while(1)
                     {
                      if(RKEY==1) break;
                     }
                  }
                 }
        ShowTime();
        WritCommand(0x96+k);
        Delay_ms(10);
     }
   k=CodeN[0]*16+CodeN[1];
   k=0x20+k;
   return k;
}

 //////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////放火设置
void FireSet(void)
{
 uchar j;

 WritCommand(0x01);                     //清零
 WritCommand(0x0c);
 WritCommand(0x92);
 WritData(0xb7);WritData(0xc0);WritData(0xbB);WritData(0xF0);   //防火设置
 WritData(0xc9);WritData(0xe8);WritData(0xd6);WritData(0xc3);
  ShowPart5();
 while(1)
 {
  if(RKEY==0)
  {
   while(1){if(RKEY==1) break; }
  // CalenSet();
   break;
  }
  if(LKEY==0)
  {
   while(1) {if(LKEY==1)break;}
   RobData=0x00;
   WritCommand(0x0e);
   TeleAlarm();
   WhistleAlarm();
   AlarmRelay();
   EjectWater();
   EjectSand();
   pdx=0x0301;
   *pdx=RobData;
   j=EjectorNum();

   FireSet1(j);
   break;
   }
   Delay_ms(10);
   ShowTime();
  }
}

void EjectWater(void)
{
 bit i=1;
 WritCommand(0x01);
 ShowPart15();                                          //自动喷水:Y
 ShowPart4();
 while(1)
 {
  if(LKEY==0)
  {
   Delay_ms(10);
   if(LKEY==0)
   {
    while(1)
    {if(LKEY==1) break;}

⌨️ 快捷键说明

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