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

📄 main.lst

📁 att7025是一个单相SOC的单心片电表方案
💻 LST
字号:
C51 COMPILER V7.20   MAIN                                                                  04/14/2007 11:59:55 PAGE 1   


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

line level    source

   1          #include <ATT7027.H>
   2          #include <MAIN.H>
   3           xdata struct Emu_Parameter Emu_Parameter;
   4           xdata struct Emu_Parameter_change Emu_Parameter_change;
   5           xdata struct real_energy real_energy;
   6           xdata struct meter_para meter_para;
   7           data unsigned char  aa[2]={0x0f,0x01};
   8           xdata unsigned char  g_CommBuffer[50];
   9           unsigned char NUM;
  10           unsigned int timea;
  11          
  12          void main (void) //_at_ 0x100 
  13          {
  14   1      //unsigned char i;
  15   1          //i = temp2;
  16   1        SP =0x7f;//程序堆栈指针
  17   1        CKCON&= 0xf8;//定时器/计数器时钟控制Timer 使用clk/4 作为时钟
  18   1              BWPR=0xC3       ;//使能写PMOD[1:0]操作
  19   1              BWPR=0x9B;//开启所有受保护位的写使能
  20   1              CBORCFG|=0x80;//开启高频晶振电路功能
  21   1              BWPR=0xA8;//关闭所有受保护位和受保护寄存器的写使能
  22   1       
  23   1              while((SYSSCR&0x80) != 0x80)//LOCK=1表示高频晶振已经稳定
  24   1              {;}     
  25   1              BWPR=0xC3;//使能写PMOD[1:0]操作
  26   1              BWPR=0x9B;//开启所有受保护位的写使能    
  27   1              CCLKCFG |=0x02;//                       ;//SYSCK1=1,fsys=fpri
  28   1              CFMCFG|=0xE4;//                 ;BROM EN可以调用Monitor Rom中程序,             
  29   1      //      BWPR=0xA8;//关闭所有受保护位和受保护寄存器的写使能
  30   1         LcdDrvInit();
  31   1              BWPR=0xA8;//关闭所有受保护位和受保护寄存器的写使能
  32   1              //usart_init();
  33   1              //interrupt_init();
  34   1      //      init_ATT7027();
  35   1      //      load_Flash_write();
  36   1      //      CLRALL_LCD_BUF(); 
  37   1         init_time();   
  38   1              EA      =1 ;
  39   1              Autobaud();
  40   1              EICON|= 0x20;//     ;BREAK PONIT IE 
  41   1              while(1)
  42   1              { 
  43   2      /****************************************************/
  44   2      //把这个放到WHILE(1)能编译过前面就不能进行仿真了
  45   2      
  46   2              if(RI == 1)
  47   2                      {
  48   3                              Cmd_parser();
  49   3            RI = 0 ;
  50   3          }  
  51   2       
  52   2       /* for(i=1;i<=24;i++)
  53   2        {
  54   2        LADR=i;
  55   2        LDAT=0xf ;
C51 COMPILER V7.20   MAIN                                                                  04/14/2007 11:59:55 PAGE 2   

  56   2         }   */
  57   2      /****************************************************/
  58   2       //RTC_CAL_TEMP();
  59   2       EMU_Parameter_change1();
  60   2        switch(NUM)
  61   2        {
  62   3          case 1: // Time
  63   3           UpdateLCD(0X11111111);
  64   3            break;
  65   3          case 2: // Date
  66   3           UpdateLCD(0X22222222);
  67   3            break;
  68   3          case 3: // Energy
  69   3           UpdateLCD(0X33333333);
  70   3            break;
  71   3          case 4: // PeakLevel
  72   3          UpdateLCD(0X44444444);
  73   3            break;
  74   3          case 5: //Time
  75   3          UpdateLCD(0X55555555);
  76   3            break;
  77   3          case 6: // Energy
  78   3          UpdateLCD(0X66666666);
  79   3            break;
  80   3          case 7: // Energy
  81   3          UpdateLCD(0X777777771);
  82   3            break;
  83   3          case 8: // Energy
  84   3          UpdateLCD(0X88888888);
  85   3            break;
  86   3          case 9: // Energy
  87   3          UpdateLCD(0X99999999);
  88   3            break;
  89   3         default:
  90   3            UpdateLCD(0XFFFFFFFF);
  91   3                   break;
  92   3      
  93   3        }      
  94   2      
  95   2       if(timea>100)
  96   2       {
  97   3         NUM++;
  98   3         timea=0;
  99   3         }
 100   2         if(NUM>7)
 101   2         NUM=1;
 102   2       //communication_dl645();
 103   2      // DisplayManager();
 104   2      /****************************************************/
 105   2       /* for (i=0;i<60;i++)
 106   2        {
 107   2        Pulse[i]=i;
 108   2        }*/
 109   2      /****************************************************/
 110   2      /****************************************************/
 111   2      //在C中嵌入汇编后能编译过但不能进行仿真
 112   2      /* #pragma asm
 113   2       mov a,#30h
 114   2       #pragma endasm*/
 115   2      /***************************************************/ 
 116   2       // Delay(2);
 117   2       // Delay(2);   
C51 COMPILER V7.20   MAIN                                                                  04/14/2007 11:59:55 PAGE 3   

 118   2       /* if(power_ctive<550)
 119   2                      {
 120   2                      real_energy.relay_flag |=bitflag_current        ;       
 121   2          if((real_energy.relay_flag &=bitflag_command_off)&&(!(real_energy.relay_flag &=bitflag_fact_off)))
 122   2                { 
 123   2                CTR_ON=0;
 124   2            CTR_OFF=1; 
 125   2                        real_energy.relay_flag |=bitflag_fact_off     ;                               
 126   2                        }
 127   2                       else if(!(real_energy.relay_flag &=bitflag_command_off)&&(real_energy.relay_flag &=bitflag_fact_off))
 128   2                              {
 129   2                        CTR_ON=1;
 130   2            CTR_OFF=0;
 131   2                        real_energy.relay_flag &=~bitflag_fact_off    ;               
 132   2                              } 
 133   2                      }
 134   2               else   {
 135   2                          real_energy.relay_flag &=~bitflag_current;  
 136   2                          //flag1 &=~bitflag_fact_off;
 137   2                          }*/
 138   2       /* if((flag1&bitflag_EXLVI))
 139   2         {
 140   2           // DI();
 141   2              display_index=5;
 142   2          //    display(); 
 143   2             Power_fail();     
 144   2           do
 145   2            {P1.2=0;
 146   2                 HALT();            
 147   2                 if(WTIF!=0)                        
 148   2                 ;// CalcCalendar();         
 149   2                } while(EXLVI==0);          
 150   2            if(EXLVI)
 151   2            
 152   2            POWER_On();  
 153   2          //  goto aa;
 154   2           // delay_ms(4); 
 155   2                
 156   2         }        
 157   2        if(WTIF!=0)
 158   2          { 
 159   2           CalcCalendar();     
 160   2          display_time++;
 161   2           display();    
 162   2          }
 163   2         if(!(flag3&bitflag_Play))
 164   2          {
 165   2           if(Flag_ICPort)                                                 
 166   2           ;// _ICardType();                                               
 167   2          }
 168   2         if (current_time.second)
 169   2                minute_0_deal=0;        
 170   2                      //整分,做时段切换
 171   2       if(current_time.second == 0)  //per minute operation
 172   2         {
 173   2         if (!minute_0_deal)
 174   2          {
 175   2      
 176   2                           }   // 整点,per 1 hour operation
 177   2                    }
 178   2                  }    
 179   2         }
C51 COMPILER V7.20   MAIN                                                                  04/14/2007 11:59:55 PAGE 4   

 180   2         WDTE=0xac; 
 181   2         energy_add();
 182   2         dl645(); */  
 183   2       } 
 184   1      
 185   1      }
 186          
 187          timer0(void) interrupt 1   using 2
 188           {
 189   1        timea++; 
 190   1        }
 191          
 192          //void Int_isr() interrupt 6 
 193          //{
 194          //      (Monitor_isr);
 195          //}//
 196          
 197          /*void Delay( unsigned int num)
 198          {
 199              while(num >0)
 200              {
 201                  num --;
 202              }
 203          } */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    263    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    250    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5    ----
   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 + -