📄 init.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 + -