Радио-86РК/Радио 04-88/Программа-мультиметр/Таблица 1

Материал из Emuverse
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Автор: А. ДОЛГИЙ

Источник: http://retro.h1.ru/RK86/Multim/Multimet.php

10 REM ******** ЧАСТОТОМЕР/МУЛЬТИМЕТР ********** 
20 REM ************ ДЛЯ "РАДИО-86РК" *********** 
30 REM *ASD* 08. 12. 87 
40 GOTO 2010
100 REM +++ ПОДПРОГРАММА ОТСЧЕТА +++
110 A=USR(I0)
120 N=K1+PEEK(N2)*K2+PEEK(N1)*K3+PEEK(N1+1)*K4 
130 PRINT" ***************":E=0: RETURN 
200 REM +++ МАСШТАБИРО0АНИЕ И ПЕЧАТЬ РЕЗУЛЬТАТА ++++ 
210 IF ABS(X)<1E-9.THEN PRINT X*1E12;"П;U$:RETURN 
220 IF ABS(X)<.000001 THEN PRINT Х*1Е9;"Н": U$: RETURN 
230 IF ABS(X)<.001 THEN PRINT X*1E6;"MKФ":U$: RETURN 
240 IF ABS(X)<1 THEN PRINT X*1000;"M":U$:RETURN 
250 IF ABS(X)<1000 THEN PRINT X; U$: RETURN 
260 IF ABS(X)<1E6 THEN PRINT X*.001;"K":U$: RETURN 
270 PRINT X*.000001;"MГ";U$:RETURN 
300 REM +++++ ИЗМЕРЕНИЕ ПЕРИОДА СИГНАЛА +++ 
310 GOSUB 100: X=N*T0 
320 U$="С": PRINT "ПЕРИОД " ;: GOTO 250 
400 REM +++++ ИЗМЕРЕНИЕ ЧАСТОТЫ СИГНАЛА +++++ 
410 GOSUB 100:X=1/(N*T0) 
420 U$="ГЦ ": PRINT"ЧАСТОТА ";: GOTO 250 
500 REM +++ ИЗМЕРЕНИЕ СОПРОТИBЛЕНИЯ +++++ 
510 IF NOT KR THEN GOSUB 900:GOTO 940 
520 GOSUB 100:X=R0*N/NR
530 U$=" OM " : PRINT " СОПРОТИ0ЛЕНИЕ " ; : GOTO 250 
600 REM +++++ ИЗМЕРЕНИЕ ЕМКОСТИ +++++ 
610 IF NOT КС THEN GOSUB 900: GOTO 940 
620 GOSUB 100: X=C0*N/NC 
630 U$= "ф": PRINT "ЕМКОСТЬ ": GOTO 210 
700 REM +++++++ ИЗМЕРЕНИЕ ТЕМПЕРАТУРЫ +++ 
710 GOSUB 100:X=(T1+273)/M*LOG(F1*N*T0)+T1 
720 U$="ГРАД. ЦЕЛЬСИЯ ": PRINT" ТЕМПЕРАТУРА " ;: GOTO 250 
800 REM +++ ИЗМЕРЕНИЕ НАПРЯЖЕНИЯ +++ 
810 IF NOT KU OR NOT ZS THEN GOSUB 900 : GOTO 930 
820 GOSUB 100:X=(N-N0)*SU 
830 U$= "B": PRINT "НАПРЯЖЕНИЕ ";:GOTO 240 
900 PRINT 
910 РRIТ"ПЕРЕД ПЕРВЫМ ИЗМЕРЕНИЕМ "Z$" НЕОБХОДИМА КАЛИБРО0КА";
920 RETURN
930 PRINT : PRINT "И УСТАНО0КА НУЛЯ"; 
940 PRINT".": RETURN 
1000 REM +++++ КАЛИБРОВКА +++++
1010 PRINT"     ПОДКЛЮЧИТЕ ЭТАЛОН К ПРЕОБРАЗО0АТЕЛЮ." 
1020 PRINT''BBEДИTE ВИД И ТОЧНОЕ ЗНАЧЕНИЕ ЭТАЛОННОЙ ВЕЛИЧИНЫ." 
1030 PRINT
1040 PRINT"     R - СОПРОТИ0ЛЕНИЕ (КОМ)" 
1050 PRINT"     С - ЕМКОСТЬ (Нф)"
1060 PRINT"     U - НАПРЯЖЕНИЕ (В)" 
1070 PRINT
1080 PRINT"ПPИMEP: U=8.952" 
1090 INPUT K$:L=LEN(K$):IF L<3 GOTO 1080 
1100 K=VAL(RIGHT$(K$,L-2)):K1$=LEFT$(K$,1) 
1110 IF K=0 THEN PRINT"HYЛEBOE ЗНАЧЕНИЕ НЕДОПУСТИМО" :GOTO 1090 
1120 IF K1$="R" THEN R0=K*1000:GOSUB 100:NR=N:KR=-1:RETURN 
1130 IF К1$="С" THEN C0=K*1E-9:GOSUB 100:NC=N:KC=-1:RETURN 
1140 IF K1$="U" THEN PRINT"KAЛИБPOBKA ":К1$;" ?":RETURN 
1150 GOSUB 100:NX=N:GOSUB 1210 
1160 SU=K/(NX-N0):KU=-1:RETURN 
1200 REM +++ УСТАНО0КА НУЛЯ ВОЛЬТМЕТРА +++ 
1210 PRINT:PRINT"     ЗАМКНИТЕ ВХОД ПРЕОБРАЗО0АТЕЛЯ " 
1220 PRINT" 'НАПРЯЖЕНИЕ-ЧАСТОТА И НАЖМИТЕ ЛЮБУЮ КЛАВИШУ." 
1230 Z=USR(-2045):GOSUB 100:N0=N:ZS=-1:RETURN 
2000 REM +++ ГЛАВНАЯ ПРОГРАММА +++ 
2010 PRINT
2020 PRINT ТАB(15);"ЧАСТОТОМЕР/МУЛЬТИМЕТР" 
2030 PRINT
2040 PRINT"     СИГНАЛ, ЧАСТОТУ ИЛИ ПЕРИОД КОТОРОГО НЕОБХОДИМО" 
2050 PRINT"И3MEPИTb, ПОДАЙТЕ НА ВХОД КОМПЬЮТЕРА, ПРЕДНАЗНАЧЕН-" 
2060 PRINT"HЫЙ ДЛЯ ПОДКЛЮЧЕНИЯ МАГНИТОФОНА. ПРИ ИЗМЕРЕНИИ ДРУ-" 
2070 PRINT"ГИX ВЕЛИЧИН НА ЭТОТ ЖЕ ВХОД ПОДАЙТЕ СИГНАЛ ОТ ПРЕ-" 
2080 РRIТ"ОБРАЗОВАТЕЛЯ ИЗМЕРЯЕМАЯ ВЕЛИЧИНА - ЧАСТОТА ." 
2090 I0=12800:REM НАЧ. АДРЕС П/П ОТСЧЕТА ПЕРИОДА 
2100 REM ВВОД КОДОВ ПОДПРОГРАММЫ 
2110 FOR I=10 TO I0+79:READ С$:Х=0 
2120 FOR J=1 TO 2;X=X*16
2130 D=ASC(MID$(C$,J,1))-48:IF D>9 THEN D=D-7 
2140 X=X+D:NEXT:POKE I,X:NEXT
2150 N1=I:N2=N1+2:REM АДРЕСА РЕЗУЛЬТАТОВ РАБОТЫ ПОДПРОГРАММЫ 
2160 KR=0:KC=0:KU=0:ZS=0:REM ФЛАГИ КАЛИБРО0КИ 
2170 REM КОНСТАНТЫ ДЛЯ ВЫЧИСЛЕНИЯ ПЕРИОДА 
2180 FQ=16E6:REM ЧАСТОТА КВАРЦЕВОГО РЕЗОНАТОРА РК (ГЦ) 
2190 T0=9/FQ:K1=30.4:K2=11/128:K3=11.142:K4=K3*256 
2200 REM КОНСТАНТЫ ДЛЯ ИЗМЕРЕНИЯ ТЕМПЕРАТУРЫ 
2210 T1=0:F1=157.97:T2=100:F2=351.76 
2220 M=(T1+273)/(T2-T1)*LOG(F1/F2) 
2230 PRINT
2240 PRINT"И3MEPEHИE ВЫПОЛНЯЕТСЯ ПРИ НАЖАТИИ СЛЕДУЮЩИХ КЛАВИШ:" 
2250 PRINT
2260 PRINT"     'F' - ЧАСТОТА:" 
2270 PRINT"     'T' - ПЕРИОД:" 
2280 PRINT"     'R' - СОПРОТИ0ЛЕНИЕ:" 
2290 PRINT"     'С' - ЕМКОСТЬ:" 
2300 PRINT"     'G- - ТЕМПЕРАТУРА:" 
2310 PRINT"     'U' - НАПРЯЖЕНИЕ:" 
2320 PRINT"     '0' - УСТАНО0КА НУЛЯ ВОЛЬТМЕТРА:" 
2330 PRINT"     'К'- КАЛИБРО0КА." 
2340 PRINT
2350 PRINT"     ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ 'Q'" 
2360 Z$=CHR$(USR(-2045)): Е=-1 
2370 IF Z$="T" THEN GOSUB 310 
2380 IF Z$="F" THEN GOSUB 410 
2390 IF Z$="R" THEN GOSUB 510 
2400 IF Z$="C" THEN GOSUB 610 
2410 IF Z$="G" THEN GOSUB 710 
2420 IF Z$="U" THEN GOSUB 810 
2450 IF Z$="K" THEN GOBUB 1000 
2440 IF Z$="B" THEN GOSUB 1210 
2450 IF NOT E GOTO 2360 
2460 IF Z$="Q" GOTO 2230 
3000 REM +++ КОДЫ ПОДПРОГРАММЫ ОТСЧЕТА +++ 
3010 DATA E5,D5,C5,F5,21,00,00,39,22,54,32,31,D6,32,21,30 
3020 DATA 32,E5,0E,3F,21,34,32,E5,0D,C2,17,32,11,00,00,21 
3030 DATA 02,80,7Е,46,B8,СА,23,32,ЗЕ,80,32,08,Е0,СЗ,34,32 
3040 DATA 31,56,32,13,7E,B8,C8,47,0D,C0,EB,22,50,32,21,AA 
3050 DATA D7,39,22,52,32,2A,54,32,F9,F1,C1,D1,E1,C3,2D,F8