10 REM ****************** Timer Calculations ************* 20 REM By Ken L. Greene 30 REM #63 - 13435 97 Street 40 REM Edmonton, Alberta, Canada 50 REM T5E 4C8 60 REM (403) 475 2456 70 N=8 80 GOSUB 770 90 PRINT" TIMER CALCULATIONS" 100 PRINT" This program calculates values and times for these timers:" 110 PRINT TAB(10)"1 9601" 120 PRINT TAB(10)"2 9602" 130 PRINT TAB(10)"3 96L02" 140 PRINT TAB(10)"4 74121" 150 PRINT TAB(10)"5 74122" 160 PRINT TAB(10)"6 74123" 170 PRINT TAB(10)"7 555" 180 PRINT TAB(10)"8 556 (Dual 555)" 190 PRINT TAB(10)"9 To end" 200 PRINT:PRINT 210 INPUT"Enter the number corresponding to the desired timer :";T 220 IF T=9 THEN END 230 IF T>9 THEN GOTO 10 240 K1=K1(T):K2=K2(T):K3=K3(T) 250 RMAX=RMAX(T) 260 GOSUB 600 270 IF T$<>"T" AND T$<>"t" GOTO 340 280 GOSUB 540:GOSUB 560 290 T=K1+K2*R*C*(1+K3)/R) 300 SC=T:GOSUB 670:T=SC 310 T= INT(T*10)/10 320 PRINT "THE TIME IS ";T;SC$;"sec" 330 GOTO 260 340 IF T$<>"R" AND T$<>"r" THEN GOTO 450 350 GOSUB 560:GOSUB 580 360 R=((T-K1)/(K2*C))-K3 370 R1=R 380 SC=R:GOSUB 670:R=SC 390 R=INT(R*10)/10 400 PRINT "THE RESISTANCE IS ";R;SC$;"ohms" 410 IF R1<=RMAX THEN GOTO 260 420 PRINT:PRINT:PRINT"Resistance is greater than maximum resistance for this timer." 430 PRINT"use a larger value of capacitance for this time value.":PRINT:PRINT 440 GOTO 260 450 IF T$<>"C" AND T$<>"c" THEN GOTO 520 460 GOSUB 550:GOSUB 580 470 C=((T-K1)/K2)/(R+K3) 480 SC=C:GOSUB 670:C=SC 490 C=INT(C*10)/10 500 PRINT "THE CAPACITANCE IS ";C;SC$;"farads" 510 GOTO 260 520 IF T$<>"E" AND T$<> "e" THEN GOTO 260 530 GOTO 90 540 REM SUBROUTINE TO ASK FOR VALUE OF "R" 550 INPUT "Enter value for 'R' in ohms :";R:RETURN 560 REM SUBROUTINE TO ASK FOR VALUE FOR "C" 570 INPUT"Enter value for 'C' in farads";C:RETURN 580 REM SUBROUTINE TO ASK FOR VALUE FOR "T" 590 INPUT"Enter value for 'T' in seconds :";T:RETURN 600 REM SUBROUTINE TO ASK WHICH VARIABLE 610 PRINT"Enter letter for variable you wish to find :" 620 PRINT TAB(10)"R resistor" 630 PRINT TAB(10)"C Capacitor" 640 PRINT TAB(10)"T Time" 650 PRINT TAB(10)"E Exit" 660 INPUT T$:RETURN 670 REM SUBROUTINE TO SCALE VARIABLES & FIND SCALE FACTOR 680 IF SC>1E+06 THEN SC=SC/1E+06:SC$="M":RETURN 690 IF SC>1000! THEN SC=SC/1000!:SC$="K":RETURN 700 IF SC<1 THEN SC$="":RETURN 710 IF SC<1E-12 THEN SC=0:SC$="":RETURN 720 IF SC<1E-09 THEN SC=SC/1E-12:SC$="p":RETURN 730 IF SC<.000001 THEN SC=SC/1E-09:SC$="n":RETURN 740 IF SC<.001 THEN SC=SC/.000001:SC$="u":RETURN 750 IF SC<1 THEN SC=SC/.001:SC$="m":RETURN 760 RETURN 770 REM INITIALIZE TIMER CONSTANTS 780 FOR I=1 TO N 790 READ K1(I),K2(I),K3(I),RMAX(I):NEXT 800 RESTORE 810 DATA 0,.32,.7,20000 820 DATA 0,.31,1,20000 830 DATA 0,.33,3,200000 840 DATA 0,.693147,0,40000 850 DATA 0,.693147,0,40000 860 DATA 0,.693147,0,40000 870 DATA 0,1.1,0,20E6 880 DATA 0,1.1,0,20E6 890 RETURN