📄 ss_sweep.lst
字号:
900 5 last_line(1);
901 5 }
902 4 if(aa==1){//设置扫频频率的最大值
903 5 //Set_Display_Add(640);
904 5 //printf("max:");
905 5 last_line(2);
906 5 }
907 4 if(aa==2){//设置扫频频率的步长或者对数增长的系数
908 5 //Set_Display_Add(768);
909 5 if(bb==0){
910 6 last_line(3);
911 6 }
912 5 if(bb==1){
913 6 last_line(4);
914 6 }
915 5 }
916 4 value_index=0;
917 4 SetFSM=wait_key;
918 4 break;
919 4 case wait_key: //处理键盘输入
920 4 if(key_pressed==ON)
921 4 {
922 5 switch(key_no)
923 5 {
C51 COMPILER V8.02 SS_SWEEP 12/07/2007 16:59:16 PAGE 16
924 6 case key0:
925 6 case key1:
926 6 case key2:
927 6 case key3:
928 6 case key4:
929 6 case key5:
930 6 case key6:
931 6 case key7:
932 6 case key8:
933 6 case key9:
934 6 if(value_index<5)
935 6 {
936 7 value[value_index]=key_no;
937 7 value_index++;
938 7 }
939 6 break;
940 6 case key_enter://每按一下setup,aa加1,以进行不同的处理
941 6 aa=(aa+1)%4;
942 6 SetFSM=exit_setup;
943 6 break;
944 6 case key_xuan1://选择模式2,对数模式
945 6 bb=1;
946 6 //Set_Display_Add(480);
947 6 //printf("mod 2");
948 6 log_lin(0);
949 6 delayMs(100);
950 6 SetFSM=enter_num;
951 6 break;
952 6 case key_xuan2://选择模式1,线性模式
953 6 bb=0;
954 6 //Set_Display_Add(480);
955 6 //printf("mod 1");
956 6 log_lin(1);
957 6 delayMs(100);
958 6 SetFSM=enter_num;
959 6 break;
960 6
961 6 default: break;
962 6 }
963 5 refresh_led();
964 5 key_pressed=OFF;
965 5 }
966 4 break;
967 4 case exit_setup: Freq_temp=value[0];
968 4 Freq=Freq_temp*10000;
969 4 Freq_temp=value[1];
970 4 Freq=Freq+Freq_temp*1000;
971 4 Freq_temp=value[2];
972 4 Freq=Freq+Freq_temp*100;
973 4 Freq_temp=value[3];
974 4 Freq=Freq+Freq_temp*10;
975 4 Freq=Freq+value[4];
976 4 if(aa==1) {//设置并显示最小频率
977 5 minF=Freq;
978 5 /* Set_Display_Add(576);
979 5 putchar(value[0]+0x30);
980 5 putchar(value[1]+0x30);
981 5 putchar(value[2]+0x30);
982 5 putchar(value[3]+0x30);
983 5 putchar(value[4]+0x30);*/
984 5 show_fre(1);
985 5 refresh_led();
C51 COMPILER V8.02 SS_SWEEP 12/07/2007 16:59:16 PAGE 17
986 5 SetFSM=enter_num;
987 5 }
988 4 if(aa==2) {//设置并显示最大频率
989 5 maxF=Freq;
990 5 /* Set_Display_Add(704);
991 5 putchar(value[0]+0x30);
992 5 putchar(value[1]+0x30);
993 5 putchar(value[2]+0x30);
994 5 putchar(value[3]+0x30);
995 5 putchar(value[4]+0x30);*/
996 5 show_fre(2);
997 5 refresh_led();
998 5 SetFSM=enter_num;
999 5 }
1000 4 if(aa==3) {//设置并显示步长或者系数
1001 5 step=Freq;
1002 5 /* Set_Display_Add(832);
1003 5 putchar(value[0]+0x30);
1004 5 putchar(value[1]+0x30);
1005 5 putchar(value[2]+0x30);
1006 5 putchar(value[3]+0x30);
1007 5 putchar(value[4]+0x30);*/
1008 5 show_fre(3);
1009 5 refresh_led();
1010 5 SetFSM=scan_start;
1011 5 }
1012 4 break;
1013 4 case scan_start:
1014 4 delayMs(10);//延时函数,每隔100ms频率改变一次
1015 4 if(FreqS>maxF) FreqS=minF;//设置扫频的最小值
1016 4 SetPhase(FreqS&0x7fff); //设置频率,以模32k循环
1017 4 if(bb==0){
1018 5 FreqS+=step;
1019 5 //Set_Display_Add(480);
1020 5 //printf("mod 1");
1021 5 log_lin(1);//线性模式
1022 5 } //频率步进step,linear freq change
1023 4 if(bb==1){
1024 5 FreqS=(FreqS+1)*step/100;
1025 5 //Set_Display_Add(480);
1026 5 //printf("mod 2");
1027 5 log_lin(0);//对数模式
1028 5 }//频率对数变化
1029 4 if(key_pressed==ON){
1030 5 switch(key_no){
1031 6 case key_enter: MainSM=Setup;//结束扫频,进入正常波形的设置状态
1032 6 sweep_amp(2);
1033 6 log_lin(2);
1034 6 last_line(0);
1035 6 SetCMD((++mod)&0x00);//模波形式设置,在本实验中实际上没有用处
1036 6 display_mod((mod)&0x00);
1037 6 // cls();
1038 6 break;
1039 6 case key_mod: MainSM=Start;
1040 6 sweep_amp(2);
1041 6 log_lin(2);
1042 6 last_line(0);
1043 6 //SetCMD((++mod)&0x00);//模波形式设置,在本实验中实际上没有用处
1044 6 display_mod((mod)&0x01);
1045 6 //refresh_led();
1046 6 break;
1047 6
C51 COMPILER V8.02 SS_SWEEP 12/07/2007 16:59:16 PAGE 18
1048 6 default: SetFSM=scan_start;
1049 6 }
1050 5 key_pressed=OFF;
1051 5 }
1052 4 break;
1053 4 }
1054 3 break;
1055 3 ////////////////////////////////////////////////////////////////////////
1056 3 case Setup:
1057 3 // cls();
1058 3 /*Set_Display_Add(428);
1059 3 printf("SETUP");*/
1060 3 set_up(0);//设置
1061 3 SetFSM=0;
1062 3 aa=0;
1063 3 switch(SetupSM)
1064 3 {
1065 4 case enter_num: value[0]=0;
1066 4 value[1]=0;
1067 4 value[2]=0;
1068 4 value[3]=0;
1069 4 value[4]=0;
1070 4 /* Set_Display_Add(560);
1071 4 putchar(value[0]+0x30);
1072 4 putchar(value[1]+0x30);
1073 4 putchar(value[2]+0x30);
1074 4 putchar(value[3]+0x30);
1075 4 putchar(value[4]+0x30);*/
1076 4 show_fre(0);
1077 4 value_index=0;
1078 4 SetupSM=wait_key;
1079 4 break;
1080 4 case wait_key: if(key_pressed==ON)
1081 4 {
1082 5 switch(key_no)
1083 5 {
1084 6 case key0:
1085 6 case key1:
1086 6 case key2:
1087 6 case key3:
1088 6 case key4:
1089 6 case key5:
1090 6 case key6:
1091 6 case key7:
1092 6 case key8:
1093 6 case key9:
1094 6 if(value_index<5)
1095 6 {
1096 7 value[value_index]=key_no;
1097 7 value_index++;
1098 7 }
1099 6
1100 6 break;
1101 6 case key_enter:SetupSM=exit_setup;
1102 6 break;
1103 6 case key_mod: SetCMD((++mod)&0x03);
1104 6 display_mod((mod)&0x03);
1105 6 refresh_led();
1106 6 break;
1107 6 default: break;
1108 6 }
1109 5 /* Set_Display_Add(560);
C51 COMPILER V8.02 SS_SWEEP 12/07/2007 16:59:16 PAGE 19
1110 5 putchar(value[0]+0x30);
1111 5 putchar(value[1]+0x30);
1112 5 putchar(value[2]+0x30);
1113 5 putchar(value[3]+0x30);
1114 5 putchar(value[4]+0x30);*/
1115 5 show_fre(0);
1116 5 refresh_led();
1117 5 key_pressed=OFF;
1118 5 }
1119 4
1120 4 break;
1121 4 case exit_setup: Freq_temp=value[0];
1122 4 Fr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -