10 REM POSAMP.BAS 20 REM WRITTEN BY RUSS KINCAID, 26 NOV 2001 30 REM REVISION REVISED JAN 13, 2002 40 CLS:PRINT 50 PRINT"THIS PROGRAM DESIGNS A NON-INVERTING OP AMP CIRCUIT THAT TRANSFORMS AN INPUT" 60 PRINT"VOLTAGE RANGE TO A SPECIFIED OUTPUT VOLTAGE RANGE. THE CIRCUIT HAS" 70 PRINT"TWO OR FOUR RESISTORS AND A BIAS VOLTAGE.":PRINT 80 INPUT"WHAT IS THE LOWEST INPUT VOLTAGE";VINMIN 90 INPUT"WHAT IS THE CORRESPONDING OUTPUT VOLTAGE";VOUTMIN 100 INPUT"WHAT IS THE HIGHEST INPUT VOLTAGE";VINMAX 110 IF VINMAX2 OR C<1 THEN PRINT"ONE OR TWO ONLY PLEASE":GOTO 330 350 IF C=1 THEN 370 360 RI=10000!:GOTO 380 370 INPUT"GIVE THE VALUE OF RI: ",RI 380 RF=RI*(GAIN-1) 390 BIAS=(VOUTMIN-VINMIN*GAIN)/(1-GAIN) 400 PRINT:PRINT"RI=";RI,"RF=";RF,"BIAS V=";BIAS 410 INPUT"HARDCOPY";Y$ 420 IF LEFT$(Y$,1)="Y" OR LEFT$(Y$,1)="y" THEN 430 ELSE END 430 OPEN "PRN" FOR OUTPUT AS #1 440 PRINT#1, DATE$,TIME$ 450 PRINT#1,"THIS CIRCUIT TRANSFORMS ";VINMIN;" TO ";VINMAX;" VOLTS INPUT TO:" 460 PRINT#1, VOUTMIN;" TO ";VOUTMAX;" VOLTS OUTPUT": PRINT#1, 470 PRINT#1,"THIS PROGRAM DESIGNS A NON-INVERTING OP AMP CIRCUIT THAT TRANSFORMS AN INPUT" 480 PRINT#1,"VOLTAGE RANGE TO A SPECIFIED OUTPUT VOLTAGE RANGE. THE CIRCUIT HAS TWO" 490 PRINT#1," RESISTORS AND A BIAS VOLTAGE. THIS IS THE SCHEMATIC:" 500 PRINT#1," |\" 510 PRINT#1," A IN--------|+\" 520 PRINT#1," | \____________B OUT" 530 PRINT#1," | / |" 540 PRINT#1," |---|-/ |" 550 PRINT#1," | |/ RF" 560 PRINT#1," | |" 570 PRINT#1," |--------------|" 580 PRINT#1," |" 590 PRINT#1," RI" 600 PRINT#1," |" 610 PRINT#1," BIAS" 620 PRINT#1,:PRINT#1,"RI=";RI,"RF=";RF,"BIAS V=";BIAS 630 GOTO 1900 640 PRINT:PRINT" THIS IS THE SCHEMATIC:" 650 PRINT" |\" 660 PRINT" A IN---R1--|--------|+\" 670 PRINT" | | \____________B OUT" 680 PRINT" | | / |" 690 PRINT" R2 |---|-/ |" 700 PRINT" | | |/ |" 710 PRINT" BIAS | |" 720 PRINT" |--------------|" 730 INPUT"WILL YOU CHOOSE R2 RESISTANCE (1) OR LET THE PROGRAM CHOOSE (2)";C 740 IF C<1 OR C>2 THEN PRINT"ONE OR TWO ONLY, PLEASE":GOTO 730 750 IF C=2 THEN R2=10000!:GOTO 770 760 INPUT"GIVE THE VALUE OF R2:",R2 770 K=(VINMAX-VINMIN)/(VOUTMAX-VOUTMIN) 780 R1=R2*(K-1) 790 BIAS=(VOUTMAX*K-VINMAX)/(K-1) 800 PRINT:PRINT"R1=";R1,"R2 = ";R2,"BIAS V=";BIAS 810 INPUT"HARDCOPY";Y$ 820 IF LEFT$(Y$,1)="Y" OR LEFT$(Y$,1)="y" THEN 830 ELSE END 830 OPEN "PRN" FOR OUTPUT AS #1 840 PRINT#1, DATE$,TIME$ 850 PRINT#1,"THIS CIRCUIT TRANSFORMS ";VINMIN;" TO ";VINMAX;" VOLTS INPUT TO:" 860 PRINT#1, VOUTMIN;" TO ";VOUTMAX;" VOLTS OUTPUT": PRINT#1, 870 PRINT#1,"THIS PROGRAM DESIGNS A NON-INVERTING OP AMP CIRCUIT THAT TRANSFORMS AN INPUT" 880 PRINT#1,"VOLTAGE RANGE TO A SPECIFIED OUTPUT VOLTAGE RANGE. THE CIRCUIT HAS TWO " 890 PRINT#1,"RESISTORS AND A BIAS VOLTAGE. THIS IS THE SCHEMATIC:" 900 PRINT#1," |\" 910 PRINT#1," A IN---R1--|--------|+\" 920 PRINT#1," | | \____________B OUT" 930 PRINT#1," | | / |" 940 PRINT#1," R2 |---|-/ |" 950 PRINT#1," | | |/ |" 960 PRINT#1," BIAS | |" 970 PRINT#1," |--------------|" 980 PRINT#1,:PRINT#1,"R1=";R1,"R2=";R2,"BIAS V=";BIAS 990 GOTO 1900 1000 REM SPECIAL CASE OF GAIN=1 1010 GAIN=2 1020 BIAS=(VOUTMIN-VINMIN*GAIN)/(1-GAIN) 1030 PRINT:PRINT"ALL RESISTORS ARE THE SAME VALUE, CHOOSE ANY":PRINT 1040 PRINT"THIS IS THE CIRCUIT:" 1050 PRINT" |\" 1060 PRINT" A IN---10k--|-----------|+\" 1070 PRINT" | | \____________B OUT" 1080 PRINT" | | / |" 1090 PRINT" 10k |---|-/ |" 1100 PRINT" | | |/ 10K" 1110 PRINT" | | |" 1120 PRINT" GND |--------------|" 1130 PRINT" |" 1140 PRINT" 10K" 1150 PRINT" |" 1160 PRINT" BIAS" 1170 PRINT:PRINT 1180 PRINT "BIAS VOLTAGE = ";BIAS 1190 INPUT "HARDCOPY ";Y$ 1200 IF LEFT$(Y$,1)="Y" OR LEFT$(Y$,1)="y" THEN 1210 ELSE 1910 1210 OPEN "PRN" FOR OUTPUT AS #1 1220 PRINT#1, DATE$,TIME$ 1230 PRINT#1,"THIS CIRCUIT TRANSFORMS ";VINMIN;" TO ";VINMAX;" VOLTS INPUT TO:" 1240 PRINT#1, VOUTMIN;" TO ";VOUTMAX;" VOLTS OUTPUT": PRINT#1, 1250 PRINT#1,"THIS PROGRAM DESIGNS A NON-INVERTING OP AMP CIRCUIT THAT TRANSFORMS AN INPUT" 1260 PRINT#1,"VOLTAGE RANGE TO A SPECIFIED OUTPUT VOLTAGE RANGE. THE CIRCUIT HAS FOUR " 1270 PRINT#1,"RESISTORS AND A BIAS VOLTAGE. THIS IS THE SCHEMATIC:" 1280 PRINT#1," |\" 1290 PRINT#1," A IN---10k--|-----------|+\" 1300 PRINT#1," | | \____________B OUT" 1310 PRINT#1," | | / |" 1320 PRINT#1," 10k |---|-/ |" 1330 PRINT#1," | | |/ 10K" 1340 PRINT#1," | | |" 1350 PRINT#1," GND |--------------|" 1360 PRINT#1," |" 1370 PRINT#1," 10K" 1380 PRINT#1," |" 1390 PRINT#1," BIAS" 1400 PRINT#1,:PRINT#1, 1410 PRINT#1, "BIAS VOLTAGE = ";BIAS : GOTO 1900 1420 REM WHEN THE MIN OUTPUT IS LESS THAN MIN INPUT 1430 PRINT"THIS IS THE CIRCUIT:" 1440 PRINT" |\" 1450 PRINT" A IN---R1---|-----------|+\" 1460 PRINT" | | \____________B OUT" 1470 PRINT" | | / |" 1480 PRINT" R2 |---|-/ |" 1490 PRINT" | | |/ R4" 1500 PRINT" | | |" 1510 PRINT" VBIAS |--------------|" 1520 PRINT" |" 1530 PRINT" R3" 1540 PRINT" |" 1550 PRINT" VOMIN" 1560 PRINT:PRINT 1570 INPUT "R1 = R2 = R3, WILL YOU CHOOSE (1) OR LET PROGRAM CHOOSE (2)";R1 1580 IF R1=2 THEN R1=10000!: GOTO 1600 1590 INPUT"GIVE THE VALUE OF R1, R2, R3 (OHMS)";R1 1600 BIAS = 2*VOUTMIN-VINMIN 1610 EIN=(VINMAX-BIAS)/2+BIAS 1620 R4 = R1*(VOUTMAX-EIN)/(EIN-VOUTMIN) 1630 PRINT "VBIAS VOLTAGE = ";BIAS 1640 INPUT "HARDCOPY ";Y$ 1650 IF LEFT$(Y$,1)="Y" OR LEFT$(Y$,1)="y" THEN 1660 ELSE 1910 1660 OPEN "PRN" FOR OUTPUT AS #1 1670 PRINT#1, DATE$,TIME$ 1680 PRINT#1,"THIS CIRCUIT TRANSFORMS ";VINMIN;" TO ";VINMAX;" VOLTS INPUT TO:" 1690 PRINT#1, VOUTMIN;" TO ";VOUTMAX;" VOLTS OUTPUT": PRINT#1, 1700 PRINT#1,"THIS PROGRAM DESIGNS A NON-INVERTING OP AMP CIRCUIT THAT TRANSFORMS AN INPUT" 1710 PRINT#1,"VOLTAGE RANGE TO A SPECIFIED OUTPUT VOLTAGE RANGE. THE CIRCUIT HAS FOUR " 1720 PRINT#1,"RESISTORS AND A BIAS VOLTAGE. THIS IS THE SCHEMATIC:" 1730 PRINT#1," |\" 1740 PRINT#1," A IN---R1---|-----------|+\" 1750 PRINT#1," | | \____________B OUT" 1760 PRINT#1," | | / |" 1770 PRINT#1," R2 |---|-/ |" 1780 PRINT#1," | | |/ R4" 1790 PRINT#1," | | |" 1800 PRINT#1," VBIAS |--------------|" 1810 PRINT#1," |" 1820 PRINT#1," R3" 1830 PRINT#1," |" 1840 PRINT#1," VOUTMIN" 1850 PRINT#1,:PRINT#1, 1860 PRINT#1, "VBIAS VOLTAGE = ";BIAS 1870 PRINT#1,"R1 = R2 = R3 = ";R1 1880 PRINT#1,"VOUTMIN = ";VOUTMIN 1890 PRINT#1,"R4 = ";R4 1900 PRINT#1, CHR$(12):CLOSE#1 1910 SYSTEM 1920 REM POSAMP.BAS 1930 END