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

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

Программа 2.1.

10 OUT 254,8
20 OUT 354,0
30 GO TO 10

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

Программа 2.2.

10 OUT 254,24
20 OUT 254,0
30 GO TO 10

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

Программа 2.З.

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

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

Программа 2.4.

10 OUT 254,24

15 LET Z=0

20 OUT 254,0

25 LET Z=0

30 GO TO 10

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

Программа 2.5.

5 LET N=100

10 OUT 254,24

20 OUT 254,0

25 LET N=N-1

26 IF N=0 THEN GO TO 40

30 GO TO 10

40 STOP

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

PRINT 10000/t,
а период (Т):

PRINT t/10000,

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

1 LET T = ...

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

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

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

5 FOR N=0 ТО 1000

10 OUT 254,24

20 OUT 254,0

30 NEXT N

40 STOP

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

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

Рис. 2.1.

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

Программа 2.6.

10 LET N=30: LET A=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-1

126 IF N=0 THEN GO TO 140

130 GO TO 100

140 RETURN

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