📄 mainc.lst
字号:
452 5 if(dd==1)//按下失真度键处理
453 5 {
454 6 P_Sum=0;
455 6 sum_temp=0;
456 6 MM=0;
457 6 NN=0;
458 6 for(i=0;i<hh;i++)
459 6 MM=MAXIMUM(MM,data_MaxPow[i]);
460 6 for(i=0;i<hh;i++)
461 6 if(data_MaxPow[i]==MM)
462 6 NN=i;
463 6
464 6 for(i=0;i<Number/2;i++)
465 6 P_Sum=P_Sum+ram_v_m[i];//求整个频谱上所有功率
466 6
467 6 for(i=0;i<10;i++)
468 6 sum_temp= sum_temp+ram_v_m[index_Maxf[NN]+i];
469 6 for(i=0;i<10;i++)
470 6 sum_temp= sum_temp+ram_v_m[index_Maxf[NN]-i-1];//求单个频点周围功率
471 6 n_Szd=(P_Sum-sum_temp)/P_Sum;//计算失真度
472 6 n_Szd=sqrt(n_Szd)*100;
473 6 }
474 5 /////////求频谱分量功率////////////////////
475 5 sum_temp=0;
476 5 for(i=0;i<Number/2;i++)
477 5 sum_temp=sum_temp+ram_v_m[i];//得到频谱功率总和
478 5 for(i=0;i<Number/2;i++)
479 5 ram_v_I[i]=PP/sum_temp*ram_v_m[i];
480 5 /////////频谱处理:归一化,供LCD显示频谱////////////////////
481 5 sum_temp=0;
482 5 for(i=0;i<Number/2;i++)
483 5 sum_temp=MAXIMUM(sum_temp,ram_v_m[i]);
484 5 for(i=0;i<Number/2;i++)
485 5 ram_v_m[i]=ram_v_m[i]/sum_temp*64;
486 5
487 5 ////////////////////////////////////////////////////////////
C51 COMPILER V7.06 MAINC 09/06/2007 21:49:07 PAGE 9
488 5 for(i=0;i<hh;i++)
489 5 {
490 6 sum_temp=0;
491 6 for(k=0;k<hh;k++)
492 6 if(sum_temp<P_Sub[k])
493 6 {
494 7 abc=k;
495 7 sum_temp=P_Sub[k];
496 7 }
497 6 abcd[i]= data_Maxf[abc];
498 6
499 6 aaa[i]=sum_temp;
500 6 P_Sub[abc]=0;
501 6 }
502 5 for(i=0;i<hh;i++)
503 5 {
504 6 P_Sub[i]=aaa[i];
505 6 data_Maxf[i]=abcd[i];
506 6 }
507 5
508 5 //2. 调用数据处理和显示部分 如:
509 5 //但如果运行完的时间小于5MS则加延时使其达5MS
510 5 for(v=0;v<3;v++)
511 5 for(k=0;k<5;k++){
512 6 lcd_disp_text(3+k,4+v,0);
513 6 }
514 5 for(v=0;v<3;v++)
515 5 for(k=0;k<3;k++){
516 6 lcd_disp_text(11+k,4+v,0);
517 6 }
518 5 dealdata(PP,1,3); //LCD显示总功率
519 5 dealdata(data_Maxf[0],2,2); //LCD显示频点
520 5 dealdata(data_Maxf[1],3,2); //LCD显示频点
521 5 dealdata(P_Sub[0],2,3); //LCD显示频点1功率分量
522 5 dealdata(P_Sub[1],3,3); //LCD显示频点2功率分量
523 5
524 5 if(dd==1){
525 6 lcd_disp1616(0,32,8); lcd_disp1616(2,32,9); lcd_disp1616(4,32,10);
526 6 lcd_disp1608(6,32,9); dealdata(n_Szd,5,3);
527 6 } //LCD显示失真度
528 5
529 5 if(key_flag == 1) n=0;
530 5 }
531 4 }
532 3 ////////////////////////////////////////////////////////////////////
533 3 else if(key_value==0x0f) n=0; //暂停
534 3 ///////////////////////////////////////////////////////////////////
535 3 else if(key_value==0x00){ //显示频谱
536 4 lcd_initial(); //液晶初始化
537 4 lcd_clear_ram();
538 4
539 4 for(i=0;i<128;i++)
540 4 for(j=0;j<=ram_v_m[i];j++){
541 5 showdot(i,j);
542 5 }
543 4 }
544 3 ////////////////////////////////////////////////////////////////////
545 3 else if(key_value==0x01){ //左移
546 4 p++;
547 4 if(p<=24){
548 5 lcd_initial(); //液晶初始化
549 5 lcd_clear_ram();
C51 COMPILER V7.06 MAINC 09/06/2007 21:49:07 PAGE 10
550 5 for(i=0;i<128;i++)
551 5 for(j=0;j<=ram_v_m[i+p*16];j++){
552 6 showdot(i,j);
553 6 }
554 5 m=128+p*16;
555 5 }
556 4 }
557 3 ////////////////////////////////////////////////////////
558 3 else if(key_value==0x02){ //右移
559 4 r++;
560 4 if(p>=0){
561 5 lcd_initial(); //液晶初始化
562 5 lcd_clear_ram();
563 5 for(i=0;i<128;i++)
564 5 for(j=0;j<=ram_v_m[m-r*16];j++){
565 6 showdot(i,j);
566 6 }
567 5 }
568 4 }
569 3 //////////////////////////////////////////////////////////
570 3
571 3 else if(key_value==0x0e){ //回放显示
572 4
573 4 lcd_initial(); //液晶初始化
574 4 lcd_clear_ram();
575 4
576 4 for(i=0;i<4;i++){
577 5 lcd_disp_string(0,i*2,"f :",5);dealdata(data_Maxf[i],i*2,0);
578 5 lcd_disp_text(1,i*2,i+0x10);
579 5 lcd_disp_string(0,i*2+1,"p :",5);dealdata(P_Sub[i],i*2+1,1);
580 5 lcd_disp_text(1,i*2+1,i+0x10);
581 5 }
582 4 q=0;
583 4 }
584 3 /////////////////////////////////////////////////////////
585 3 else if(key_value==0x0d){ //下一屏
586 4 q++;
587 4 if(q<5){
588 5 lcd_initial(); //液晶初始化
589 5 lcd_clear_ram();
590 5 for(i=0;i<4;i++){
591 6 lcd_disp_string(0,i*2,"f :",5);dealdata(data_Maxf[i+q*4],i*2,0);
592 6
593 6 if(i+q*4<10) lcd_disp_text(1,i*2,i+q*4+0x10);
594 6
595 6 else if(i+q*4<20 && i+q*4>=10) {
596 7 lcd_disp_text(1,i*2,(i+q*4)/10+0x10);
597 7 lcd_disp_text(2,i*2,(i+q*4)%10+0x10);
598 7 }
599 6
600 6 lcd_disp_string(0,i*2+1,"p :",5);dealdata(P_Sub[i+q*4],i*2+1,1);
601 6
602 6 if(i+q*4<10) lcd_disp_text(1,i*2+1,i+q*4+0x10);
603 6 else if(i+q*4<20 && i+q*4>=10) {
604 7 lcd_disp_text(1,i*2+1,(i+q*4)/10+0x10);
605 7 lcd_disp_text(2,i*2+1,(i+q*4)%10+0x10);
606 7 }
607 6 }
608 5 }
609 4 else if(q>=5){
610 5 lcd_initial(); //液晶初始化
611 5 lcd_clear_ram();
C51 COMPILER V7.06 MAINC 09/06/2007 21:49:07 PAGE 11
612 5 lcd_disp1616(2,32,5);
613 5 lcd_disp1616(4,32,6);///显示已完毕
614 5 lcd_disp1616(6,32,7);
615 5 }
616 4 }
617 3 //////////////////////////////////////
618 3 else if(key_value==0x07) { //判断周期性
619 4
620 4 if(ff==1){Number=256;index_Number=8;}
621 4 else {Number=1024;index_Number=10;}
622 4 AMX0SL =P2&0x07;
623 4 for(i=0;i< Number;i++){
624 5 AD0INT = 0; //AD中断标志清0
625 5 AD0BUSY = 1; //启动AD
626 5 while(AD0INT ==0); //等待转换完毕
627 5 adresult[i] = ADC0H * 0X100 + ADC0L;
628 5 for(j=0;j<12;j++) ;
629 5 }
630 4
631 4 for(i=0;i<Number;i++)
632 4 ram_v_m[i]=adresult[i];
633 4 sum_temp=0;
634 4 for(i=0;i<Number;i++)
635 4 sum_temp=sum_temp+ram_v_m[i]/Number; //求平均
636 4 for(i=0;i<Number;i++)
637 4 ram_v_m[i]=ram_v_m[i]-sum_temp;//降低直流电流
638 4 sum_temp=0;
639 4 for(i=0;i<Number;i++)
640 4 sum_temp=MAXIMUM(sum_temp,abs(ram_v_m[i]));//求最大值
641 4 for(i=0;i<Number;i++)
642 4 ram_v_m[i]=ram_v_m[i]/sum_temp; //数据归一化
643 4 //////////周期性判断//////////////////
644 4 Time=zqpd(ram_v_m);
645 4 lcd_initial(); //液晶初始化
646 4 lcd_clear_ram();
647 4
648 4 if(Time==0){
649 5 lcd_disp1616(0,0,13);lcd_disp1616(2,0,11);lcd_disp1616(4,0,12);
650 5 }
651 4 else if(Time!=0){
652 5 lcd_disp1616(0,0,11);lcd_disp1616(2,0,12);//显示周期Time数值
653 5 lcd_disp_string(5,0,":",1);
654 5 dealdata(Time,2,1);
655 5 }
656 4
657 4 }
658 3
659 3 }
660 2 }
661 1 }
*** WARNING C280 IN LINE 301 OF MAINC.C: 'zq_Flag': unreferenced local variable
662
663
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 21360 ----
CONSTANT SIZE = 1951 ----
XDATA SIZE = 32597 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
C51 COMPILER V7.06 MAINC 09/06/2007 21:49:07 PAGE 12
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -