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.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 I=1 TO 112

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

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 INKEY$-T THEN RANDOMIZE USR p;RANDOMIZE USR b;RANDOMIZE USR b;RANDOMIZE USR b;RANDOMIZE USR b;

22 IF INKEY$="2" THEN RANDOMIZE USR p;RANDOMIZE USR p;RANDOMIZE USR b; RANDOMIZE USR b;RANDOMIZE USR b;

23 IF INKEY$="З" 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;RANDOMIZE 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;RANDOM!ZE USR p;RANDOMIZE USR p;

27 IF INKEY$-V" 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 INKEY$="9" THEN RANDOMIZE USR b;RANDOMIZE USR b;

RANDOMIZE USR b:RANDOMIZE USR b;RANDOMIZE USR p

30 IF INKEY$="0" THEN RANDOMIZE USR b:RANDOMIZE USR b:RANDOMIZE USR b:RANDOMIZE USR b:RANDOMIZE USR Ь

31 IF INKEY$="q" THEN RANDOMIZE USR biRANDOMIZE USR b:RANDOMIZE USR p:RANDOMIZE USR b

32 IF INKEY$="w" 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 INKEY$="f" THEN RANDOMIZE USR b

36 IF INKEY$="y" THEN RANDOMIZE USR b:RANDOMIZE USR p:RANDOMIZE USR b:RANDOMIZE USR b

37 IF INKEY$="u" THEN RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR b

38 IF INKEY$="i" THEN RANDOMIZE USR p;RANDOMIZE USR p

39 IF INKEY$="o" THEN RANDOMIZE USR biRANDOMIZE USR b:RANDOMIZE USR b

40 IF INKEY$="p" THEN RANDOMIZE USR p:RANDOMIZE USR b:RANDOMIZE USR b.RANDOMIZE USR p

41 IF INKEY$="a* THEN RANDOMIZE USR p:RANDOMIZE USR b

42 IF INKEY$="s" THEN RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR p

43 IF INKEY$="d" THEN RANDOMIZE USR b.RANDOMIZE USR p:RANDOMIZE USR p

44 IF INKEY$="f" THEN RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR b:RANDOMIZE USR p

45 IF INKEY$="g" THEN RANDOMIZE USR biRANDOMIZE USR b:RANDOMIZE USR p

46 IF INKEY$="h" THEN RANDOMIZE USR pjRANDOMIZE USR p:RANDOMIZE USR piRANDOMIZE USR p

47 IF INKEY$="t" THEN RANDOMIZE USR piRANDOMIZE USR b:RANDOMIZE USR biRANDOMIZE USR b

48 IF INKEY$="k" THEN RANDOMIZE USR biRANDOMIZE USR p:RANDOMIZE USR b

49 IF INKEY$="l" THEN RANDOMIZE USR piRANDOMIZE USR b:RANDOMIZE USR p:RANDOMIZE USR p

52 IF INKEY$="z" THEN RANDOMIZE USR b:RANDOMIZE USR b:RANDOMIZE USR p:RANDOMIZE USR p

53 IF INKEY$="x" THEN RANDOMIZE USR b:RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR b

54 IF INKEY$="c" THEN RANDOMIZE USR b:RANDOMIZE USR p:RANDOMIZE USR b:RANDOMIZE USR p

55 IF INKEY$="v" THEN RANDOMIZE USR p:RANDOMIZE USR p:RANDOMIZE USR piRANDOMIZE USR b

56 IF INKEY$="b" THEN RANDOMIZE USR b:RANDOMIZE USR p:RANDOMIZE USR piRANDOMIZE USR p

57 IF INKEY$="n* THEN RANDOMIZE USR b.RANDOMIZE USR p

58 IF INKEY$="m" THEN RANDOMIZE USR b.RANDOMIZE USR b

59 IF INKEY$="?" THEN RANDOMIZE USR piRANDOMIZE USR p:

RANDOMIZE USR b;RANDOMIZE USR b;RANDOMIZE USR p;RANDOMIZE USR p

60 IF INKEY$="j" THEN RANDOMIZE USR b;RANDOMIZE USR b;RANDOMIZE USR p;RANDOMIZE USR p;RANDOMIZE USR b;RANDOMIZE USR Ь

200 GO TO 21

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