keyproc.lst

来自「philip RTC 芯片的驱动程序 8563」· LST 代码 · 共 806 行 · 第 1/4 页

LST
806
字号
 579   1              BYTE   Command_length;
 580   1              BYTE   i;
 581   1      
 582   1              SBUF = 0xFF;
 583   1              while(TI == 0);
 584   1              TI = 0;
 585   1              DelayX1ms(20);
 586   1      
 587   1              SBUF = 0xFF;    
 588   1              while(TI == 0);
 589   1              TI = 0;
 590   1              SBUF = 0x55;
 591   1              while(TI == 0);
 592   1              TI = 0;
 593   1              
 594   1              Command_length = Keypointer[0] + 2;
 595   1              for(i = 0; i< Command_length; i++)
 596   1              {
 597   2      
 598   2                      SBUF = *(Keypointer + i );
 599   2                      while(TI == 0);
 600   2                      TI = 0;         
 601   2                      DelayX1ms(3);
 602   2              }
 603   1      }
 604          
 605          void Power_Proc()
 606          {
 607   1              if(POWER_Status == on)//开机状态
 608   1              {               
 609   2                      AV_MUTE = 1;            //静音防止开机噪音      
 610   2                      DelayX1ms(255);
 611   2                      Power_Pin = 1;
 612   2                      DelayX1ms(20);
C51 COMPILER V7.50   KEYPROC                                                               10/18/2005 14:13:29 PAGE 11  

 613   2                      Volume_Tune(0); 
 614   2                      DelayX1ms(255);         
 615   2                      AV_MUTE = 0;   
 616   2              //      Current_Volume = I2C_GetByte(A24C02_WRITE,0);//读出上次音量值
 617   2                      Current_Volume = byte_read(0x2000);
 618   2      
 619   2                      if(Current_Volume > 50)//防止第一次开机显示音量错乱
 620   2                      Current_Volume = 30;
 621   2                      Volume_Tune(Current_Volume);
 622   2                      LED_G = 0;
 623   2                      lcd_light = 0;          
 624   2              
 625   2                      //开机显示通道
 626   2                      if (Channel_Select == 0)
 627   2                              {                               
 628   3                                  Volume_Tune(0);     
 629   3                                      DelayX1ms(255);
 630   3                                      C4052_A = 1;
 631   3                                      C4052_B = 0;
 632   3                                      
 633   3                                      display_aux2(); //显示  
 634   3                                      P1_6 = 0;
 635   3                                      P3_3 = 1;
 636   3                                      P1_7 = 1;
 637   3                              }               
 638   2                      else if (Channel_Select == 1)
 639   2                              {                       
 640   3                                      Volume_Tune(0); 
 641   3                                      DelayX1ms(255);
 642   3      
 643   3                                      C4052_A = 0;
 644   3                                      C4052_B = 1;
 645   3                                      
 646   3                                      display_main();//显示           
 647   3                          P3_3 = 0;
 648   3                                      P1_6 = 1;
 649   3                                      P1_7 = 1;                               
 650   3                              }               
 651   2                      else if (Channel_Select == 2)
 652   2                              {                               
 653   3                                      Volume_Tune(0); 
 654   3                                      DelayX1ms(255);
 655   3      
 656   3                                      C4052_A = 1;
 657   3                                      C4052_B = 1;
 658   3                                      display_aux1();//显示   
 659   3                                      P1_7 = 0;
 660   3                                      P1_6 = 1;
 661   3                                  P3_3 = 1;                   
 662   3                              }
 663   2                              Volume_Tune(Current_Volume);                    
 664   2                                      
 665   2                      //开机显示音量进度条
 666   2                      switch(Current_Volume / 5)
 667   2                      {
 668   3                              case 0:
 669   3                              display_0bar();                 
 670   3                              break;
 671   3                              case 1:
 672   3                              display_1bar();
 673   3                              break;
 674   3                              case 2:
C51 COMPILER V7.50   KEYPROC                                                               10/18/2005 14:13:29 PAGE 12  

 675   3                              display_2bar();
 676   3                              break;
 677   3                              case 3:
 678   3                              display_3bar();
 679   3                              break;
 680   3                              case 4:
 681   3                              display_4bar();
 682   3                              break;
 683   3                              case 5:
 684   3                              display_5bar();
 685   3                              break;
 686   3                              case 6:
 687   3                              display_6bar();
 688   3                              break;
 689   3                              case 7:
 690   3                              display_7bar();
 691   3                              break;
 692   3                              case 8:
 693   3                              display_8bar();
 694   3                              break;
 695   3                              case 9:
 696   3                              display_9bar();
 697   3                              break;
 698   3                              case 10:
 699   3                              display_10bar();
 700   3                              break;
 701   3                              
 702   3                              default:
 703   3                              break;
 704   3                      }
 705   2                      //显示音量数码值        
 706   2      
 707   2                      display_68(Current_Volume % 10 );
 708   2                      display_58(Current_Volume / 10);
 709   2                      POWER_Status = off;                 
 710   2              }
 711   1      
 712   1              else if(POWER_Status == off)//关机状态
 713   1              {               
 714   2                      AV_MUTE = 1;   //关机静音
 715   2                      DelayX1ms(255); 
 716   2                      mute_flag = 0;//如果静音则关机解除静音,为开机不静音准备
 717   2                      P3_3    =       1;
 718   2                      P1_6    =       1;
 719   2                      P1_7    =       1;
 720   2      //              I2C_PutByte(A24C02_WRITE, 0,Current_Volume);
 721   2                      /* 扇区擦除 */
 722   2                      sector_erase(0x2000);
 723   2                      /* 字节编程 */
 724   2                      byte_program(0x2000, Current_Volume);
 725   2      
 726   2                      Power_Pin = 0;  
 727   2                      LED_G  = off;
 728   2                      lcd_light = off;    
 729   2                  
 730   2              display_0bar();  //关机不显示bar
 731   2                      display_offchanel();//关机不显示任何通道
 732   2                      display_mute(lcd_unmute);//关机不显示MUTE
 733   2      
 734   2                      lcd_wr_addr(0x03);
 735   2                  lcd_wr_data(0x0);//关机不显示第一个小8数码管
 736   2                      lcd_wr_addr(0x02);
C51 COMPILER V7.50   KEYPROC                                                               10/18/2005 14:13:29 PAGE 13  

 737   2                      lcd_wr_data(0x0);
 738   2              
 739   2                      lcd_wr_addr(0x01);
 740   2                  lcd_wr_data(0x0);
 741   2                      lcd_wr_addr(0x00);//关机不显示第二个小8数码管
 742   2                      lcd_wr_data(0x0);
 743   2                      
 744   2                      C4052_A = 0;
 745   2                      C4052_B = 0;//power off switch to void chanel.
 746   2                      //关机时关闭IPOD
 747   2                      {                               
 748   3                                              Keypointer = POWER_OFF_TBL;
 749   3                                              SendKeyToiPod();                                                
 750   3                      }
 751   2      
 752   2                      POWER_Status = on;
 753   2      
 754   2              }
 755   1      }
 756          
 757          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2007    ----
   CONSTANT SIZE    =    141    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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