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

📄 init.lst

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


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

line level    source

   1           #include <ATT7027.H>
   2           #include <MAIN.H>
   3           void LcdDrvInit(void);
   4           void L_default(void);
   5           void restoredata(void);
   6           void init_ATT7027(void);
   7           void load_Flash_write(void);
   8           unsigned char judg_flash_init(void);
   9           void init_RTC(void);
  10           unsigned char check_sum(unsigned char *p,unsigned char length);
  11           void UpdateLCD(unsigned long x);
  12            void init_time(void);
  13          code  unsigned char eeprominit[] = 
  14            {
  15            0x33, 0x33, 0x33, 
  16            0x11, 0x11, 0x11,  //  Meter serial number.  
  17            0x12, 0x34, 0x56, 0x00,  //eprom_program_password
  18            0x00, 0x16, 0x00, // Real meter constant = 1600 counts/kWh 
  19            0xaa, //0x00, 
  20            0x59, 0x23,              //eprom_autoread_date[2];  
  21            0x00, 0x96, 0x00,        //eprom_bureau_No
  22            0x88, 0x88, 0x88, 0x88,  //eprom_clear_password 
  23            0xff, 0xff, 0x06,         //eprom_display_select
  24            0x00, 0x00,              //eprom_program_degree
  25          
  26            0x00, 0x00, 0x00, 0x00,
  27            0xaa, 
  28            0x00, 0x00, 0x00, 0x00,
  29            0xca,         
  30            0x11, 0x12, 0x13, 0x14,   //eprom_back_real_energy       
  31          
  32            0x55, 0x44, 0x33, 0x22,
  33            0xaa, 
  34            0x21, 0x22, 0x23, 0x24,
  35            0x22,                      
  36           //0x00, 0x00, 0x00,         //eprom_ActivePeakLevel[3];
  37            0x00,                     //eprom_period_number[1]; 
  38             0x00, 0x00, 0x00, 0x00,//eprom_clear_time[3];
  39           //eprom_verify_time_25day;   
  40             0x00, 0x00, 0x00, 0x00,//eprom_program_time[4];
  41             0x00, 0x00, 0x00, 0x00,//eprom_max_address[48]; 
  42             0x00, 0x00, 0x00, 0x00,
  43             0x00, 0x00, 0x00, 0x00,
  44             0x00, 0x00, 0x00, 0x00,
  45             0x00, 0x00, 0x00, 0x00,
  46             0x00, 0x00, 0x00, 0x00,
  47             0x00, 0x00, 0x00, 0x00,
  48             0x00, 0x00, 0x00, 0x00,
  49             0x00, 0x00, 0x00, 0x00,
  50             0x00, 0x00, 0x00, 0x00,
  51             0x00, 0x00, 0x00, 0x00,
  52             0x00, 0x00, 0x00, 0x00,   
  53             0x00, 0x00, 0x00, 0x00, 0x00,// eprom_energy_day[40];
  54             0x00, 0x00, 0x00, 0x00, 0x00,
  55             0x00, 0x00, 0x00, 0x00, 0x00,
C51 COMPILER V7.20   INIT                                                                  04/14/2007 11:59:52 PAGE 2   

  56             0x00, 0x00, 0x00, 0x00, 0x00,
  57             0x00, 0x00, 0x00, 0x00, 0x00,
  58             0x00, 0x00, 0x00, 0x00, 0x00,
  59             0x00, 0x00, 0x00, 0x00, 0x00, 
  60             0x00, 0x00, 0x00, 0x00, 0x00,      
  61             0x40, 0x70, 0x05, 0x0a, 0x06 //eprom_energy_address[5];
  62            };
  63          
  64          
  65          void LcdDrvInit(void)
  66          {
  67   1      CLCDCFG=0x3f;//将PA、PB、PC口配置成LCD输出
  68   1      CP02CFG=0x00;//将P0口配置成GPIO,P2口配置成UART0、UART1、LVDIN、SF、PF、QF
  69   1      KEYIE=0x00;//将P1口配置为GPIO口,不产生按键中断,采用查询方式获得按键信息
  70   1      CP3CFG=0x0a;//将P3.2配置成GPIO,P3.3配置成/INT1,其它口线为GPIO,允许UART1口的发送通讯Tx1进行38k调制
  71   1      TCON|=0x04;//将/INT1配置成下降沿触发
  72   1      CSUPDC&=0xdb;//OPEN LCD AND TPS,NOT OPEN IIC
  73   1      CSUPDC|=0x08;//CLOSE LVD
  74   1      LCDCR=0x00;//在系统被复位以后,LCD的状态是:COM0、COM1、COM2、COM3都被使用
  75   1                                                              //对比度选择最大对比度,快速充电时间为1/32个FLCD周期,快
  76   1      LVDCON=0xc0;//将LVD配置成检测LVDIN管脚
  77   1      }
  78          
  79           void init_ATT7027(void)
  80           {
  81   1       Flash_Read_ATT7027(OFFSET_OF(EEPROM_DATA,Active_Power_Gain_GP1), &g_CommBuffer[0],OFFSET_OF(EEPROM_DATA,A
             -ctive_Power_Gain_GP1)-OFFSET_OF(EEPROM_DATA,EMU_Krms_Rms));
  82   1       WriteCALATT7027(0x41,&g_CommBuffer[0],OFFSET_OF(EEPROM_DATA,Active_Power_Gain_GP1)-OFFSET_OF(EEPROM_DATA,
             -EMU_Krms_Rms)); 
  83   1       }
  84           void init_RTC(void)
  85           {
  86   1          EA=0;
  87   1              BWPR=0xC3;//使能写PMOD[1:0]操作
  88   1              BWPR=0x9B;//开启所有受保护位的写使能    
  89   1          CSECR=0x59;
  90   1              CMINR=0x30;
  91   1              CHOUR=0x12;
  92   1              CDAYR=0x10;
  93   1              CMTHR=0x04;
  94   1              CYEAR=0x07;
  95   1              CWKDR=0x02;
  96   1              BWPR=0xA8;//关闭所有受保护位和受保护寄存器的写使能
  97   1          //BWPR=0x9A;
  98   1       }
  99            void init_time(void)
 100           {
 101   1       TMOD=0x09;//将TIMER0为16位触的定为模
 102   1       CKCON=0x08; 
 103   1       TCON=0X10;
 104   1       TL1=0XF4;
 105   1       TH1=0XF4;
 106   1       TL0=0X00;
 107   1       TH0=0X01; 
 108   1       SCON1=0XC0;
 109   1       IE=0X82;
 110   1        }
 111          void UpdateLCD(unsigned long x)
 112          {
 113   1      unsigned char i;
 114   1        static const unsigned char LCDFont[] =
 115   1        {
C51 COMPILER V7.20   INIT                                                                  04/14/2007 11:59:52 PAGE 3   

 116   1              0x7D,           // 0
 117   1              0x60,           // 1
 118   1              0x3E,           // 2
 119   1              0x7A,           // 3
 120   1              0x63,           // 4
 121   1              0x5B,           // 5
 122   1              0x5F,           // 6
 123   1              0x70,           // 7
 124   1              0x7F,           // 8
 125   1              0x7B,           // 9
 126   1              0x77,           // A
 127   1              0x4F,           // B
 128   1              0x1D,           // C
 129   1              0x6E,           // D
 130   1              0x1F,           // E
 131   1              0x17            // F
 132   1        };
 133   1      
 134   1      for(i=4;i<=11;i++)
 135   1      {
 136   2        LADR=i*2-1;
 137   2        LDAT=(LCDFont[(x >>((11-i)*4)) & 0xf])&0xf; 
 138   2        LADR=i*2;
 139   2        LDAT=(LCDFont[(x >>((11-i)*4)) & 0xf]>>4)&0xf;
 140   2      }
 141   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    182    ----
   CONSTANT SIZE    =    154    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16       4
   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 + -