home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / engprog / pads.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-05-20  |  3.3 KB  |  99 lines

  1. 100  CLS :REM "PADS"
  2. 110  PRINT TAB(33);"**** PADS ****" :PRINT
  3. 120  PRINT :PRINT "THIS PROGRAM CALCULATES TEE and PI PAD RESISTOR VALUES for";
  4. 130  PRINT " ATTENUATORS >0.1 DB." :PRINT
  5. 140  PRINT "ATTENUATION and VSWR for TRIAL RESISTOR VALUES ARE CALCULATED."
  6. 150  PRINT :PRINT "PADS FOR MATCHING DIFFERING IMPEDANCES (MLP'S) HAVE THIER";
  7. 160  PRINT " MINIMUM LOSSES" :PRINT :PRINT "COMPUTED."
  8. 170  DEF FNX(X)=(INT((1000*X)+0.5))*0.000999999
  9. 180  PRINT :BEEP :INPUT "ENTER TYPE of PAD TEE or PI   THUS: T or PI";A$
  10. 190  PRINT :BEEP :INPUT "ENTER IMPEDANCE INPUT & OUTPUT       Zo,Zo ";B,C
  11. 200  IF B<>C THEN 970
  12. 210  PRINT :BEEP :INPUT "ENTER DESIRED ATTENUATION IN DB ";A
  13. 220  PRINT :IF A<0.1 OR A>100000 THEN 1040
  14. 230  IF A<M THEN 1020
  15. 240  N=10^(A/10)
  16. 250  IF A$="PI" THEN 270
  17. 260  IF A$="T" THEN 610 ELSE 180
  18. 270  R3=((N-1)/2)*(((B*C)/N)^0.5)
  19. 280  R2=1/(((1/C)*((N+1)/(N-1)))-(1/R3))
  20. 290  R1=1/(((1/B)*((N+1)/(N-1)))-(1/R3))
  21. 300  IF R1<0.1 OR R1>100000 THEN 1040
  22. 310  IF R2<0.1 OR R2>100000 THEN 1040
  23. 320  IF R3<0.1 OR R3>100000 THEN 1040
  24. 330  PRINT "R1 SHUNT IN =";FNX(R1);"; R2 SHUNT OUT =";FNX(R2);"; R3 SERIES =";
  25. 340  PRINT FNX(R3) :PRINT
  26. 350  PRINT :BEEP :PRINT "TRIAL VALUES? (Y/N)"
  27. 360  B$=INKEY$ :IF B$="" THEN 360
  28. 370  IF B$="Y" THEN 390
  29. 380  IF B$<>"N" THEN 360 ELSE 540
  30. 390  PRINT :BEEP :INPUT "ENTER TRIAL VALUES FOR R1,R2,R3 ";R1,R2,R3
  31. 400  Z1=(R1*(((R2*C)/(R2+C))+R3))/(R1+(((R2*C)/(R2+C))+R3))
  32. 410  Z2=(R2*(((R1*B)/(R1+B))+R3))/(R2+(((R1*B)/(R1+B))+R3))
  33. 420  P1=1/B :X=(R2*C)/(R2+C) :Y=(R1*(R3+X))/(R1+(R3+X))
  34. 430  E1=2*((Y)/(B+Y)) :E2=E1*((X)/(R3+X)) :P2=(E2^2)/C
  35. 440  L=LOG(P2/P1)/LOG(10) :L=ABS(10*L)
  36. 450  PRINT :PRINT "ATTENUATION =";FNX(L);"DB"
  37. 460  IF Z1>B THEN 470 ELSE 480
  38. 470  V1=Z1/B :GOTO 490
  39. 480  V1=B/Z1
  40. 490  PRINT :PRINT "INPUT VSWR  =";FNX(V1);": 1"
  41. 500  IF Z2>C THEN 510 ELSE 520
  42. 510  V2=Z2/C :GOTO 530
  43. 520  V2=C/Z2
  44. 530  PRINT :PRINT "OUTPUT VSWR =";FNX(V2);": 1" :GOTO 350
  45. 540  GOSUB 1060
  46. 550  IF P$="Y" THEN 570
  47. 560  IF P$<>"N" THEN 1070 ELSE 600
  48. 570  LPRINT "PI PAD ATTENUATION =";FNX(L);"DB; INPUT VSWR =";FNX(V1);": 1";
  49. 580  LPRINT " OUTPUT VSWR =";FNX(V2);": 1" :PRINT
  50. 590  LPRINT "where R1=";R1;"; R2=";R2;"; R3=";R3 :PRINT
  51. 600  GOTO 930
  52. 610  R3=(2*((N*B*C)^0.5))/(N-1) :R2=(C*((N+1)/(N-1)))-R3
  53. 620  R1=(B*((N+1)/(N-1)))-R3
  54. 630  IF R1<0.1 OR R1>100000 THEN 1040
  55. 640  IF R2<0.1 OR R2>100000 THEN 1040
  56. 650  IF R3<0.1 OR R3>100000 THEN 1040
  57. 660  PRINT "R1 SERIES IN =";FNX(R1);"; R2 SERIES OUT =";FNX(R2);"; R3 SHUNT =";
  58. 670  PRINT FNX(R3)
  59. 680  PRINT :BEEP :PRINT "TRIAL VALUES? (Y/N)"
  60. 690  C$=INKEY$ :IF C$="" THEN 690
  61. 700  IF C$="Y" THEN 720
  62. 710  IF C$<>"N" THEN 690 ELSE 870
  63. 720  PRINT :BEEP :INPUT "ENTER TRIAL VALUES FOR R1,R2,R3 ";R1,R2,R3
  64. 730  Z1=(((R2+C)*R3)/(C+R2+R3))+R1 :Z2=(((R1+B)*R3)/(B+R1+R3))+R2
  65. 740  P1=1/B
  66. 750  E2=2*(((R3*(R2+C))/(R3+(R2+C)))/(B+R1+((R3*(R2+C))/(R3+(R2+C)))))
  67. 760  E3=(E2*C)/(C+R2) :P2=(E3^2)/C
  68. 770  A=LOG(P2/P1)/LOG(10) :A=ABS(10*A)
  69. 780  PRINT :PRINT "ATTENUATION =";FNX(A);"DB"
  70. 790  IF Z1>B THEN 800 ELSE 810
  71. 800  V1=Z1/B :GOTO 820
  72. 810  V1=B/Z1
  73. 820  PRINT :PRINT "INPUT VSWR  =";FNX(V1);": 1"
  74. 830  IF Z2>C THEN 840 ELSE 850
  75. 840  V2=Z2/C :GOTO 860
  76. 850  V2=C/Z2
  77. 860  PRINT :PRINT "OUTPUT VSWR =";FNX(V2);": 1" :GOTO 680
  78. 870  GOSUB 1060
  79. 880  IF P$="Y" THEN 900
  80. 890  IF P$<>"N" THEN 1070 ELSE 930
  81. 900  LPRINT "TEE PAD ATTENUATION =";FNX(A);"DB; INPUT VSWR =";FNX(V1);": 1";
  82. 910  LPRINT "; OUTPUT VSWR =";FNX(V2);": 1"
  83. 920  LPRINT "where R1=";R1;" R2=";R2;" R3=";R3
  84. 930  PRINT :PRINT "ANOTHER PAD?  (Y/N)"
  85. 940  D$=INKEY$ :IF D$="" THEN 940
  86. 950  IF D$="Y" THEN 180
  87. 960  IF D$<>"N" THEN 940 ELSE CLS:RUN"MAINMENU
  88. 970  IF B<C THEN 1000
  89. 980  K=B :L=C :GOTO 1000
  90. 990  K=C :L=B
  91. 1000  G=((2*K)/L)+((((((2*K)/L)-1)^2)-1)^0.5)-1
  92. 1010  F=10*(LOG(G)/LOG(10))
  93. 1020  PRINT :PRINT "MINIMUM LOSS PAD ATTENUATION ="FNX(F);"DB"
  94. 1030  F=M :GOTO 210
  95. 1040  PRINT :PRINT TAB(10);"ATTENUATION ENTERED IS INADVISABLE!!" :PRINT :PRINT
  96. 1050  GOTO 180
  97. 1060  PRINT :BEEP :PRINT "HARD COPY REQUIRED? (Y/N)"
  98. 1070  P$=INKEY$ :IF P$="" THEN 1070 ELSE RETURN
  99.