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

📄 main.c

📁 NoteBook Docking Power and Audio Switch Control using Atmel AT89S51 Chip Program by C language Com
💻 C
📖 第 1 页 / 共 2 页
字号:
               _bSystemCount = 100;             // Power key hold must over 2 sec 
               PWRLEDOn();  // Power LED off
               _bSystemMode = POWER_ON_PWRSW_HOLD;   // Mode: Power on power switch hold
             }
             if (_bVolUpKeyStatus == SW_HOLD)   // Volume Up key pressed
             {
               _bSystemCount = 250;             // All LED flash hold 5 sec 
               VolUpLEDOn();                    // Volume Up LED on
               SetVolUp();                      // Set Volume Up control
               _bSystemMode = VOLUME_UP;
             }
             if (_bVolDnKeyStatus == SW_HOLD)   // Volume Down key pressed
             {
               _bSystemCount = 250;             // All LED flash hold 5 sec
               VolDnLEDOn();                    // Volume Down LED on       
               SetVolDn();                      // Set Volume Down control  
               _bSystemMode = VOLUME_DOWN;
             }
             if (_testbit_(_fgMuteKeyPressed))  // Mute key pressed
             {
               _bSystemCount = 250;             // All LED on hold 5 sec 
               MuteLEDOn();                     // Mute LED on
               SetMuteOn();                     // Mute control On 
               _bSystemMode = MUTE_ON;
             }
             break;
 
        case POWER_ON_PWRSW_HOLD:
             if (_bPWRKeyStatus == SW_HOLD)
             {
               // check Power SW hold time
               if (!_bSystemCount)                        // Power Sw hold on 2 sec
               {                                          
                 _bSystemCount = 150;                     // set Power Sw hold time(3 sec) to set flash LED total keep time
                 _fgPWRLEDFlash = 1;                      // Power Off LED flash enable
                 _bPWRLEDBlinkTime = _bFlashCount = 25;   // flash hild count 500ms every on/off
                 _bSystemMode = POWER_ON_TRIG_POWER_OFF;  // set event as "Power off Trigger" and start flash LED
               }
             }
             else if (_bPWRKeyStatus == SW_NORMAL)
             {
               PWRLEDOff();                    // Power LED off
               _bSystemCount = 250;            // All LED flash hold 5 sec
               _bSystemMode = POWER_ON_CONNECTED;
             }                  
             break;
      
        case POWER_ON_TRIG_POWER_OFF:
             if (!_bSystemCount)     // Power off flash time out
             {
               SetMuteOff();         // Mute function control OFF  
               MuteLEDOff();         // Mute LED off
               ClrVolUp();           // Volume Up function control OFF  
               VolUpLEDOff();        // Volume Up LED off
               ClrVolDn();           // Volume Down function control OFF  
               VolDnLEDOff();        // Volume Down LED off
               SetPowerOff();        // Docking Power Off
               PWRLEDOff();          // Power LED off
               ExpCardLEDOff();      // ExpressCard LED Off
               _fgExpCardLEDFlash = 0; // ExpressCard LED flash Off
               _fgPWRKeyPressed = 0; // Power key press flag off
               _fgPWRLEDFlash = 0;   // Stop Flash Power LED
               _fgMuteLEDFlash = 0;  // Mute LED Flash flag        
               _fgVolUpLEDFlash = 0; // Volume Up LED Flash flag   
               _fgVolDnLEDFlash = 0; // Volume Down LED Flash flag 
               _bSystemCount = 50;   // Idle time out 1 sec
               _bSystemMode = POWER_OFF_NORMAL; // change mode
             }
             break;
      
        case MUTE_ON:
             if (_testbit_(_fgMuteKeyPressed)) // Mute key released
             {
               MuteLEDOff();           // Mute LED off
               SetMuteOn();            // Mute function control OFF  
               _bSystemCount = 250;    // All LED flash hold 5 sec
               _bSystemMode = POWER_ON_CONNECTED;
             }
             //if (_bVolUpKeyStatus == SW_HOLD) // Mute key pressed
             //{
             //  MuteLEDOff();         // Mute LED off                   
             //  SetMuteOn();          // Mute function control OFF      
             //  _bSystemMode = VOLUME_UP;
             //}
             //if (_bVolDnKeyStatus == SW_HOLD) // Volume Up key pressed
             //{
             //  MuteLEDOff();         // Mute LED off                   
             //  SetMuteOn();          // Mute function control OFF      
             //  _bSystemMode = VOLUME_DOWN;
             //}
      
             if (_testbit_(_fgPWRKeyPressed))        // Power key pressed 
             {
               PWRLEDOn();                           // Power LED off
               _bSystemCount = 100;                  // Power key hold must over 2 sec 
               _bSystemMode = POWER_ON_PWRSW_HOLD;
             }
             if (_bExpCardStatus == SW_NORMAL)       // ExpressCard break
             {
               MuteLEDOff();                         // Mute LED off
               _fgExpCardLEDFlash = 0;               // ExpressCard LED Off
               SetPowerOff();                        // Set Power control off
               _bSystemMode = POWER_ON_CHECK_HOST;
             }
             //if (_bPEXResetStatus == SW_HOLD)      // Host PEXX_RST pin low -> Reset
             //{
             //  MuteLEDOff();
             //  SetPowerOff();                      // Set Power control off
             //  _bSystemMode = POWER_ON_CHECK_HOST;
             //}
             break;
      
        case VOLUME_UP:
             if (_bVolUpKeyStatus == SW_NORMAL)      // Volume Up key released
             {
               VolUpLEDOff();
               ClrVolUp();
               _bSystemCount = 250;                  // All LED flash hold 5 sec
               _bSystemMode = POWER_ON_CONNECTED;
             }
             if (_testbit_(_fgPWRKeyPressed))        // Power key pressed 
             {
               PWRLEDOn();                           // Power LED off
               VolUpLEDOff();
               ClrVolUp();
               _bSystemCount = 100;                  // Power key hold must over 2 sec 
               _bSystemMode = POWER_ON_PWRSW_HOLD;
             }
             if (_bExpCardStatus == SW_NORMAL)       // ExpressCard break
             {
               VolUpLEDOff();
               _fgExpCardLEDFlash = 0;               // ExpressCard LED Off
               ClrVolUp();
               SetPowerOff();         // Set Power control off
               _bSystemMode = POWER_ON_CHECK_HOST;
             }
             //if (_bPEXResetStatus == SW_HOLD) // Host PEX_RST pin low -> Reset
             //{
             //  VolUpLEDOff();
             //  ClrVolUp();
             //  SetPowerOff();         // Set Power control off
             //  _bSystemMode = POWER_ON_CHECK_HOST;
             //}
             break;
      
        case VOLUME_DOWN:
             if (_bVolUpKeyStatus == SW_NORMAL)      // Volume Up key released
             {
               VolDnLEDOff();
               ClrVolDn();
               _bSystemCount = 250;                  // All LED flash hold 5 sec
               _bSystemMode = POWER_ON_CONNECTED;
             }
      
             if (_testbit_(_fgPWRKeyPressed))        // Power key pressed 
             {
               PWRLEDOn();                           // Power LED off
               VolDnLEDOff();
               ClrVolDn();
               _bSystemCount = 100;                  // Power key hold must over 2 sec 
               _bSystemMode = POWER_ON_PWRSW_HOLD;
             }
             if (_bExpCardStatus == SW_NORMAL)       // ExpressCard break
             {
               VolDnLEDOff();
               _fgExpCardLEDFlash = 0;               // ExpressCard LED Off
               ClrVolDn();
               SetPowerOff();                        // Set Power control off
               _bSystemMode = POWER_ON_CHECK_HOST;
             }
             //if (_bPEXResetStatus == SW_HOLD)      // Host PEXX_RST pin low -> Reset
             //{
             //  VolDnLEDOff();
             //  ClrVolDn();
             //  SetPowerOff();                      // Set Power control off
             //  _bSystemMode = POWER_ON_CHECK_HOST;
             //}
             break;
  
      }// End of check System Mode 

      if (!_bSystemCount)
      {
        if (_bSystemMode == MUTE_ON)
        {
           MuteLEDOn();      // Mute LED On
           VolUpLEDOff();    // Volume Up LED Off
           VolDnLEDOff();    // Volume Down LED Off
        }
        else if (_bSystemMode == VOLUME_UP)
        {
           MuteLEDOff();     // Mute LED Off             
           VolUpLEDOn();     // Volume Up LED On       
           VolDnLEDOff();    // Volume Down LED Off          
        }
        else if (_bSystemMode == VOLUME_DOWN)
        {
           MuteLEDOff();     // Mute LED Off             
           VolUpLEDOff();    // Volume Up LED Off       
           VolDnLEDOn();     // Volume Down LED On         
        }
        else
        {
           MuteLEDOff();     // Mute LED Off             
           VolUpLEDOff();    // Volume Up LED Off       
           VolDnLEDOff();    // Volume Down LED Off          
        }
      }
    } // End of 20ms time out
  } // End of while loop
}

⌨️ 快捷键说明

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