?? 123.lst
字號:
270 3 }
271 2 if(key==14) //-
272 2 {
273 3 addflag=2;
274 3 flag=2;
275 3 }
276 2
277 2 if((key==15)&&(flag==1)) //做加法的結(jié)果
278 2 {
279 3 do
280 3 {
281 4 show(end);
282 4 addflag=3;
283 4 P2=0x0f;
284 4 temp=P2;
285 4 }
286 3 while(temp!=0x0f);
287 3 addflag=3;
288 3 if(buf1[1]<=9&&buf2[1]<=9)
289 3 {
290 4 end[0]=buf1[0]+buf2[0];
291 4 end[1]=buf1[1]+buf2[1];
292 4 end[2]=buf1[2]+buf2[2];
293 4 end[3]=buf1[3]+buf2[3];
294 4 if(end[0]>9) //有進(jìn)位的整數(shù)加法
295 4 {
296 5 end[0]=end[0]-10;
297 5 end[1]++;
298 5 }
299 4 if(end[1]>9)
300 4 {
301 5 end[1]=end[1]-10;
302 5 end[2]++;
303 5 }
C51 COMPILER V8.02 123 12/30/2008 11:30:31 PAGE 6
304 4 if(end[2]>9)
305 4 {
306 5 end[2]=end[2]-10;
307 5 end[3]++;
308 5 }
309 4 if(end[3]>9)
310 4 {
311 5 for(i=0;i<4;i++)
312 5 buf1[i]=0;
313 5 }
314 4 }
315 3
316 3 else if(buf1[1]>9&&buf2[1]>9) //兩個帶小數(shù)點的計算
317 3 {
318 4 end[0]=buf1[0]+buf2[0];
319 4 end[1]=buf1[1]+buf2[1]-10;
320 4 end[2]=buf1[2]+buf2[2];
321 4 end[3]=buf1[3]+buf2[3];
322 4 if(end[0]>9) //考慮進(jìn)位
323 4 {
324 5 end[0]=end[0]-10;
325 5 end[1]++;
326 5 }
327 4 if(end[1]>19)
328 4 {
329 5 end[1]=end[1]-10;
330 5 end[2]++;
331 5 }
332 4 if(end[2]>9)
333 4 {
334 5 end[2]=end[2]-10;
335 5 end[3]++;
336 5 }
337 4 if(end[3]>9)
338 4 {
339 5 for(i=0;i<4;i++)
340 5 buf1[i]=0;
341 5 }
342 4 }
343 3 else if(buf1[1]>9&&buf2[0]<=9&&buf2[1]<=9) //帶小數(shù)點的和整數(shù)相加
344 3 { end[0]=buf1[0];
345 4 end[1]=buf1[1]+buf2[0];
346 4 end[2]=buf1[2]+buf2[1];
347 4 end[3]=buf1[3]+buf2[2];
348 4 if(end[1]>19)
349 4 {
350 5 end[1]=end[1]-10;
351 5 end[2]++;
352 5 }
353 4 if(end[2]>9)
354 4 {
355 5 end[2]=end[2]-10;
356 5 end[3]++;
357 5 }
358 4 if(end[3]>9)
359 4 {
360 5 for(i=0;i<4;i++)
361 5 buf1[i]=0;
362 5 }
363 4 }
364 3 else if(buf1[0]<=9&&buf1[1]<=9&&buf2[1]>9) //整數(shù)和帶小數(shù)點的相加
365 3 { end[0]=buf2[0];
C51 COMPILER V8.02 123 12/30/2008 11:30:31 PAGE 7
366 4 end[1]=buf1[0]+buf2[1];
367 4 end[2]=buf1[1]+buf2[2];
368 4 end[3]=buf1[2]+buf2[3];
369 4 if(end[1]>19)
370 4 {
371 5 end[1]=end[1]-10;
372 5 end[2]++;
373 5 }
374 4 if(end[2]>9)
375 4 {
376 5 end[2]=end[2]-10;
377 5 end[3]++;
378 5 }
379 4 if(end[3]>9)
380 4 {
381 5 for(i=0;i<4;i++)
382 5 buf1[i]=0;
383 5 }
384 4 }
385 3 //EEPROM_Eares(0x2000);
386 3 //EEPROM_Write(0x2000+end[5],end[5]); //起始地址為2000
387 3 }
388 2
389 2 if((key==15)&&(flag==2)) //做減法的結(jié)果
390 2 {
391 3 do
392 3 {
393 4 show(end);
394 4 addflag=3;
395 4 P2=0x0f;
396 4 temp=P2;
397 4 }
398 3 while (temp!=0x0f);
399 3 addflag=3;
400 3 if(buf1[1]<=9&&buf2[1]<=9)
401 3 {
402 4 end[0]=buf1[0]-buf2[0];
403 4 end[1]=buf1[1]-buf2[1];
404 4 end[2]=buf1[2]-buf2[2];
405 4 end[3]=buf1[3]-buf2[3];
406 4 if(buf1[0]<buf2[0]) //考慮有借位的兩整數(shù)相減
407 4 {
408 5 end[0]=buf1[0]+(10-buf2[0]);
409 5 end[1]--;
410 5 buf1[1]--;
411 5 }
412 4 if(buf1[1]<buf2[1])
413 4 {
414 5 end[1]=buf1[1]+(10-buf2[1]);
415 5 end[2]--;
416 5 buf1[2]--;
417 5 }
418 4 if(buf1[2]<buf2[2])
419 4 {
420 5 end[2]=buf1[2]+(10-buf2[2]);
421 5 end[3]--;
422 5 }
423 4 if(buf1[3]<buf2[3])
424 4 {
425 5 for(i=0;i<4;i++)
426 5 buf1[i]=0;
427 5 }
C51 COMPILER V8.02 123 12/30/2008 11:30:31 PAGE 8
428 4 }
429 3 else if (buf1[1]>9&&buf2[1]>9) //考慮兩帶小數(shù)點的兩數(shù)相減
430 3 {
431 4 end[0]=buf1[0]-buf2[0];
432 4 end[1]=buf1[1]-buf2[1]+10;
433 4 end[2]=buf1[2]-buf2[2];
434 4 end[3]=buf1[3]-buf2[3];
435 4 if(buf1[0]<buf2[0])
436 4 {
437 5 end[0]=buf1[0]+(10-buf2[0]);
438 5 end[1]--;
439 5 buf1[1]--;
440 5 }
441 4 if(buf1[1]<buf2[1])
442 4 {
443 5 end[1]=buf1[1]+20-buf2[1];
444 5 end[2]--;
445 5 buf1[2]--;
446 5 }
447 4 if(buf1[2]<buf2[2])
448 4 {
449 5 end[2]=buf1[2]+(10-buf2[2]);
450 5 end[3]--;
451 5 }
452 4 if(buf1[3]<buf2[3])
453 4 {
454 5 for(i=0;i<4;i++)
455 5 buf1[i]=0;
456 5 }
457 4 }
458 3 else if(buf1[1]>9&&buf2[0]<=9&&buf2[1]<=9) //帶小數(shù)點的減整數(shù)
459 3 {
460 4 end[0]=buf1[0];
461 4 end[1]=buf1[1]-buf2[0];
462 4 end[2]=buf1[2]-buf2[1];
463 4 end[3]=buf1[3]-buf2[2];
464 4 if(buf1[1]<buf2[0]+10)
465 4 {
466 5 end[1]=buf1[1]+10-buf2[0];
467 5 end[2]--;
468 5 buf1[2]--;
469 5 }
470 4 if(buf1[2]<buf2[1])
471 4 {
472 5 end[2]=buf1[2]+10-buf2[1];
473 5 end[3]--;
474 5 }
475 4 if(buf1[3]<buf1[3])
476 4 {
477 5 for(i=0;i<4;i++)
478 5 buf1[i]=0;
479 5 }
480 4 }
481 3 else if(buf1[0]<=9&&buf1[1]<=9&&buf2[1]>9) //整數(shù)減帶小數(shù)點的
482 3 {
483 4 end[0]=10-buf2[0];
484 4 end[1]=buf1[0]-buf2[1]+19;
485 4 end[2]=buf1[1]-buf2[2];
486 4 end[3]=buf1[2]-buf2[3];
487 4 if(buf1[0]<buf2[1]-10)
488 4 {
489 5 end[1]=buf1[0]+29-buf2[1];
C51 COMPILER V8.02 123 12/30/2008 11:30:31 PAGE 9
490 5 end[2]--;
491 5 buf1[1]--;
492 5 }
493 4 if(buf1[1]<buf2[2])
494 4 {
495 5 end[2]=buf1[1]+10-buf2[1];
496 5 end[3]--;
497 5 }
498 4 if(buf1[3]<buf1[3])
499 4 {
500 5 for(i=0;i<4;i++)
501 5 buf1[i]=0;
502 5 }
503 4 }
504 3 // EEPROM_Eares(0x2000);
505 3 // EEPROM_Write(0x2000+end[5],end[5]);
506 3 }
507 2
508 2 if(key==12||key==16) //清0鍵
509 2 {
510 3 for(i=0;i<4;i++)
511 3 buf1[i]=0;
512 3 for(i=0;i<4;i++)
513 3 buf2[i]=0;
514 3 for(i=0;i<4;i++)
515 3 end[i]=0;
516 3 addflag=1;
517 3 }
518 2 /* while(1)
519 2 {
520 2 EEPROM_Write(0x2000,end[5]);//起始地址為2000
521 2 ISP_DATA=0;
522 2 dat=0;
523 2 dat=EEPROM_Read(0x200+end[5]-1); //一個扇區(qū)與下一個扇區(qū)相差200
524 2 show(end);
525 2 } */
526 2 }
527 1 }
528
529
530
531
532
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1665 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -