📄 rom.lst
字号:
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE ROM
OBJECT MODULE PLACED IN rom.OBJ
COMPILER INVOKED BY: g:\Keil\C51\BIN\C51.EXE rom.c OPTIMIZE(4,SPEED) DEBUG OBJECTEXTEND
line level source
1 #include "head.c"
2 /*
3 sbit ROM_CS=P0^1;//ROM CS
4 sbit ROM_CLE=P3^2;//ROM COMMAND SELECT PIN
5 sbit ROM_ALE=P3^0;//ROM ADDRESS SELECT PIN
6 sbit ROM_BUSY=P3^4;//--ROM R/B PIN
7 #define ROM_DATAPORT P2;//ROM PORT
8 sbit ROM_WR=P3^5;//WRITE
9 sbit ROM_RD=P3^7;//READ
10 */
11 rom_send_com(unsigned char value)
12 {
13 1
14 1 ROM_RD=1;
15 1 ROM_CS=0;
16 1 ROM_CLE=1;//COMMAND
17 1 ROM_ALE=0;
18 1 ROM_DATAPORT=value;
19 1 ROM_WR=0;
20 1 ROM_WR=1;
21 1 ROM_CS=1;
22 1
23 1 //ROM_ALE=1;
24 1 }
25
26 rom_send_add(unsigned char value)
27 {
28 1 ROM_RD=1;
29 1
30 1 ROM_ALE=1;//ADDRESS
31 1 ROM_CLE=0;
32 1 ROM_CS=0;
33 1 ROM_DATAPORT=value;
34 1 ROM_WR=0;
35 1 ROM_WR=1;
36 1 ROM_CS=1;
37 1
38 1 }
39
40 rom_send_value(unsigned char value)
41 {
42 1 ROM_CLE=0; //value
43 1 ROM_ALE=0;//
44 1 ROM_RD=1;
45 1 ROM_CS=0;
46 1 ROM_DATAPORT=value;
47 1 ROM_WR=0;
48 1 ROM_WR=1;
49 1 ROM_CS=1;
50 1 //ROM_ALE=1;
51 1 }
52
53
54
55 void rom_check_busy() //NOT BUSY RETURN
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 2
56 {
57 1 unsigned char value;
58 1 value=0;
59 1 while((value&0x40)==0)//is busy? yes-->check again
60 1 {//read the status
61 2 rom_send_com(0x70);//get status
62 2 ROM_DATAPORT=0xff;
63 2
64 2 ROM_CLE=0; //read the data?!
65 2 ROM_ALE=0;//
66 2 ROM_WR=1;
67 2 ROM_CS=0;
68 2 ROM_RD=0;
69 2 value=ROM_DATAPORT;
70 2 ROM_RD=1;
71 2 ROM_CS=1;
72 2 //delay(1);
73 2 }
74 1 //ROM_ALE=1;
75 1 }
76
77
78
79 //-------------->Erase whole block data<--------------------
80 unsigned char rom_erase_block(unsigned int add)
81 {
82 1 unsigned char value;
83 1 rom_send_com(0x60);
84 1 /*
85 1 rom_send_add(add>>8);
86 1 rom_send_add((unsigned char )add);
87 1 */
88 1
89 1 rom_send_add((add&0x7)<<5);
90 1 rom_send_add(add>>3);
91 1
92 1 rom_send_com(0xd0);
93 1
94 1 //--busy check!
95 1 ROM_BUSY=1;
96 1 while(ROM_BUSY==0);
97 1
98 1 //value=0;
99 1 //while((value&0x40)==0)//is busy? yes-->check again
100 1 {//read the status
101 2 rom_send_com(0x70);//get status
102 2 ROM_DATAPORT=0xff;
103 2
104 2 ROM_CLE=0; //read the data?!
105 2 ROM_ALE=0;
106 2 ROM_WR=1;
107 2 ROM_CS=0;
108 2 ROM_RD=0;
109 2 value=ROM_DATAPORT;
110 2 ROM_RD=1;
111 2 ROM_CS=1;
112 2 delay(10);
113 2 }
114 1 //ROM_ALE=1;
115 1 /*
116 1 value=0;
117 1 rom_send_com(0x70);//get status
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 3
118 1 ROM_DATAPORT=0xff;
119 1
120 1 ROM_CLE=0; //read the data?!
121 1 ROM_ALE=0;
122 1 ROM_WR=1;
123 1 ROM_CS=0;
124 1 ROM_RD=0;
125 1 value=ROM_DATAPORT;
126 1 ROM_RD=1;
127 1 ROM_CS=1;
128 1 delay(10);
129 1 EA=1;
130 1 printc(value);
131 1 EA=0;
132 1 */
133 1 if((value&1)==0)
134 1 return 0;//erase ok
135 1 else
136 1 return 1;//erase error
137 1
138 1
139 1 }
140
141
142 //-------------->write whole block data------<--------------
143 void rom_write_block_start(unsigned char addcol,unsigned int addrow)
144 {
145 1 rom_send_com(0x80);//program
146 1 rom_send_add(addcol);
147 1
148 1 rom_send_add((unsigned char)addrow);
149 1 rom_send_add(addrow>>8);
150 1
151 1 ROM_BUSY=1;
152 1 while(ROM_BUSY==0);
153 1 ROM_BUSY=1;
154 1 while(ROM_BUSY==0);
155 1
156 1 //----after this can write data to flash.............---
157 1 }
158
159
160
161 unsigned char rom_write_block_end()
162 {
163 1 //unsigned char value;
164 1 rom_send_com(0x10);
165 1
166 1 //--busy check!
167 1
168 1 ROM_BUSY=1;
169 1 while(ROM_BUSY==0);
170 1 ROM_BUSY=1;
171 1 while(ROM_BUSY==0);
172 1
173 1 /*
174 1 value=0;
175 1 while((value&0x40)==0)//is busy? yes-->check again
176 1 {//read the status
177 1 rom_send_com(0x70);//get status
178 1 ROM_DATAPORT=0xff;
179 1 ROM_CLE=0; //read the data?!
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 4
180 1 ROM_ALE=0;//
181 1 ROM_WR=1;
182 1 ROM_CS=0;
183 1 ROM_RD=0;
184 1 value=ROM_DATAPORT;
185 1 ROM_RD=1;
186 1 ROM_CS=1;
187 1 ROM_ALE=1;
188 1 //delay(10);
189 1
190 1 }
191 1
192 1 if((value&1)==0)
193 1 return 0;//erase ok
194 1 else
195 1 return 1;//erase error
196 1 */
197 1 return 0;
198 1 }
199
200
201 void rom_read_block_start(unsigned char addcol,unsigned int addrow)
202 {
203 1 //unsigned char value;
204 1 rom_send_com(0x00);
205 1
206 1 rom_send_add(addcol);
207 1
208 1 rom_send_add((unsigned char)addrow);
209 1
210 1 //rom_send_add(addrow>>8);
211 1 ROM_CLE=0;
212 1 ROM_ALE=1;//ADDRESS
213 1 ROM_RD=1;
214 1 ROM_CS=0;
215 1 ROM_DATAPORT=addrow>>8;
216 1 ROM_WR=0;
217 1 ROM_WR=1;
218 1
219 1
220 1 ROM_BUSY=1;
221 1 while(ROM_BUSY==0);
222 1 ROM_BUSY=1;
223 1 while(ROM_BUSY==0);
224 1 //delay(1);
225 1 ROM_CS=1;
226 1
227 1
228 1
229 1 }
230 /*
231 void rom_read_write_lcm()//
232 {
233 unsigned char value;
234 unsigned int k,k2;
235
236 ROM_CLE=0; //read the data?!
237 ROM_ALE=0;
238 ROM_WR=1;
239 ROM_CS=0;
240 LCM_CS=0;
241 LCM_RS=1;
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 5
242 W_C(0x22);
243 for(k2=1800;k2>0;k2--)//动画的总的帧数,10/s,total 1800 frame,3分
244 for(k=32767;k>0;k--)
245 {
246 ROM_RD=0;
247 value=ROM_DATAPORT;//data read from flash
248 ROM_RD=1;
249 LCM_DATAPORT=value;//data write to lcm-----------xxxx-------------------------
250 LCM_WR=0;//write data to lcm---------------------xxxx-------------------------
251 LCM_WR=1;//write data to lcm---------------------xxxx-------------------------
252 }
253
254 ROM_CS=1;
255
256
257 }
258 */
259
260
261
262
263 void putenter()
264 {
265 1 SBUF=0x0d;//send num
266 1 while(0==TI);
267 1 TI=0;
268 1 SBUF=0x0a;//send num
269 1 while(0==TI);
270 1 TI=0;
271 1
272 1 }
273
274 void putok()
275 {
276 1 SBUF=79;//send num
277 1 while(0==TI);
278 1 TI=0;
279 1 SBUF=75;//send num
280 1 while(0==TI);
281 1 TI=0;
282 1
283 1
284 1 SBUF=45;//send num
285 1 while(0==TI);
286 1 TI=0;
287 1 SBUF=45;//send num
288 1 while(0==TI);
289 1 TI=0;
290 1 SBUF=62;//send num
291 1 while(0==TI);
292 1 TI=0;
293 1
294 1 }
295
296
297
298 void puterror()
299 {//ERROR-->
300 1 SBUF=69;//send num
301 1 while(0==TI);
302 1 TI=0;
303 1 SBUF=82;//send num
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 6
304 1 while(0==TI);
305 1 TI=0;
306 1 SBUF=82;//send num
307 1 while(0==TI);
308 1 TI=0;
309 1 SBUF=79;//send num
310 1 while(0==TI);
311 1 TI=0;
312 1 SBUF=82;//send num
313 1 while(0==TI);
314 1 TI=0;
315 1
316 1 SBUF=45;//send num
317 1 while(0==TI);
318 1 TI=0;
319 1 SBUF=45;//send num
320 1 while(0==TI);
321 1 TI=0;
322 1 SBUF=62;//send num
323 1 while(0==TI);
324 1 TI=0;
325 1
326 1 }
327
328 void putspace()
329 {
330 1 SBUF=0x20;//send num
331 1 while(0==TI);
332 1 TI=0;
333 1
334 1 }
335 void putnum(unsigned char value)
336 {
337 1 SBUF=value|0x30;//send num
338 1 while(0==TI);
339 1 TI=0;
340 1 }
341
342 void printi(unsigned int value )
343 {
344 1 unsigned int a;
345 1 unsigned char temp;
346 1 a=value;
347 1
348 1 if(a>=10000)
349 1 {
350 2 temp=a/10000;
351 2 putnum(temp);
352 2 a=a%10000;
353 2 }
354 1
355 1
356 1
357 1 if(a>=1000)
358 1 {
359 2 temp=a/1000;
360 2 putnum(temp);
361 2 a=a%1000;
362 2 }else if(value>=10000)
363 1 putnum(0);
364 1
365 1 //---------------->>>>
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 7
366 1 if(a>=100)
367 1 {
368 2 temp=a/100;
369 2 putnum(temp);
370 2 a=a%100;
371 2 }else if(value>=1000)
372 1 putnum(0);
373 1
374 1 //---------------->>>>>>
375 1 if(a>=10)
376 1 {
377 2 temp=a/10;
378 2 putnum(temp);
379 2 a=a%10;
380 2 }else if(value>=100)
381 1 putnum(0);
382 1
383 1
384 1 if(a>0)
385 1 {
386 2 temp=a;
387 2 putnum(temp);
388 2 }
389 1 else
390 1 putnum(0);
391 1
392 1 putspace();
393 1 }
394
395
396
397 void printc(unsigned char value )
398 {
399 1 unsigned char a;
400 1 unsigned char temp;
401 1 a=value;
402 1 //---------------->>>>
403 1 if(a>=100)
404 1 {
405 2 temp=a/100;
406 2 putnum(temp);
407 2 a=a%100;
408 2 }
409 1
410 1 //---------------->>>>>>
411 1 if(a>=10)
412 1 {
413 2 temp=a/10;
414 2 putnum(temp);
415 2 a=a%10;
416 2 }else if(value>=100)
417 1 {
418 2 putnum(0);
419 2 }
420 1
421 1 if(a>0)
422 1 {
423 2 temp=a;
424 2 putnum(temp);
425 2 }
426 1 else
427 1 putnum(0);
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 8
428 1
429 1
430 1 putspace();
431 1 }
432
433
434 unsigned char rom_readID() //read the rom ID
435 {
436 1 unsigned char value;
437 1 //rom_send_com(0x90);
438 1
439 1 ROM_RD=1;
440 1 ROM_CS=0;
441 1 ROM_CLE=1;//COMMAND
442 1 ROM_ALE=0;
443 1 ROM_DATAPORT=0x90;
444 1 ROM_WR=0;
445 1 ROM_WR=1;
446 1
447 1
448 1 //rom_send_add(0x00);
449 1
450 1
451 1 ROM_CLE=0;
452 1 ROM_ALE=1;
453 1 ROM_DATAPORT=00;
454 1 ROM_WR=0;
455 1 ROM_WR=1;
456 1
457 1
458 1
459 1 ROM_CLE=0; //read the data?!
460 1 ROM_ALE=0;//
461 1
462 1 ROM_DATAPORT=0xff;
463 1
464 1 ROM_RD=0;
465 1 value=ROM_DATAPORT;
466 1 ROM_RD=1;
467 1 ROM_CS=1;
468 1
469 1 ROM_ALE=1;
470 1 return value;
471 1
472 1 }
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
C51 COMPILER V7.50 ROM 05/29/2007 09:06:46 PAGE 9
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 795 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 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 + -