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

📄 function.c

📁 NoteBook Docking Power and Audio Switch Control using Atmel AT89S51 Chip Program by C language Com
💻 C
📖 第 1 页 / 共 2 页
字号:
     Function : InitTimer(void)
  Description : initial timers
    Parameter : None
       Return : None
***************************************************************************/
void InitTimer(void)
{
   TMOD &= 0x0F;              /* Timer 1 mode 1 with software gate */
   TMOD |= 0x10;              /* GATE0=0; C/T0#=0; M10=0; M00=1; */
   
   TL1 = T500USL;             /* init values as 500us */
   TH1 = T500USH;	      
   ET1=1;                     /* enable timer1 interrupt */
   TR1=1;                     /* timer1 run */
}

///***************************************************************************
//     Function : InitTimer(void)
//  Description : initial Keyboard interrupt
//    Parameter : None
//       Return : None
//***************************************************************************/
//void EnableKeyboardInt(void)
//{
//  /* init keyboard */
//  KBE = 0x10;                    // Enable  P1.4 I/O as keyboard IO 
//  KBF = 0x00;                    // Clear all keyboard flags
//  IEN1 |= 0x01;                  // Enable keyboard interupt 
//}
//
///***************************************************************************
//     Function : InitTimer(void)
//  Description : initial Keyboard interrupt
//    Parameter : None
//       Return : None
//***************************************************************************/
//void DisableKeyboardInt(void)
//{
//  /* init keyboard */
//  KBE = 0x00;                    // Disable P1 I/O as keyboard IO 
//  KBF = 0x00;                    // Clear all keyboard flags
//  IEN1 &= 0xFE;                  // Disable keyboard interupt 
//}

/***************************************************************************
     Function : void ProcLEDBlink1(void)
  Description : Process All LED Blinking function 1
    Parameter : None
       Return : None
***************************************************************************/
void ProcLEDBlink1(void)
{
  if ((_bPWRKeyStatus == SW_NORMAL) && (!_fgPWRLEDFlash)) // Power Key released and no flash LED
  {
    if (!_bPWRLEDBlinkRate)                         // Power LED Blink Rate time up reset value and flip LED On/Off
    {
      if (!_fgPWRLEDOn)                             // Power LED previous off 
      {
        _bPWRLEDBlinkRate = LEDBLINKONRATE;         // Reset LED Blink ON rate value
        PWRLEDOn();                                 // Power LED ON
        _fgPWRLEDOn = 1;                            // Set Power LED on flag
      }
      else                                          // Power LED previous on
      {
        _bPWRLEDBlinkRate = LEDBLINKOFFRATE;        // Reset LED Blink Off rate value
        PWRLEDOff();                                // Power LED OFF
        _fgPWRLEDOn = 0;                            // Clear Power LED on flag
      }
    }
    else                                            // Blink rate not time up
    {
      _bPWRLEDBlinkRate--;                          // Blink rate time count decrement.
    }
  }

  if (_fgExpCardLEDFlash)
  {
    if (!_bExpCardLEDBlinkRate)                         // Power LED Blink Rate time up reset value and flip LED On/Off
    {
      if (!_fgExpCardLEDOn)                             // Power LED previous off 
      {
        _bExpCardLEDBlinkRate = LEDBLINKONRATE;         // Reset LED Blink ON rate value
        ExpCardLEDOn();                                 // Power LED ON
        _fgExpCardLEDOn = 1;                            // Set Power LED on flag
      }
      else                                          // Power LED previous on
      {
        _bExpCardLEDBlinkRate = LEDBLINKOFFRATE;        // Reset LED Blink Off rate value
        ExpCardLEDOff();                                // Power LED OFF
        _fgExpCardLEDOn = 0;                            // Clear Power LED on flag
      }
    }
    else                                            // Blink rate not time up
    {
      _bExpCardLEDBlinkRate--;                          // Blink rate time count decrement.
    }
  }
}

/***************************************************************************
     Function : void ProcLEDBlink2(void)
  Description : Process All LED Blinking function 2
    Parameter : None
       Return : None
***************************************************************************/
void ProcLEDBlink2(void)
{

  if ((_fgMuteLEDFlash) && (_bSystemMode != MUTE_ON)) // Mute off 
  {
    if (!_bMuteLEDBlinkRate)                        // Mute LED Blink Rate time up reset value and flip LED On/Off 
    {                                                                                                               
      if (!_fgMuteLEDOn)                            // Mute LED previous off                                       
      {                                                                                                             
        _bMuteLEDBlinkRate = LEDBLINKONRATE;        // Reset LED Blink ON rate value                                
        MuteLEDOn();                                // Mute LED ON                                                 
        _fgMuteLEDOn = 1;                           // Set Mute LED on flag                                        
      }                                                                                                             
      else                                          // Mute LED previous on                                        
      {                                                                                                             
        _bMuteLEDBlinkRate = LEDBLINKOFFRATE;       // Reset LED Blink Off rate value                               
        MuteLEDOff();                               // Mute LED OFF                                                
        _fgMuteLEDOn = 0;                           // Clear Mute LED on flag                                      
      }                                                                                                             
    }                                                                                                               
    else                                            // Blink rate not time up                                       
    {                                                                                                               
      _bMuteLEDBlinkRate--;                         // Blink rate time count decrement.                             
    }
  }

  if ((_fgVolUpLEDFlash) && (_bSystemMode != VOLUME_UP))   // Volume Up Key released                                            
  {                                                                                                                 
    if (!_bVolUpLEDBlinkRate)                       // Volume Up LED Blink Rate time up reset value and flip LED On/Off  
    {                                                                                                               
      if (!_fgVolUpLEDOn)                           // Volume Up LED previous off                                        
      {                                                                                                             
        _bVolUpLEDBlinkRate = LEDBLINKONRATE;       // Reset LED Blink ON rate value                                
        VolUpLEDOn();                               // Volume Up LED ON                                                  
        _fgVolUpLEDOn = 1;                          // Set Volume Up LED on flag                                         
      }                                                                                                             
      else                                          // Volume Up LED previous on                                         
      {                                                                                                             
        _bVolUpLEDBlinkRate = LEDBLINKOFFRATE;      // Reset LED Blink Off rate value                               
        VolUpLEDOff();                              // Volume Up LED OFF                                                 
        _fgVolUpLEDOn = 0;                          // Clear Volume Up LED on flag                                       
      }                                                                                                             
    }                                                                                                               
    else                                            // Blink rate not time up                                       
    {                                                                                                               
      _bVolUpLEDBlinkRate--;                        // Blink rate time count decrement.                             
    }
  }

  if ((_fgVolDnLEDFlash) && (_bSystemMode != VOLUME_DOWN)) // Volume Down Key released                                           
  {                                                                                                                     
    if (!_bVolDnLEDBlinkRate)                       // Volume Down LED Blink Rate time up reset value and flip LED On/Off 
    {                                                                                                                   
      if (!_fgVolDnLEDOn)                           // Volume Down LED previous off                                       
      {                                                                                                                 
        _bVolDnLEDBlinkRate = LEDBLINKONRATE;       // Reset LED Blink ON rate value                                    
        VolDnLEDOn();                               // Volume Down LED ON                                                 
        _fgVolDnLEDOn = 1;                          // Set Volume Down LED on flag                                        
      }                                                                                                                 
      else                                          // Volume Down LED previous on                                        
      {                                                                                                                 
        _bVolDnLEDBlinkRate = LEDBLINKOFFRATE;      // Reset LED Blink Off rate value                                   
        VolDnLEDOff();                              // Volume Down LED OFF                                                
        _fgVolDnLEDOn = 0;                          // Clear Volume Down LED on flag                                      
      }                                                                                                                 
    }                                                                                                                   
    else                                            // Blink rate not time up                                           
    {                                                                                                                   
      _bVolDnLEDBlinkRate--;                        // Blink rate time count decrement.                                 
    }
  }
}

/************************************************************************
     Function : void CheckExpressCard(void)
  Description : Check ExpressCard Connector status
    Parameter : None
    Return    : None
************************************************************************/
void CheckExpressCard(void)
{
  switch (_bExpCardStatus)
  {
    case SW_NORMAL:
         // Mute SW from H->L
         if (_fgOldConnect && (!_fgConnect)) // Mute key just press
         {
           _bExpCardStatus = SW_PRESS;
         }
         break;

    case SW_PRESS:
         // Mute SW from L->L
         if (!_fgOldConnect && (!_fgConnect)) // Mute key Hold
         {
           _bExpCardStatus = SW_HOLD;
         }
         // Mute SW from L->H
         if (!_fgOldConnect && _fgConnect) // Mute key Hold
         {
           _bExpCardStatus = SW_NORMAL; // for De-bounds    
         }
         if (_fgOldConnect && _fgConnect)
         {
           _bExpCardStatus = SW_NORMAL;
         }
         break;

    case SW_HOLD:
         // Mute SW from L->H
         if (!_fgOldConnect && _fgConnect) // Mute key just release
         {
           _bExpCardStatus = SW_RELEASE;
         }
         if (_fgOldConnect && _fgConnect)
         {
           _bExpCardStatus = SW_RELEASE;
         }
         if (_fgOldConnect && !_fgConnect)
         {
           _bExpCardStatus = SW_PRESS;
         }
         break;

    case SW_RELEASE:
         // Mute SW from H->H
         if (_fgOldConnect && _fgConnect) // Mute key Hold
         {
           _bExpCardStatus = SW_NORMAL;
         }
         // Mute SW from H->L
         if (_fgOldConnect && (!_fgConnect)) // Mute key Hold
         {
           _bExpCardStatus = SW_HOLD; // for De-bounds    
         }
         break;
  }
}

///************************************************************************
//     Function : void CheckPEXReset(void)
//  Description : Check PEX_RST pin status
//    Parameter : None
//    Return    : None
//************************************************************************/
//void CheckPEXReset(void)
//{
//  switch (_bPEXResetStatus)
//  {
//    case SW_NORMAL:
//         // Mute SW from H->L
//         if (_fgOldPEXReset && (!_fgPEXReset)) // Mute key just press
//         {
//           _bPEXResetStatus = SW_PRESS;
//         }
//         break;
//
//    case SW_PRESS:
//         // Mute SW from L->L
//         if (!_fgOldPEXReset && (!_fgPEXReset)) // Mute key Hold
//         {
//           _bPEXResetStatus = SW_HOLD;
//         }
//         // Mute SW from L->H
//         if (!_fgOldPEXReset && _fgPEXReset) // Mute key Hold
//         {
//           _bPEXResetStatus = SW_NORMAL; // for De-bounds    
//         }
//         break;
//
//    case SW_HOLD:
//         // Mute SW from L->H
//         if (!_fgOldPEXReset && _fgPEXReset) // Mute key just release
//         {
//           _bPEXResetStatus = SW_RELEASE;
//         }
//         break;
//
//    case SW_RELEASE:
//         // Mute SW from H->H
//         if (_fgOldPEXReset && _fgPEXReset) // Mute key Hold
//         {
//           _bPEXResetStatus = SW_NORMAL;
//         }
//         // Mute SW from H->L
//         if (_fgOldPEXReset && (!_fgPEXReset)) // Mute key Hold
//         {
//           _bPEXResetStatus = SW_HOLD; // for De-bounds    
//         }
//         break;
//  }
//}

/***************************************************************************
     Function : void EnableEX0Int(void)
  Description : initial EX0(external interrupt 0) interrupt 
    Parameter : None
       Return : None
***************************************************************************/
void EnableEX0Int(void)
{
  IT0 = 1;   // Configure interrupt 0 for falling edge on /INT0 (P3.2)
  EX0 = 1;   // Enable EX0 Interrupt
}
///***************************************************************************
//     Function : void DisableEX0Int(void)
//  Description : Disable EX0(external interrupt 0) interrupt 
//    Parameter : None
//       Return : None
//***************************************************************************/
//void DisableEX0Int(void)
//{
//  IT0 = 0;   
//  EX0 = 0;   // Disable EX0 Interrupt
//}

⌨️ 快捷键说明

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