LIST 1 CLEAR 2400:DIM M$(10.0):DIM T555$(10.0) 2 POKE #2F5,7:POKE #2F1,0:POKE #2F6,0 3 FOR X=1.0 TO 9.0:READ T555$(X):NEXT 4 Q=15.0 5 TEXT=1.0 9 MODE 0 10 PRINT CHR$(12):CURSOR 10,20:PRINT "QUICK DESIGN 555 DAInamic" 20 CURSOR 10,15:M$(1.0)="GENERAL DESCRIPTION (1)":PRINT M$(1.0) 30 CURSOR 10,13:M$(2.0)="FIGURE 1 : TIME DELAYS (2)":PRINT M$(2.0) 40 CURSOR 10,11:M$(3.0)="TIMER (3)":PRINT M$(3.0) 50 CURSOR 10,9:M$(4.0)="ASTABLE MODE: OSCILLATOR (4)":PRINT M$(4.0) 60 CURSOR 10,7:M$(5.0)="PULSE POSITION MODULATOR (5)":PRINT M$(5.0) 70 CURSOR 10,5:M$(6.0)="LINEAR RAMP GENERATOR (6)":PRINT M$(6.0) 80 CURSOR 10,3:M$(7.0)="CONNECTIONS DIAGRAM (7)":PRINT M$(7.0) 90 G=GETC:IF G=0.0 GOTO 90 92 IF G<48 OR G>57 GOTO 90 160 REM SKIP TITLE 300 ON G-48 GOSUB 1000,2000,3000,4000,5000,6000,10000,10000,9000 999 RESTORE:GOTO 2 1000 REM GENERAL DESCRIPTION 1001 PRINT CHR$(12):PRINT " 555 GENERAL DESCRIPTION 555" 1002 PRINT :PRINT "the 555 is a highly stable device for generating accurate time delays or oscillation." 1003 PRINT "in the time delay mode,the time is precisely controlled by one external resistor and one capacitor" 1004 PRINT "for astable operation as an oscillator,the free running frequency and duty cycle are accurately controlled " 1005 PRINT "with two external resistors and one capacitor":PRINT 1006 PRINT "the circuit can source or sink up to 200 mA" 1007 PRINT " maximum ratings ":PRINT :PRINT "supply voltage 18V":PRINT :PRINT "dissipation 600 mW":GOSUB 65000 1008 MODE 6A:COLORG 8 0 3 14 1009 PRINT CHR$(12) 1010 FOR D=1.0 TO 4.0:READ X1,Y1,X2,Y2:FILL X1,Y1 X2,Y2 0:NEXT 1020 FOR D=1.0 TO 49.0:READ X1,Y1,X2,Y2:DRAW X1,Y1 X2,Y2 0:NEXT 1030 FOR F=1.0 TO 12.0:READ X1,Y1,X2,Y2:FILL X1,Y1 X2,Y2 0:NEXT 1035 FILL 280,40 300,60 0 1040 F=1.0:C=0.0 1045 FOR T=1.0 TO 17.0:READ A$,X,Y:GOSUB 40040 1050 NEXT 1060 REM ACTION.... 1065 IF TEXT=0.0 GOTO 1077 1070 PRINT "the external capacitor is initially held discharged" 1075 PRINT "by the transistor inside the timer" 1077 FOR X=1.0 TO Q:DRAW 90,70 100,60 14:DRAW 90,70 95,70 14:DRAW 90,70 90,65 14:WAIT TIME 5 1078 DRAW 90,70 100,60 8:DRAW 90,70 95,70 8:DRAW 90,70 90,65 8:WAIT TIME 5:NEXT 1079 IF TEXT=0.0 GOTO 1130 1080 GOSUB 65000 1085 PRINT CHR$(12) 1090 PRINT "upon application of a negative trigger pulse" 1100 PRINT "of less than 1/3 Vcc to pin 2," 1105 GOSUB 65000 1110 PRINT "the flip-flop is set,the short circuit across the transistor" 1120 PRINT "is released,the output drives high." 1130 FOR X=1.0 TO Q:DRAW 265,100 265,90 0:DRAW 265,90 270,90 0:DRAW 270,90 270,100 0 1135 WAIT TIME 5 1140 DRAW 265,100 265,90 8:DRAW 265,90 270,90 8:DRAW 270,90 270,100 8:SOUND 1 0 15 0 FREQ(600.0):WAIT TIME 3:SOUND OFF :NEXT 1150 DRAW 145,60 145,70 3:DRAW 145,70 150,70 3:DRAW 150,60 150,70 3 1155 FILL 280,40 300,60 14 1160 FOR X=42.0 TO 60.0:DRAW 16,X 34,X 3:GOSUB 30000:SOUND 1 0 15 2 FREQ(X*10.0):WAIT TIME 10:NEXT 1165 SOUND OFF :IF TEXT=0.0 GOTO 1230 1170 GOSUB 65000 1180 PRINT "the voltage across the capacitor increases" 1190 PRINT "until the voltage equals 2/3 Vcc" 1200 GOSUB 65000 1210 PRINT "the comparator then resets the flip-flop which in turn" 1220 PRINT "discharges the capacitor and drives the output low" 1230 DRAW 160,165 160,175 3:DRAW 160,175 165,175 3:DRAW 165,175 165,165 3 1240 DRAW 145,70 150,70 8:DRAW 145,60 150,60 3 1249 GOSUB 59000 1250 FILL 280,40 300,60 0 1259 GOSUB 59000 1260 FILL 16,42 34,60 8 1270 FILL 145,60 150,70 8 1272 FILL 160,165 165,175 8 1273 IF TEXT=0 THEN Q=3.0:NUM=NUM+1.0:IF NUM<5.0 GOTO 1060 1274 NUM=0.0 1275 WAIT TIME 50:PRINT CHR$(12):PRINT "(T) for text (A) for action (M) for menu" 1598 G=GETC:IF G=0.0 GOTO 1598 1599 IF G=ASC("T") THEN TEXT=1.0:GOTO 1060 1600 IF G=ASC("A") THEN TEXT=0.0:GOTO 1060 1610 IF G=ASC("M") THEN RETURN 1620 GOTO 1598 2000 REM FIGURE 1 : TIME DELAYS 2010 MODE 6:COLORG 0 5 14 15 2020 FOR X=100.0 TO 310.0 STEP 30.0:DRAW X,30 X,230 5:NEXT 2030 FOR X=30.0 TO 230.0 STEP 40.0:DRAW 100,X 310,X 5:NEXT 2040 DRAW 100,80 210,230 15 2050 DRAW 100,40 240,230 15 2060 DRAW 120,30 270,230 15 2070 DRAW 150,30 300,230 15 2080 DRAW 180,30 310,200 15 2090 X=200.0:Y=235.0:A$="1K":C=14.0:GOSUB 40040 2100 X=230.0:A$="10K":GOSUB 40040 2110 X=260.0:A$="100K":GOSUB 40040 2120 X=300.0:A$="1M":GOSUB 40040 2130 X=300.0:Y=200.0:A$="10M":GOSUB 40040 2140 X=20.0:Y=248.0:C=14.0:A$="CAPACITANCE MICROFARAD":VFLAG=1.0:GOSUB 40040 2150 X=50.0:Y=230.0:VFLAG=0.0:A$="100":GOSUB 40040 2160 X=50.0:Y=190.0:A$="10":GOSUB 40040:X=50.0:Y=150.0:A$="1":GOSUB 40040 2170 X=50.0:Y=110.0:A$="0.1":GOSUB 40040:X=50.0:Y=70.0:A$="0.01":GOSUB 40040 2180 X=50.0:Y=30.0:A$="0.001":GOSUB 40040 2190 X=5.0:Y=5.0:A$="TIME DELAY":GOSUB 40040 2200 X=95.0:Y=20.0:A$="-5":GOSUB 40040:X=125.0:Y=20.0:A$="-4":GOSUB 40040 2210 X=155.0:A$="-3":GOSUB 40040:X=185.0:A$="-2":GOSUB 40040 2220 X=215.0:A$="-1":GOSUB 40040:X=245.0:A$="1S":GOSUB 40040 2230 X=275.0:A$="10S":GOSUB 40040:X=305.0:A$="100S":GOSUB 40040 2999 GOSUB 65000:RETURN 3000 REM TIMER 3002 COLORG 8 0 3 14 3005 MODE 6 3006 X=50.0:Y=230.0:C=0.0:A$="TIMER 555":GOSUB 40040 3010 X=150.0:Y=50.0:GOSUB 44000 3020 DRAW 250,10 250,52 0:X=250.0:Y=60.0:GOSUB 45500 3022 C=0.0 3025 X=260.0:Y=55.0:A$="C1":GOSUB 40040 3030 DRAW 250,60 250,150 0:X=250.0:Y=150.0:GOSUB 45200 3035 X=260.0:Y=145.0:A$="R1":GOSUB 40040 3040 DRAW 250,165 250,200 0 3050 DRAW 200,98 250,98 0 3060 DRAW 200,78 250,78 0 3070 DRAW 200,118 240,118 0:DRAW 240,118 240,200 0 3080 DRAW 100,10 100,30 0:X=100.0:Y=40.0:GOSUB 45400 3090 DRAW 100,40 100,150 0:X=100.0:Y=150.0:GOSUB 45200 3095 DRAW 100,165 100,200 0 3100 DRAW 100,98 150,98 0 3110 DRAW 150,118 130,118 0:X=130.0:Y=116.0:GOSUB 45300 3120 FOR X=50.0 TO 150.0 STEP 4.0:DRAW X,78 X+1,78 0:NEXT 3130 X=50.0:Y=60.0:A$="OUT":GOSUB 40040 3140 X=30.0:Y=88.0:GOSUB 45600 3200 IF GETC=0.0 GOTO 3200 3210 MODE 6A:PRINT CHR$(12) 3220 PRINT "CALCULATE : TIME DELAY (T) RESISTOR (R) CAPACITOR (C)" 3230 PRINT " milliseconds kiloohm microfarad" 3250 G=GETC:IF G=0.0 GOTO 3250 3252 IF G=ASC("R") GOTO 3300 3254 IF G=ASC("C") GOTO 3400 3256 IF G=ASC("T") GOTO 3260 3258 GOTO 3250 3260 IF G=ASC("T") THEN INPUT "RESISTOR (Kohm) , CAPACITOR (microF)";R,C:PRINT :PRINT "TIME DELAY = ";1.1*R*C;" millisecomds" 3270 GOTO 3500 3300 REM RESISTOR 3310 INPUT "TIME DELAY (milliSEC) , CAPACITOR (microF) ";T,C:PRINT :PRINT "RESISTOR = ";T/(1.1*C);" Kohm":GOTO 3500 3400 REM CAPACITOR 3410 INPUT "TIME DELAY (milliSEC), RESISTOR (Kohm) ";T,R:PRINT :PRINT "CAPACITOR - ";T/(1.1*R);" microF":GOTO 3500 3500 REM 3510 PRINT " (S) to stop (C) to continue calculating" 3520 G=GETC:IF G=0.0 GOTO 3520 3530 IF G=ASC("S") THEN RETURN 3540 IF G=ASC("C") THEN PRINT CHR$(12):GOTO 3220 3550 GOTO 3520 3999 GOTO 3999 4000 REM ASTABLE MODE : OSCILLATOR 4005 MODE 6:COLORG 8 0 3 14 4010 X=50.0:Y=230.0:C=0.0:A$="555 OSCILLATOR":GOSUB 40040 4020 X=150.0:Y=50.0:GOSUB 44000 4030 DRAW 250,10 250,52 0:X=250.0:Y=60.0:GOSUB 45500:X=260.0:Y=55.0:A$="C1":GOSUB 40040 4040 DRAW 250,60 250,80 0:X=250.0:Y=80.0:GOSUB 45200 4050 DRAW 200,78 250,78 0:DRAW 200,98 250,98 0 4060 DRAW 250,96 250,150 0:X=250.0:Y=150.0:GOSUB 45200 4065 X=260.0:Y=80.0:A$="R2":GOSUB 40040 4066 X=260.0:Y=150.0:A$="R1":GOSUB 40040 4070 DRAW 250,165 250,200 0 4080 DRAW 200,118 220,118 0:DRAW 220,118 220,200 0 4090 DRAW 150,118 130,118 0:X=130.0:Y=116.0:GOSUB 45300 4100 DRAW 150,98 120,98 0:DRAW 120,98 120,30 0:DRAW 120,30 220,30 0 4110 DRAW 220,30 220,78 0 4120 FILL 219,77 221,79 0 4130 DRAW 150,58 100,58 0:DRAW 100,58 100,200 0 4140 FOR X=50.0 TO 150.0 STEP 4.0:DRAW X,78 X+1,78 0:NEXT 4150 FOR X=10.0 TO 60.0 STEP 10.0:DRAW X,80 X,85 0:DRAW X,85 X+5,85 0:DRAW X+5,85 X+5,80 0 4160 DRAW X+5,80 X+10,80 0:NEXT 4500 REM CALCULATING 4510 IF GETC=0.0 GOTO 4500 4520 MODE 6A:PRINT CHR$(12) 4530 PRINT "CALCULATE:FREQ (F) R1 (1) R2 (2) CAPACITOR (C)" 4540 PRINT " Hertz Kohm Kohm microF" 4550 G=GETC:IF G=0.0 GOTO 4550 4555 WAIT TIME 3 4560 IF G=ASC("F") GOTO 4600 4570 IF G=ASC("1") GOTO 4700 4580 IF G=ASC("2") GOTO 4800 4590 IF G=ASC("C") GOTO 4900 4595 GOTO 4550 4600 INPUT " R1 (Kohm) , R2 (Kohm) , Capacitor (microF) ";R1,R2,C 4610 PRINT :PRINT "FREQ = ";:F=1.44/((R1+2.0*R2)*C):PRINT F;" Hertz" 4620 IF F>30.0 AND F<20000.0 THEN SOUND 1 0 15 0 FREQ(F) 4630 GOTO 4950 4700 INPUT " F (Hertz) , R2 (Kohm) , Capacitor (microF) ";F,R2,C 4710 PRINT :PRINT " R1 = ";:R1=1.44/(F*C)-(2.0*R2):PRINT R2;" Kohm":GOTO 4620 4800 INPUT " F (Hertz) , R1 (Kohm) , C (microF) ";F,R1,C 4810 PRINT :PRINT " R2 = ";:R2=(((1.44/(F*C))-R1)/2.0):PRINT R2;" Kohm":GOTO 4620 4900 INPUT " F (Hertz) , R1 (Kohm) , R2 (Kohm ) ";F,R1,R2 4910 PRINT :PRINT " C = ";:C=1.44/((R1+2.0*R2)*F):PRINT C;" microF":GOTO 4620 4950 PRINT " (S) to stop (C) to continue calculating " 4960 G=GETC:IF G=0.0 GOTO 4960 4962 SOUND OFF 4965 IF G=ASC("S") THEN RETURN 4970 IF G=ASC("C") THEN PRINT CHR$(12):GOTO 4530 4980 GOTO 4960 5000 GOTO 90 6000 GOTO 90 10000 REM CONNECTIONS DIAGRAM 10010 MODE 6:COLORG 8 0 3 14 10015 X=20.0:Y=190.0:C=0.0:F=1.0:A$=M$(7.0):GOSUB 40040 10020 DRAW 120,50 200,50 0:DRAW 200,50 200,150 0:DRAW 200,150 120,150 0:DRAW 120,150 120,50 0 10030 FOR Y=50.0 TO 140.0 STEP 30.0:FOR X=110.0 TO 200.0 STEP 90.0 10040 DRAW X,Y X+10,Y 0:DRAW X+10,Y X+10,Y+10 0 10045 DRAW X+10,Y+10 X,Y+10 0:DRAW X,Y X,Y+10 0 10050 NEXT:NEXT 10055 FILL 155,140 165,150 14:FILL 200,140 210,150 3 10060 FOR T%=1 TO 4:X=20.0:C=0.0:Y=170.0-T%*30.0:A$=T555$(T%):GOSUB 40040:X=125.0:A$=MID$(STR$(T%),1,1):GOSUB 40040 10065 X=190.0:A$=MID$(STR$(9.0-T%),1,1):GOSUB 40040:X=215.0:A$=T555$(9.0-T%):GOSUB 40040 10070 NEXT 10100 IF GETC=0.0 GOTO 10100 10110 RETURN 30000 FOR M=185.0 TO 75.0 STEP -10.0 30010 FILL 16,M 20,M+4 3:FILL 16,M 20,M+4 8:NEXT 30020 RETURN 35000 FOR X=0.0 TO XMAX/2.0:DRAW X,0 X,YMAX 8:DRAW XMAX-X,0 XMAX-X,YMAX 8:NEXT:RETURN 40000 GOTO 40000 40040 POKE #2F2,X MOD 256:POKE #2F3,X/256:POKE #2F4,Y 40050 POKE #2F0,C 40060 CALLM #300,A$:RETURN 44000 REM CONFIGURATION 44010 DRAW X,Y X+50,Y 0:DRAW X+50,Y X+50,Y+75 0 44020 DRAW X+50,Y+75 X,Y+75 0:DRAW X,Y+75 X,Y 0 44030 FOR M=X-5.0 TO X+50.0 STEP 55.0 44040 FOR N=Y+5.0 TO Y+70.0 STEP 20.0 44050 FILL M,N M+5,N+5 0 44051 NEXT:NEXT 44055 FILL X+22,Y+70 X+28,Y+75 0 44061 X=X+2.0:Y=Y+65.0:A$="1":C=0.0:VFLAG=0.0:GOSUB 40040 44070 DRAW 10,10 XMAX-30,10 0:X=XMAX-22.0:Y=3.0:C=0.0:A$="0V":VFLAG=0.0:GOSUB 40040 44075 DRAW 10,200 XMAX-30,200 3:C=3.0:X=XMAX-22.0:Y=198.0:A$="+V":GOSUB 40040 44080 RETURN 45000 REM DIODE DOWN 45010 DRAW X-5,Y X+5,Y 0 45020 FOR D=X-5.0 TO X+5.0:DRAW D,Y+10 X,Y+1 0:NEXT 45030 RETURN 45100 REM DIODE UP 45110 DRAW X-5,Y X+5,Y 0 45120 FOR D=X-5.0 TO X+5.0:DRAW D,Y-10 X,Y-1 0:NEXT 45130 RETURN 45200 REM RESISTOR 45210 DRAW X-4,Y X+4,Y 0:DRAW X-4,Y X-4,Y+15 0 45220 DRAW X+4,Y X+4,Y+15 0:DRAW X-4,Y+15 X+4,Y+15 0 45230 RETURN 45300 REM GROUND 45310 DRAW X-7,Y X+7,Y 0:DRAW X-5,Y-2 X+5,Y-2 0 45320 DRAW X-3,Y-4 X+3,Y-4 0:DOT X,Y-6 0 45330 RETURN 45400 REM DRUKKNOP 45410 DRAW X-4,Y+2 X-4,Y-12 0:DRAW X-8,Y-2 X-8,Y-8 0 45420 DRAW X-8,Y-2 X-4,Y-2 0 45430 DRAW X-8,Y-8 X-4,Y-8 0 45440 RETURN 45500 REM CAPACITOR 45510 DRAW X,Y X,Y-3 0:DRAW X-5,Y-3 X+5,Y-3 0 45520 DRAW X-5,Y-6 X+5,Y-6 0:DRAW X,Y-6 X,Y-8 0 45530 RETURN 45600 DRAW X-4,Y X+4,Y 0:DRAW X-4,Y X-4,Y-10 0 45610 DRAW X+4,Y X+4,Y-10 0:DRAW X-4,Y-10 X-8,Y-10 0 45620 DRAW X+4,Y-10 X+8,Y-10 0 45630 RETURN 59000 SOUND 1 0 15 0 FREQ(2000.0):SOUND 1 0 15 2 FREQ(100.0):WAIT TIME 20:SOUND OFF :RETURN 60000 DATA GROUND,TRIGGER,OUTPUT,RESET,CTRL VOLTAGE,THRESHOLD,DISCHARGE,+VCC,555 60005 DATA 50,30,260,32,258,30,260,180,260,180,50,178,50,180,52,30 60010 DATA 180,110,230,110,230,110,230,160,230,160,180,160,180,160,180,110 60012 DATA 120,140,150,155,150,155,180,155,150,155,120,170,120,170,120,140 60015 DATA 120,100,150,115,150,115,120,130,120,130,120,100,150,115,180,115 60020 DATA 25,190,290,190,290,80,290,20,290,20,150,20,290,80,210,80,195,70,210,80,210,80,195,90,195,90,195,70 60025 DATA 230,150,260,150,220,110,220,105,220,105,160,105,160,105,160,80 60030 DATA 25,160,120,160,80,145,120,145,80,125,120,125,110,110,120,110,110,110,110,95,110,95,260,95 60035 DATA 25,190,25,70,25,40,25,20,25,20,150,20,150,20,150,30,25,90,75,90,75,90,75,85,75,85,80,80 60040 DATA 80,80,75,75,75,75,75,50,80,80,195,80 60045 DATA 15,40,15,70,35,40,35,70,70,50,80,50,72,48,78,48,74,46,76,46 60050 DATA 80,190,80,100,75,100,85,100,77,98,83,98,79,96,81,96 60055 DATA 100,180,100,145 60056 REM FILL... 60060 DATA 15,40,35,42,15,68,35,70,15,40,35,42,23,165,27,180,78,165,82,175,78,130,82,140,78,105,82,115 60065 DATA 79,144,81,146,99,144,101,146,80,75,82,85 60070 DATA 159,79,161,81,159,79,161,81 60075 DATA 7,53,92,6,53,147 60080 DATA *555*,210,50,1,141,35 60090 DATA +,111,161,-,111,138 60100 DATA 8,78,195,R,182,150,S,182,112 60105 DATA Q,217,112,-,217,119 60110 DATA 3,250,70,2,250,102,4,250,152 60115 DATA +,292,192,-,15,15 60120 DATA RL,300,30 65000 G=GETC:IF G=0.0 GOTO 65000 65001 RETURN *