100 REM TIMER.BAS 200 REM WRITTEN BY RUSS KINCAID, 15 DEC 1997 300 REM REV 0 REVISED 23 JAN 2001 400 REM A PROG TO CALCULATE THE R & C VALUES FOR VARIOUS IC PARTS 500 CLS 600 PRINT"THIS PROGRAM WILL CHOSE R & C VALUES, GIVEN THE DESIRED PULSE WIDTHS" 700 PRINT" 74121 ONE SHOT MULTIVIBRATOR 1" 800 PRINT" 74122 RETRIGERABLE ONE SHOT 2" 900 PRINT" 74123 DUAL RETRIGERABLE ONE SHOT 3" 1000 PRINT" LM555 TIMER ONE SHOT 4" 1100 PRINT" LM555 ASTABLE (OSCILLATOR) 5" 1200 PRINT" MC14538B DUAL CMOS RETRIG. RESET. M.V. 6" 1300 PRINT" CD4047B CMOS MONOSTABLE MULTIVIBRATOR 7" 1400 PRINT" CD4047B CMOS ASTABLE (OSCILLATOR) 8" 1500 PRINT:PRINT" THE OUTPUT CAN BE TO YOUR PRINTER":PRINT 1600 OPEN "PRN" FOR OUTPUT AS #1 1700 INPUT"WHICH ONE";A:IF A>8 OR A<1 THEN PRINT"TRY AGAIN!":GOTO 600 1800 ON A GOTO 1900,8300,14000,19700,26200,32700,38000,44200 1900 PRINT"THE MINIMUM PULSE WIDTH IS 50nS WITH 0>C<30pF AND R=2K" 2000 PRINT"THE MAXIMUM PULSE WIDTH IS 40SEC WITH C=1000uF AND R=40K" 2100 PRINT"RETRIGGER TIME (DUTY CYCLE) IS LIMITED TO 67% WHEN R=2K" 2200 PRINT"OTHERWISE DUTY CYCLE RANGES UP TO 90% WITH R=40K" 2300 PRINT"AN INTERNAL 2K RESISTOR IS AVAILABLE AT PIN 9.":PRINT 2400 GOSUB 51000 2500 IF TW>40 THEN PRINT"EXCEEDS SPECS!":GOTO 700 2600 R = TW/.69/C 2700 IF TW<.0000001 THEN TW=TW*1E-09:TU$="NANOSECONDS":GOTO 3100 2800 IF TW<.001 THEN TW=TW*1000000!:TU$="MICROSECONDS":GOTO 3100 2900 IF TW<1 THEN TW=TW*1000!: TU$="MILLISECONDS":GOTO 3100 3000 IF TW>=1 THEN TU$="SECONDS" 3100 IF R>=1000000! THEN R=R/1000000!:RU$="MEGOHMS":GOTO 3400 3200 IF R>=1000! THEN R=R/1000!:RU$="KILOHMS":GOTO 3400 3300 IF R<1400! THEN PRINT"R = ";R;" MAX IS 1.4K":CLOSE#1:GOTO 600 3400 IF C>=.000001 THEN C=C*1000000!:CU$="MICROFARADS":GOTO 3700 3500 IF C>=1E-09 THEN C=C*1E+09:CU$="NANOFARADS":GOTO 3700 3600 IF C>=1E-12 THEN C=C*1E+12:CU$="PICOFARADS" 3700 PRINT:PRINT"THIS IS THE CIRCUIT:" 3800 PRINT:PRINT"THE VALUES FOR TW = ";TW;" ";TU$;" ARE:" 3900 PRINT"R = ";R;" ";RU$ 4000 PRINT "C = ";C;" ";CU$:PRINT 4100 PRINT" VCC" 4200 PRINT" |" 4300 PRINT" R" 4400 PRINT" |" 4500 PRINT" +-C-+" 4600 PRINT" | |" 4700 PRINT" ________________" 4800 PRINT" | 11 10 |" 4900 PRINT" --|9 Rint Q|--" 5000 PRINT" | |" 5100 PRINT" --O|3 NEG TRIG |" 5200 PRINT" --O|4 NEG TRIG |" 5300 PRINT" ---|5 POS TR NOT Q 1|--" 5400 PRINT" |________________|" 5500 PRINT" 54/74121" 5600 INPUT"HARDCOPY ";Y$ 5700 IF LEFT$(Y$,1)="N" OR LEFT$(Y$,1)="n" THEN 58505 5800 PRINT#1,"THE MINIMUM PULSE WIDTH IS 50nS WITH 0>C<30pF AND R=2K" 5900 PRINT#1,"THE MAXIMUM PULSE WIDTH IS 40SEC WITH C=1000uF AND R=40K" 6000 PRINT#1,"RETRIGGER TIME (DUTY CYCLE) IS LIMITED TO 67% WHEN R=2K" 6100 PRINT#1,"OTHERWISE DUTY CYCLE RANGES UP TO 90% WITH R=40K" 6200 PRINT#1, 6300 PRINT#1,:PRINT#1,"THIS IS THE CIRCUIT:" 6400 PRINT#1,:PRINT#1,"THE VALUES FOR TW = ";TW;" ";TU$;" ARE:" 6500 PRINT#1,"R = ";R;" ";RU$ 6600 PRINT#1, "C = ";C;" ";CU$ :PRINT#1, 6700 PRINT#1," VCC" 6800 PRINT#1," |" 6900 PRINT#1," R" 7000 PRINT#1," |" 7100 PRINT#1," +-C-+" 7200 PRINT#1," | |" 7300 PRINT#1," ________________" 7400 PRINT#1," | 11 10 |" 7500 PRINT#1," --|9 Rint Q|--" 7600 PRINT#1," | |" 7700 PRINT#1," --O|3 NEG TRIG |" 7800 PRINT#1," --O|4 NEG TRIG |" 7900 PRINT#1," ---|5 POS TR NOT Q 1|--" 8000 PRINT#1," |________________|" 8100 PRINT#1," 54/74121" 8200 GOTO 58500 8300 CLS:PRINT"THIS IC CAN BE RETRIGERED WITHOUT DESTURBING THE OUTPUT," 8400 PRINT"SO ARBITRARILY LONG PULSES CAN BE GENERATED. THE CLEAR INPUT" 8500 PRINT"WHEN GROUNDED TERMINATES THE OUTPUT PULSE AND PREVENTS RETRIGGERING." 8600 PRINT"THE MAX TIMING RESISTOR IS 50K OVER COMM. TEMPS & 25K OVER MIL TEMP" 8700 B=.32 8800 GOSUB 52400 8900 IF C<1000 THEN C$=" pF" 9000 IF C>=1000 AND C<10000! THEN C$=" nF":C=C/1000 9100 IF C>=10000! THEN C$=" uF":C=C/1000000! 9200 REM R = T/.32/(C+CI)/(1+.7/R) :PRINT"R2=";R:STOP 9300 IF TW<100 THEN TA=TW:TA$=" nS" 9400 IF TW>=100 AND TW<100000! THEN TA=TW/1000:TA$=" uS" 9500 IF TW>=100000! THEN TA=TW/1E+09:TA$=" SEC" 9600 CLS 9700 PRINT:PRINT"FOR TW = ";TA;TA$;", R IN K OHMS AND C ARE:" 9800 PRINT" R = ";R;" kOHMS" 9900 PRINT" C = ";C;C$ 10000 PRINT:PRINT"THIS IS THE CIRCUIT:" 10100 PRINT" VCC--R--+-C-+ TRUTH TABLE" 10200 PRINT" | | CLR5 NEG1 NEG2 POS3 POS4 TRIGGER" 10300 PRINT" _____|___|________ L X X X X NO" 10400 PRINT" | 13 11 | X \ L X X NO" 10500 PRINT" --|9 Rint 10K Q 8|-- X \ X L X NO" 10600 PRINT" --|1 Neg Trig | H \ H H H YES" 10700 PRINT" --|2 Neg Trig | " 10800 PRINT" --|3 Pos Trig | X X X / L NO" 10900 PRINT" --|4 Pos Trig NOT Q 6|-- X H H / X NO" 11000 PRINT" --|5 CLEAR/RESET | H L X / H YES" 11100 PRINT" | | / L X H H YES" 11200 PRINT" |__________________|" 11300 PRINT" " 11400 PRINT" 54/74122" 11500 INPUT"HARDCOPY";Y$ 11600 IF LEFT$(Y$,1)="N" OR LEFT$(Y$,1)="n" THEN 58505 11700 PRINT#1,"THIS IC CAN BE RETRIGERED WITHOUT DESTURBING THE OUTPUT," 11800 PRINT#1,"SO ARBITRARILY LONG PULSES CAN BE GENERATED. THE CLEAR INPUT" 11900 PRINT#1,"WHEN GROUNDED TERMINATES THE OUTPUT PULSE AND PREVENTS RETRIGGERING." 12000 PRINT#1,"THE MAX TIMING RESISTOR IS 50K OVER COMM. TEMPS & 25K OVER MIL TEMP" 12100 PRINT#1,:PRINT#1,"FOR TW = ";TA;TA$;", R IN K OHMS AND C ARE:" 12200 PRINT#1," R = ";R;" kOHMS" 12300 PRINT#1," C = ";C;C$ 12400 PRINT:PRINT#1,"THIS IS THE CIRCUIT:" 12500 PRINT#1," VCC--R--+-C-+ TRUTH TABLE" 12600 PRINT#1," | | CLR5 NEG1 NEG2 POS3 POS4 TRIGGER" 12700 PRINT#1," _____|___|________ L X X X X NO" 12800 PRINT#1," | 13 11 | X \ L X X NO" 12900 PRINT#1," --|9 Rint 10K Q 8|-- X \ X L X NO" 13000 PRINT#1," --|1 Neg Trig | H \ H H H YES" 13100 PRINT#1," --|2 Neg Trig | " 13200 PRINT#1," --|3 Pos Trig | X X X / L NO" 13300 PRINT#1," --|4 Pos Trig NOT Q 6|-- X H H / X NO" 13400 PRINT#1," --|5 CLEAR/RESET | H L X / H YES" 13500 PRINT#1," | | / L X H H YES" 13600 PRINT#1," |__________________|" 13700 PRINT#1," " 13800 PRINT#1," 54/74122" 13900 GOTO 58500 14000 CLS:PRINT"THIS IC CAN BE RETRIGGERED WITHOUT DISTURBING THE OUTPUT, SO LONG" 14100 PRINT"DELAYS CAN BE ACHIEVED. THE CLEAR INPUT, WHEN LOW, INHIBITS TRIGGERING" 14200 PRINT"AND HOLDS THE Q OUTPUT LOW. THE CLEAR INPUT GOING HIGH TRIGGERS THE" 14300 PRINT"TIME DELAY. THE MAXIMUM TIMING RESISTOR IS 50K FOR COMMERCIAL TEMPS" 14400 PRINT"AND 25K OVER MIL TEMP. " 14500 B=.28 14600 GOSUB 52400 14700 REM CI=26.7 14800 IF R>50 THEN PRINT"QUESTIONABLE STABILITY WITH R>50K" 14900 IF TW<1000 THEN TA=TW:TA$=" nS" 15000 IF TW>=1000 AND TW<100000! THEN TA=TW/1000!:TA$=" uS" 15100 IF TW>=100000! AND TW<1E+08 THEN TA=TW/1000000!:TA$=" MILLISEC" 15200 IF TW>=1E+08 THEN TA=TW/1E+08:TA$=" SECONDS" 15205 PRINT"TA=";TA,"TW=";TW:STOP 15300 IF C<1000 THEN C$=" pF" 15400 IF C>=1000 AND C<10000! THEN C$=" nF":C=C/1000 15500 IF C>=10000! THEN C$=" uF":C=C/1000000! 15600 PRINT:PRINT"FOR TW = ";TA;TA$;", R IN K OHMS AND C ARE:" 15700 PRINT" R = ";R;" kOHMS" 15800 PRINT"C = ";C;C$ 15900 PRINT:PRINT"THIS IS THE CIRCUIT:" 16000 PRINT" VCC--R--+-C-+ TRUTH TABLE" 16100 PRINT" | | NEG POS CLR TRIGGER" 16200 PRINT" _____________________ X X L NO " 16300 PRINT" | 15(7)14(6) | \ L X NO" 16400 PRINT" | Q 13(5)|-- \ H H YES" 16500 PRINT" | | H / X NO" 16600 PRINT" --O|1(9) NEG TRIG | L / H YES " 16700 PRINT" ---|2(10) POS TRIG | L H / YES " 16800 PRINT" --O|3(11) CLR NOT Q 4(12)|--" 16900 PRINT" |_____________________|" 17000 PRINT" 54/74123" 17100 INPUT"HARDCOPY ";Y$ 17200 IF LEFT$(Y$,1)="N" OR LEFT$(Y$,1)="n" THEN 58505 17300 PRINT#1,"THIS IC CAN BE RETRIGGERED WITHOUT DISTURBING THE OUTPUT, SO LONG" 17400 PRINT#1,"DELAYS CAN BE ACHIEVED. THE CLEAR INPUT, WHEN LOW, INHIBITS TRIGGERING" 17500 PRINT#1,"AND HOLDS THE Q OUTPUT LOW. THE CLEAR INPUT GOING HIGH TRIGGERS THE" 17600 PRINT#1,"TIME DELAY AS WELL AS THE POS & NEG TRIGGER INPUTS. THE MAXIMUM TIMING" 17700 PRINT#1," RESISTOR IS 50K FOR COMMERCIAL TEMPS AND 25K OVER MIL TEMP. " 17800 IF C<1000 THEN C$=" pF" 17900 IF C>=1000 AND C<10000! THEN C$=" nF":C=C/1000 18000 IF C>=10000! THEN C$=" uF":C=C/1000000! 18005 PRINT#1,:PRINT#1,"FOR TW = ";TA;TA$;", R IN K OHMS AND C ARE:" 18100 PRINT#1,"C = ";C;C$ 18200 PRINT#1," R = ";R;" kOHMS" 18300 PRINT#1,:PRINT#1,"THIS IS THE CIRCUIT:" 18400 PRINT#1," VCC--R--+-C-+ TRUTH TABLE" 18500 PRINT#1," | | NEG POS CLR TRIGGER" 18600 PRINT#1," _____________________ X X L NO " 18700 PRINT#1," | 15(7)14(6) | \ L X NO" 18800 PRINT#1," | Q 13(5)|-- \ H H YES" 18900 PRINT#1," | | H / X NO" 19000 PRINT#1," --O|1(9) NEG TRIG | L / H YES " 19100 PRINT#1," ---|2(10) POS TRIG | L H / YES " 19200 PRINT#1," --O|3(11) CLR NOT Q 4(12)|--" 19300 PRINT#1," |_____________________|" 19400 PRINT#1," 54/74123" 19500 PRINT:PRINT 19600 GOTO 58500 19700 CLS:PRINT"WHEN THE TRIGGER INPUT GOES LOW, THE DIGITAL OUTPUT GOES HIGH AND" 19800 PRINT"THE TIME DELAY STARTS. THE TRIGGER PULSE MUST BE LESS THAN THE PULSE" 19900 PRINT"WIDTH. THE DELAY CANNOT BE RETRIGGERED UNTIL AFTER THE DELAY PERIOD." 20000 PRINT"WHEN THE RESET IS LOW, THE DELAY IS INTERUPTED AND THE OUTPUT IS LOW." 20100 PRINT"THE RESET INPUT SHOULD BE TIED TO VCC WHEN NOT USED." 20200 GOSUB 54400 20300 IF TW<=.0000001 THEN PRINT"DELAY TOO SMALL, USE SN74121":INPUT"PRESS ENTER TO CONTINUE",POO:RUN 20400 R = TW/1.1/C 20500 IF R<1000 THEN C=C/10:GOTO 20400 20600 C=C*1E+12 20700 IF TW<.0000001 THEN TA=TW*1E+09:TA$=" nS" 20800 IF TW>=.0000001 AND TW<.0001 THEN TA=TW*1000000!:TA$=" uS" 20900 IF TW>=.0001 THEN TA=TW:TA$=" SEC" 21000 PRINT:PRINT"FOR TW = ";TA;TA$;", R IN K OHMS AND C ARE:" 21100 PRINT" R = ";R/1000;" kOHMS" 21200 IF C<1000 THEN C$=" pF" 21300 IF C>=1000 AND C<1000000! THEN C=C*.001:C$=" nF" 21400 IF C>=1000000! THEN C=C*.000001:C$=" uF" 21500 PRINT"C = ";C;C$ 21600 PRINT:PRINT"THIS IS THE CIRCUIT:" 21700 PRINT" VCC (5 TO 15 VDC)" 21800 PRINT" ____________________________________" 21900 PRINT" | |" 22000 PRINT" | R" 22100 PRINT" | | |" 22200 PRINT" ________|_______|________ |" 22300 PRINT" | 4 RESET 8 VCC | |" 22400 PRINT" --|3 OUTPUT DISCHARGE 7|--|----+" 22500 PRINT" | THRESHOLD 6|--| |" 22600 PRINT" --|2 TRIGGER CONTROL 5|--, C" 22700 PRINT" | 1 GND | | |" 22800 PRINT" _________________________ CB GND" 22900 PRINT" | |" 23000 PRINT" GND GND" 23100 PRINT" LM555 NOTE:CB=.01uF" 23200 PRINT"TIE RESET (PIN 4) HIGH IF NOT USED." 23300 INPUT"HARDCOPY ";Y$ 23400 IF LEFT$(Y$,1)="n" OR LEFT$(Y$,1)="N" THEN 58505 23500 PRINT#1,:PRINT#1, 23600 PRINT#1,"WHEN THE TRIGGER INPUT GOES LOW, THE DIGITAL OUTPUT GOES HIGH AND" 23700 PRINT#1,"THE TIME DELAY STARTS. THE TRIGGER PULSE MUST BE LESS THAN THE PULSE" 23800 PRINT#1,"WIDTH. THE DELAY CANNOT BE RETRIGGERED UNTIL AFTER THE DELAY PERIOD." 23900 PRINT#1,"WHEN THE RESET IS LOW, THE DELAY IS INTERUPTED AND THE OUTPUT IS LOW." 24000 PRINT#1,"THE RESET INPUT SHOULD BE TIED TO VCC WHEN NOT USED." 24100 PRINT#1,:PRINT#1,"FOR TW = ";TA;TA$;", R IN K OHMS AND C ARE:" 24200 PRINT#1," R = ";R/1000;" kOHMS" 24300 PRINT#1,"C = ";C;C$ 24400 PRINT#1,:PRINT#1,"THIS IS THE CIRCUIT:" 24500 PRINT#1," VCC (5 TO 15 VDC)" 24600 PRINT#1," ____________________________________" 24700 PRINT#1," | |" 24800 PRINT#1," | R" 24900 PRINT#1," | | |" 25000 PRINT#1," ________|_______|________ |" 25100 PRINT#1," | 4 RESET 8 VCC | |" 25200 PRINT#1," --|3 OUTPUT DISCHARGE 7|--|----+" 25300 PRINT#1," | THRESHOLD 6|--| |" 25400 PRINT#1," --|2 TRIGGER CONTROL 5|--, C" 25500 PRINT#1," | 1 GND | | |" 25600 PRINT#1," _________________________ CB GND" 25700 PRINT#1," | |" 25800 PRINT#1," GND GND" 25900 PRINT#1," LM555 NOTE:CB=.01uF" 26000 PRINT#1,"TIE RESET (PIN 4) HIGH IF NOT USED." 26100 GOTO 58500 26200 PRINT:PRINT"THIS CIRCUIT OSCILLATES CONTINUOUSLY UNLESS THE RESET IS HELD LOW." 26300 PRINT"YOU CAN SPECIFY THE DUTY CYCLE, BUT 50% IS NOT AVAILABLE. IF YOU " 26400 PRINT"SPECIFY 50% OR HIGHER, THE MAXIMUM DUTY CYCLE WILL BE DESIGNED." 26500 CLS:PRINT"THIS CIRCUIT OSCILLATES CONTINUOUSLY UNLESS THE RESET IS HELD LOW." 26800 PRINT"TIE RESET TO VCC IF NOT USED." : PRINT 27000 GOSUB 55600 27100 CLS:PRINT"LM555 OSCILLATOR VALUES FOR FREQUENCY = ";F;" hZ:" 27200 PRINT:IF RB>=1000 AND RB<1000000! THEN PRINT"Rb = ";RB/1000;" kOHMS":GOTO 27500 27300 IF RB>=1000000! THEN PRINT"Rb = ";RB/1000000!;" megOHMS":GOTO 27500 27400 PRINT"RB = ";RB 27500 PRINT"RA = ";RA 27600 IF C>=.000001 THEN PRINT"C = ";C*1000000!;" uF" : GOTO 28000 27700 IF C>=1E-09 THEN PRINT"C = ";C*1E+09;" nF": GOTO 28000 27800 IF C>=1E-12 THEN PRINT"C = ";C*1E+12;" pF":GOTO 28000 27900 PRINT"C = ";C 28000 PRINT" VCC (5 TO 15 VDC)" 28100 PRINT" ____________________________________" 28200 PRINT" | |" 28300 PRINT" | RA" 28400 PRINT" ________|_______|________ |" 28500 PRINT" | 4 RESET 8 VCC | |" 28600 PRINT" --|3 OUTPUT DISCHARGE 7|-------+" 28700 PRINT" | THRESHOLD 6|----+ |" 28800 PRINT" +--|2 TRIGGER CONTROL 5|--+ | RB" 28900 PRINT" | | 1 GND | | | |" 29000 PRINT" | _________________________ CB| |" 29100 PRINT" | | | | |" 29200 PRINT" | GND GND| |" 29300 PRINT" +-------------------------------+--+" 29400 PRINT" |" 29500 PRINT" C" 29600 PRINT" |" 29700 PRINT" LM555 NOTE:CB=.01uF GND" 29800 INPUT"HARDCOPY";Y$ 29900 IF LEFT$(Y$,1)="N" OR LEFT$(Y$,1)="n" THEN 58505 29910 PRINT#1,:PRINT#1,"THIS CIRCUIT OSCILLATES CONTINUOUSLY UNLESS THE RESET IS HELD LOW." 29920 PRINT#1,"YOU CAN SPECIFY THE DUTY CYCLE, BUT 50% IS NOT AVAILABLE. IF YOU " 29930 PRINT#1,"SPECIFY 50% OR HIGHER, THE MAXIMUM DUTY CYCLE WILL BE DESIGNED." 29940 PRINT#1,"TIE RESET TO VCC IF NOT USED." : PRINT#1, 29950 PRINT#1,"LM555 OSCILLATOR VALUES FOR FREQUENCY = ";F;" hZ:" 29954 PRINT#1,"SUPPLY VOLTAGE= ";VCC,"DUTY CYCLE = ";DC*100;" PERCENT" 30000 PRINT#1,:IF RB>=1000 AND RB<1000000! THEN PRINT#1,"Rb = ";RB/1000;" kOHMS":GOTO 30300 30100 IF RB>=1000000! THEN PRINT#1,"Rb = ";RB/1000000!;" megOHMS":GOTO 30300 30200 PRINT#1,"RB = ";RB 30300 PRINT#1,"RA = ";RA 30400 IF C>=.000001 THEN PRINT#1,"C = ";C*1000000!;" uF" : GOTO 30800 30500 IF C>=1E-09 THEN PRINT#1,"C = ";C*1E+09;" nF": GOTO 30800 30600 IF C>=1E-12 THEN PRINT#1,"C = ";C*1E+12;" pF":GOTO 30800 30700 PRINT#1,"C = ";C 30800 PRINT#1," VCC (5 TO 15 VDC)" 30900 PRINT#1," ____________________________________" 31000 PRINT#1," | |" 31100 PRINT#1," | RA" 31200 PRINT#1," ________|_______|________ |" 31300 PRINT#1," | 4 RESET 8 VCC | |" 31400 PRINT#1," --|3 OUTPUT DISCHARGE 7|-------+" 31500 PRINT#1," | THRESHOLD 6|----+ |" 31600 PRINT#1," +--|2 TRIGGER CONTROL 5|--+ | RB" 31700 PRINT#1," | | 1 GND | | | |" 31800 PRINT#1," | _________________________ CB| |" 31900 PRINT#1," | | | | |" 32000 PRINT#1," | GND GND| |" 32100 PRINT#1," +-------------------------------+--+" 32200 PRINT#1," |" 32300 PRINT#1," C" 32400 PRINT#1," |" 32500 PRINT#1," LM555 NOTE:CB=.01uF GND" 32600 GOTO 58500 32700 CLS:PRINT"THE MC14538B CLAIMS TO BE 1/2% STABLE OVER TEMPERATURE. THE MIN." 32800 PRINT"PULSE WIDTH IS 1uS. POS OR NEG EDGE TRIGGERING IS AVAILABLE." 32900 PRINT"THIS IS A DUAL TIMER" 33000 INPUT"PULSE WIDTH DESIRED (SECONDS):",TW 33100 GOSUB 57400 33200 IF TW<.000001 THEN PRINT"PULSE WIDTH TOO SHORT":INPUT"PRESS ENTER TO CONTINUE";Y$:GOTO 32700 33300 R=TW/C : IF R<10000! THEN C=C/10:GOTO 33300 33400 PRINT:PRINT"COMPONENT VALUES FOR PULSE WIDTH OF";TW;" SECONDS:" 33500 IF R>=1000000! THEN PRINT"R = ";R/1000000!;" megOHMS":GOTO 33800 33600 IF R>=1000! THEN PRINT"R = ";R/1000;" kOHMS":GOTO 33800 33700 PRINT"R = ";R;" OHMS" 33800 IF C>=.000001 THEN PRINT"C = ";C*1000000!;" uF":GOTO 34100 33900 IF C>=1E-09 THEN PRINT"C = ";C*1E+09;" nF":GOTO 34100 34000 PRINT "C = ";C*1E+12;" pF" 34100 PRINT:PRINT"THIS IS THE CIRCUIT:" 34200 PRINT" VCC--R--+-C-+--GND" 34300 PRINT" | |" 34400 PRINT" _____________________" 34500 PRINT" | 14(2)15(1) |" 34600 PRINT" | Q 10(6)|--" 34700 PRINT" | |" 34800 PRINT" --O|11(5) NEG TRIG |" 34900 PRINT" ---|12(4) POS TRIG |" 35000 PRINT" --O|13(3) CLR NOT Q 9(7)|--" 35100 PRINT" |_____________________|" 35200 PRINT" MC14538B" 35300 PRINT:PRINT"NOTE: PIN 16=VCC & PIN 8=VSS" 35400 INPUT"HARDCOPY";Y$ 35500 IF LEFT$(Y$,1)="N" OR LEFT$(Y$,1)="n" THEN 58505 35600 PRINT#1,"THE MC14538B CLAIMS TO BE 1/2% STABLE OVER TEMPERATURE. THE MIN." 35700 PRINT#1,"PULSE WIDTH IS 1uS. POS OR NEG EDGE TRIGGERING IS AVAILABLE." 35800 PRINT#1,"THIS IS A DUAL TIMER, THE NUMBERS IN ( ) INDICATE PINS OF THE SECOND UNIT." 35900 PRINT#1,:PRINT#1,"COMPONENT VALUES FOR PULSE WIDTH OF";TW;" SECONDS:" 36000 IF R>=1000000! THEN PRINT#1,"R = ";R/1000000!;" megOHMS":GOTO 36300 36100 IF R>=1000! THEN PRINT#1,"R = ";R/1000;" kOHMS":GOTO 36300 36200 PRINT#1,"R = ";R;" OHMS" 36300 IF C>=.000001 THEN PRINT#1,"C = ";C*1000000!;" uF":GOTO 36600 36400 IF C>=1E-09 THEN PRINT#1,"C = ";C*1E+09;" nF":GOTO 36600 36500 PRINT#1, "C = ";C*1E+12;" pF" 36600 PRINT#1,:PRINT#1,"THIS IS THE CIRCUIT :" 36700 PRINT#1," VCC--R--+-C-+--GND" 36800 PRINT#1," | |" 36900 PRINT#1," _____________________" 37000 PRINT#1," | 14(2)15(1) |" 37100 PRINT#1," | Q 10(6)|--" 37200 PRINT#1," | |" 37300 PRINT#1," --O|11(5) NEG TRIG |" 37400 PRINT#1," ---|12(4) POS TRIG |" 37500 PRINT#1," --O|13(3) CLR NOT Q 9(7)|--" 37600 PRINT#1," |_____________________|" 37700 PRINT#1," MC14538B" 37800 PRINT#1,:PRINT#1,"NOTE: PIN 16=VCC & PIN 8=VSS" 37900 GOTO 58500 38000 CLS:PRINT"FOR MONOSTABLE (ONE SHOT) OPERATION, TIE PIN 5 LOW AND PIN 4 HIGH." 38100 PRINT"FOR RETRIGGER MODE, CONNECT PINS 8 & 12, OR CONNECT AN INVERTER" 38200 PRINT"BETWEEN PINS 6 & 12. THE RETRIGGER INPUT (12) MUST BE TIED LOW IF" 38300 PRINT"NOT USED. THE RESET PIN (9) MUST BE TIED LOW IF NOT USED. WHEN " 38400 PRINT"RESET IS HIGH, THE Q OUTPUT IS HELD LOW. IF ANY INPUT RISETIME IS" 38500 PRINT"GREATER THAN 2.5V/uS, CONNECT 10k IN SERIES." 38600 INPUT"PULSE WIDTH DESIRED:",TW 38700 IF TW<.000001 THEN PRINT"FOR SHORT TIME DELAYS, USE 74121":CLOSE#1:GOTO 600 38800 GOSUB 57400 38900 R=TW/2.48/C 38905 PRINT"CIRCUIT VALUES FOR TIME DELAY OF";TW;" SECONDS:" 39000 IF R>=1000000! THEN PRINT"R = ";R/1000000!;" megOHMS";:GOTO 39300 39100 IF R>=1000! THEN PRINT"R = ";R/1000!;" kOHMS";: GOTO 39300 39200 PRINT"R = ";R;" OHMS" ; 39300 IF C>=.000001 THEN PRINT" C = ";C*1000000!;" uF":GOTO 39600 39400 IF C>=1E-09 THEN PRINT" C = ";C*1E+09;" nF": GOTO 39600 39500 IF C>=1E-12 THEN PRINT" C = ";C*1E+12;" pF" 39600 PRINT"THIS IS THE CIRCUIT: PIN 14=VCC, PIN 7=GND" 39700 PRINT" +-R--+-C-+" 39800 PRINT" | | |" 39900 PRINT" VCC ___|____|___|_____" 40000 PRINT" | | 2 3 1 |" 40100 PRINT" +----|-----|5 ASTABLE P Q 10|--" 40200 PRINT" | +----O|4 ASTABLE N |" 40300 PRINT" +---------O|6 Neg Trig O 13|--" 40400 PRINT" | --|8 Pos Trig |" 40500 PRINT" +----------|12 RETRIG NOT Q 11|--" 40600 PRINT" +----------|9 CLEAR/RESET |" 40700 PRINT" | |__________________|" 40800 PRINT" GND CD4047B " 40900 PRINT" CONNECTIONS FOR POSITIVE TRIGGER IS SHOWN. FOR NEGATIVE TRIGGER," 41000 PRINT"TIE PIN 8 HIGH AND INPUT TO PIN 6." 41100 INPUT"HARDCOPY ";Y$ 41200 IF LEFT$(Y$,1)="N" OR LEFT$(Y$,1)="n" THEN 58505 41300 PRINT#1,:PRINT#1,"FOR MONOSTABLE (ONE SHOT) OPERATION, TIE PIN 5 LOW AND PIN 4 HIGH." 41400 PRINT#1,"FOR RETRIGGER MODE, CONNECT PINS 8 & 12, OR CONNECT AN INVERTER" 41500 PRINT#1,"BETWEEN PINS 6 & 12. THE RETRIGGER INPUT (12) MUST BE TIED LOW IF" 41600 PRINT#1,"NOT USED. THE RESET PIN (9) MUST BE TIED LOW IF NOT USED. WHEN " 41700 PRINT#1,"RESET IS HIGH, THE Q OUTPUT IS HELD LOW. IF ANY INPUT RISETIME IS" 41800 PRINT#1,"GREATER THAN 2.5V/uS, CONNECT 10k IN SERIES." 41900 R=TW/2.48/C 41905 PRINT#1,:PRINT#1,"CIRCUIT VALUES FOR TIME DELAY OF";TW;" SECONDS:" 42000 IF R>=1000000! THEN PRINT#1,"R = ";R/1000000!;" megOHMS";:GOTO 42300 42100 IF R>=1000! THEN PRINT#1,"R = ";R/1000!;" kOHMS";: GOTO 42300 42200 PRINT#1,"R = ";R;" OHMS" ; 42300 IF C>=.000001 THEN PRINT#1," C = ";C*1000000!;" uF":GOTO 42600 42400 IF C>=1E-09 THEN PRINT#1," C = ";C*1E+09;" nF": GOTO 42600 42500 IF C>=1E-12 THEN PRINT#1," C = ";C*1E+12;" pF" 42600 PRINT#1,"THIS IS THE CIRCUIT: PIN 14=VCC, PIN 7=GND" 42700 PRINT#1," +-R--+-C-+" 42800 PRINT#1," | | |" 42900 PRINT#1," VCC ___|____|___|_____" 43000 PRINT#1," | | 2 3 1 |" 43100 PRINT#1," +----|-----|5 ASTABLE P Q 10|--" 43200 PRINT#1," | +----O|4 ASTABLE N |" 43300 PRINT#1," +---------O|6 Neg Trig O 13|--" 43400 PRINT#1," | --|8 Pos Trig |" 43500 PRINT#1," +----------|12 RETRIG NOT Q 11|--" 43600 PRINT#1," +----------|9 CLEAR/RESET |" 43700 PRINT#1," | |__________________|" 43800 PRINT#1," GND CD4047B " 43900 PRINT#1," CONNECTIONS FOR POSITIVE TRIGGER IS SHOWN. FOR NEGATIVE TRIGGER," 44000 PRINT#1,"TIE PIN 8 HIGH AND INPUT TO PIN 6." 44100 GOTO 58500 44200 CLS:PRINT"FOR ASTABLE (OSCILLATOR) OPERATION, TIE PIN 4 LOW OR PIN 5 HIGH." 44300 PRINT" THE RETRIGGER INPUT (12) MUST BE TIED LOW. THE RESET PIN (9) MUST BE" 44400 PRINT"TIED LOW IF NOT USED. WHEN RESET IS HIGH, THE Q OUTPUT IS HELD LOW." 44500 PRINT"IF ANY INPUT RISETIME IS GREATER THAN 2.5V/uS, CONNECT 10k IN SERIES." 44600 PRINT"THE FIRST CYCLE WILL BE 1/2 THE TIME OF SUBSEQUENT CYCLES." 44700 PRINT"THE OUTPUT DUTY CYCLE OF Q & NOT Q IS 50%. PIN 13 OUTPUT IS DOUBLE" 44800 PRINT"THE FREQUENCY AND MAY NOT BE 50% DUTY CYCLE." 45000 GOSUB 55600 45100 R=4.4/C/F 45200 IF R>=1000000! THEN PRINT"R = ";R/1000000!;" megOHMS";:GOTO 45500 45300 IF R>=1000! THEN PRINT"R = ";R/1000!;" kOHMS";: GOTO 45500 45400 PRINT"R = ";R;" OHMS" ; 45500 IF C>=.000001 THEN PRINT" C = ";C*1000000!;" uF":GOTO 45800 45600 IF C>=1E-09 THEN PRINT" C = ";C*1E+09;" nF": GOTO 45800 45700 IF C>=1E-12 THEN PRINT" C = ";C*1E+12;" pF" 45800 PRINT"THIS IS THE CIRCUIT: PIN 14=VCC PIN 7=GND" 45900 PRINT" +-R--+-C-+" 46000 PRINT" VCC | | |" 46100 PRINT" | ___|____|___|_____" 46200 PRINT" | | 2 3 1 |" 46300 PRINT" +-----|5 ASTABLE P Q 10|--" 46400 PRINT" +----O|4 ASTABLE N |" 46500 PRINT" | --O|6 Neg Trig O 13|--" 46600 PRINT" | --|8 Pos Trig |" 46700 PRINT" +-+---|12 RETRIG NOT Q 11|--" 46800 PRINT" |---|9 CLEAR/RESET |" 46900 PRINT" | ____________________" 47000 PRINT" | CD4047B " 47100 PRINT" GND" 47200 PRINT" TO GATE THE OSCILLATOR, TIE PIN 5 LOW, THEN A HIGH ON" 47300 PRINT"PIN 4 WILL STOP THE OSC. ELSE TIE PIN 4 HIGH, THEN A LOW ON PIN 5 " 47400 PRINT"WILL STOP THE OSC." 47500 INPUT"HARDCOPY";Y$ 47600 IF LEFT$(Y$,1)="n" OR LEFT$(Y$,1)="N" THEN 58505 47700 PRINT#1,"FOR ASTABLE (OSCILLATOR) OPERATION, TIE PIN 4 LOW OR PIN 5 HIGH." 47800 PRINT#1," THE RETRIGGER INPUT (12) MUST BE TIED LOW. THE RESET PIN (9) MUST BE" 47900 PRINT#1,"TIED LOW IF NOT USED. WHEN RESET IS HIGH, THE Q OUTPUT IS HELD LOW." 48000 PRINT#1,"IF ANY INPUT RISETIME IS GREATER THAN 2.5V/uS, CONNECT 10k IN SERIES." 48100 PRINT#1,"THE FIRST CYCLE WILL BE 1/2 THE TIME OF SUBSEQUENT CYCLES." 48200 PRINT#1,"THE OUTPUT DUTY CYCLE OF Q & NOT Q IS 50%. PIN 13 OUTPUT IS DOUBLE" 48300 PRINT#1,"THE FREQUENCY AND MAY NOT BE 50% DUTY CYCLE." 48400 R=4.4/C/F 48405 PRINT#1,:PRINT#1,"CIRCUIT VALUES FOR";F;" HZ" 48500 IF R>=1000000! THEN PRINT#1,"R = ";R/1000000!;" megOHMS";:GOTO 48800 48600 IF R>=1000! THEN PRINT#1,"R = ";R/1000!;" kOHMS";: GOTO 48800 48700 PRINT#1,"R = ";R;" OHMS" ; 48800 IF C>=.000001 THEN PRINT#1," C = ";C*1000000!;" uF":GOTO 49100 48900 IF C>=1E-09 THEN PRINT#1," C = ";C*1E+09;" nF": GOTO 49100 49000 IF C>=1E-12 THEN PRINT#1," C = ";C*1E+12;" pF" 49100 PRINT#1,"THIS IS THE CIRCUIT: PIN 14=VCC PIN 7=GND" 49200 PRINT#1," +-R--+-C-+" 49300 PRINT#1," VCC | | |" 49400 PRINT#1," | ___|____|___|_____" 49500 PRINT#1," | | 2 3 1 |" 49600 PRINT#1," +-----|5 ASTABLE P Q 10|--" 49700 PRINT#1," +----O|4 ASTABLE N |" 49800 PRINT#1," | --O|6 Neg Trig O 13|--" 49900 PRINT#1," | --|8 Pos Trig |" 50000 PRINT#1," +-+---|12 RETRIG NOT Q 11|--" 50100 PRINT#1," |---|9 CLEAR/RESET |" 50200 PRINT#1," | ____________________" 50300 PRINT#1," | CD4047B " 50400 PRINT#1," GND" 50500 PRINT#1," TO GATE THE OSCILLATOR, TIE PIN 5 LOW, THEN A HIGH ON" 50600 PRINT#1,"PIN 4 WILL STOP THE OSC. ELSE TIE PIN 4 HIGH, THEN A LOW ON PIN 5 " 50700 PRINT#1,"WILL STOP THE OSC." 50800 GOTO 58500 50900 REM 74121 ROUTINE 51000 INPUT"PULSE WIDTH DESIRED (SECONDS) = ",TW 51100 IF TW<5E-08 THEN PRINT"50 nS MINIMUM":GOTO 51000 51200 IF TW>40 THEN PRINT"TOO LONG, TRY LM555":CLOSE#1:GOTO 600 51300 IF TW<.0000002 THEN C=1E-11 51400 IF TW>=.0000002 AND TW<.000002 THEN C=1E-10 51500 IF TW>=.000002 AND TW<.00002 THEN C=1E-09 51600 IF TW>=.00002 AND TW<.0002 THEN C=1E-08 51700 IF TW>=.0002 AND TW<.002 THEN C=.0000001 51800 IF TW>=.002 AND TW<.02 THEN C=.000001 51900 IF TW>.02 THEN C=.00001 52000 IF TW>.2 THEN C=.0001 52100 IF TW>2 THEN C=.001 52200 RETURN 52300 REM 74122 & 74123 ROUTINE 52400 INPUT"PULSE WIDTH DESIRED (SECONDS) = ",TW:TW=TW*1E+09 52500 IF TW<40 THEN PRINT"TIME TOO SHORT":GOTO 52400 52600 IF TW>=40 AND TW <100 THEN C=2 ELSE 52800 52700 R=(TW-(18.6+(TW-40)/2.65)*C)/B/C :GOTO 54200 52800 IF TW>=100 AND TW<250 THEN C=10 ELSE 53000 52900 R=(TW-(7.2+(TW-100)/17.5)*C)/B/C:GOTO 54200 53000 IF TW>=250 AND TW<1100 THEN C=100 ELSE 53200 53100 R=(TW-(1.2+(TW-400)/500)*C)/B/C :GOTO 54200 53200 IF TW>1000 THEN C=470*(TW/1000) :IF C>1000 AND C<=10000! THEN C=10000! 53300 IF C>10000! AND C<=1000000! THEN C=1000000! 53400 IF C>1000000! AND C<=1E+07 THEN C=1E+07 53500 IF C>1E+07 AND C<=1E+08 THEN C=1E+08 53600 IF C>1E+08 AND C<=1E+09 THEN C=1E+09 53700 IF C>1E+09 AND C<=1E+10 THEN C=1E+10 53800 IF C>1E+10 AND C<=1E+11 THEN C=1E+11 53900 IF C>1E+11 AND C<=1E+12 THEN C=1E+12 54000 R=TW/B/C : R=TW/B/C/(1+.7/R) :IF R<5 THEN C=C/10:GOTO 54000 54100 REM R IN KOHMS, C IN PF , B IS .28 FOR 123, .32 FOR 122 54200 RETURN 54300 REM LM555 ROUTINE 54400 INPUT"PULSE WIDTH DESIRED (SECONDS) = ",TW 54500 IF TW=>.0000001 AND TW<.000001 THEN C=4.7E-11 54600 IF TW=>.000001 AND TW<.00001 THEN C=4.7E-10 54700 IF TW=>.00001 AND TW<.0001 THEN C=1E-08 54800 IF TW=>.0001 AND TW<.001 THEN C=1E-08 54900 IF TW=>.001 AND TW<.01 THEN C=.0000001 55000 IF TW=>.01 AND TW<.1 THEN C=.0000001 55100 IF TW=>.1 AND TW<1 THEN C=.0000001 55200 IF TW=>1 AND TW<10 THEN C=.000001 55300 IF TW=>10 THEN C=.00001 55400 RETURN 55500 REM 55600 INPUT"OSCILLATION FREQUENCY (hZ):",F 55700 INPUT"SUPPLY VOLTAGE (VCC):",VCC 55800 IF VCC<4.5 THEN PRINT"4.5 VOLTS MINIMUM unless TLC555, THEN 2V MIN." 55805 IF VCC<4.5 THEN INPUT"ENTER VCC AGAIN:",VCC 55900 IF VCC>16 THEN PRINT"16 VOLTS MAXIMUM":GOTO 55700 56000 PRINT"RA = RB WHEN DUTY CYCLE(output lo/hi) IS 33.3%; RA IS MIN NEAR 50%" 56100 INPUT"OUTPUT DUTY CYCLE (OUTPUT LO/OUTPUT HI) (%):",DC : DC=DC/100 56200 IF F>=.01 AND F<.1 THEN C=.00001 56300 IF F>=.1 AND F<1 THEN C=.000001 56400 IF F>=1 AND F<10 THEN C=.000001 56500 IF F>=10 AND F<100 THEN C=.0000001 56600 IF F>=100 AND F<1000! THEN C=.0000001 56700 IF F>=1000! AND F<10000! THEN C=1E-08 56800 IF F>=10000! AND F<100000! THEN C=1E-08 56900 IF F>=100000! AND F<1000000! THEN C=1E-09 57000 IF F>=1000000! THEN C=1E-10 57100 IF A=8 THEN RETURN 57200 IF DC=>.5 THEN RA=VCC/.2 : RB=(1.44/F/C-RA)/2 : RETURN 57300 RB=DC*1.44/F/C : RA=RB*(1/DC-2):RETURN 57400 IF TW=>.000001 AND TW<.00001 THEN C=1E-10 57500 IF TW=>.00001 AND TW<.0001 THEN C=1E-09 57600 IF TW=>.0001 AND TW<.001 THEN C=1E-08 57700 IF TW=>.001 AND TW<.01 THEN C=1E-08 57800 IF TW=>.01 AND TW<.1 THEN C=.0000001 57900 IF TW=>.1 AND TW<1 THEN C=.0000001 58000 IF TW=>1 AND TW<10 THEN C=.000001 58100 IF TW=>10 AND TW<100 THEN C=.00001 58200 IF TW=>100 THEN C=.0001 58300 RETURN 58400 REM TIMER.BAS 58500 PRINT#1,CHR$(12) 58505 CLOSE#1:SYSTEM 58600 END