Усовершенствованная "поющая ёлка" на PIC - Схемы на PIC - Микроконтроллеры - Каталог статей - RADIOAMATOR
Изобретатель радио Вторник, 21.02.2017, 16:46
RADIOAMATOR
Поиск позывных в российском Callbook'e:
ON-LINE поиск предоставлен сервером QRZ.RU

Приветствую Вас Гость | RSS
Выбрать язык / Select language:
Ukranian
English
French
German
Japanese
Italian
Portuguese
Spanish
Danish
Chinese
Korean
Arabic
Czech
Estonian
Belarusian
Latvian
Greek
Finnish
Serbian
Bulgarian
Turkish
Поиск по сайту
Меню сайта
Категории раздела
Микроконтроллеры [13]
Схемы на PIC [38]
Схемы на AVR [8]
Схемы на ATtiny [6]
Друзья сайта
Главная » Статьи » Микроконтроллеры » Схемы на PIC

Усовершенствованная "поющая ёлка" на 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 Ом. В случае применения пьезоэлектрического излучателя этот резистор
можно заменить перемычкой.
Скачать исходные тексты и прошивки.

Скачано с сайта eldigi.ru
ЛИТЕРАТУРА

1. Долгий А. Разработка и отладка устройств на МК. - Радио, 2001, № 5-12, 2002, № 1.
2. "Поющая" новогодняя ёлка. - Радио, 2001, № 10, с.25-26.
3. www.microchip.ru
Источник Журнал Радио №11 - 2004г.
Категория: Схемы на PIC | Добавил: admin (16.03.2010)
Просмотров: 3210 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Наша кнопка сайта

Радиолюбителям и электрикам схемы, программы и т.д.

Код кнопки

 

Locations of visitors to this page

 

Статистика

Онлайн всего: 20
Гостей: 20
Пользователей: 0

Счётчик тиц Все для радиотехника! Информационная поддержка ремонта теле-видео-аудиоаппаратуры Сайт :: Паятель.at.ua - статьи и простые схемы, конструкции для начинающих и профессионалов. Сервер радиолюбителей России - схемы, документация,
 соревнования, дипломы, программы, форумы и многое другое! Всё для начинающих. Сборки сабвуферов для машин. Сборки сабвуферов для дома. Лаборатория. Электроника. Программы расчета. Выставка сабвуферов.

Copyright MyCorp © 2017Сайт создан в системе uCoz