Устройства на PIC-контроллерах
получают в мире все большее распространение в
любительских конструкциях. Не стоят в стороне от
прогресса и коротковолновики - в журналах и на
сайтах в Интернете можно встретить описания
различных телеграфных ключей, цифровых шкал,
узлов управления связной аппаратурой. Создают
подобные устройства и российские радиолюбители.
Редакция приглашает читателей журнала присылать
нам свои материалы, рассказывающие о разработках
на PIC-контроллерах, а также передать наш призыв
знакомым радиолюбителям, которые, быть может, не
читают журнал "Радио" и не знают, что у них
есть возможность стать его авторами. Мы будем
также признательны, если вы сообщите об
известных вам (по работе в эфире и т. п.)
интересных разработках на PIC-контроллерах.
Попробуем связаться с их авторами и привлечь их к
сотрудничеству в журнале на благо всего
радиолюбительского сообщества.
А в качестве "затравки"
предлагаем нашим читателям описание конструкции
телеграфного ключа на PIC-контроллере,
разработанного ирландским коротковолновиком
Eeamon Skelton (E19GQ). Авторская информация об этом
устройстве (а также о некоторых других его
поделках) есть в Интернете на его "домашней
страничке" http://www.qsl.net/ei9gq.
На наш запрос о возможности публикации описания
его ключа в журнале "Радио" он ответил, что с
удовольствием дает свое согласие, поскольку
знаком с нашим журналом.
Принципиальная схема ключа E19GQ
приведена на рис. 1. Его (как и все устройства на PIC-контроллерах)
отличает схемная простота, поскольку все
основное заложено в занесенной в PIC-контроллер
программе. Манипулятор ключа подключают к линиям
электрической связи 1—3 (1— подвижный или "общий"
контакт, 2 - контакт "тире", 3 - контакт "точки").
Цепи R1C2 и R2C1 исключают возможность срабатывания
ключа от импульсных помех и наводок. Цепь R5C3 в
сочетании с внешним переменным резистором (его
подключают к линиям 4, 5) задает тактовую частоту
генератора контроллера и, следовательно,
скорость передачи. Этот переменный резистор
имеет сопротивление 22 кОм и включен "реостатом".
Сигнал, сформированный ключом,
поступает на выходной транзистор VT1. Этот узел
рассчитан на наиболее распространенный в
современных трансиверах вариант "ключевания"
- замыкание на общий провод шины управления (обычно
на ней исходное напряжение +12 В). Ток через
транзистор не должен превышать десятка
миллиампер. Шину управления подключают к линии 7.
Если в конкретной конструкции ток управления
больше или на шине управления напряжение
отрицательной полярности, то в цепь коллектора
транзистора VT1 устанавливают реле, контактами
которого и производят соответствующие
переключения в трансивере.
Диод VD2 предназначен для защиты ключа
от случайного попадания на транзистор
напряжения отрицательной полярности и при
встраивании ключа в конкретную конструкцию его
можно не устанавливать. Питают ключ от источника
напряжением +12 В (его подают на линию 6) через
параметрический стабилизатор на диоде VD1.
В этой конструкции можно использовать
Р1С16С84 и PIC16F84. Стабилитрон - любой малой мощности
на напряжение стабилизации 5,1 В. В качестве
транзистора VT1 подойдет КТ315 или КТ342 с любым
буквенным индексом, а диод VD2 может быть КД520А.
Ключ размещен на печатной плате размерами 41х38 мм
(рис. 2).
Исходный текст программы на ассемблере (MPASM), коды
которой заносят в память контроллера, приведен в
таблице. Наличие исходного текста дает
возможность начинающим "пикконтрольщикам"
поближе познакомится с основами
программирования.
Как видно из комментариев к программе,
этот ключ обеспечивает как обычный, так и "ямбический"
(iambic) режим работы ключа. Последний требует
специального манипулятора, допускающего
одновременное замыкание на общий провод шины
"точки" и шины "тире" Этот режим работы,
появившийся в шестидесятые годы еще в ламповых
телеграфных ключах, характеризуется тем, что при
одновременном нажатии "точки" и "тире"
он выдает "знакопеременный" сигнал точка-тире-точка-тире
или тире-точка-тире-точка.
" Ямбическим" он назван потому, что
эти ритмы напоминают стихотворный размер ямб (напойте
"ти-таа-ти-таа-ти-таа" - чистый ямб) Это удобно
при передаче некоторых букв, имеющих такие
сочетания (например, букв Ц, Я, К и других),
поскольку они формируются в таком режиме "в
одно нажатие" (точнее - практически
одновременным нажатием или же "захватом"
обеих головок манипулятора) Какая "ямбическая"
буква будет передана,определяется тем, какой из
контактов манипулятора будет замкнут первым и
как долго будет продолжаться "захват"
головок манипулятора "Ямбический" режим
работы весьма своеобразный, но он некоторым
радиолюбителям нравится.
IAMBIC KEYER FOR PIC16C84 (c)1998 E SKELTON E19GQ
MODIFIED NOVEMBER 1998 TO GET RID OF WARNING MESSAGES IN MPASM
.REMEMBER TO DISABLE THE WDT (IMPORTANT!)
LIST | P=16C84 | ||
RA | EQU | 05H | ;PORT A |
RB | EQU | 06H | ;PORT B |
COUNT1 | EQU | 0CH | .COUNT FOR DELAY LOOP |
COUNT2 | EQU | 0DH | ;" |
FLAG | EQU | 0EH | '.USER FLAGS |
D1_ FLG | EQU | 00H | ;DOT FLAG |
DIT_SW | EQU | 00H | ;DOT SWITCH (ON PADDLE KEY) |
DAH_SW | EQU | 01H | ;DASH SWITCH (ON PADDLE KEY) |
KEY | EQU | 00H | ;KEYING OUTPUT |
ORG | 00H | ;PROGRAM EXECUTION BEGINS FROM HERE | |
GOTO | START | ||
DAH | MOVLW | 30 | ;MAIN DOT/DASH DELAY LOOP |
D1T | GOTO | CONT | |
CONT | MOVLW | 10 | |
LP2 | MOVLF | COUNT1 | |
MOVLW | 100 | ||
LP1 | MOVLF | COUNT2 | |
DECFSZ | COUNT2,1 | ||
GOTO | LP1 | ||
DECFSZ | COUNT1,1 | ||
GOTO | LP2 | ||
RETLW | 0 | ||
START | BSF | 3,5 | |
MOVLW | 0FFH | ||
MOVLF | RA | ||
MOVLW | 00H | ||
MOVLF | RB | ||
BCF | 3,5 | ||
MOVLW | 0 | ||
MOVLF | RB | ;MAKE SURE TX IS NOT KEYED ON POWER UP | |
MOVLF | FLAG | ;CLEAR DOT AND DASH FLAGS | |
NEXT | BTFSS | RA, DIT_SW | ;IS THE DIT PADDLE PRESSED? |
GOTO | DOT | ||
BTFSS | RA, DAH_SW | ;IS THE DAH PADDLE PRESSED | |
GOTO | DASH | ||
GOTO | NEXT | ;LOOP UNTIL NEXT PADDLE PRESS | |
DOT | BTFSS | RA, DAH_SW | ;ARE BOTH PADDLES PRESSED |
GOTO | IAMBIC | ;YES | |
DOT2 | BSF | RB, KEY | ;KEY TRANSMITTER |
CALL | DIT | DELAY FOR 1 DOT LENGTH | |
BCF | RB,KEY | ;UNKEY TRANSMITTER | |
CALL | DIT | ;DELAY FOR 1 DOT LENGTH | |
BSF | FLAG, DIT_FLG | ;LAST ELEMENT SENT WAS DOT (FOR IAMBIC ACTION) | |
GOTO | NEXT | ;BACK AND WAIT UNTIL NEXT PADDLE PRESS | |
DASH | BTFSS | RA, DIT_SW | ;ARE BOTH PADDLES PRESSED |
GOTO | IAMBIC | ;YES | |
DASH2 | BSF | RB, KEY | ;KEY TRANSMITTER |
CALL | DAH | ;DELAY FOR 1 DASH LENGTH (3 DOT LENGTHS) | |
BCF | RB, KEY | ;UNKEY TRANSMITTER | |
CALL | DIT | ;DELAY FOR 1 DOT LENGTH | |
BCF | FLAG, DIT_FLG | ;LAST ELEMENT SENT WAS DASH (FOR IAMBIC ACTION) | |
GOTO | NEXT | ;BACK AND WAIT UNTIL NEXT PADDLE PRESS | |
IAMBIC | BTFSC | FLAG, DIT_FLG | ;CHECK TO SEE IF LAST CHAR SENT WAS DOT OR DASH |
GOTO | DASH2 | ;IT WAS A DOT, SEND A DASH | |
GOTO | DOT2 | ;IT WAS A DASH, SEND A DOT | |
END |