-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathTIMER555.bc2
129 lines (129 loc) · 4.25 KB
/
TIMER555.bc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
1000 A=500:GOTO 20
1010 GOTO 6000
1020 GOSUB 100:GOSUB 5000
1030 PRINT" Astabiele multivibrator":PRINT
1040 GOSUB 3000:PRINT:PRINT:GOSUB 4000
1170 GOSUB 100:GOSUB 5000
1180 PRINT" Geef de gewenste duty-cycle van de"
1190 PRINT" uitgangsspanning op punt 3. Deze"
1200 PRINT" moet liggen tussen 50% en 100%."
1210 HO=3:VE=9:GOSUB 110
1220 PRINT"Duty-cycle in % ";
1240 INPUT D
1250 IF D>0 THEN 1280
1260 PRINT"* Duty-cycle mag niet negatief zijn! *";
1270 GOTO 1210
1280 IF D>50 THEN 1310
1290 PRINT"* Duty-cycle groter dan 50% kiezen! * ";
1300 GOTO 1210
1310 IF D<100 THEN 1340
1320 PRINT"* Duty-cycle kleiner dan 100% maken! * "
1330 GOTO 1210
1340 D=D/100
1350 HO=1:VE=10:GOSUB 110
1360 FOR I=0 TO 1
1370 PRINT" "
1380 NEXT
1390 PRINT" Geef nu de gewenste uitgangs- "
1400 PRINT" frequentie. Deze moet liggen tussen"
1410 PRINT" 0.1 Hz en 100 kHz."
1420 HO=3:VE=16:GOSUB 110
1430 PRINT"Uitgangsfrequentie in Hz ";
1450 INPUT F
1460 IF F>.1 THEN 1520
1470 PRINT"* Frequentie hoger dan 0.1 Hz kiezen * "
1480 GOTO 1420
1490 PRINT"* Frequentie lager dan 100 Khz kiezen *"
1500 GOTO 1420
1510 GOTO 1350
1520 IF F<10 THEN C=9.999999E-06:GOTO 1560
1530 IF F<1000 THEN C=9.999999E-07:GOTO 1560
1540 IF F<100000 THEN C=9.999999E-09:GOTO 1560
1550 GOTO 1490:REM FREQUENTIE TE HOOG
1560 PRINT" "
1570 FOR I=0 TO 8:PRINT" Ok";:NEXT
1580 K1=LOG(2):K2=1/(K1*F*C)
1590 RB=K2*(1-D)
1600 RA=K2-2*RB
1610 R=RB:GOSUB 2000:RB=R1
1620 R=RA:GOSUB 2000:RA=R1
1630 GOSUB 100:GOSUB 5000:GOSUB 3000
1640 K$=""
1650 IF RA>10000 THEN R1=RA/1000:K$="kilo-"
1660 PRINT"R1=";R1;K$;"ohm"
1670 K$="":R2=RB
1680 IF RB>10000 THEN R2=RB/1000:K$="kilo-"
1690 PRINT"R2=";R2;K$;"ohm"
1700 PRINT" C=";C*1000000;"microfarad"
1710 PRINT"Frequentie=";1/(K1*(RA+2*RB)*C);"Hz"
1720 PRINT"Duty cycle=";100*(RA+RB)/(RA+2*RB);"%";
1730 GOSUB 4000
1740 GOSUB 100:GOSUB 5000
1750 PRINT"Dit was een P2000 BASICODE programma."
1760 END
1770 :
2000 F=0:REM NIET BUITEN BEREIK
2010 K=0:REM EXPONENT TELLER
2020 IF R<.1 THEN F=1:REM TE KLEIN
2030 IF R>1E+07 THEN F=1:REM TE GROOT
2040 R1=R
2050 REM ZOEK WAARDE IN TABEL
2060 IF R1<=1 THEN 2100
2070 R1=R1/10:REM SHUIF KOMMA
2080 K=K+1:REM TEL VERSCHUIVINGEN
2090 GOTO 2060:REM NOG BINNEN BEREIK?
2100 B=1:REM POINTER NAAR ARRAY-BEGIN
2110 E=25:REM POINTER NAAR ARRAY-EINDE
2120 M=INT((B+E)/2):REM POINTER MIDDEN IN BRUIKBAAR VAK
2130 IF M=B THEN 2170
2140 IF R1=A(M)THEN 2200
2150 IF R1<A(M)THEN E=M:GOTO 2120
2160 IF R1>A(M)THEN B=M:GOTO 2120
2170 IF(R1-A(B))<(A(E)-R1)THEN R1=A(B):GOTO 2190
2180 R1=A(E)
2190 REM NEEM DICHTSTBIJZIJNDE
2200 R1=R1*10^K
2210 IF R1>10 THEN R1=INT(R1+.5)
2220 RETURN
2230 :
3000 PRINT" +-----------------+"
3010 PRINT" ! !"
3020 PRINT" +5V-+-----8 3---OUTPUT"
3030 PRINT" ! ! 555 !"
3040 PRINT" +-----4 1---+--GND"
3050 PRINT" ! ! ! !"
3060 PRINT" ! +--7--------6--2--+ !"
3070 PRINT" ! ! ! ! !"
3080 PRINT" ! +----+ ! +----+ ! ! !!C !"
3090 PRINT" +-! R1 !-+-! R2 !-+--+--!!--+"
3100 PRINT" +----+ +----+ !!"
3110 RETURN
3120 :
4000 HO=15:VE=23:GOSUB 110:PRINT"\ENTER\...";:GOSUB 210
4010 RETURN
4020 :
5000 PRINT:PRINT:PRINT:PRINT:RETURN
6000 DIM A(25)
6010 FOR I=1 TO 25
6020 READ A(I)
6030 NEXT I
6040 GOSUB 100:GOSUB 5000
6050 PRINT" - - - DE ELECTRONICA ONTWERPER - - -"
6060 PRINT
6070 PRINT" **** *** *** *** ***"
6080 PRINT" * * * * * * * * * *"
6090 PRINT" * * * * * * * * *"
6100 PRINT" **** * * * * * * *"
6110 PRINT" * * * * * * * *"
6120 PRINT" * * * * * * * *"
6130 PRINT" * ***** *** *** ***"
6140 PRINT
6150 PRINT"Astabiele multivibrator met de NE-555."
6160 PRINT:PRINT"Dit programma berekent de weerstanden"
6170 PRINT:PRINT"en de condensator in het volgende schema"
6180 GOSUB 4000:GOTO 1020
6190 :
30000 REM STANDAARD WAARDEN
30010 DATA .1,.11,.12,.13,.15,.16,.18,.2
30020 DATA .22,.24,.27,.3,.33,.36,.39,.43
30030 DATA .47,.51,.56,.62,.68,.75,.82,.91,1