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 |
Наш баннер
Вы можете поставить наш баннер на своем сайте или блоге, чтобы помочь развитию проекта.
Навигация
Друзья сайта
Статьи
|
Copyright 2004-2016 |
|