电阻自动取标称值及单位转换程序

🏠 首页 《无线电》杂志 1992年 🔗 第1期 🔗 第27页 分类:无线电技术自学经验交流 🔗 邹立东 🔗

(邹立东)在电子电路的计算机辅助设计中,经计算得到的电阻值往往不是标称值,而工程中所取电阻值必须是标称值。一般情况下,在程序中也是用人参与的方法,按计算值取其相近的标称值。但这显然是没有充分利用计算机的优点,仍停留在半自动半手工的低效率工作方式下。这里讨论的将是一个能将计算值自动取标称值、自动转换单位并显示结果的程序。它将不需人的介入而快速准确地给出最终结果。

本程序所涉及的是普通电阻,按照标准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