Разделы инструкций

В сети

Пользователей: 118
Из них просматривают:
Аналоги: 45. Даташиты: 10. Инструкции: 6. Магазин: 1. Новости: 25. Обзор: 1. Остальное: 5. Программы: 4. Производители: 2. Расчёты: 1. Торрент: 3. Форум: 12. Чат: 3.
Участников: 5
Гостей: 113

an , KT315 , Google , wolf170571 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

Функции для звука

Среда MikroC предоставляет звуковую библиотеку, которая позволяет организовать звуковую сигнализацию в разрабатываемом устройстве. Для этого потребуется только пьезоэлектрический излучатель и назначенный порт.

 
Библиотека включает в свой состав функцию инициализации Sound_Init и функцию формирования звука Sound_Play. Описание этих функций приведено в таблицах 39 и 40 соответственно.

 

 Таблица 39. Описание функции Sound_Init

Прототипvoid Sound_Init(unsigned short *port, unsigned short pin)
Возвращаемое значениеНет
ОписаниеНастраивает для микроконтроллера вывод pin порта port на выход
ТребованияНомер вывода должен быть в диапазоне 0 – 7
ПримерSound_Init(&PORTB, 2); // Инициализирует генерацию звука на RB2                                                 

 

 Таблица 40. Описание функции Sound_Play

Прототипvoid Sound_Play(unsigned short period_div_10, unsigned num_of_periods)
Возвращаемое значениеНет
ОписаниеВоспроизводит звук на заданном порту и выводе, заданном с помощью функции Sound_Init. Аргумент period_div_10 – период звуковой частоты в циклах микроконтроллера, поделенный на 10. Генерация звука продолжается в течение заданного аргументом (num_of_periods) числа периодов
ТребованияЧтобы звук воспроизводился, необходимо подключение пьезоэлектрического излучателя (или другого звукового излучателя) на заданном выводе порта. Кроме того, перед выводом следует вызвать функцию Sound_Init, чтобы подготовить аппаратуру к генерации звука
ПримерТребуется воспроизвести звук частотой 1 кГц, период которого составляет T = 1/f = 1 мс или 1000 циклов для частоты 4 МГц. Отсюда можно определить первый аргумент: period_div_10=1000/10 = 100. Тогда проиграть num_of_periods=150 периодов можно вызовом функции:
Sound_Play(100, 150)                                               

 

 
Следующий пример демонстрирует использование функций звуковой библиотеки для генерации тонового сигнала с помощью пьезоэлектрического излучателя. Данный программный код может быть использован на любом микроконтроллере, который имеет PORTB и АЦП на порту PORTA. Частота звука задаётся входным напряжением АЦП (младший байт кода этого напряжения используется как период сигнала T= 1/ƒ).

 

 

unsigned adc_value;
void main() {
PORTB = 0; // Очистка PORTB
TRISB = 0; // PORTB – выход
INTCON = 0; // Запрет всех прерываний
ADCON1 = 0x82; // Конфигурирование VDD как опорного напряжения,
// и выбор канала АЦП
TRISA = 0xFF; // PORTA – вход
Sound_Init(&PORTB, 2); // Инициализация выдачи звука на RB2
do { // Цикл проигрывания звука:
adc_value = Adc_Read(2); // Получить младший байт АЦП
Sound_Play(adc_value, 200); // Проиграть его
} while (1);
}// end
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

Контактные щетки для микродеталей, электробритв и т.п. можно выпилить из графитовых стержней от старых батареек питания.

Интересно

Если на шприц отсоса припоя надеть отрезок силиконовой трубки.

Похожие инструкции