home *** CD-ROM | disk | FTP | other *** search
- 100 REM "UMATCH"
- 110 CLS :KEY OFF :PRINT TAB(25);"**** MICROSTRIP MATCHING ****" :PRINT
- 120 REM J. LEV -1973; REVISED by V.HEESEN -1986
- 130 PRINT "THIS PROGRAM CALCULATES THE PARAMETERS OF A MICROSTRIP TRANSMISSION";
- 140 PRINT "LINE REQUIRED TO MATCH TWO REAL OR COMPLEX LOADS." :PRINT :PRINT
- 150 PRINT "ENTER: 1 if SOURCE IMPEDANCE is REAL."
- 160 PRINT " 2 if LOAD IMPEDANCE is REAL.
- 170 PRINT " 3 if SOURCE and LOAD are COMPLEX."
- 180 BEEP :INPUT " ";A
- 190 IF A<1 OR A>3 THEN 320
- 200 IF A=3 THEN PRINT :BEEP :INPUT " REAL TERM (R) ";B
- 210 IF A=3 THEN PRINT :BEEP :INPUT " IMAGINARY TERM (+-J) ";C
- 220 IF A=1 THEN PRINT :BEEP :INPUT " SOURCE IMPEDANCE (ohms) ";B
- 230 IF A=2 THEN PRINT :BEEP :INPUT " LOAD IMPEDANCE (ohms) ";B
- 240 PRINT :PRINT " (OTHER TERMINAL IMPEDANCE)"
- 250 PRINT :BEEP :INPUT " REAL TERM (R) ";D
- 260 PRINT :BEEP :INPUT " IMAGINARY TERM (+-J) ";E
- 270 PRINT :BEEP :INPUT " FREQ. (Mhz) ";F :F=F*10^-3
- 280 PRINT :BEEP :INPUT " BOARD Er ";G
- 290 PRINT :BEEP :INPUT " BOARD Thk.(mils) ";H :H=H*10^-3
- 300 PRINT :BEEP :INPUT " COPPER Thk.(mils)";I :I=I*10^-3
- 310 GOTO 340
- 320 PRINT :PRINT :PRINT "DATA ENTRY ERROR! PLEASE REENTER DATA." :PRINT
- 330 GOTO 150
- 340 PRINT :PRINT
- 350 CLS :PRINT " *** DATA ENTERED ***"
- 360 PRINT
- 370 IF A<>1 THEN 570
- 380 IF C<>0 THEN 320
- 390 PRINT " SOURCE IMPEDANCE = ",B,"ohms"
- 400 IF E>=0 THEN 420
- 410 IF E<0 THEN 440
- 420 PRINT " IMPEDANCE NUMBER 1 = ",D;"+J";ABS(E),"ohms"
- 430 GOTO 510
- 440 PRINT " IMPEDANCE NUMBER 1 = ",D;"-J";ABS(E),"ohms"
- 450 GOTO 510
- 460 IF E>=0 THEN 480
- 470 IF E<=0 THEN 500
- 480 PRINT " IMPEDANCE NUMBER 2 = ",D;"+J";ABS(E),"ohms"
- 490 GOTO 510
- 500 PRINT " IMPEDANCE NUMBER 2 = ",D;"-J";ABS(E),"ohms"
- 510 PRINT " FREQUENCY = ",F*10^3,"Mhz"
- 520 PRINT " DIELECTRIC CONSTANT = ",G
- 530 PRINT " SUBSTRATE THICKNESS = ",H*10^3,"mils"
- 540 PRINT " CONDUCTOR THICKNESS = ",I*10^3,"mils"
- 550 GOTO 690
- 560 IF C<>0 THEN 320
- 570 IF A=3 THEN 600
- 580 PRINT " LOAD IMPEDANCE = ",B,"ohms"
- 590 GOTO 460
- 600 IF E<0 THEN 630
- 610 PRINT " IMPEDANCE NUMBER 3 = ",D;"+J";ABS(E),"ohms"
- 620 GOTO 640
- 630 PRINT " IMPEDANCE NUMBER 3 = ",D;"-J";ABS(E),"ohms"
- 640 IF C<0 THEN 670
- 650 PRINT " IMPEDANCE NUMBER 4 = ",B;"+J";ABS(C),"ohms"
- 660 GOTO 510
- 670 PRINT " IMPEDANCE NUMBER 4 = ",B;"-J";ABS(C),"ohms"
- 680 GOTO 510
- 690 IF D-B=0 THEN 730
- 700 Y=((C*D+B*E)*(E+(((D-B)*(B*D-C*E))/((C*D)+(B*E)))-C))/(D-B)
- 710 IF Y<=0 THEN 730
- 720 GOTO 760
- 730 PRINT
- 740 PRINT "MICROSTRIP MATCH NOT POSSIBLE WITH DATA ENTERED!!!"
- 750 GOTO 1580
- 760 Z=SQR(Y)
- 770 PRINT
- 780 IF A=3 THEN 840
- 790 IF A=2 THEN 820
- 800 PRINT " *** INPUT NETWORK LINE PARAMETERS ***"
- 810 GOTO 850
- 820 PRINT " *** OUTPUT NETWORK LINE PARAMETERS ***"
- 830 GOTO 850
- 840 PRINT " *** INTERSTAGE NETWORK LINE PARAMETERS ***"
- 850 PRINT
- 860 PI=4*ATN(1)
- 870 X=Z*(D-B)
- 880 W=C*D-B*E
- 890 IF X=0 THEN 970
- 900 IF W=0 THEN 1020
- 910 R=ABS(X/W)
- 920 IF R>2^24 THEN 1020
- 930 Q=(ATN(X/W)*(180/PI))
- 940 IF W>0 THEN 1040
- 950 K=Q+((X/ABS(X))*180)
- 960 GOTO 1050
- 970 IF W=0 THEN 1050
- 980 IF W<0 THEN 1000
- 990 GOTO 910
- 1000 K=180
- 1010 GOTO 1050
- 1020 K=(X/ABS(X))*90
- 1030 GOTO 1050
- 1040 K=Q
- 1050 M=K/360
- 1060 IF M<0 THEN 1090
- 1070 N=M
- 1080 GOTO 1100
- 1090 N=.5 +M
- 1100 IF F=0 THEN 730
- 1110 O=11.803/F
- 1120 IF G<=0 THEN 730
- 1130 L1=(N*O)/SQR(G)
- 1140 IF H<=0 THEN 730
- 1150 IF I<=0 THEN 730
- 1160 P=0
- 1170 E1=(I/PI)*(LOG((2*H)/I)+1)
- 1180 T1=0
- 1190 T2=E1+T1
- 1200 P9=376.819437#*H
- 1210 E2=P9/(SQR(G)*T2*(1+1.735*G^(-7.240001E-02)*(T2/H)^(-.836)))
- 1220 D1=E2-Z
- 1230 IF P=1 THEN 1320
- 1240 IF P=2 THEN 1380
- 1250 IF P=3 THEN 1440
- 1260 IF D1<0 THEN 1290
- 1270 T1=T1+.01
- 1280 GOTO 1190
- 1290 T1=T1-.01
- 1300 P=1
- 1310 GOTO 1190
- 1320 IF D1<0 THEN 1350
- 1330 T1=T1+.001
- 1340 GOTO 1190
- 1350 T1=T1-.001
- 1360 P=2
- 1370 GOTO 1190
- 1380 IF D1<0 THEN 1410
- 1390 T1 = T1+.0001
- 1400 GOTO 1190
- 1410 T1=T1-.0001
- 1420 P=3
- 1430 GOTO 1190
- 1440 IF D1 < 0 THEN 1470
- 1450 T1=T1+.00001
- 1460 GOTO 1190
- 1470 T1=T1-.00001
- 1480 W2=T1/H
- 1490 IF W2>=.6 THEN 1520
- 1500 K1=SQR(G/(1+.6*(G-1)*((T2/H)^.0297)))
- 1510 GOTO 1530
- 1520 K1=SQR(G/(1+.63*(G-1)*((T2/H)^.1255)))
- 1530 L=L1*K1 :L=INT(L*100)/100
- 1540 PRINT " IMPEDANCE =",INT(Z*100)/100,"ohms"
- 1550 PRINT " LINE LENGTH =",L,"inches"
- 1560 PRINT " LINE WIDTH =",INT(T1*100000!)/100,"mils" :PRINT
- 1570 IF INT(T1*100000!)/100 <10 THEN PRINT "CAUTION: WIDTH LESS THAN 10 MILS!!!"
- 1580 PRINT :PRINT :PRINT :PRINT
- 1590 BEEP :PRINT "CONTINUE (Y/N) "
- 1600 C$=INKEY$ :IF C$="" THEN 1600
- 1610 IF C$="Y" THEN RUN ELSE END