і
МИКРОКОНТРОЛЛЕРЫ
1
Таблица 4
Линия порта
Назначение
А [0]
К н о п ка “стоп” - останавливает “бегущ ие огни”
А [1]
К н о п ка “п уск” - за пуска е т “бегущ ие огни”
А [2]
К н о п ка “влево” - зад ает направление движ ения “о гня” В [7] —» В [0]
А [3]
К н о п ка “вправо” - зад ает направление движ ения “огня” В [0]
—>
В[7]
позволяют индивидуально обрабаты-
вать тот или иной бит (группу битов)
в байте. Разница между этими ко-
мандами в том, что первая группа
обрабатывает всегда заранее задан-
ные непосредственно в команде биты,
а для второй группы маску можно
сформировать программным спо-
собом,
непосредственно при работе
микроконтроллера.
И, напоследок, очередное домаш-
нее задание. Из того же самого устрой-
ства
(рис. 2),
на котором мы рассмат-
ривали технику программирования вир-
туальных таймеров, необходимо будет
сделать “бегущие огни”. Кнопки теперь
И го р ь Н о в о с е л о в
г. Екатеринбург
E-mail: [email protected] yandex.ru
Достаточно часто, изготавливая
некое электронное устройство, тре-
буется, чтобы оно издавало какие-
либо звуки. Никого уже не удивишь
писком из пьезодинамиков. Гораз-
до лучше, когда устройство воспро-
изводит речь или другие сложные
звуки. Для этих целей либо ставят
дополнительную микросхему энер-
гонезависимой памяти, либо одну
из ISD микросхем. В обоих случаях
требуется усложнение конструкций,
а во втором еще и ограниченная по-
лоса частот воспроизведения.
Если в качестве микроконтрол-
лера (МК) устройства был выбран
PIC18, и при таком выборе оста-
лось достаточно ресурсов МК: па-
мяти
про гр а м м ,
ССР
м одуль,
TIMER2 - можно добавить про-
грамме функцию вывода речевых
сообщений или музыки без допол-
нительных микросхем.
В рассмотренных в Интернете
статьях по поводу использования
50
------------------------------
будут иметь новое назначение, а имен-
но (см.
таблицу 4).
В качестве подсказки ниже
(рис. 4)
приведен автомат для этого устройства.
Обратите внимание - переходы в авто-
матах могут быть и “сами в себя”! Для
постоянного получения терминального
символа “Время прошло” достаточно
запрограммировать и запустить в ра-
боту интервальный таймер, не останав-
ливая его, как мы это делали раньше
(см. предыдущие статьи цикла). Про-
грамм выхода в данном автомате три:
одна - “ничегонеделающая”, одна
сдвигает бегущий огонь вправо, и еще
одна - влево (для сдвига битов в
в качестве ЦАП ШИМ микроконтрол-
леров, чаще всего используется низ-
кая частота ШИМ, равная частоте
сэмплов. Это заставляет применять
ФНЧ высокого порядка для того, что-
бы отфильтровать частоту сэмплов.
Это приводит к усложнению схемы.
Гораздо проще использовать высокую
частоту ШИМ, обязательно выше, чем
может услышать человек, но изменять
параметры ШИМ с необходимой час-
тотой сэмплов. В таком случае уже не
требуется отфильтровывать в спект-
ре составляющую с частотой ШИМ.
При этом возникает паразитная со-
ставляющая с частотой вдвое мень-
шей частоты сэмплов. Это придает
звучанию металлический оттенок.
Для примера выбрана частота
сэмплов 11025 Гц, 8 бит. Это значит,
что полоса спектра воспроизведе-
ния составляет 5512,5 Гц. Частоту
5512,5 Гц необходимо подавить в вы-
ходном сигнале. Для этого необходи-
мо пропустить выходной сигнал с
Прошло время
Прошло время
Рис. 4
микроконтроллере существуют специ-
альные команды - shr, shl, rrc и rlc: по-
пьпайтесь разобраться сними самосто-
ятельно). Подумайте также, почему в
этом автомате не предусмотрена обра-
ботка “дребезга” контактов, и нужна ли
она тут. Ответ на домашнее задание
(файл
Example.zip)
вы можете скачать
с сайта журнала “Радиолюбитель”.
выхода МК через ФНЧ и режектор-
ный фильтр.
Отфильтровать такую составляю-
щую спектра очень сложно аналого-
вой схемотехникой, поэтому был най-
ден способ с небольшими вычисли-
тельными затратами, но тем не менее
значительно подавляющий эту со-
ставляющую. Для этого частоту сэм-
плов необходимо увеличить в два или
более раз, затем отфильтровать в
цифровом виде. Повышение частоты
сэмплов путем увеличения их числа
- слишком затратный (имеется ввиду
то, что потребуется вдвое больше па-
мяти занимать на ту же длительность
воспроизведения) метод, необходимо
высчитывать промежуточные сэмплы
на основе существующих:
ЭзИ = (ЭИ +
+ 1])/2
(1)
где Бэр] - рассчитываемый сэмпл, ко-
торый необходимо вставить между су-
ществующими сэмплами Б[і] и Б[і +1].
| Родиолюбитегь - 0 2 /2 0 0 6
Говорящий
З В О Н О К
но PIC18F252 "Кто том?"
предыдущая страница 49 Радиолюбитель 2006-02 читать онлайн следующая страница 51 Радиолюбитель 2006-02 читать онлайн Домой Выключить/включить текст