Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

Шаг 5. Переходим непосредственно к разработке устройств и программ 253 После выполнения одной из вышеописанных процедур сдвига произ ­ водится запись содержимого переменной rab в порт РВ с одновремен ­ ным инвертированием этого содержимого (строка 10). Записанное в этой строке выражение нам уже хорошо знакомо. Оно применялось нами в обоих предыдущих примерах. 5.9. Формирование звука Постановка задачи В общем случае задача формирования звука не составляет большого труда. Достаточно взять за основу схему с мигающим светодиодом (см. раздел 5.5), подключить вместо светодиода звуковой излучатель (напри ­ мер, телефонный капсюль), а в соответствующей программе (листинг 5.7) поменять константу задержки таким образом, чтобы частота «мигания» повысилась и достигла звукового диапазона. Диапазон частот, которые может услышать человек, лежит в пределах примерно от 50 Гц до 15 кГц. Светодиод в упомянутой выше программе мигает с частотой 4 Гц. Если уменьшить время задержки в 1000 раз, то можно получить частоту сигнала на выходе, равную 4 кГц. Эта частота как раз входит в звуковой диапазон. Предлагаемый выше способ формирования звукового сигнала реали ­ зует эту задачу программным путем. Однако для формирования звука гораздо удобнее использовать таймеры/счетчики микроконтроллера. Попробуем создать простейшее сигнальное устройство, которое при нажатии разных клавиш будет издавать звуки разной частоты. Допустим, мы имеем семь кнопок (датчиков). Сформулируем задачу следующим образом: «Разработать электронное устройство, имеющее семь входов и один звуковой выход. К каждому из входов подключен датчик, состоящий их двух нормально разомкнутых контактов. При замыкании контактов любого из датчиков устройство должно вырабатывать звуковой сигнал определенной частоты. Каждому датчику должна соответствовать своя собственная частота звукового сигнала. Если контакты всех дат ­ чиков разомкнуты, звуковой сигнал на выходе должен отсутствовать. Назовем наше устройство Сигнализатор «Семь нот».» Схема Поставленная выше задача прекрасно решается при помощи уже известного нам микроконтроллера ATtiny2313. Выберем его и на этот раз. Микроконтроллер имеет два встроенных таймера/счетчика. Какой же из

RkJQdWJsaXNoZXIy MTExODQxMg==