main.lst
来自「该程序是基于c8051f020的平台」· LST 代码 · 共 651 行 · 第 1/3 页
LST
651 行
414 3 ShowChar(1,1,char5);
415 3 ShowChar(1,5,aa);
416 3 }
417 2 if(dat=='2')
418 2 {
419 3 if((vb_2-ve)>350)
420 3 {
421 4 Clr_Char_Area();
422 4 ShowChar(2,1,char6);
423 4 ShowChar(2,6,"Si");
424 4 }
425 3 else
426 3 {
427 4 Clr_Char_Area();
C51 COMPILER V8.02 MAIN 07/09/2007 08:18:06 PAGE 8
428 4 ShowChar(2,1,char6);
429 4 ShowChar(2,6,"Zhe");
430 4 }
431 3 }
432 2
433 2 if(dat=='3')
434 2 {
435 3 Clr_Char_Area();
436 3 Clr_Graph_Area();
437 3 a=0;
438 3 m=0;
439 3 p=0;
440 3 /*描绘输出特性曲线*/
441 3 dac0832_1=0x00;
442 3 dac0832_2=0x00;
443 3 for(i=0;i<4;i++ )
444 3 {
445 4 a=0;
446 4 n=0;
447 4 dac0832_1=char7[p];
448 4 p=p+15;
449 4 for(l=0;l<200;l++)
450 4 {
451 5 delay(200,200);
452 5 }
453 4 delay(100,10);
454 4 for(j=0;j<64;j++)
455 4 {
456 5 dac0832_2=n;
457 5 n=n+4;
458 5 AMX0CF = 0x00;
459 5 AMX0SL = 0x03;
460 5 delay(10,10);
461 5 PGA();
462 5 ve=AD*655L;
463 5 ve=ve/1000;
464 5 ve=ve*64;
465 5 kk[a]=ve/1000;
466 5
467 5 if(a==0)
468 5 {
469 6 Locat_Dot(a,kk[a]);
470 6 }
471 5 else
472 5 {
473 6 m=kk[a]-kk[a-1];
474 6 if(m>1)
475 6 {
476 7 for(k=0;k<m;k++)
477 7 {
478 8 Locat_Dot(a-1,kk[a-1]+k);
479 8 }
480 7
481 7 }
482 6 else if(m<-1)
483 6 {
484 7 for(k=m;k<0;k++)
485 7 {
486 8 Locat_Dot(a-1,kk[a-1]+k);
487 8 }
488 7 }
489 6 Locat_Dot(a,kk[a]);
C51 COMPILER V8.02 MAIN 07/09/2007 08:18:06 PAGE 9
490 6 }
491 5 a++;
492 5 }
493 4
494 4 }
495 3 /* 描绘输入特性曲线*/
496 3 for(i=0;i<64;i++)
497 3 {
498 4 kk[i]=0;
499 4 }
500 3 dac0832_1=0x00; //控制Ib的电流
501 3 dac0832_2=0x00; //控制VCE的电压
502 3 for(i=0;i<29; )
503 3 {
504 4 a=0;
505 4 dac0832_2=i;
506 4 i=i+10;
507 4 for(j=0;j<64;j++)
508 4 {
509 5 dac0832_1=char7[j];
510 5 for(l=0;l<150;l++)
511 5 {
512 6 delay(200,200);
513 6 }
514 5 AMX0CF = 0x00;
515 5 AMX0SL = 0x00; //选用通道AIN0测试vb
516 5 delay(10,10);
517 5 adc_change();
518 5 delay(10,10);
519 5 vb=ADc*655L;
520 5 vb=vb/1000.0*64;
521 5 vb=vb/2000;
522 5 kk1[a]=vb;
523 5
524 5
525 5
526 5 AMX0CF = 0x00;
527 5 AMX0SL = 0x05; //选用通道AIN5测试vb_2
528 5 adc_change();
529 5 vb_2=ADc*655L;
530 5 vb_2=vb_2/1000;
531 5
532 5
533 5 AMX0CF = 0x00;
534 5 AMX0SL = 0x02; //选用通道AIN2测试vc
535 5 delay(10,10);
536 5 PGA();
537 5 vc = AD*655L;
538 5 vc = vc/1000;
539 5
540 5 AMX0CF = 0x00;
541 5 AMX0SL = 0x03; //选用通道AIN3测试ve
542 5 delay(10,10);
543 5 adc_change();
544 5 ve=ADc*753;
545 5 ve=ve/1000;
546 5
547 5 vbe = vb_2-ve;
548 5 vbe = vbe*64;
549 5 vbe=vbe/1400+64;
550 5 kk[a]=vbe;
551 5
C51 COMPILER V8.02 MAIN 07/09/2007 08:18:06 PAGE 10
552 5 a++;
553 5 }
554 4 for(k=0;k<63;k++)
555 4 {
556 5 Line(kk[k],kk1[k],kk[k+1],kk1[k+1]);
557 5 }
558 4
559 4 }
560 3
561 3 }
562 2
563 2 if(dat=='4')
564 2 {
565 3
566 3 }
567 2 }
568 1 }
569 /*void error(void) //输入错误时提示操作
570 {
571 enable=0;
572 ShowChar(2,1,char4);
573
574 }*/
575 void adc_change()
576 {
577 1 AD0INT = 0;
578 1 AD0BUSY = 1;
579 1 while(AD0INT==0)
580 1 delay(10,10);
581 1 ADc=ADC0H*256;
582 1 ADc|=ADC0L;
583 1
584 1
585 1 }
586 void PGA()
587 {
588 1 uchar h;
589 1 dac0832=0x01;
590 1 h=dac0832;
591 1 delay(10,10);
592 1 adc_change();
593 1 while(ADc<0xaaf)
594 1 {
595 2 h=h+4;
596 2 dac0832=h;
597 2 delay(10,10);
598 2 adc_change();
599 2 if(h>250)
600 2 break;
601 2 }
602 1
603 1 AD=ADc*255L;
604 1 AD=AD/h;
605 1
606 1
607 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2050 ----
CONSTANT SIZE = 2245 ----
XDATA SIZE = 128 ----
C51 COMPILER V8.02 MAIN 07/09/2007 08:18:06 PAGE 11
PDATA SIZE = ---- ----
DATA SIZE = 45 11
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?