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

📄 intctrl.lst

📁 一个带收音的功放程序, VFD显示驱动用一个非常实用的方法, 稍加修改即可换成不同的VFD, 功放芯片用M61538
💻 LST
📖 第 1 页 / 共 2 页
字号:
 148   3                                              Current_Remote_In = 0;
 149   3                                              IrState = IR_READY;
 150   3                      
 151   3                              }
 152   2                              break;  
 153   2              }
 154   1      }
 155          
 156          /*======================================================
 157          外部中断0, 用来判断CS49326是否有message发送给主控MCU
 158          =======================================================*/
 159          void CS49326Int(void) interrupt 0// using 1
 160          {
 161   1              //read CS49326 unsolicited messages
 162   1      }
 163          
 164          /*================================================================
 165          Timer0中断用于遥控按键输入中断的计时
 166          ================================================================*/
 167          void TIMER0Int(void) interrupt INT_Timer0
 168          {
 169   1              Stop_Timer0;
 170   1              IrState = IR_READY;
 171   1              Timer0_CntH = 0;
 172   1              Timer0_CntL = 0;
 173   1              ET0 = 1;
 174   1      }
 175          /*===================================================================
 176          设置TIMER1为定时中断,每次中断时间为20ms,中断1ms后开始测试滚轮按键,
 177          VFD显示时间长度计时
 178          ===================================================================*/
 179          void TIMER1Int(void) interrupt INT_Timer1
C51 COMPILER V7.20   INTCTRL                                                               06/30/2005 14:02:57 PAGE 4   

 180          {
 181   1              Timer1_CntL = 0xE0;
 182   1              Timer1_CntH = 0xB1;
 183   1              Start_Timer1;
 184   1              /*
 185   1              if(Volume_Interval > 0)
 186   1              {
 187   1                      Volume_Interval++;
 188   1                      if(Volume_Interval > 60)
 189   1                              Volume_Interval = 0;
 190   1              }       
 191   1              */
 192   1              if(FMAM_PRESSED > 0)
 193   1              {

 194   2                      FMAM_PRESSED++;
 195   2                      //证明已经没有FM/AM按下,如果按下FMAM_PRESSED=1,
 196   2                      //按下经过120ms,(NEC最长为108ms) 
 197   2                      if(FMAM_PRESSED > 8) 
 198   2                      {                       
 199   3                              if(RepCount > 5)
 200   3                              {
 201   4                                      if(Remote_value == 18)//FMAM_KEY
 202   4                                              Remote_value = 28;//AUTO_SCAN_KEY
 203   4                                      else if(Remote_value == 7) //CHANNEL_SETPR_KEY
 204   4                                              Remote_value = 20;//CHANNEL_FB_KEY
 205   4                                      else if(Remote_value == 8) //CHANNEL_SETPF_KEY
 206   4                                              Remote_value = 21;//CHANNEL_FF_KEY
 207   4                                              
 208   4                              }                       
 209   3                              IR_KeyAct    = 1;
 210   3                              FMAM_PRESSED = 0;
 211   3                      }
 212   2                              
 213   2                      
 214   2              }
 215   1              if(TO_MAIN_DISPLAY > 0)
 216   1              {
 217   2                      TO_MAIN_DISPLAY--;
 218   2                      if((TO_MAIN_DISPLAY % 15) == 0)
 219   2                      {
 220   3                              if(FLASH_TEMP == 0)
 221   3                                      FLASH_TEMP = 1;
 222   3                              else
 223   3                                      FLASH_TEMP = 0;
 224   3                      }
 225   2              }
 226   1              
 227   1              
 228   1              if(Key_Timer >= 1)
 229   1              {
 230   2                      Key_Timer++;    
 231   2                              
 232   2              }
 233   1              
 234   1              if(Wait_Lock_40ms > 0) 
 235   1                      Wait_Lock_40ms++;
 236   1              
 237   1              
 238   1      }
 239          /*===================================================================
 240          Timer2中断,暂时未用
 241          ===================================================================*/
C51 COMPILER V7.20   INTCTRL                                                               06/30/2005 14:02:57 PAGE 5   

 242          void TIMER2Int(void) interrupt INT_Timer2
 243          {
 244   1              TF2 = 0;
 245   1              
 246   1              if(ReadKey_Timer < 20)
 247   1              {
 248   2                      ReadKey_Timer++;
 249   2              }
 250   1              
 251   1              if(Volume_Control == 1)
 252   1              {
 253   2                      Jog_A_Input = 1;
 254   2                      Jog_B_Input = 1;
 255   2                      Jog_A_Buffer <<= 1;
 256   2                      Jog_B_Buffer <<= 1;
 257   2                      if(1 == Jog_A_Input)
 258   2                              Jog_B_Buffer++;
 259   2                      if(1 == Jog_B_Input)
 260   2                              Jog_A_Buffer++;
 261   2                      Jog_A_Buffer &=  0x7;
 262   2                      Jog_B_Buffer &=  0x7;
 263   2                      if(( 4 == Jog_A_Buffer) && (0 == Volume_Key_Dealed))
 264   2                      {
 265   3                              if(Jog_B_Buffer >= 0x7)//ab  ab  ab  ab  ab  ab  ab  ab
 266   3                              {
 267   4                                      Jog_Key = 1;       //11->01->00->10->11->01->00->10  ;a=9 b=0xc
 268   4                              }
 269   3                              else
 270   3                              {
 271   4                                      Jog_Key = 2;       //ab  ab  ab  ab  ab  ab  ab  ab
 272   4                              }
 273   3                              Jog_KeyAct = 1;        //11->10->00->01->11->10->00->01  ;a=4 b=(0,1)
 274   3                              Volume_Key_Dealed = 1;
 275   3                      }
 276   2              }
 277   1              else
 278   1              {
 279   2                      Jog_A_Buffer = 0;
 280   2                      Jog_B_Buffer = 0;
 281   2              }
 282   1      }
 283          /*===================================================================
 284          串口中断,暂时未用
 285          ===================================================================*/
 286          void SerialInt(void) interrupt INT_Serial
 287          {
 288   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    782    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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