(邹立东)在电子电路的计算机辅助设计中,经计算得到的电阻值往往不是标称值,而工程中所取电阻值必须是标称值。一般情况下,在程序中也是用人参与的方法,按计算值取其相近的标称值。但这显然是没有充分利用计算机的优点,仍停留在半自动半手工的低效率工作方式下。这里讨论的将是一个能将计算值自动取标称值、自动转换单位并显示结果的程序。它将不需人的介入而快速准确地给出最终结果。
本程序所涉及的是普通电阻,按照标准SJ618-73的I级误差±5%取标称值R(E24)为:1.0,1.1,1.2,1.3,1.5,1.6,1.8,2.0,2.2,2.4,2.7,3.0,3.3,3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1。各电阻标称值为R×10\(^{n}\)(n为0,1,2,……12)。程序见所附清单。
程序中第10~390行为主程序。其中100~120行是本程序独立演示时由键盘输入的任意电阻值,在实际设计程序中去除之,而直接将计算得到的电阻R1、R2……Rn各值由200~220行调子程序取标称值后再返回给R1、R2……Rn。300~320行是自动转换单位并显示结果的调子程序过程。电阻单位的换算关系为:1kΩ=10\(^{3}\)Ω,1MΩ=106Ω,1GΩ=10\(^{9}\)Ω,1TΩ=1012Ω,这在第20行中已分别赋值。500~640行为自动取标称值子程序。DATA语句中,除-1和10.9外均为标称值基值。700~760行为单位自动转换并显示子程序。
本程序的具体使用方法是:去掉100~120行,将200~220行分别放在实际设计程序中对应的电阻计算值之后。注意,对应的行号要随之变动(子程序亦如此)。本程序运用于IBM—PC/XT及其兼容机。
10 KEY OFF:CLS:DIM R(26)
20 K=1000:M=1000000!:G=1E+09:T=1E+12
100 INPUT“R1=”;R1
110 INPUT“R2=”;R2
120 INPUT“Rn=”;RN
180 ’
200 R=R1:GOSUB 500:R1=R
210 R=R2:GOSUB 500:R2=R
220 R=RN:GOSUB 500:RN=R
280 ’
300 R=R1:PRINT“R1=”;:GOSUB 700
31o R=R2:PRINT“R2=”;:GOSUB 700
320 R=RN:PRINT“Rn=”;:GOSUB 700
390 END
500 ’电阻自动取标称值子程序(△R=±5%)
510 J=0:IF R>0 AND R<1 THEN R=1
520 IF R>=10^J AND R<10 ^(J+1)THEN 540 ELSE J=J+1
530 IF J>15 THEN 550 ELSE GOTO 520
540 R=R/(10 ^ J):GOSUB 560:R=R*(10^J)
550 RETURN
560 ’SUB of sub
570 FOR I=1 T0 26:READ R(I):NEXT I
580 RESTORE
590 DATA-1,1,1.1,1.2,1.3,1.5,1.6,1.8,2,2.2,2.4,2.7,3,3.3
600 DATA 3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1,10.9
610 I=1
620 A=(R(I)+R(I+1))/2:B=(R(I+1)+R(I+2))/2:I=I+1
630 IF R>=A AND R<B THEN R=R(I)ELSE GOTO 620
640 RETURN
700 ’自动转换单位子程序
705 IF R=8.5+.6 THEN PRINT“9.1(Ω)”:GOTO 720
710 IF R<1000 THEN PRINT FIX(R*10+.5)/10;“(Ω)”
715 IF R=9100 THEN PRINT“9.1(kΩ)”:GOTO 725
720 IF R>=K AND R<M THEN PRINT R/K;“kΩ)”
725 IF R=9100000!THEN PRINT“9.1(MΩ)”:GOTO 735
730 IF R>=M AND R<G THEN PRINT R/M;“(MΩ)”
735 IF R=(8.5+.6)*IE+09 THEN PRINT“9.1(GΩ)”GOTO 745
740 IF R>=G AND R<T THEN PRINT R/G;“(GΩ)”
745 IF R=(8.5+.6)*1E+12 THEN PRINT“9.1(TΩ)”:GOTO 760
750 IF R>=T AND R<1E+15 THEN PRINT R/T;“(TΩ)”
760 RETURN