📄 romsore.lst
字号:
208 //------------------------------------------------------------------------------------
209
210 //向某一地址处连续读一定数目的数据,入口为存数的指针,以及需要写入的数目,写入的eeprom首地址
211 void read_seq_chip1(uchar * readstore,uint rnum,uint radd)
212 {
213 1 uint i;
214 1 SCK1=1;
215 1 CS1=0;
216 1 sendbyte_chip1(EEROM_READ );//发送读命令
217 1 sendword_chip1(radd);//发送16位地址
218 1 for(i=0;i<rnum;i++)
219 1 {
220 2 *readstore=receivebyte_chip1();
221 2 readstore++;
222 2 }
223 1 CS1=1;
224 1 }
225 //------------------------------------------------------------------------------------
226
227 //向某一地址处连续写入一定数目的数据,入口为存数的指针,以及需要写入的数目,写入的eeprom首地址
228 void write_seq_chip1(uchar * writebuf,uchar writenum,uint writeadd)
229 {
230 1 while(writenum!=0)//说明没有写完
231 1 {
232 2 SCK1=0;
233 2 CS1=0;
234 2 sendbyte_chip1(EEROM_WREN);
235 2 CS1=1;
236 2
237 2 CS1=0;
238 2 sendbyte_chip1(EEROM_WRITE);//发送写命令
239 2 sendword_chip1(writeadd);//发送16位地址
240 2
241 2 do
C51 COMPILER V7.01 ROMSORE 09/23/2008 14:27:39 PAGE 5
242 2 {
243 3 sendbyte_chip1(*writebuf);
244 3 writebuf++;
245 3 writenum--;
246 3 writeadd++;
247 3 }
248 2 while(((writeadd&0x001F)!=0x0000)&&(writenum!=0));//没有到一页的结尾在该页中接着写
249 2
250 2 CS1=1;
251 2 checkend_chip1();
252 2 }
253 1
254 1 }
255 //------------------------------------------------------------------------------------
256 /*
257 void clear_alarm()
258 {
259 unsigned int clearnum,clearadd=0x0008;
260
261 alarm_num=wordread_chip2(ALAME_NUM_ADD);
262 clearnum=alarm_num*8;
263
264 while(clearnum!=0)
265 {
266 CS2=0;
267 sendbyte_chip2(EEROM_WREN);
268 CS2=1;
269
270 CS2=0;
271 sendbyte_chip2(EEROM_WRITE);
272 sendword_chip2(clearadd);
273 do
274 {
275 sendbyte_chip2(0x0000);
276 clearnum--;
277 clearadd++;
278 }
279 while(((clearadd&0x001F)!=0x0000)&&(clearnum!=0));
280 CS2=1;
281 checkend_chip2();
282 }
283 wordwrite_chip2(ALAME_NUM_ADD,0x0000);
284 wordwrite_chip2(ALAME_ADDPT_ADD,0x0000);//将数目和地址回0
285 }
286 */
287 //------------------------------------------------------------------------------------
288
289 /*
290 void main()
291 {
292 uchar i;
293 for(i=0;i<64;i++)
294 {
295 DATA_STORE[i]=i;
296 }
297 wrsr_cmd_chip1();
298 wordwrite_chip1(0x0005,0x1212);
299
300 //bytewrite_chip2(0x0000,10);
301 //bytewrite_chip2(0x0001,8);
302 //bytewrite_chip2(0x0002,7);
303 //i=byteread_chip1(0x0001);
C51 COMPILER V7.01 ROMSORE 09/23/2008 14:27:39 PAGE 6
304 //write_seq_chip1(DATA_STORE,32,0x0002);
305 //test4=wordread_chip1(0x0005);
306 //test1=byteread_chip1(0x0000);
307 //test2=byteread_chip1(0x0005);
308 //test3=byteread_chip2(0x0002);
309 read_seq_chip1(DATA_RECE,32,0x0000);
310 //senddatatorom(0x0000,32);
311 //getdatafromrom(0x0000,32);
312
313 while(1);
314 }
315 */
316 //------------------------------------------------------------------------------------
317
318 /*往起始地址为addr处读出num_read个数据到DATA_RECE[]中
319 void getdatafromrom(unsigned int addr,uchar num_read)
320 {
321 unsigned int addrl,addrh,i;
322 addrl=addr;//分离地址的高8位和低8位
323 addr>>=8;
324 addrh=addr;
325
326 CS=0; //发送读命令
327 sendbyte( EEROM_READ );
328
329 sendbyte(addrh);//发送16位地址
330 sendbyte(addrl);
331
332 for(i=0;i<num_read;i++)//读出num_read个数据到DATA_RECE[]
333 DATA_RECE[i]=receivebyte();
334 CS=1;
335 }//读数过程结束CS置1
336 //------------------------------------------------------------------------------------
337
338 //往起始地址为addr处写入数据,一次写入数据最大数不超过32
339 void senddatatorom(unsigned int addr,uchar num_send) //num_send最大为32,否则该页循环写入,破坏数据
340 {
341 uchar addrl,addrh,i;
342
343 addrl=addr;//分离地址的高8位和低8位
344 addr>>=8;
345 addrh=addr;
346
347 CS=0;
348 sendbyte(EEROM_WREN);//写使能
349 CS=1;
350
351 CS=0;
352 sendbyte(EEROM_WRITE);//发送写命令
353
354 sendbyte(addrh);//发送16位地址
355 sendbyte(addrl);
356
357 for(i=0;i<num_send;i++)//写入num_send个数据
358 sendbyte(DATA_STORE[i]);
359 CS=1;
360 wip_poll();
361 }
362 */
363 //------------------------------------------------------------------------------------
364
365 /*
C51 COMPILER V7.01 ROMSORE 09/23/2008 14:27:39 PAGE 7
366 void writeseq_chip1(uchar * writebuf,uchar writenum,uint writeadd)
367 {
368 uchar n;
369 for(n=0;n<writenum;n++)
370 {
371 CS1=0;
372 sendbyte_chip1(EEROM_WREN);
373 CS1=1;
374
375 CS1=0;
376 sendbyte_chip1(EEROM_WRITE);//发送写命令
377 sendword_chip1(writeadd);//发送16位地址
378 sendbyte_chip1(*writebuf);
379 writebuf++;
380 writeadd++;
381 CS1=1;
382 checkend_chip1();
383 }
384 }
385 */
386 //------------------------------------------------------------------------------------
387
388 //从某一地址处连续读出一定数目的数据,入口为存储数据的指针,以及需要读出的数目,读出的首地址
389 /*
390 void readseq_chip1(uchar * readbuf,uchar readnum,uint readadd)
391 {
392 uchar rsn,rdat;
393 for(rsn=0;rsn<readnum;rsn++)
394 {
395 CS1=0;
396 sendbyte_chip1(EEROM_READ ); //发送读命令
397 sendword_chip1(readadd);//发送16位地址
398
399 rdat=receivebyte_chip1();
400 *readbuf=rdat;
401 readbuf++;
402 readadd++;
403 CS1=1;
404 }
405 }
406 */
407 //------------------------------------------------------------------------------------
408
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 448 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 4 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 15
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 + -