Захаров Денис, Украина
Азбука Морзе является удобным способом кодирования и передачи текстов, особенно через телеграф или радио. Многие радиолюбители работали в эфире со скоростью 100 - 150 знаков в минуту, а некоторые были способны принимать и передавать до 250 - 300 знаков. Всё это достигалось длительными тренировками. Во время связи радиолюбители обычно записывают только ту часть информации, которую им нужно сохранить, а большую часть передач воспринимают без записи, непосредственно на слух, как обычную речь. Для передачи с большими скоростями вместо простого ключа Морзе часто использовали клавиатуру, однако прием вели все равно на слух – это намного надежнее и удобнее, чем с помощью любых декодирующих устройств.
Лучше всего обучаться и тренироваться с помощью компьютера под руководством опытного радиста или радиолюбителя, но это вполне можно делать и самостоятельно. В Интернете можно найти много разных учебных и тренировочных программ.
Но как поступить, если нужно передавать данные без помощи компьютера, не зная азбуки Морзе? Одним из решений будет создание простого устройства на микроконтроллере, который будет преобразовывать слова в звуковой и световой код Морзе.
Для этих целей автор выбрал микроконтроллер серии Atmel ATtiny2313, ресурсов которого для решения поставленной задачи вполне достаточно. Принципиальная схема устройства изображена на Рисунке 1.
![]() |
|
Рисунок 1. | Принципиальная схема устройства. |
Исходные данные поступают от внешнего источника в формате ASCII по аппаратному каналу UART. Сохранение символов происходит в ОЗУ МК с каждым новым прерыванием «USART0, RX». Длина входного пакета данных за одну операцию преобразования может составлять до 100 символов. Конец набора текста должен заканчиваться знаком «Enter» (командой 0x0D). При поступлении этой команды МК начинает преобразование латинских символов в звуковой и световой код Морзе.
В Таблице 1 приведены коды азбуки Морзе, загруженные в память микроконтроллера.
Таблица 1. | Код Морзе, загруженный в память МК. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
На Рисунке 2 изображена диаграмма передачи данных слова «SOS» (…---…). Динамик подключен к ШИМ выходу OCR0B (канал «А»), а светодиод – к порту ввода-вывода PD6 (канал «Б»).
![]() |
|
Рисунок 2. | Диаграмма передачи данных слова «SOS». |
Для коррекции временных задержек нужно изменять константы, которые приведены в Листинге 1. При изменении директивы «delay_dot» меняется длительность звучания «точки»; при изменении «delay_dash» меняется длительность «тире». Чтобы настроить паузу между «точка-тире», нужно корректировать вставку «delay_paus_dot_dash». Для изменения задержки после пробела (символ «0х20») подбирается значение в «delay_paus_space».
.equ delay_dot = 4 ;пауза «точка»
.equ delay_dash = 11 ;пауза «тире»
.equ delay_paus_dot_dash = 20 ;пауза между «точка - тире»
.equ delay_paus_space = 35 ;пауза пробела
При обработке не более 16 символов за одно преобразование на экране дисплея отображаются вводимые литеры. Если основная задача устройства заключается в быстром преобразовании и отправке данных, то экран можно не ставить. Дисплея нужен только для обучения человека.
Дисплей с драйвером HD44780 может иметь любое количество символов. Рабочая частота микроконтроллера равна 4 МГц. Настройки скорости передачи данных по UART стандартные: 9600 Бод, количество бит – 8, стоп бит – 1.
Программное обеспечение МК и виртуальная модель Proteus - скачать