Каталог статей

Главная » Все схемы » Схемы устройств на микроконтроллерах » Устройства на микроконтроллерах

Выбранная схема!!!


871
Усовершенствованная "поющая ёлка" на PIC
Усовершенствованная "поющая ёлка" на PIC
Особенностью данной программы является возможность плавного изменения яркости светодиодов. Прототипом послужила "поющая новогодняя ёлка" (Радио, 2001, № 10, с.25-26). Применение ШИМ позволяет выбрать для каждого из 8 светодиодов одну из 32 градаций яркости - от 0 (погашен) до 31 (максимум Преимущество импульсного управления - экономичность. На основе микроконтроллера PIC16F628 можно изготовить простое и компактное устройство с
автономным питанием. К достоинствам этого контроллера относится наличие внутреннего тактового генератора, не требующего подключения внешних элементов, что упрощает схему. Объём памяти программ достаточен для записи более десятка световых эффектов, таких как "плавное зажигание-гашение", "переливающиеся огни", "змейка" и т.п. В программе также предусмотрено плавное изменение скорости. Например, можно запрограммировать "бегущий огонь"
сначала с ускорением, затем с постоянной скоростью, и с замедлением. Кроме того, в память записано несколько мелодий.

При включении питания начинается цикл световых эффектов. После 5 циклов воспроизводится первая мелодия. Последующие мелодии воспроизводятся через каждые 10 циклов. Все они сопровождаются эффектом "бегущий огонь". Нажатие на кнопку в процессе выполнения основного цикла вызывает воспроизведение текущей мелодии, после чего цикл продолжается. Нажатие на кнопку во время воспроизведения прекращает его и подготавливает переход к следующей мелодии.

Принцип программной организации ШИМ.

Каждая световая комбинация кодируется в программе пятью байтами. Номером бита выбирается светодиод, номер байта определяет яркость в коде 1-2-4-8-16. Для программной организации ШИМ производится дешифрация, на время выполнения которой запрещаются прерывания. По окончании дешифрации информация о состоянии светодиодов сохраняется в 32 регистрах ОЗУ с именами BYTE00 - BYTE1F. При переполнении таймера TMR0 происходит переход на обработку прерывания. Информация о текущем состоянии светодиодов (зажжён/погашен) переносится с использованием косвенной адресации из регистра-источника BYTE00 в регистр PORTB . Адрес регистра-источника инкрементируется. Флаг запроса на прерывание сбрасывается. При следующем переполнении таймера в PORTB переносится информация из регистра BYTE01, затем из BYTE02 и т.д. После переноса данных из регистра BYTE1F происходит возврат
к BYTE00. Таким образом, длительность импульса тока через светодиод определяется количеством единиц в соответствующих разрядах регистров BYTE00 - BYTE1F. Обновление информации на выводах RB0-RB7 контроллера происходит с достаточно высокой
частотой, и мерцание светодиодов незаметно для глаз.

Предусмотрена возможность сдвига данных в регистрах (подпрограмма Roll), что позволяет сэкономить память программ. Заданные один раз кодовые комбинации будут выполняться для всех светодиодов поочерёдно.

В подпрограмме обработки прерывания контроллер проверяет состояние кнопки. Подавление дребезга контактов - программное. Если обнаруживается, что кнопка нажата, то цикл ШИМ приостанавливается. После отпускания кнопки воспроизводится мелодия под текущим номером (хранящимся в регистре NUMBER). По окончании воспроизведения цикл ШИМ продолжается.

Контроллер также проверяет состояние кнопки в процессе воспроизведения. Нажатие приводит к прекращению воспроизведения. Номер текущей мелодии инкрементируется. Если мелодия была последней из имеющихся в памяти, происходит возврат к начальной.

Каждая нота кодируется одним байтом. Два младших бита задают длительность, пять бит - высоту тона, старший бит зарезервирован. Декодирование осуществляется методом табличной конвертации. В памяти контроллера хранятся частоты 25 нот - от "си" 1-й октавы до "си" 3-й октавы. Для воспроизведения одной ноты предусмотрена макрокоманда play. Таким образом, мелодия описывается последовательностью макрокоманд play B'xHHHHHDD'. Темп исполнения мелодии указывается отдельно и обеспечивается таймером TMR0.

В программу (версия 1.0) записаны 7 мелодий по выбору автора и 11 световых эффектов. Возможно, в последующих версиях их количество будет увеличено. Мелодии легко могут быть изменены по своему вкусу путём указания соответствующих нот в программе.

Примечание: в программе версии 1.1 изменено описание нот с целью расширения диапазона по длительности. Теперь макрокоманда play имеет следующий вид: play B'HHHHHDDD' Подробности - см в комментариях (в самой программе). Число мелодий увеличено до 12.

Различие между версиями 1.0 (picplay1.asm) и 1.0_S (picplay2.asm) [а также между 1.1 и 1.1_S] заключается в том, что версии S совместимы по выводам с конструкцией, описанной в журнале. Достаточно лишь заменить микроконтроллер. При желании можно подобрать резисторы в цепях светодиодов для получения требуемого диапазона яркостей. Первая же предназначена для схемы, показанной на рисунке.

Рекомендуемые сопротивления для этого варианта:
680 Ом - АЛ307БМ (красный)
510 Ом - АЛ307ГМ (зеленый)
1 кОм - импортный красный
560 Ом - импортный желтый
510 Ом - импортный зеленый
10 кОм - импортный синий (сверхяркий)

Сопротивление резистора в цепи звукоизлучателя зависит от его типа. Суммарное сопротивление
должно превышать 50 Ом. В случае применения пьезоэлектрического излучателя этот резистор
можно заменить перемычкой.
Скачать исходные тексты и прошивки.
Скачано с сайта http://eldigi.ru/
ЛИТЕРАТУРА

1. Долгий А. Разработка и отладка устройств на МК. - Радио, 2001, № 5-12, 2002, № 1.
2. "Поющая" новогодняя ёлка. - Радио, 2001, № 10, с.25-26.
3. www.microchip.ru
Источник Журнал Радио №11 - 2004г.


Категория: Устройства на микроконтроллерах | Добавил: Визинга (16.12.2010)
Просмотров: 9798 | Комментарии: 1 | Рейтинг: 2.0/4


Всего комментариев: 1
0
1 fanzone   (17.12.2015 12:18) [Материал]
файлы недоступны для скачивания

Пожалуйста остав

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024