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

📄 jac-ets.c

📁 pic16c73 MAPLAB C语言写的汽车集控器程序
💻 C
📖 第 1 页 / 共 3 页
字号:
                 {
                   remove_fro_flag=0;
                   remove_fro_timer=0;
                 }
                else
                 {
                   remove_fro_timer=20*60;//1min
                   remove_fro_flag=1;
                 }
             }
          }
         else
           {                                                    
              remove_fro_sw_flag=0;
           }
         if(remove_fro_timer==0)
           {
              remove_fro_flag=0;
           }
      }
     else
      {
         remove_fro_timer=0;
         remove_fro_flag=0;
      }
//=========点火钥匙孔照明处理OK
    if(left_door_sw)
       {
         if(left_door_sw_flag==0)
           {
             left_door_sw_flag=1;
             light_key_flag=1;
           }
         else
           {
             if(on_sw)
               light_key_flag=0;
             else
               light_key_flag=1;
           }
       }
     else
       {
         if((light_key_flag==1)&&(left_door_sw_flag==1))
           {
             light_key_timer=200;//10s
           }
         left_door_sw_flag=0;
         if(on_sw)
            light_key_timer=0;
         if(light_key_timer==0)
            light_key_flag=0;
       }

//=========车内灯熄灭处理OK
     if(!on_sw)
      {
        if(!(right_door_sw||left_door_sw||back_door_sw))
          {
             if(door_open_flag)
              {
                CCPR1L=0X6E;
                door_open_flag=0;
              }
          }
        else
          {
             CCPR1L=0X95;
             door_open_flag=1;
          }
      }
     else
      {
         CCPR1L=0X00;
      }
//===========安全带声光控制OK

      if(on_sw)
       {
          if(safe_belt_sw)
           {
              if(!safe_belt_sw_flag)
               {
                  safe_belt_sw_flag=1;
                  safe_belt_init_ctrl();
               }
              else
               {
                  safe_belt_led_ctrl();
                  safe_belt_sound_ctrl();
               }
           }
          else
           {
             onkey_safe_belt_flag=1;
             safe_belt_sw_flag=0;
             safe_belt_led_ctrl();
             safe_belt_sound_c=0;
             safe_belt_sound_t=0;
             safe_belt_sound=0;
           }
         }
     else
         {
           onkey_safe_belt_flag=0;
           safe_belt_led=0;
         }
     if(safe_belt_sw)
       {
          if(on_sw)
           {
              if(!onkey_safe_belt_flag)
               {
                  onkey_safe_belt_flag=1;
                  safe_belt_init_ctrl();
               }
              else
               {
                  safe_belt_led_ctrl();
                  safe_belt_sound_ctrl();
               }
           }
          else
           {
             safe_belt_sw_flag=1;
             onkey_safe_belt_flag=0;
             safe_belt_sound_c=0;
             safe_belt_sound_t=0;
             safe_belt_sound=0;
             safe_belt_led_c=0;
             safe_belt_led_t=0;
             safe_belt_led=0;
           }
       }
      else
         safe_belt_sw_flag=0;	

//===========电动窗户时间控制OK
    if(on_sw)
     {
        power_windows_out=1;
        onkey_windows_flag=1;
     }
    else
     {
        if(onkey_windows_flag)
         {
            onkey_windows_flag=0;
            power_windows_t=30*20;//30s
         }
        else
         {
            if((power_windows_t==0)||left_door_sw||right_door_sw)
             {
                power_windows_out=0;
                power_windows_t=0;
             }
         }
      }
//===========尾灯自动关闭控制OK
    if(!remote_onkey_flag)
     {
         if(!little_light_sw)
          {
            tail_light_sw_flag=0;
            tail_light_out=0;
            tail_light_auto_off_flag=0;
          }
         else if((on_sw||(!left_door_sw))&&little_light_sw)
          {
             tail_light_out=1;
             tail_light_sw_flag=1;
          }
         else 
          {
            if(tail_light_auto_off_flag)
              {
                 tail_light_out=0;
              }
            else if(left_door_sw&&(!tail_left_door_sw_flag)&&tail_light_sw_flag)
               {
                  tail_left_door_sw_flag=1;
                  tail_light_out=0;
                  tail_light_auto_off_flag=1;
               }
            else if(little_light_sw&&(!tail_light_sw_flag)&&left_door_sw)
               {
                  tail_light_sw_flag=1;
                  tail_light_out=1;
                  tail_light_auto_off_flag=0;
                  tail_left_door_sw_flag=1;
               }
          }
         if(!left_door_sw)
            tail_left_door_sw_flag=0;
     }
/*    else//remote ctrl
     {
        if(!little_light_sw)
            remote_onkey_flag=0;
        else
         {
            if(left_door_sw)
             {
                if(!tail_left_door_sw_flag)
                 {
                    tail_left_door_sw_flag=1;
                    tail_light_out=1;
                    tail_light_out_t=30*20;//30s
                 }
                else
                 {
                    if(tail_light_out_t==0)
                     {
                        if(!on_sw)
                         {
                            remote_onkey_flag=0;
                            tail_light_out=0;
                         }
                     }
                 }
             }
         }
     }*/
//=========后雾灯处理OK
   if(on_sw&&fore_fro_sw&&tail_light_out)
    {
       if(back_fro_sw&&(!back_fro_sw_flag))
        {
           back_fro_sw_flag=1;
           back_fro_out=!back_fro_out;
        }
    }
   else
    {
       back_fro_out=0;
    }
   if(!back_fro_sw)
      back_fro_sw_flag=0;
//===========门警示控制OK
    if(!ulock_flag)
   {
    if((!warn_door_sw)&&(left_door_sw||right_door_sw))
     {
       sos_state=0xff;
      }
      
    else
     {
        sos_state=0x00;
       // chime_bell_t=0;
        //chime_bell_flag=0;
        
     }
  }
//=========电动门闩处理OK
    if(left_door_state_sw&&(!left_door_state_sw_flag))
     {
       left_door_state_sw_flag=1;
       lock_out=1;
       lock_out_t=LOCK_TIME;//500ms
     }
    else if((!left_door_state_sw)&&left_door_state_sw_flag)
     {
       left_door_state_sw_flag=0;
       unlock_out=1;
       unlock_out_t=LOCK_TIME;//500ms
     }

    if(right_door_state_sw&&(!right_door_state_sw_flag))
     {
       right_door_state_sw_flag=1;
       lock_out=1;
       lock_out_t=LOCK_TIME;//500ms
     }
    else if((!right_door_state_sw)&&right_door_state_sw_flag)
     {
       right_door_state_sw_flag=0;
       unlock_out=1;
       unlock_out_t=LOCK_TIME;//500ms
     }
    if(!lock_out_t)
       lock_out=0;
    if(!unlock_out_t)
       unlock_out=0;
    if(!store_out_t)
       store_out=0;
//========自动闭锁处理
    if(left_door_state_sw||right_door_state_sw||back_door_state_sw)//没闭锁
     {
       all_door_lock_flag=0;
     }
    else
     {
       all_door_lock_flag=1;
     }
    speed_over_40km_flag=null_sw;
    if(!speed_over_40km_flag)
       speed_over_40km_t=0;
    if(on_sw&&(!all_door_lock_flag))
     {
       // if((speed_over_40km_t>=ONE_SECOND)&&(all_door_unlock_t>=ONE_SECOND))//1s
        if(speed_over_40km_t>=ONE_SECOND)//1s
        {
           all_door_lock_flag=1;
           lock_out_t=LOCK_TIME;
           lock_out=1;
           speed_over_40km_t=0;
         }
     }
//=========自动开锁处理
     if(on_sw)
        on_sw_flag2=1;
     if(all_door_lock_flag) //全闭锁的情况下
      {
         if((!on_sw)&&on_sw_flag2)
          {
            on_sw_flag2=0;
            unlock_out_t=LOCK_TIME;
            unlock_out=1;
          }
      }
     else
      {
         on_sw_flag2=on_sw;
      }
//=========制动告警处理
/*     if((on_sw)&&(brake_sw))
      {
         if(sound_timer==0)
          {
             sound_timer=6;
             sound_flag=!sound_flag;
          }
      }
     else
      {
         sound_flag=0;
         sound_timer=0;
      }*/
//===========防盗报警
    tx_lock_signal=K4_RB4;  //遥控闭锁
    tx_ulock_signal=K3_RB5; //遥控开锁
    tx_store_signal=K1_RB7; //遥控储备
    entrance_sw=(warn_door_sw||engineer_sw||back_store_sw)&&(!store_uwarn_flag)&&(!tx_open_store_flag);
    if(tx_lock_signal&&(!tx_lock_flag)) //遥控上锁
     {
        tx_lock_flag=1;
        lock_out=1;
        lock_out_t=LOCK_TIME;
        start_inhibit_relay=1;
        store_uwarn_flag=0;
        if(warn_state&&warn_cycle)
         {//取消报警
            warn_on=0;
            warn_cycle=0;
            flash_on=0;
            flash_cycle=0;
            warn_entrance_flag=0;
            start_inhibit_relay=0;
         }
        if(!entrance_sw) //进入报警状态
         {
           delay_ent_warn_flag=0;
           flash_on=1;
           warn_state=1;
           flash_time=FLASH_ON_TIME;
           flash_cycle=2;
         }
        else
         {
            delay_ent_warn_flag=1; //准备进入报警状态
         }
     }
    else if(tx_ulock_signal&&(!tx_lock_flag)) //遥控下锁
     {
        tx_lock_flag=1;
        ulock_flag=!ulock_flag;
        warn_entrance_flag=0; //清除入口报警标志
        start_inhibit_relay=0; //启动禁止继电器
        unlock_out=1;
        unlock_out_t=LOCK_TIME;
        delay_ent_warn_flag=0;
        tx_open_store_flag=0;
        store_uwarn_flag=0;
        warn_state=0;
        warn_on=0;
        warn_cycle=0;
        flash_on=1;
        warning_state=0;
        sos_state=0;
        frist_run=1;
        flash_time=FLASH_ON_TIME2;//1s
     }
    else if(!(tx_lock_signal||tx_ulock_signal))//无遥控信号时清除遥控标志
     {
         tx_lock_flag=0;
     }
    if(!tx_store_signal)
       tx_store_flag=0;
    if(tx_store_signal&&(!tx_store_flag))//遥控开后备箱
     {
        tx_store_flag=1;
        store_out=1;
        store_out_t=STORE_TIME;
        if(warn_on)
         {//报警期间打开后备箱
           store_uwarn_flag=1;
           warn_state=0;
           warn_on=0;
           flash_on=0;
           warn_cycle=0;
           flash_cycle=0;
           start_inhibit_relay=0;
         }
        else
         {
            tx_open_store_flag=1;
         }
        start_inhibit_relay=0;
     }
    if(delay_ent_warn_flag)
     {
        if(!entrance_sw)//进入报警状态
         {
           delay_ent_warn_flag=0;
         //  start_inhibit_relay=1;
           flash_on=1;
           warn_state=1;
           flash_time=FLASH_ON_TIME;
           flash_cycle=2;
         }
     }
   ///=======后备箱合后2s进入报警状态
    if(store_uwarn_flag)
     {
        if(back_store_sw)//后备箱开
         {
            store_state_sw_flag=1;
            store_warn_delay_time=40;//2s
         }
        else if(store_state_sw_flag&&(!store_warn_delay_time))//后备箱关闭2S后
         {
            warn_state=1;
            store_uwarn_flag=0;
            store_state_sw_flag=0;
         }
     }

⌨️ 快捷键说明

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