eepromcopy.lst
来自「一个非常好的微处理器烧录EEPROM的C++ 原代码项目文件,直接可用,一拖一」· LST 代码 · 共 307 行 · 第 1/2 页
LST
307 行
130 2 case EEPROM_24C08:
131 2 Eeprom.wPages_Eeprom=EEPROM_PAGES_24C08;
132 2 Eeprom.bBytes_PerPage=PAGEBYTES_24C16;
133 2 break;
134 2 case EEPROM_24C16:
135 2 Eeprom.wPages_Eeprom=EEPROM_PAGES_24C16;
136 2 Eeprom.bBytes_PerPage=PAGEBYTES_24C16;
137 2 break;
138 2 case EEPROM_24C32:
139 2 Eeprom.wPages_Eeprom=EEPROM_PAGES_24C32;
140 2 Eeprom.bBytes_PerPage=PAGEBYTES_24C64;
141 2 break;
142 2 case EEPROM_24C64:
143 2 Eeprom.wPages_Eeprom=EEPROM_PAGES_24C64;
144 2 Eeprom.bBytes_PerPage=PAGEBYTES_24C64;
145 2 break;
146 2 case EEPROM_24C128:
147 2 Eeprom.wPages_Eeprom=EEPROM_PAGES_24C128;
148 2 Eeprom.bBytes_PerPage=PAGEBYTES_24C256;
149 2 break;
150 2 case EEPROM_24C256:
151 2 Eeprom.wPages_Eeprom=EEPROM_PAGES_24C256;
152 2 Eeprom.bBytes_PerPage=PAGEBYTES_24C256;
153 2 break;
154 2 case EEPROM_24C512:
155 2 Eeprom.wPages_Eeprom=EEPROM_PAGES_24C512;
156 2 Eeprom.bBytes_PerPage=PAGEBYTES_24C512;
157 2 break;
158 2 default:
159 2 Eeprom.wPages_Eeprom=EEPROM_PAGES_24C08;
160 2 Eeprom.bBytes_PerPage=PAGEBYTES_24C16;
161 2 break;
162 2 }
163 1 TurnOnOff_Light(LIGHT_YELLOW);
164 1 wDelayTime=100;
165 1 while (wDelayTime);
166 1 for (Eeprom_Pages=0;Eeprom_Pages<Eeprom.wPages_Eeprom;Eeprom_Pages++)
167 1 {
C51 COMPILER V7.50 EEPROMCOPY 07/08/2006 11:59:22 PAGE 4
168 2 TurnOnOff_Light(LIGHT_YELLOW);
169 2 SetIIC_Type(IIC_AT24CXX_R);
170 2 ptGpBuffer=GpBuffer.bytes;
171 2 if (EepromRead(Eeprom_Pages*Eeprom.bBytes_PerPage,Eeprom.bBytes_PerPage))
172 2 {
173 3 Operate_Flag=OPERATE_ER;
174 3 break;
175 3 }
176 2 TurnOnOff_Light(LIGHT_OFF);
177 2 SetIIC_Type(IIC_AT24CXX_D);
178 2 ptGpBuffer=GpBuffer.bytes;
179 2 if (EepromWrite(Eeprom_Pages*Eeprom.bBytes_PerPage,Eeprom.bBytes_PerPage))
180 2 {
181 3 Operate_Flag=OPERATE_ER;
182 3 break;
183 3 }
184 2 }
185 1 if (Eeprom_Pages==Eeprom.wPages_Eeprom)
186 1 Operate_Flag=OPERATE_OK;
187 1 }
188
189 void Operate_Eeprom(void)
190 {
191 1 if (Chek_Chip(3))
192 1 Operate_Flag=OPERATE_ER;
193 1 else
194 1 Copy_Eeprom();
195 1 if (Operate_Flag==OPERATE_OK)
196 1 TurnOnOff_Light(LIGHT_GREEN);
197 1 else
198 1 TurnOnOff_Light(LIGHT_RED);
199 1 wDelayTime=500;
200 1 while (wDelayTime);
201 1 Key_Func=KEY_NO_KEY;
202 1 while (1)
203 1 {
204 2 Chek_key();
205 2 if (Key_Func==KEY_NO_KEY)
206 2 break;
207 2 }
208 1 }
209 void main(void)
210 {
211 1 BYTE Loop_Counter,Chip_Stau_R,Chip_Stau_D;
212 1 InitMcu();
213 1 TurnOnOff_Light(LIGHT_OFF);
214 1 wDelayTime=1000;
215 1 while (wDelayTime);
216 1 Operate_Flag=OPERATE_NO;
217 1 wDemoDelay=400;
218 1 Loop_Counter=0;
219 1 while (1)
220 1 {
221 2 Chek_key();
222 2 if (Key_Func==KEY_START)
223 2 Operate_Eeprom();
224 2 switch (Operate_Flag)
225 2 {
226 3 case OPERATE_NO:
227 3 if (wDemoDelay==0)
228 3 {
229 4 Chip_Stau_R=Chek_Chip(1);
C51 COMPILER V7.50 EEPROMCOPY 07/08/2006 11:59:22 PAGE 5
230 4 Chip_Stau_D=Chek_Chip(2);
231 4 if (Chip_Stau_R&&Chip_Stau_D)
232 4 Loop_Counter=INC(Loop_Counter,0,2);
233 4 else if (Chip_Stau_R&&!Chip_Stau_D)
234 4 Loop_Counter=INC(Loop_Counter,1,2);
235 4 else if (!Chip_Stau_R&&Chip_Stau_D)
236 4 Loop_Counter=INCx(Loop_Counter,0,2,2);
237 4 else
238 4 Loop_Counter=LIGHT_YELLOW;
239 4 TurnOnOff_Light(Loop_Counter);
240 4 wDemoDelay=400;
241 4 }
242 3 break;
243 3 case OPERATE_ER:
244 3 if (Chek_Chip(3))
245 3 Operate_Flag=OPERATE_NO;
246 3 else
247 3 {
248 4 if (wDemoDelay==0)
249 4 {
250 5 Loop_Counter=INCx(Loop_Counter,0,3,3);
251 5 TurnOnOff_Light(Loop_Counter);
252 5 wDemoDelay=400;
253 5 }
254 4 }
255 3 break;
256 3 case OPERATE_OK:
257 3 if (Chek_Chip(3))
258 3 Operate_Flag=OPERATE_NO;
259 3 break;
260 3 }
261 2 }
262 1 }
263
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 975 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 137 5
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?