Модернизируем программу мигающую светодиодом в программу генератор звука. Фактически, программа мигающая светодиодом — это генератор прямоугольных импульсов инфра-низкой частоты. А нам нужно написать программу генерирующую сигнал в звуковом диапазоне 20 Гц ÷ 20000 Гц.

В терминале последовательно выполните следующие команды:

Команды MOV, MOVW, LD, LDI, LDD, LDS, ST, STD, STS, LPM, SPM, IN, OUT, PUSH и POP позволяют пересылать данные между регистрами общего назначения (РОН) и регистрами ввода/вывода (РВВ), памятью данных (ОЗУ), памятью программ FLASH, стеком.

Команды CPSE, SBRC, SBRS, SBIC, SBIS, SRBS производят проверку определенного условия и если условие выполняется следующая за этими командами команда в программе будет пропущена.

Регистр состояния SREG содержит набор флагов, показывающих текущее состояние микроконтроллера. Большинство флагов автоматически меняется при наступлении определенных событий.

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

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

В одном из режимов работы сторожевого таймера (Watchdog) ATtiny13 по истечении времени ожидания возникает прерывание 8 "Тайм-аут сторожевого таймера". Это прерывание можно использовать, например, для ограничения времени выполнения циклического участка программы.

Таймер/счетчик ATtiny13 может быть подключен к выводу PB0/OC0A микросхемы и работать в режиме генератора прямоугольных импульсов. При этом, смена уровня сигнала на выводе PB0/OC0A происходит по совпадению значений в регистре OCR0A и счетном регистре таймера/счетчика.

В этой статье мы приводим листинг программы для ATtiny13 на ассемблере. В этой программе таймер счетчик ATtiny13 используется для отсчета длительности полупериода звукового сигнала. Уровень сигнала на выводе PB3 микроконтроллера инвертируется по прерыванию таймера/счетчика.

В этой статье мы приводим пример прошивки для музыкального автомата на микроконтроллере AVR ATtiny13, схему подключения и таблицу частот музыкальных нот.

В подпрограмме генератор прямоугольных импульсов (меандра) вычислим частоту звукового сигнала на выводе микроконтроллера.

Консольная утилита simulavr - эмулятор микроконтроллеров Atmel AVR поддерживает программную эмуляцию микроконтроллеров серий at90s, atmega8, atmega16, atmega103, atmega128, at43usb.

Вой двух тональной сирены, сквозь звуки сирены слышен рев мотора, свет мигалки ослепляет прохожих синим и красным свечением...

Следующая программа может пригодиться при конструировании устройств со звуковым сигналом.

В Arduino скетч (прошивку) пишут на C, затем ее компилируют. Получают hex файл с прошивкой и загружают эту прошивку в микроконтроллер.

T0 8-ми разрядный таймер/счетчик может использоваться для отсчета временных интервалов, как счетчик внешних событий или в качестве двухканального генератора 8-ми битного ШИМ сигнала.

Следующая программа на ассемблере в бесконечном цикле включает и выключает на выводе PB4 микроконтроллера ATtiny13 напряжение питания, мигает светодиодом. В подпрограмме реализована задержка. Длительность задержки устанавливается параметром.

Программа на ассемблере устанавливает режим работы вывода PB4 микроконтроллера ATtiny13 как выход и включает на выводе PB4 сигнал высокого или низкого уровня.

Приводим пример компиляции программы на Assembler-AVR под Linux и прошивки микроконтроллера AVR.

Включаемый  файл tn13def.inc содержит директивы ассемблера объявляющие символические имена регистров и флагов микроконтроллера ATtiny13, принятые в документации ATMEL.

AVRA - совместимый с Atmel AVRASM32 Assember для семейства 8-битных RISC-микроконтроллеров AVR. AVRA Assember поддерживает микроконтроллеры серий AT90, ATmega, ATtiny. AVRA имеет улучшенную поддержку макросов и дополнительные директивы.