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

📄 main.lst

📁 8051单片机的LCDTV用户界面程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 287   6                                                              ISP_flag_1 = 0;
 288   6                                                              ISP_flag_2 = 0;
 289   6                                                              }
 290   5                                                      }
 291   4                                              else
 292   4                                                      {
 293   5                                                      ISP_flag_1 = 0;
 294   5                                                      ISP_flag_2 = 0;
 295   5                                                      ISP_flag_3 = 0;
 296   5                                                      }
 297   4                                              }
 298   3      
 299   3                                      source_in_status = 0x01;
 300   3                                      data_ready = 0;
 301   3                                      delay(5);
 302   3                                      data_ready = 1;
 303   3                                      key = 0x00;
C51 COMPILER V7.01  MAIN                                                                   12/01/2005 09:38:54 PAGE 6   

 304   3                                      }
 305   2                              break;
 306   2                              
 307   2                 }
 308   1      }
 309                                  
 310          void test_power_action(void)
 311          {
 312   1              if(action_ready_to_handle == 0x01)
 313   1                      {
 314   2                      action_ready_to_handle = 0x00;
 315   2                      }
 316   1              else
 317   1                      if(Power_off == 0x01)
 318   1                              {
 319   2                              Power_on_system = 0;//after 9000 ready power down,MCU'll power down system
 320   2                              Power_off = 0x00;
 321   2                              LED = 1;
 322   2                              }
 323   1      }
 324          
 325          void Ir_power_operation(void)
 326          {
 327   1              BYTE GetIr;
 328   1              BYTE GetID;
 329   1              
 330   1              GetID = GetIrIDData();
 331   1                      if(GetID == 0x10)
 332   1                      {
 333   2                      GetIr=GetIrCodeData();
 334   2                      if(GetIr == 0x5F)
 335   2                              {
 336   3                              if(Power_status == 0x00)
 337   3                                      {
 338   4                                      LED = 0;
 339   4                                      Power_on_system = 1;//power on the whole system
 340   4                                      delay(150);
 341   4                                      Reset_TVP9000 = 0;
 342   4                                      delay(100);
 343   4                                      Reset_TVP9000 = 1;//reset TVP9000
 344   4                                      Power_status = 0x01;
 345   4                                      GetIr = 0x00;
 346   4                                      }
 347   3                              else
 348   3                                      {
 349   4                                      power_down_status = 0x01;
 350   4                                      data_ready = 0;//tell TVP9000 to powerdown system,
 351   4                                      delay(5);
 352   4                                      data_ready = 1;
 353   4                                      Power_status = 0x00;
 354   4                                      delay(200);
 355   4                                      GetIr = 0x00;
 356   4                                      }
 357   3                              }
 358   2                      }
 359   1              
 360   1      }
 361          //              
 362          void main(void)
 363          {       
 364   1              PWM_flag = 0;
 365   1              Power_on_system = 0;
C51 COMPILER V7.01  MAIN                                                                   12/01/2005 09:38:54 PAGE 7   

 366   1              Power_status = 0x00;
 367   1              action_ready_to_handle = 0x01;  
 368   1              Power_off = 0x00;
 369   1              menu_key_press_speet_flag = 0x00;
 370   1      
 371   1              ISP_flag_1 = 0;
 372   1              ISP_flag_2 = 0;
 373   1              ISP_flag_3 = 0;
 374   1              ISP_flag_4 = 0;
 375   1              
 376   1              InitialTimer0();
 377   1              Initi_MCU_slaver();
 378   1              Init_uart();
 379   1              EnableIr();
 380   1              
 381   1              while(1)
 382   1                      {
 383   2                      Ir_power_operation();
 384   2                      key_function_operation();
 385   2                      test_power_action();
 386   2      
 387   2                      if(PWM_flag == 1)
 388   2                              {
 389   3                              Backlight_Control();
 390   3                              PWM_flag = 0;   
 391   3                              }
 392   2                      }       
 393   1      }
 394          
 395          void EnableISP(void)
 396          {
 397   1              start_ISP();
 398   1              while(1);
 399   1      }
 400          
 401          BYTE    WaitKey(void)
 402          {
 403   1              BYTE    press_key;
 404   1              press_key = P0 & 0x7F;                          // get press key from Port#0
 405   1      
 406   1              if ((press_key == 0x7E) || (press_key == 0x3F) || (press_key == 0x77) || (press_key == 0x6F))
 407   1              {
 408   2                      for (;;)                                                //wait all key release
 409   2                      if ((P0&0x7F)==0x7F)
 410   2                      break;
 411   2              }
 412   1              else
 413   1                      if((press_key == 0x7D)||(press_key == 0x7B))
 414   1                              {               
 415   2                              for (;;)                                                //wait all key release
 416   2                              if ((P0&0x7F)!=0x7F)
 417   2                              break;
 418   2                              }
 419   1                      else
 420   1                              if(press_key == 0x5F)
 421   1                                      {
 422   2                                      for(;;)
 423   2                                      if((P0&0x7F) ==0x7F)
 424   2                                      break;
 425   2                                      }
 426   1                              else
 427   1                                      {
C51 COMPILER V7.01  MAIN                                                                   12/01/2005 09:38:54 PAGE 8   

 428   2                                      press_key = 0;
 429   2                                      }
 430   1                      return (press_key);                                     //if not press key will return 0x00
 431   1      }
 432          
 433          void timer0_int( void ) interrupt 1   //about 1ms run into this interrup subrutine,about 100ms to scan the
             - key,
 434          {
 435   1              unsigned char i = 0,j = 0;
 436   1              TR0 = 0;
 437   1              key = WaitKey();
 438   1              TH0=0x00;
 439   1              TL0=0x00;
 440   1              TR0 = 1;
 441   1      }
 442          
 443          void    InitialTimer0(void)             //1ms timer
 444          {
 445   1              //set Timer0 for key scan
 446   1              TMOD=0x01;
 447   1              TH0=0x00;
 448   1              TL0=0x00;
 449   1              EA=1;
 450   1              TR0=1;
 451   1              ET0=1;
 452   1      }
 453          
 454          void Initi_MCU_slaver(void)
 455          {
 456   1              //initial MCU's in slave mode
 457   1              EA=1;
 458   1              ES1=1;  
 459   1              S1CON=0xC6;//ENABLE_I2C;enable MCU in slave mode.
 460   1              S1ADR=0xD8;//SLA_R;
 461   1      }
 462                  
 463          //-------------------------------------------
 464          /* transmit a string */
 465          void transs(char *s)
 466          {
 467   1         while (*s!='\0')
 468   1          {
 469   2              SBUF=*s;
 470   2              while(!TI);
 471   2              TI = 0 ;
 472   2              s++;
 473   2         }
 474   1      }
 475          //=======================================
 476          //* transmit a char*/
 477          void transc (char c)
 478          {
 479   1              SBUF = c;
 480   1              while(!TI);
 481   1              TI = 0;
 482   1      }
 483          //---------------------------------------
 484          //---------------------------------------
 485          void transreg(char c)
 486          {
 487   1              int tmp;
 488   1              int tmpc;
C51 COMPILER V7.01  MAIN                                                                   12/01/2005 09:38:54 PAGE 9   

 489   1              tmp=c;
 490   1              tmp=(tmp>>4)&0x0F;
 491   1              ACC=tmp;
 492   1          tmpc=hextoascii(tmp); 
 493   1          transc(tmpc);
 494   1              tmp=c&0x0F;
 495   1              tmpc=hextoascii(tmp); 
 496   1          transc(tmpc);
 497   1              transs("\n\r"); 
 498   1      }
 499          //-----------------------------------------
 500          int hextoascii(int hex2)
 501          {
 502   1              int tmp1;
 503   1              tmp1=hex2;
 504   1              if (tmp1 >= 0x0A )
 505   1                { 
 506   2                      tmp1 += 0x37;
 507   2                }
 508   1          else
 509   1                {
 510   2                      tmp1+=0x30;
 511   2                } 
 512   1           return tmp1;
 513   1      }
 514          void Init_uart()
 515          {
 516   1       //    SCON = 0x50;
 517   1               TI = 0x00;
 518   1               TMOD = 0x20;
 519   1               RCAP2H = 0XFF; //11.0592MHz
 520   1               RCAP2L = 0XB8; //the baud rate is the 4800bps 
 521   1               T2CON = 0x34;
 522   1               SCON = 0x52;
 523   1               TR2 = 1;
 524   1               ET2 = 1;
 525   1               EA = 1;
 526   1      //       TL1  = 0x00;
 527   1      //       TH1 = 0xF3;    //12M 2400
 528   1      //       TR1 = 0x01;
 529   1      }
 530          
 531          void delay(int i)
 532          {       
 533   1              int j1,j2;
 534   1              for(j1=0;j1<i;j1++)
 535   1                      for(j2=0;j2<i;j2++);
 536   1                      {
 537   2                              ;
 538   2                      }
 539   1      }
 540          /**************************************************************************
 541          *    函数原型: void timer0(void);
 542          *    功    能: 定时器T0中断服务数函按键扫描
 543          /**************************************************************************/
 544          
 545          /*void Timer0(void) interrupt 1 using 1
 546          {       
 547                  TR0=0;
 548          //       重装定时器T0时间常数 
 549                  TMOD=0x01;
 550                  TH0=V_TH0; 
C51 COMPILER V7.01  MAIN                                                                   12/01/2005 09:38:54 PAGE 10  

 551                  TL0=V_TL0;
 552          
 553                  TR0=1;
 554          
 555                  if(++click==4)
 556                  {
 557                          click=0;
 558                          scan_key();
 559                  }
 560          }
 561          */
 562          
 563          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    850    ----
   CONSTANT SIZE    =      3    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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