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

📄 mcu.lst

📁 NT68521源代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
 245   2                      INTEXT_EN = 0x11;
 246   2                      KeyTemp2 = 0;
 247   2              }
 248   1              INTEXT_EN |= 0x22;
 249   1              TMOD=0x22;TL1=0xf3;TH1=0xf3;TR1=1;
 250   1              PCON=0x80;SCON=0x50;ES=1;
 251   1              TL0 = -250;TH0 = -250;TR0=1;ET0=1;EA=1;
 252   1      
 253   1      #ifdef Debug
                      flag3 = 4;
              #else
 256   1              flag3 = 0;
 257   1      #endif
 258   1      
 259   1              //Sleep(50);
 260   1              PowerStatus = 0xff;
 261   1              IIC_BaudRate = 0x01;
 262   1              LoadDDCData(1);
 263   1      }
 264          
 265          void Timer0(void) interrupt 1 using 2
 266          {
 267   1              if(IR_Timer != 0xff)
 268   1                      IR_Timer++;
 269   1              if(++T0_INT_CNT >= 4)
 270   1              {
 271   2                      T0_INT_CNT = 0;
 272   2                      if(Timer1 != 0)                 // 1ms
 273   2                              Timer1--;
 274   2                      if(++Timer10ms >= 10)   // 10ms
 275   2                      {
 276   3                              CLRWDT = 0x55;
 277   3                              Timer10ms = 0;
 278   3                              if(DecodeDelay != 0)
 279   3                                      DecodeDelay--;
 280   3                              if(Timer2 != 0)
 281   3                                      Timer2--;
 282   3                              if(Timer3 != 0)
 283   3                                      Timer3--;
 284   3                              if(Timer4 != 0)
 285   3                                      Timer4--;
 286   3                              if(RepeatTimer != 0)
 287   3                                      RepeatTimer--;
 288   3                              if(PoSvTimer != 0)
 289   3                                      PoSvTimer--;
 290   3                              if(IR_RepeatTimer != 0){
 291   4                                      IR_RepeatTimer--;
 292   4                              }
 293   3                      }
 294   2              }
 295   1      }
 296          
 297          void Sbuf(void) interrupt 4
 298          {
C51 COMPILER V7.50   MCU                                                                   03/18/2008 22:04:55 PAGE 6   

 299   1           RI=0;
 300   1           if(zw)
 301   1           {   DataSbuf[x1]=SBUF;
 302   2                       x1++;
 303   2                       if(x1>=3)
 304   2                       {       zw=0;x1=0;
 305   3                               if(DataSbuf[2]==0xfe)
 306   3                               { IRCode=DataSbuf[1];}
 307   3                       }
 308   2           }
 309   1           if(SBUF==0xf0) {zw=1;x1=1;}
 310   1      }
 311          
 312          void Sleep(unsigned short time)
 313          {
 314   1              Timer1 = time;                  /* timeout n ms */
 315   1              while(Timer1 != 0){
 316   2              }
 317   1      }
 318          
 319          void WaitSetup(unsigned short time)
 320          {
 321   1              Timer1 = time;                  /* timeout n ms */
 322   1              while(Timer1 != 0){
 323   2                      CheckModeChange();
 324   2              }
 325   1      }
 326          
 327          void ScanKeyPad(void)
 328          {
 329   1      unsigned char i,j,k;
 330   1              Timer1 = 0;
 331   1              do{
 332   2                      while((ADC_REG[3] & BIT_7) == 0){};
 333   2                      KeyPad1 = ADC_REG[0] & 0x7f;
 334   2                      KeyPad2 = ADC_REG[1] & 0x7f;
 335   2                      if((ADC_REG[2] & 0x7f) < 0x38){
 336   3                              flag1 |= BIT_7;
 337   3                              return;
 338   3                      }
 339   2                      ADC_CON = 0x17;         //Channel;  // Start AD Convert
 340   2                      ADC_CON = 0x97;         //Channel;  // Start AD Convert
 341   2      //check adc0
 342   2                      if(KeyPad1 > KeyTemp1){
 343   3                              if((KeyPad1 - KeyTemp1 ) >  5){
 344   4                                      KeyTemp1 = KeyPad1;
 345   4                                      flag1 |= BIT_2;
 346   4                                      Timer1 = KeyStabTime;
 347   4                              }
 348   3                      }
 349   2                      else{
 350   3                              if((KeyTemp1 - KeyPad1 ) >  5){
 351   4                                      KeyTemp1 = KeyPad1;
 352   4                                      flag1 |= BIT_2;
 353   4                                      Timer1 = KeyStabTime;
 354   4                              }
 355   3                      }
 356   2      //check adc1
 357   2                      if(KeyPad2 > KeyTemp2){
 358   3                              if((KeyPad2 - KeyTemp2 ) >  5){
 359   4                                      KeyTemp2 = KeyPad2;
 360   4                                      flag1 |= BIT_2;
C51 COMPILER V7.50   MCU                                                                   03/18/2008 22:04:55 PAGE 7   

 361   4                                      Timer1 = KeyStabTime;
 362   4                              }
 363   3                      }
 364   2                      else{
 365   3                              if((KeyTemp2 - KeyPad2 ) >  5){
 366   4                                      KeyTemp2 = KeyPad2;
 367   4                                      flag1 |= BIT_2;
 368   4                                      Timer1 = KeyStabTime;
 369   4                              }
 370   3                      }
 371   2      
 372   2      //check power key
 373   2                      if(((PortC & BIT_6) == 0)&&((flag3 & BIT_5) != 0)){
 374   3                              flag3 &= ~BIT_5;
 375   3                              flag1 |= BIT_2;
 376   3                              Timer1 = KeyStabTime;
 377   3                      }
 378   2                      if(((PortC & BIT_6) != 0)&&((flag3 & BIT_5) == 0)){
 379   3                              flag3 |= BIT_5;
 380   3                              flag1 |= BIT_2;
 381   3                              Timer1 = KeyStabTime;
 382   3                      }
 383   2              }while(Timer1 != 0);
 384   1      //change key
 385   1              if((flag1 & BIT_2) != 0x00){
 386   2                      flag1 &= ~BIT_2;
 387   2                      if((flag3 & BIT_2) != 0x00){
 388   3                              printf("KEY1 = %x\r\n",(unsigned short)KeyTemp1);
 389   3                              printf("KEY2 = %x\r\n",(unsigned short)KeyTemp2);
 390   3                      }
 391   2                      for(i=0; i<5; i++){
 392   3                              if(KeyTemp1 > KeyTab[i])
 393   3                                      j = KeyTemp1 - KeyTab[i];
 394   3                              else
 395   3                                      j = KeyTab[i] - KeyTemp1;
 396   3                              if(j < 16){
 397   4                                      j = i;
 398   4                                      break;
 399   4                              }
 400   3                      }
 401   2                      for(i=0; i<5; i++){
 402   3                              if(KeyTemp2 > KeyTab[i])
 403   3                                      k = KeyTemp2 - KeyTab[i];
 404   3                              else
 405   3                                      k = KeyTab[i] - KeyTemp2;
 406   3                              if(k < 16){
 407   4                                      k = i;
 408   4                                      break;
 409   4                              }
 410   3                      }
 411   2                      KeyBuffer = k << 4;
 412   2                      KeyBuffer |= j;
 413   2      
 414   2                      if((flag3 & BIT_5) == 0){
 415   3                              if(KeyBuffer == DownKey){
 416   4                                      flag3 |= BIT_0;
 417   4                                      flag2 &= ~BIT_5;
 418   4                                      Write24C16(0xcd,0x01);
 419   4                                      if((flag3 & BIT_2) != 0x00)
 420   4                                              printf("Entry Factory mode\r\n");
 421   4                              }
 422   3                              else{
C51 COMPILER V7.50   MCU                                                                   03/18/2008 22:04:55 PAGE 8   

 423   4                                      flag3 &= ~BIT_0;
 424   4                                      k = Read24C16(0xe1);
 425   4                                      k = ColorTab[k];
 426   4                                      if(k == 0)
 427   4                                              flag2 &= ~BIT_5;
 428   4                                      else
 429   4                                              flag2 |= BIT_5;
 430   4                                      Write24C16(0xcd,0x00);
 431   4                                      if((flag3 & BIT_2) != 0x00)
 432   4                                              printf("Release Factory mode\r\n");
 433   4                              }
 434   3                              flag2 &= 0xf3;          //clear display flag
 435   3                              KeyBuffer = PowerKey;
 436   3                      }
 437   2                      if((flag3 & BIT_2) != 0x00)
 438   2                              printf("KeyBuffer = %x\r\n",(unsigned short)KeyBuffer);
 439   2      // set repeat timer
 440   2                      Repeat = KeyBuffer;
 441   2                      RepeatTimer = KeyHoldTime;
 442   2              }
 443   1              else{
 444   2                      if((RepeatTimer == 0)&&((OSD_Type > 0x00)||(OSD_Type < 0x04))){
 445   3                              switch(Repeat){
 446   4                              case LeftKey:
 447   4                                      KeyBuffer = Repeat;
 448   4                                      RepeatTimer = KeyRepeatTime;
 449   4                                      break;
 450   4                              case RightKey:
 451   4                                      KeyBuffer = Repeat;
 452   4                                      RepeatTimer = KeyRepeatTime;
 453   4                                      break;
 454   4                              }
 455   3                      }
 456   2              }
 457   1      }
 458          
 459          void CheckKey(void)
 460          {
 461   1      
 462   1              ScanKeyPad();
 463   1              if((PowerStatus & BIT_7) == 0)
 464   1              {
 465   2                      if(KeyBuffer == RightKey){
 466   3                              ModePoint++;
 467   3                      }
 468   2                      if(KeyBuffer == LeftKey){
 469   3                              ModePoint--;
 470   3                      }
 471   2                      if(KeyBuffer != PowerKey){
 472   3                              KeyBuffer = 0xff;
 473   3                      }
 474   2              }
 475   1              switch(KeyBuffer){
 476   2              case PowerKey:          //POWER
 477   2                      KeyBuffer = 0xff;
 478   2                      if((PowerStatus & BIT_7) == 0)
 479   2                      {
 480   3                              PowerStatus |= BIT_7;   //normal
 481   3                              Write24C16(0xcc,PowerStatus);
 482   3                              flag1 &= ~BIT_0;
 483   3                              if((flag1 & BIT_3) == 0)
 484   3                              {
C51 COMPILER V7.50   MCU                                                                   03/18/2008 22:04:55 PAGE 9   

 485   4                                      flag1 |= BIT_3;
 486   4                                      ForceToBackground(0);   //Set fource to background
 487   4                                      PoSvTimer = 500;
 488   4                              }
 489   3                              if(ModePoint == 0xfc)
 490   3                              {
 491   4                                      InitEEPROM();
 492   4                                      LoadModeIndependentSettings();
 493   4                                      LoadADC_Gain();
 494   4                                      SetBrightness();
 495   4                                      sRGB();
 496   4                                      SetSharpness();
 497   4                              }
 498   3                              ScalerPowerUp();
 499   3                              DVI_On();
 500   3                              SourceSelect();
 501   3                              LED_RedOff();
 502   3                              LED_GrnOn();

⌨️ 快捷键说明

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