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 производится восстановление параметров для последующего формирования импульсов набора номера. После введения указанных изменений можно повторять набор номера или набирать новый номер при любом сигнале в трубке.
Можно и дальше усовершенствовать программу: ввести список наиболее часто используемых номеров, справочник по кодам междугородней связи и так далее. Это предлагаем сделать заинтересованным читателям.
Содержание | © Каталог радиолюбительских схем
Все права защищены. Радиолюбительская страница.
Пишите нам. E-mail: irls@yandex.ru или irlks@mail.ru.
|
Я радиолюбитель |