Что может ZX Spectrum 1993 г.

Глава 2 - устройства вывода информации.


ГЛАВА 2. УСТРОЙСТВА ВЫВОДА ИНФОРМАЦИИ.

Бросая в воду камешки, смотри на круги, ими
образуемые; иначе такое бросание будет пустой
забавою.

Козьма Прутков. "Мысли и афоризмы

2.1. ФОРМИРОВАНИЕ ВЫХОДНЫХ СИГНАЛОВ.

Во многих самодельных компьютерах нет никаких разъемов для подключения
внешних устройств, за исключением разъема подключения магнитофона. Поэтому,
как для устройств ввода, так и для устройств вывода, будем рассчитывать только на этот
разъем. На этот разъем выведен сигнал, который формирует компьютер для записи
информации на магнитофон. Дальше будет рассмотрена возможность использования
этого сигнала для управления внешними устройствами. Рассмотрим подробнее способ
формирования сигнала на этом выходе. Для формирования сигнала записи информации
на магнитофон используется 3 разряд порта с номером 254. Генерация сигнала на этом
выходе заключается в поочередной установке "1" и сброса в "О" указанного разряда.
К сожалению, выход микросхемы и разъем соединены с помощью емкостной связи
и на выходе можно получать только переменное напряжение. Далее будет показано
каким образом можно использовать это переменное напряжение в качестве
управляющего сигнала. В
npoipaMMe 2.1 приводится пример формирования выходного
сигнала:

10 OUT 254,8
20 OUT 354,0
30 GO ТО 10

Программа 2.1.

Программа может быть несколько изменена для того, чтобы одновременно с
сигналом на выходе формировался сигнал в динамике компьютера. Для этого
необходимо синхронное изменение разрядов 3 и 4 порта 254:

10 OUT 254,24
20 OUT 254,0
30 GO ТО 10

Программа 2.2.

Электрическая схема записи на магнитофон в большинстве компьютеров выполнена
так, что сигналы с частотами ниже 300 Гц и выше 3 КГц ослабляются, поэтому
желательно формировать выходной сигнал в указанном диапазоне частот. Изменяя
задержку между установлением и сбросом разряда можно регулировать частоту
выходного сигнала. Для задержки можно использовать команду PAUSE. Проблема,
однако, состоит в том, что минимальная задержка даваемая этой командой составляет
1/50 секунды и, поэтому, программа 2.3 дает сигнал с частотой около 25 Гц:

10 OUT 254,24
15 PAUSE 1
20 OUT 254,0
25
PAUSE 1
30
GO TO 10

Решением проблемы может стать использованием для задержки каких-либо
других операторов, например LET, которые формально выполняются, но никаких
действий не совершают. В этом случае программа будет иметь вид;

10 OUT 254,24
15 LET Z-0
20 OUT 254,0
25 LET Z-0
30 GO TO 10

Программа 2.4.

Увеличивая количество операторов LET можно изменять частоту (в сторону
уменьшения) и установить требуемую частоту. В про1раммах 2.1-2.4 выходной сигнал
звуковой частоты генерируется неограниченное время -до выключения компьютера
или прерывания выполнения про1раммы клавишей BREAK. На практике часто
требуется, чтобы сигнал имел конкретную длительность. Программа 2.5 включает
выходной сигнал на заданное время:

5 LET N-100
10 OUT 254,24
20 OUT 254,0

25 LET N-N-l

26 IF N-0 THEN GO TO 40
30 GO TO 10

40 STOP

Программа 25.

Частота выходного сигнала, генерируемая программой 2.5 около 100 Гц. Для того»
чтобы иметь юэмоашость точно задавать временной интервал» необходимо произвести
юишбров^. Для этого задайте N"10000 и измерьте секундомером дтггельность (t)
выходного сигнала. Она догакна быть около 120 ceigw. Тоща частоту (F) можно
вышюлить:

PRINT 10000/t

а период (Т):

PRINT t/10000

ще t длительность выходного сигнала в секундах по результатам измерений. После
этого требуемый интервал в программе 2.5 можно задавать так:

1 LET Т - ...

2 INPUT 'INTERVAL (Sec.) t-';t

3 LET N - t/T

или

1 LET F - ...

2 INPUT 'INTERVAL (Sec.) t-';t

3 LET N - t*F

Если изменить про1рамму 2.5 и использовать, например, оператор цикла FOR-
NEXT, то калибровку необходимо произвести вновь. Про1рамма в этом случае может
быть такой:

5 FOR N - О ТО 1000
10 OUT 254,24
20 OUT 254,0
30 NEXT N
40 STOP

Программа 2.5a.

Длительность сигнала определяется величиной N. Часто требуется, чтобы выходной
сигнал включался и выключался несколько раз или повторялся циклически. Для
примера напишем программу, которая будет вырабатывать позывные сигналы первого
искусственного спутника Земли. Этот сигнал (буква U в коде Морзе) в виде
временного графика выглядит так:

Как видно из графика, сигнал через 10 интервалов времени повторяется.
Длительность "точки" равна длительности паузы между знаками. Длительность
"тире" равна длительности ipex "точек", а длительность паузы между буквами равна
длительности "тире". В качестве подпро1раммы, формирующей сигнал "точка"
используем программу 2.5. Немного изменив ее получим подпрограммы, формирующие
и "тире" и паузы. Подпро1раммы выполняются одна за другой и после формирования
кода буквы U процесс должен повторяться.

10 LET N-30: LET А-24: GO SUB 100
20 LET N-30: LET A-0: GO SUB 100
30 LET N-30: LET A-24: GO SUB 100
40 LET N-30: LET A-0: GO SUB 100
50 LET N-90: LET A-24: GO SUB 100
60 LET N-90: LET A-0: GO SUB 100
70 GO TO 10
100 OUT 254,24
120 OUT 254,0

125 LET N-N-l

126 IF N-0 THEN GO TO 140
130 GO TO 100

140 RETURN

Программа 2.6.

2.2. РЕЛЕЙНАЯ СХЕМА.

Сигнал на выходе компьютера, предназначенном для записи информации на
магнитофон, имеет импульсную форму и невысокий уровень. В большинстве
приложений требуется включать и выключать внешние устройства, подавая напряжение
питания. Для преобразования сигнала можно использовать простую схему,
представленную на рис. 2.2. Использование электромагнитного реле обеспечивает
гальваническую развязку между компьютером и внешним устройством.

На транзисторе VTl собран каскад предварительного усиления сигнала, с
коэффициентом усиления около 10, а на транзисторах VT2, VT3 выполнен ключевой
каскад. Диоды VD1, VD2 обеспечивают выпрямление импульсного сигнала, а фильтр
СЗ, R5 выделение постоянной составляющей. Диод VD3 защищает транзистор VT3 от
перенапряжения, возникающего в момент выключения электромагнитного реле. Тип
реле выбирается в зависимости от мощности коммутируемой нагрузки и тока
срабатывания. Для применений описанных в этой главе можно предложить использовать
реле типа РЭС 49 паспорт 245.

2.3. ЗАРЯДНОЕ УСТРОЙСТВО.

В качестве примера рассмотрим использование компьютера для управления
устройством заряда аккумуляторной батареи. Для герметичных аккумуляторных
батарей, часто используемых в электронной аппаратуре, время заряда и ток заряда
строго регламентированы. При превышении этих параметров аккумуляторная батарея
может быть повреждена, а их занижение приводит к неполной зарядке. Простейшее
зарядное устройство может быть выполнено по схеме:

Схема представляет собой стабилизатор тока на транзисторе VT1. Светодиод VD1
используется как источник опорного напряжения и одновременно является индикатором
включенного состояния. Диод VD2 предотвращает разряд аккумулятора при отключении
напряжения +12- 15В. Резистором R2 устанавливают требуемый ток заряда (для 7Д 0,1
он равен 10 тА). Требуемое время заряда (10 часов) формируется программой 2.7. 10
часов =10*60*60 секунд. Программу можно усовершенствовать, обеспечив подачу
звукового сигнала после окончания процесса заряда.

1 LET Т - ...

2 INPUT 'INTERVAL (Sec) t-';t

3 LET N - t/T

10 OUT 254,8

20 OUT 254,0

25 LET N-N-l

26 IF N-0 THEN GO TO 40
30 GO TO 10

40 OUT 254,16
50 OUT 254,0
60 GO TO 40

Программа 2.7

2.4. ТЕЛЕФОННЫЙ НОМЕРОНАБИРАТЕЛЬ.

Другим приложением схемы 2.1 может быть реализация с помощью SPECTRUM
кнопочного номеронабирателя телефонного аппарата. Временная диацэамма сигнала
набора номера приведена на рис 2.4.

На этом рисунке верхний уровень соответствует замкнутому состоянию телефонной
линии, а нижний - разомкнутому. Частота двойных импульсов набора номера должна
быть 10 имп/сек (допускается 8 - 11). Время между пачками импульсов не мене 0,6
с. Для реализации режима набора номера нормально замкнутые контакты реле К1
включаются в разрыв телефонной линии, снимается трубка и запускается программа
2.8.

3 PRiNT AT 8,8; 'SOLON 268-55-58'

5 PRINT AT 10,6;'PRESS NUMBER KEY 0-9"

18 IF INKEYS - 'Г THEN LET Ol: GO SUB 1100

20 IF INKEY$ - '2' THEN LET C-2: GO SUB 1100

30 IF INKEYS - '3' THEN LET C-3: GO SUB 1100

40 IF INKEYS - '4' THEN LET C-4: GO SUB 1100

50 IF INKEYS - '5' THEN LET C-5: GO SUB 1100

60 IF INKEYS - '6' THEN LET C-6: GO SUB 1100

70 IF INKEYS - '7' THEN LET C-7: GO SUB 1100

80 IF INKEYS - '8' THEN LET C-8: GO SUB 1100

90 IF INKEYS - '9' THEN LET C-9: GO SUB 1100

100 IF INKEYS - '0' THEN LET C-10: GO SUB 1100

200 GO TO 18

1100 FOR N-l TO С

1110 FOR 1-1 TO 3

1120 OUT 254,24: OUT 254,0

1130 NEXT I

1140 PAUSE 3

1150 NEXT N

1160 RETURN

Нажимая на цифровые клавиши 0-9 можно набрать требуемый номер. При
выключенном компьютере телефоном можно пользоваться в обычном режиме.
Программа 2.8 может быть усовершенствована для повышения надежности работы и
удобства пользования. Как уже отмечалось, при использовании команд OUT в
npoipaMMe на бейсике можно сформировать выходной сигнал с частотой не более 100
Гц. При этом формирование временных интервалов с длительностью более секунды
трудностей не вызывает. Однако, при формировании импульсов телефонного набора,
длительность импульсов составляет около 50 миллисекунд, что является предельно
малой величиной при частоте сигнала заполнения импульса около 100 Гц. Это может
при неточном подборе времязадающих элементов в схеме 2.2 вызвать нестабильность
работы или даже полную неработоспособность устройства. Избежать этого можно
повысив частоту заполнения в несколько раз. Такую частоту можно реализовать при
использовании подпро1раммы в машинных кодах. Подпро1рамма 2.9 вырабатывает
сигнал длительностью около 50 миллисекунд при частоте заполнения 1000 Гц.

Мнемоника Код Комментарий

push af 245 Сохраним в стеке регистры

push be 197 af и be

Id с,35 14 Поместим в регистр с

35 число периодов сигнала

Id b,100 6 Поместим в регистр b

100 число в диапазоне 1-255
определяющее частоту

Id а,24 62 Установим 1 на выходе

24 устройства
out 254,а 211
254

dec b 5 Задержка
jr nz,-3 32

253

Id a,0 62 Установим 0 на выходе

0 устройства
out 254,а 211

254

Id Ь, 100 6

100

dec b 5 Задержка
jr nz,-3 32
253

dec с 13 Начнем следующий период

jr nz,-21 32 сигнала 235

pop be 193 Восстановим be и af
pop af 241

ret 201 Возврат в бейсик

Программа 2.9.

Программа 2.9 используется в качестве подпрограммы в программе 2.10.

2 PRINT AT 12,8;*Р - PAUSE*

3 PRINT AT 8,8; 'SOLON 268-55-58*

4 PRINT AT 14,8;'N - NEW TELEFON*

5 PRINT AT 10,6;*PRESS NUMBER KEY 0-9"

6 PRINT AT 13,8;*R - REPEAT*

7 PRINT AT 19,4;'TLF: ';

11 DIM A (64)

12 FOR 1-1 TO 28

13 READ A (I): POKE (64000+1), A(l)

14 NEXT I

15 DATA 245,197,14,35,6,100,62,24,211,254,5,32,253,
62,0,211,254,6,100,5,32,253,13,32,235,193,241,201

18 IF INKEYS -'Г THEN LET C-l: GO SUB 1100
20 IF INKEYS - '2' THEN LET C-2: GO SUB 1100
30 IF INKEYS - '3' THEN LET C-3: GO SUB 1100
40 IF INKEYS - '4' THEN LET C-4: GO SUB 1100
50 IF INKEYS - '5' THEN LET C-5: GO SUB 1100
60 IF INKEYS - '6' THEN LET C-6: GO SUB 1100
70 IF INKEYS - '7' THEN LET C-7: GO SUB 1100
80 IF INKEYS - '8* THEN LET C-8: GO SUB 1100
90 IF INKEYS - '9* THEN LET C-9: GO SUB 1100
100 IF INKEYS - '0' THEN LET С-10: GO SUB 1100
110 IF INKEYS - 'P' THEN PRINT 'P':PAUSE 100
120 IF INKEYS - 'R' THEN GO SUB 2000
130 IF INKEYS - 'N' THEN RUN
200 GO TO 18
1100 FOR N-l TO С
1110 RANDOMIZE USR 64001
1140 PAUSE 4
1150
NEXT N

1155 IF C-10THEN LET C-0

1156 PRINT С

1157 PAUSE 100
1160 RETURN
2000 LET S-9
2005 PAUSE 200

2010 IF SCREENS (19,S)-' # THEN RETURN

2020 IF SCREENS (19,S)-,Pf THEN PAUSE 100

2030 IF SCREENS (19,S)-fl" THEN LET C-l; GOSUB 3100

2040 IF SCREENS (19,S)-'2' THEN LET C-l: OOSUB 3100

2050 IF SCREENS (19,S)-'3" THEN LET C-l: OOSUB 3100

2060 IF SCREENS (19,S)-'4" THEN LET C-l: OOSUB 3100

2070 IF SCREENS (19,S)-'5" THEN LET C-l: OOSUB 3100

2080 IF SCREENS (19,S)-f6" THEN LET C-l: GOSUB 3100

2090 IF SCREENS (19,S)-'7" THEN LET C-l: GOSUB 3100

2100 IF SCREENS (19,S)-f8" THEN LET C-l: GOSUB 3100

2110 IF SCREENS (19,S)-'9" THEN LET C-l: GOSUB 3100

2120 IF SCREENS (19,S)-'0" THEN LET C-10: GOSUB 3100

2150 LET S-S+l

2160 GO TO 2010

3100 FOR N-l TO С

3110 RANDOMIZE USR 64001

3140 PAUSE 4

3150 NEXT N

3157 PAUSE 100

3160 RETURN

Рис. 2.5.

Подняв трубку, можно набирать номер. Одновременно с передачей импульсного
кода на экране будет отображаться набираемый номер, например:

TLF: 8Р095Р2685558

Буква Р обозначает увеличенную паузу, необходимую, например, при междугородней
связи. Если нажать CAPS SHIFT и R, то будет повторен набор номера с экрана. Перед
повторным набором, естественно, необходимо положить и поднять вновь трубку.
После нажатия CAPS SHIFT и N можно набирать новый номер. В приведенной
программе есть одно существенное неудобство: перед набором нового номера или
повторным набором необходимо положить на несколько секунд и затем поднять
трубку. Эту операцию вполне может взять на себя компьютер. В момент когда трубка
нажимает на рычаги телефонного аппарата на АТС передается сигнал "отбой". Этот
сигнал формируется при "разрыве" телефонной линии. Наше устройство, которое
формирует импульсы набора номера, также может "разорвать" линию, то есть
сформировать сигнал "отбой". Для этого в программу 2.10 необходимо внести
следующие изменения:

130 IF INKEY$ - *N* THEN GO TO 201

200 GO TO 18

201 POKE 64004,255:POKE 64006,255.POKE 64019,255

202 RANDOMIZE USR 64001

210 RUN

2001 POKE 64004,255:POKE 64006,255:POKE 64019,255

2002 RANDOMIZE USR 64001

2003 POKE 64004,35:POKE 64006,1 OOiPOKE 64019,100

Программа 2.10a.

В строке 201 изменяются параметры подпрограммы для реализации задержки в 1
- 2 секунды, необходимой для посылки сигнала "отбой" на АТС. Аналогичные
действия выполняются в строке 2001. В строке 2003 производится восстановление
параметров для последующего формирования импульсов набора номера. После
введения указанных изменений можно повторять набор номера или набирать новый
номер при любом сигнале в трубке.

Можно и дальше усовершенствовать про1рамму: ввести список наиболее часто
используемых номеров, справочник по кодам междугородней связи и так далее. Это
предлагаем сделать заинтересованным читателям.

После запуска программы 2.10 на экране появятся надписи:

2.5. ДАТЧИК КОДА МОРЗЕ.

С помощью соответствующей программы компьютер может быть превращен в
клавиатурный датчик кода Морзе. В отличие от программы, описанной в литературе
(9), приводимая далее программа не только генерирует звуковой сигнал,
соответствующий коду Морзе, но и позволяет манипулировать внешнее
устройство,например радиопередатчик. Манипуляцию осуществляет схема 2.2. Основу
программы 2.11 составляет подпрограмма 2.9, которая используется с небольшими
изменениями 4 раза: для формирования сигналов "точки", "тире" и следующей за
ними паузы. Во время формирования "точки" и "тире" происходит переключение 3
и 4 разрядов порта 254 с частотой около 1000 Гц, а во время формирования паузы такое
переключение не происходит, так как команда OUT 254,24 заменена на команду OUT
254,0. В конце подпрограмм формирующих "тире" и "точку" команда RET (201) -
возврата в бейсик заменена на команду "нет операции" - NOP (0). Скорость передачи
знаков Морзе регулируется путем записи в ячейки памяти 64004, 64032, 64060 и 64088
соответствующих чисел. Значение скорости вводится во второй строке программы
2.11.

2 INPUT 'SPEED* (50 - 200);q

3 IF q>200 OR q<50 THEN GO TO 2

5 PRINT AT 10,2,'PRESS NUMBER OR LETTER KEY'

10 LET p-64057: LET b-64001

11 DIM (120)

12 FOR 1-1 TO 112

13 READ A(l): POKE (64000+1),A(l)

14 NEXT I

15 DATA 245,197,14,35,6,100,62,24,211,254,5,32,253,
62,0,211,254,6,100,5,32,253,13,32,235,193,241,0

16 DATA 245,197,14,35,6,100,62,24,211,254,5,32,253,
62,0,211,254,6,100,5,32,253,13,32,235,193,241,201

17 DATA 245,197,14,35,6,100,62,24,211,254,5,32,253,
62,0,211,254,6,100,5,32,253,13,32,235,193,241,0

18 DATA 245,197,14,35,6,100,62,24,211,254,5,32,253,
62,0,211,254,6,100,5,32,253,13,32,235,193,241,201

20 POKE 64004,12500/q:POKE 64032,4200/q:POKE 64060,4200/q:
POKE 64088,4200/q:

21 IF INKEYS-'Г THEN RANDOMIZE USR p:RANDOMIZE USR b:
RANDOMIZE USR b:RANDOMIZE USR b:RANDOMIZE USR b

22 IF INKEYS-'2" THEN RANDOMIZE USR p:RANDOMIZE USR p:
RANDOMIZE USR b:RANDOMIZE USR b:RANDOMIZE USR b

23 IF INKEY$-'3" THEN RANDOMIZE USR p:RANDOMIZE USR p:
RANDOMIZE USR p.RANDOMIZE USR b:RANDOMIZE USR b

24 IF INKEY$-'4" THEN RANDOMIZE USR p:RANDOMIZE USR p:
RANDOMIZE USR' p:RANDOMIZE USR p:RANDOMIZE USR b

25 IF INKEY$-'5" THEN RANDOMIZE USR p:RANDOM!ZE USR p:
RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR p

26 IF INKEY$-'6" THEN RANDOMIZE USR b:RANDOMIZE USR p:
RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR p

27 IF INKEY$-'7" THEN RANDOMIZE USR b:RANDOMIZE USR b:
RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR p

28 IF INKEY$-'8" THEN RANDOMIZE USR b:RANDOMIZE USR b:
RANDOMIZE USR b:RANDOMIZE USR p:RANDOMIZE USR p

29 IF INKEYS-'9" THEN RANDOMIZE USR b:RANDOMIZE USR b:

RANDOMIZE USR b:RANDOMIZE USR biRANDOMIZE USR p

30 IF INKEY$-*0" THEN RANDOMIZE USR b:RANDOMIZE USR b:
RANDOMIZE USR b:RANDOMIZE USR biRANDOMIZE USR b

31 IF INKEY$-*q* THEN RANDOMIZE USR b:RANDOMIZE USR b:
RANDOMIZE USR p:RANDOMIZE USR b

32 IF INKEYS-V THEN RANDOMIZE USR p:RANDOMIZE USR b:
RANDOMIZE USR b

33 IF INKEY$-*e* THEN RANDOMIZE USR p

34 IF INKEY$-*r* THEN RANDOMIZE USR p:RANDOMIZE USR b:
RANDOMIZE USR p

35 IF IIMKEYS-V THEN RANDOMIZE USR b

36 IF INKEYS-V THEN RANDOMIZE USR biRANDOMIZE USR p:
RANDOMIZE USR b:RANDOMIZE USR b

37 IF INKEY$-V THEN RANDOMIZE USR piRANDOMIZE USR p:
RANDOMIZE USR b

38 IF INKEY$-V THEN RANDOMIZE USR piRANDOMIZE USR p

39 IF INKEY$-*o* THEN RANDOMIZE USR b:RANDOMIZE USR b:
RANDOMIZE USR b

40 IF INKEY$-V THEN RANDOMIZE USR piRANDOMIZE USR b:
RANDOMIZE USR biRANDOMIZE USR p

41 IF INKEY$-V THEN RANDOMIZE USR p:RANDOMIZE USR b

42 IF INKEY$-V THEN RANDOMIZE USR p;RANDOMIZE USR p:
RANDOMIZE USR p

43 IF INKEY$-fdf THEN RANDOMIZE USR biRANDOMIZE USR p:
RANDOMIZE USR p

44 IF INKEY$-V THEN RANDOMIZE USR piRANDOMIZE USR p:
RANDOMIZE USR biRANDOMIZE USR p

45 IF INKEY$-V THEN RANDOMIZE USR biRANDOMIZE USR b;
RANDOMIZE USR p

46 IF INKEYS-V THEN RANDOMIZE USR piRANDOMIZE USR p:
RANDOMIZE USR piRANDOMIZE USR p

47 IF INKEYS-T THEN RANDOMIZE USR piRANDOMIZE USR b:
RANDOMIZE USR biRANDOMIZE USR b

48 IF INKEY$-V THEN RANDOMIZE USR biRANDOMIZE USR p:
RANDOMIZE USR b

49 IF INKEYS-V THEN RANDOMIZE USR piRANDOMIZE USR b:
RANDOMIZE USR piRANDOMIZE USR p

52 IF INKEYS-V THEN RANDOMIZE USR biRANDOMIZE USR b:
RANDOMIZE USR piRANDOMIZE USR p

53 IF INKEYS-V THEN RANDOMIZE USR biRANDOMIZE USR p:
RANDOMIZE USR piRANDOMIZE USR b

54 IF INKEY$-V THEN RANDOMIZE USR biRANDOMIZE USR pi
RANDOMIZE USR biRANDOMIZE USR p

55 IF INKEYS-V THEN RANDOMIZE USR piRANDOMIZE USR pi
RANDOMIZE USR piRANDOMIZE USR
b

56 IF INKEY$-V THEN RANDOMIZE USR biRANDOMIZE USR pi
RANDOMIZE USR piRANDOMIZE USR p

57 IF INKEYS-V THEN RANDOMIZE USR biRANDOMIZE USR p

58 IF INKEY$-'m' THEN RANDOMIZE USR biRANDOMIZE USR b

59 IF IN KEYS-*?* THEN RANDOMIZE USR piRANDOMIZE USR pi

RANDOMIZE USR b:RANDOMIZE USR b:RANDOMIZE USR p:
RANDOMIZE USR p

60 IF INKEY$-'I' THEN RANDOMIZE USR b:RANDOMIZE USR b:
RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR b:
RANDOMIZE USR b
200 GO TO 21

Программа 2.11.

2.6. РЕЛЕ ВРЕМЕНИ ДЛЯ ФОТОПЕЧАТИ.

В фотографии используются различные процессы, длительность которых может
меняться в широких пределах. При экспонировании фотобумаги она составляет
единицы или десятки секунд, а при химической обработке фотоматериалов - единицы
или десятки минут. От точности выдержки времени во многом зависиг качество
получаемых фото1рафий. Известно много различных конструкций реле времени,
однако они или достаточно сложны или не обладают требуемой точностью. С
помощью компьютера легко реализовать указанные диапазоны временных интервалов,
а также рекомендуемый в литературе (10) шаг изменения временного интервала.
Отсчет временного интервала начинается при нажатии на соответствующую клавишу,
а окончание отмечается звуковым сигналом.

В программе 2.12 по запросу вводится значение минут, а затем секунд. Для начала
отсчета нажимается клавиша "1". После окончания отсчета выдается звуковой сигнал.
Если необходимо повторить уже заданный интервал, то на запрос "AGAIN? 1-YES,
O-NO" нужно ответить нажатием "1" и ENTER. При нажатии 0 и ENTER можно
задавать новый временной интервал.

10 INPUT'INPUT Min.:';m
20 INPUT 'INPUT Sec.:';s
30 LET D-60*m+s

35 PRINT 'PRESS ANY KEY FOR BEGINNING'

38 PAUSE 0

39 CLS

40 POKE 23674,0
50 POKE 23673,0
60 POKE 23672,0

70 LET T- INT ((65536*PEEK 23674+256*PEEK 23673+PEEK 23672)/50)
75 PRINT AT 10,6;D; AT 10,16;T;' Sec'
80 IF T<D THEN GO TO 70
90 BEEP 1,1
95 CLS

100 PRINT 'AGAIN? 1-YES, O-NO (NEW PERIOD)'
110 IF INKEY3-T THEN GO TO 40
112 IF INKEY$-'0" THEN GO TO 115

114 GO TO 110

115 CLS

120 GO TO 10

Программа 2.12.

Программа 2.12 только отмеряет заданный временной интервал и вьщает звуковой
сигнал по его окончании. Для процессов фотохимической обработки этого вполне
достаточно, но при экспонировании фотобумаги можно автоматизировать включение
лампы фотоувеличителя. Для этого необходимо в схеме на рисунке 2.1 использовать
электромагнитное реле соответствующей мощности и для управления применить
программу подобную программе 2.7. Поскольку при этом требуется подключение к
сети 220 В, автоматизировать управление фотоувеличителем можно рекомендовать
только тем, кто знаком с правилами элекгробезопасности, а остальным предлагаем
использовать таймер со звуковым сигналом. В главе 3 будет будет описан
фотоэкспозиметр, который по плотности негатива и параметрам фотобумаги будет
определять необходимую для печати выдержку.




  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
DI-HALT'99 - Правила проведения конскурсов.
SUXX! - Спекки не умрет... Чтоб не дрогнула у вас рука при выборе ПК.
WANTED - реклама и поиск программ для спектрума.
IS-DOS - New resident for is_dos Scorpion (CMOS).
B.B.S. Новости - О работе B.B.S.'ок.

В этот день...   21 ноября