Определение промежутка времени между двумя замыканиями
Определение периода колебания маятника.
На длинной нити подвешивается магнит, а в качестве датчика магнитного поля используется геркон (герметичный контакт). Для проведения компьютерного эксперимента геркон подключается к контактам 15 (D3) и 25 (GND). Геркон устанавливается в точке покоя маятника. Под действием магнитного поля ферромагнитные пластинки геркона соединяются, замыкая цепь.
Отклоним магнит в крайнее правое положение, запустим программу и отпустим маятник. В момент замыкания геркона программа выходит из цикла строк 20-30 и фиксирует в t1 начало периода колебания. В момент времени t2 фиксируется размыкание геркона после прохождения магнита. В момент t3 магнит возвращается и вновь замыкает геркон и в t4 фиксирует его размыкание. Отклоняясь вправо и возвращаясь в исходную точку, фиксируется вновь время t5. Период колебания маятника Т = t5 – t1
10 cls очистка экрана
20 a=inp ( &h 379) чтение состояния порта
30 if =127 then go to 20 проверка замкнутого состояния геркона
40 t1=timer запись времени начала падения (точность 0,05 с)
50 a= inp ( &h 379)
60 if a=119 then go to 50 проверка замкнутого состояния геркона
70 t2= timer
80 a= inp ( &h 379)
90 if a =127 then go to 80
100 t3= timer
110 a= inp ( &h 379)
120 if a= =119 then go to 110
130 t4= timer
140 a= inp ( &h 379)
150 if a =127 then go to 140
160 t5= timer
170 t= t5 – t1
180 print t
185 sleep 1
190 goto 20
Опыт с наклонной плоскостью.
Движение тела по наклонной плоскости в установке представлено движением кольцевого магнита Рис.6. В наклонную плоскость вмонтированы на равном расстоянии герконы 1–6, создавая 5 одинаковых участков для движения магнита. При прохождении магнита над герконом последний замыкается, подавая во входной порт число 119, при удалении от геркона поле магнита уменьшается, контакт размыкается и во входной порт подается число 127. Измеряя время замкнутого и разомкнутого состояния геркона можно определить время прохождения одного участка. Время измеряется в относительных единицах (программных циклах) и заносится в массив замкнутых состояний M(5) и массив разомкнутых состояний N(5). В машинах с большей тактовой частотой эти числа больше и соответственно точность измерения выше. Программная обработка данных позволяет определить скорость, ускорение и пройденный путь.
Рис.6
10 cls очистка экрана
20 dim m (5) массив из 5 элементов для замкнутого состояния
30 dim n (5) массив из 5 элементов для разомкнутого состояния
40 a= inp (&h 379) чтение порта
50 if a = 127 then go to 40 ожидание скатывания магнита
60 for b = 1 to 5 счет циклов замкнутых состояний на 1-5 отрезках
70 for c = 0 to 20000
80 a= inp (&h 379) опрос входного порта
90 if a=127 then goto 110 если входной порт разомкнулся идти на 110
100 next c
110 m(b)=c печать в массив м числа программных циклов с замкнутого состояния
120 for d = 0 to 20000 счет циклов разомкнутых состояний на 1-5 отрезках
130 a= inp (&h 379) опрос входного порта
140 if a=119 then go to 160 если входной порт разомкнулся идти на 160
150 next d
160 n(b)=d печать в массив n числа программных циклов d замкнутого состояния
170 next b
180 for k = 1 to 5
190 print m(k), n(k) печать времен m замкнутых и n разомкнутых состояний герконов.
Pascal:
Program pl;
Uses crt, dos;
Var a,B,i,n,k,t: integer;
H,ms,h1,ms1: word;
S: array [1..5] of integer;
M: array [1..5] of integer;
Begin clrscr;
a:=0; B:=0; n:=0; k:=0;
repeat
a:port[$379];
delay(50);
until a=119;
for B:=1 to 5 do begin
n:=0;
repeat
a:=port[$379];
delay(50);
n:=n+1;
until a=127;
M[B]:=n;
K:=0;
Repeat
a:=port[$379];
delay(50);
k:=k+1;
until a=119;
S[B]:=k;
End;
Repeat
i:=i+1;
j:=j+1;
writeln(j, ` `,M[j], ` ` ,S[i] );
until i=5;
repeat until keypressed;
end.
Определение количества замыканий кнопки.
Программа:
5 n=0 обнуление счетчика замыканий
10 cls очистка экрана
20 a= inp (&h 379) чтение входного порта
30 if a =127 then goto 20 ожидание нажатия кнопки (числа 119)
40 A= inp (&h 379) чтение входного порта
45 for i=0 to 50 цикл устранения дребезга контактов
46 next i
50 if a=119 then goto 40 опрос замкнутого состояния клавиши
60 n=n+1 ( переменная n )
70 print n печатать число замыканий
80 goto 20 повторный опрос клавиши
Определение набора импульсов.
Определение набора импульсов и накопитель при счете импульсов.