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

📄 main.lst

📁 philip RTC 芯片的驱动程序 8563
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  10/18/2005 14:20:32 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c DEBUG OBJECTEXTEND

line level    source

   1          #define     Variable_GLOBE
   2          
   3          //#define test_ir_value
   4          
   5          #include        "reg52.h"
   6          #include        "intrins.h"
   7          #include        "globedef.h"
   8          #include        "keydef.h"
   9          #include    "keyproc.h"
  10          #include    "main.h"
  11          #include        "intctrl.h"
  12          #include        "delay.h"
  13          #include        "m62429.h"
  14          #include    "i2c.h"
  15          #include    "Lcd.h"
  16          #include    "pcf8563.h"
  17          
  18          unsigned char   minute;
  19          unsigned char   hour;    
  20          
  21          void    MCU_Init(void);
  22          void    State_Init(void);
  23          
  24          extern  unsigned char sector_erase(unsigned int sector_addr);
  25          extern  unsigned char byte_program(unsigned int byte_addr, unsigned char original_data);
  26          extern  unsigned char byte_read(unsigned int byte_addr);
  27          
  28          
  29          void main(void)
  30          {
  31   1              unsigned char   second = 0;
  32   1              unsigned char   second_save = 0;        
  33   1              unsigned char   read_count = 0; 
  34   1                      
  35   1              AV_MUTE = 1;       //防止通电发生砰声,必须最先         
  36   1              MCU_Init(); 
  37   1              init_pcf8563(); 
  38   1              lcd_init();             
  39   1              State_Init();                   
  40   1              while(1)
  41   1              {       
  42   2                      read_count++;   
  43   2                      if(read_count == 255)
  44   2                      {
  45   3                              read_count = 0;
  46   3                              second = get_pcf8563(0x02);     
  47   3                      
  48   3                              if(second != second_save)
  49   3                              {                               
  50   4                                      display_counter = 0;
  51   4                                      display_maohao();
  52   4      
  53   4                                      minute = get_pcf8563(0x03) & 0x7f;//分
  54   4                                      minute = (minute >> 4) * 10 + (minute & 0x0f);//bcd 码调整到10进制
  55   4                                      if(minute >= 60)//防止出错
C51 COMPILER V7.50   MAIN                                                                  10/18/2005 14:20:32 PAGE 2   

  56   4                                      minute = 0;
  57   4                                      display_38(minute / 10);                        
  58   4                                      display_48(minute % 10);
  59   4      
  60   4                                      hour = get_pcf8563(0x04) & 0x3f;//时
  61   4                                      hour = (hour >> 4) * 10 + (hour & 0x0f);//bcd 码调整到10进制
  62   4                                      if(hour >= 24)//防止出错
  63   4                      hour = 0;
  64   4                                  if(hour >= 13)              //12小时制调整  
  65   4                                      hour = hour - 12;
  66   4                                      if(hour == 0)   
  67   4                                      hour = 12;
  68   4                                  display_18(hour / 10);                      
  69   4                                  display_28(hour % 10);                                        
  70   4                              }
  71   3                              else 
  72   3                              {
  73   4                                      if(display_counter >= 200) //200*3ms
  74   4                                      display_unmaohao();                                     
  75   4                              }
  76   3                              second_save = second;                           
  77   3                      }
  78   2              
  79   2                      if(ReadKey_Timer == 5)
  80   2                      {
  81   3                              Panel_SearchKey();
  82   3                              ReadKey_Timer   = 0;
  83   3                              if(Volume_Need_Record == 1)
  84   3                              {
  85   4                                      _nop_();
  86   4                                      //I2C_PutByte(A24C02_WRITE, 0, Current_Volume);
  87   4                                      /* 扇区擦除 */
  88   4                                      sector_erase(0x2000);
  89   4                                      /* 字节编程 */
  90   4                                      byte_program(0x2000, Current_Volume);
  91   4                                      Volume_Need_Record = 0;
  92   4                              }
  93   3                      }
  94   2                      KEY_Proc();
  95   2      
  96   2                      //检测到耳机插入静音功率放大器  
  97   2                      if(POWER_Status == off)
  98   2                      {
  99   3      //                  MUTE_DETECT1 = 1;
 100   3                              MUTE_DETECT2 = 1;//写1准备读
 101   3                              if(/*(MUTE_DETECT1 == 0) ||*/(MUTE_DETECT2 == 0))
 102   3                              AV_MUTE = 1; //检测到耳机信号,静音     
 103   3                              else    
 104   3                              AV_MUTE =(bit) mute_flag;
 105   3                      }
 106   2      
 107   2      #ifdef test_ir_value
                              //测遥控码
                      SBUF = Remote_value;
                              while(TI == 0);
                          TI = 0;
                          DelayX1ms(255);DelayX1ms(255);DelayX1ms(255);
              #endif
 114   2      
 115   2                      //MUTE_DETECT1 = 1;
 116   2                      MUTE_DETECT2 = 1;//写1准备读
 117   2                      P3 |= 0xf0;
C51 COMPILER V7.50   MAIN                                                                  10/18/2005 14:20:32 PAGE 3   

 118   2                      /*开机状态,并且没插耳机进入静音*/
 119   2                      if( (POWER_Status == off)&&(MUTE_DETECT2 != 0)/*&&(MUTE_DETECT1 != 0)*/&&(( P3 & 0xf0 ) == 0xc0) )
 120   2                      {
 121   3                              AV_MUTE = 1;            
 122   3                              mute_flag =(unsigned char)AV_MUTE;
 123   3                              if(AV_MUTE == 1)
 124   3                              display_mute(lcd_mute);
 125   3                              else
 126   3                              display_mute(lcd_unmute);
 127   3                              //      DelayX1ms(125);
 128   3                      }
 129   2              }
 130   1      }
 131          
 132          
 133          void MCU_Init(void)
 134          {
 135   1              EA  = 0;
 136   1              ES  = 0; 
 137   1              ET1 = 0;
 138   1              EX1 = 0;
 139   1              ET0 = 1;
 140   1              EX0 = 1;
 141   1      #ifdef OSCFREQ110592
 142   1              Timer2_CntL = 0x32;
 143   1              Timer2_CntH = 0xF5;
 144   1      #else
                      Timer2_CntL = 0x47;
                      Timer2_CntH = 0xF4;
              #endif
 148   1              RCAP2L      = Timer2_CntL;
 149   1              RCAP2H      = Timer2_CntH;
 150   1              ET2         = 1;
 151   1              TF2         = 0;
 152   1              EXF2        = 0;
 153   1              RCLK        = 0;
 154   1              TCLK        = 0;
 155   1              EXEN2       = 0;
 156   1              C_T2        = 0;
 157   1              CP_RL2      = 0;
 158   1              P0 = 0xFF;
 159   1              P1 = 0xFF;
 160   1              P2 = 0xFF;
 161   1              P3 = 0xFF;
 162   1              TMOD = 0x21;    //TIMER1为常数自动装入8位方式,TIMER0为16位方式
 163   1              TH1  = 0xFD;
 164   1              TL1  = 0xFD;
 165   1              PCON = 0x00;
 166   1              SCON = 0x50;
 167   1              TR0  = 0;
 168   1              TR1  = 1;
 169   1              TR2  = 1;
 170   1              IT1  = 1;
 171   1              IT0  = 1;               //中断0下将沿触发
 172   1              EA=1;           
 173   1      }
 174          
 175          void State_Init(void)
 176          {
 177   1              Power_Pin               = 0;    
 178   1              LED_G = 1;
 179   1              Current_Key     = NO_KEY;
C51 COMPILER V7.50   MAIN                                                                  10/18/2005 14:20:32 PAGE 4   

 180   1              ReadKey_Timer   = 0;
 181   1              POWER_Status    = 0;
 182   1              Remote_value    = NO_KEY;
 183   1              Remote_Key      = NO_KEY;
 184   1              IR_KeyAct               = 0;
 185   1              Panel_Enable    = 0;
 186   1              Current_Remote_In = 0;
 187   1              Volume_Need_Record = 0;
 188   1              Panel_KeyAct  = 0;
 189   1              Key_Rebound   = 0;
 190   1              Save_Key      = NO_KEY;
 191   1              Key_LongTimer = 0;
 192   1              Key_ShortTimer = 0;
 193   1              Keypointer = NULL;
 194   1              FF_FB_Active = 0;
 195   1              Need_Button_up = 0;
 196   1              CLEAR_M62429_CLK2;
 197   1              CLEAR_M62429_DATA;
 198   1      
 199   1              Channel_Select = 1;//开机默认主通道
 200   1              Volume_Tune(0);
 201   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    452    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     36       3
   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 + -