3586C-01.txt

HP 3586C Selective Level Meter

10     !2023/04/25 기본 리딩
20     CLEAR SCREEN
30     OPTION BASE 1
40     INTEGER I
50     DIM Data$[20],Header$[1]
60     GOSUB Fileopen
70     ASSIGN @Slm TO 724
80     OUTPUT @File;"No.,Time[s],Freq[Hz],Level[dBm]"
90     T0=TIMEDATE
100 ! GOSUB Measure0 ! spectrum analyzer
110    GOSUB Measure1! wideband, =power meter
120    STOP
130 Measure0:      !spectrum analyzer
140    No=0
150    FOR Freq=200 TO 2000 STEP 1
160      No=No+1
170      OUTPUT @Slm;"FR ";Freq;"Hz"
180      TRIGGER @Slm
190      GOSUB Reading
200      T=DROUND((TIMEDATE-T0)*1.00000001,3)
210      PRINT "No=";No;", T=";T;"s, Freq=";Freq;"Hz";", Level=";Level;"dBm"
220      OUTPUT @File;No,T,Freq,Level
230    NEXT Freq
240    RETURN
250 Measure1:      !wideband, power meter
260    ASSIGN @Fg TO 710  !HP33120
270    No=0
280    Freq_start=200
290    Freq_stop=1.5E+7
300    Nop=201
310    LOOP
320      No=No+1
330      K=(Freq_stop/Freq_start)^(1/(Nop-1))
340      Freq=Freq_start*K^(No-1)
350      Freq=DROUND(Freq,4) !유효자리 4
360    EXIT IF Freq>Freq_stop
370      OUTPUT @Fg;"FREQ";Freq
380      TRIGGER @Slm
390      GOSUB Reading
400      T=DROUND((TIMEDATE-T0)*1.00000001,3)
410      PRINT "No=";No;", T=";T;"s, Freq=";Freq;"Hz";", Level=";Level;"dBm"
420      OUTPUT @File;No,T,Freq,Level
430    END LOOP 
440    RETURN
450 Reading:  !
460    ENTER @Slm;Data$
470    Header$=Data$[1;1]
480    SELECT Header$
490    CASE "O"
500      Level=+999
510    CASE "N"
520      Level=VAL(Data$[2;10])
530    CASE "U"
540      Level=-999
550    CASE ELSE 
560      PRINT "unknown header. stop"
570      STOP
580    END SELECT 
590    RETURN
600 Fileopen:  !
610    DIM Filename$[20],Dhms$[8]
620    Time$=TIME$(TIMEDATE)
630    Date$=DATE$(TIMEDATE)
640    Dhms$=Date$[1;2]&Time$[1;2]&Time$[4;2]&Time$[7;2]
650    Filename$=Dhms$&".txt"
660    CREATE Filename$,1
670    ASSIGN @File TO Filename$;FORMAT ON
680    RETURN
690    END