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

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

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

Программа 2.8.

3 PRINT AT 8,8; "SOLON 268-55-58"

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

18 IF INKEY$ = "1" THEN LET C=l: GO SUB 1100

20 IF INKEY$ = "2" THEN LET C=2: GO SUB 1100

30 IF INKEY$ = "3" THEN LET C=3: GO SUB 1100

40 IF INKEY$ = "4" THEN LET C=4: GO SUB 1100

50 IF INKEY$ = "5* THEN LET C=5: GO SUB 1100

60 IF INKEY$ = "6* THEN LET C=6: GO SUB 1100

70 IF INKEY$ = "V THEN LET C=7: GO SUB 1100

80 IF INKEY$ = "8" THEN LET C=8: GO SUB 1100

90 IF INKEY$ = "Г THEN LET C=9: GO SUB 1100

100 IF INKEY$ = "0" THEN LET C=10: GO SUB 1100

200 GO TO 18

1100 FOR N=1 TOG

1110 FOR I=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 в программе на бейсике можно сформировать выходной сигнал с частотой не более 100 Гц. При этом формирование временных интервалов с длительностью более секунды трудностей не вызывает. Однако, при формировании импульсов телефонного набора, длительность импульсов составляет около 50 миллисекунд, что является предельно малой величиной при частоте сигнала заполнения импульса около 100 Гц. Это может при неточном подборе времязадающих элементов в схеме 2.2 вызвать нестабильность работы или даже полную неработоспособность устройства. Избежать этого можно повысив частоту заполнения в несколько раз. Такую частоту можно реализовать при использовании подпрограммы в машинных кодах. Подпрограмма 2.9 вырабатывает сигнал длительностью около 50 миллисекунд при частоте заполнения 1000 Гц.

Программа 2.9.

Мнемоника

Код

Комментарий

push of

245

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

push be

197

af и Ьс

Id c,35

14

Поместим в регистр с

35

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

Id b,100

6

Поместим в регистр b

100

число в диапазоне 1-255

определяющее частоту

Id a,24

62

Установим 1 на выходе

24

устройства

out 254,a

211

254

dec b

5

Задержка

jr nz,-3

32

253

Id a,0

62

Установим 0 на выходе

0

устройства

out 254,a

211

254

Id b,100

6

100

dec b

5

Задержка

jr nz,-3

32

253

dec с

13

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

jr nz,-21

32

сигнала 235

pop bc

193

Восстановим be и af

pop af

241

ret

201

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

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

Программа 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 INKEY$ = "1" THEN LET C=1; GO SUB 1100

20 IF INKEY$ = "2" THEN LET C=2; GO SUB 1100

30 IF INKEY$ = "3" THEN LET C=3; GO SUB 1100

40 IF INKEY$ = "4" THEN LET C=4; GO SUB 1100

50 IF INKEY$ = "5" THEN LET C=5; GO SUB 1100

60 IF INKEY$ = "6" THEN LET C=6; GO SUB 1100

70 IF INKEY$ = "7" THEN LET C=7; GO SUB 1100

80 IF INKEY$ = "8" THEN LET C=8; GO SUB 1100

90 IF INKEY$ = "9" THEN LET C=9; GO SUB 1100

100 IF INKEY$ = "0" THEN LET C=10; GO SUE 1100

110 IF INKEY$ = "P" THEN PRINT "P";PAUSE 100

120 IF INKEY$ = "R* THEN GO SUB 2000

130 IF INKEY$ = "N" THEN RUN

200 GO TO 18

1100 FOR N=1 TO С

1110 RANDOMIZE USR 64001

1140 PAUSE 4

1150 NEXT N

1155 IF C=10 THEN 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)="P" THEN PAUSE 100

2030 IF SCREENS (19,S)="1" THEN LET C=1; GO SUB 3100

2040 IF SCREENS (19Д="2" THEN LET C=1; GO SUB=3100

2050 IF SCREENS (19,S)="3" THEN LET C=1; GO SUB 3100

2060 IF SCREENS (19,S)="4" THEN LET C=1; GO SUB 3100

2070 IF SCREENS (19,S)="5" THEN LET C=1; GO SUB 3100

2080 IF SCREENS (19,S)="6" THEN LET C=1; GO SUB 3100

2090 IF SCREENS (19,S)="7" THEN LET C=1; GO SUB 3100

2100 IF SCREENS (19,S)="8" THEN LET C=1; GO SUB 3100

2110 IF SCREENS (19,S)="9" THEN LET C=1; GO SUB 3100

2120 IF SCREENS (19,S)="0" THEN LET C=10; GO SUB 3100

2150 LET S=S+1

2160 GO TO 2010

3100 FOR N=1 TO С

3110 RANDOMIZE USR 64001

3140 PAUSE 4

3150 NEXT N

3157 PAUSE 100

3160 RETURN

Программа 2.9.

Мнемоника

Код

Комментарий

push of

245

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

push bc

197

аt и Ьс

Id c,35

14

Поместим в регистр с

35

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

Id b,100

6

Поместим в регистр b

100

число в диапазоне 1-255

определяющее частоту

Id a,24

62

Установим 1 на выходе

24

устройства

out 254,a

211

254

dec b

5

Задержка

jr nz,-3

32

253

Id a,0

62

Установим 0 на выходе

0

устройства

out 254,a

211

254

Id b,100

6

100

dec b

5

Задержка

jr nz,-3

32

253

dec с

13

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

jr nz,-21

32

сигнала 235

pop bс

193

Восстановим bс и af

pop af

241

ret

201

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

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

2 PRINT AT 12,8;"P-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 I=1 TO 28

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

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

SOLON: 268-55-58

PRESS NUMBER KEY (0-9)

P - PAUSE

R - REPEAT

N - NEH TLF

TLF: SP095P2685558

Puc.2.5.

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

TLF: 8P095P2685558

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

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

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,100:POKE 64019,100

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

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

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