Автомат световых эффектов

Автор работы: Пользователь скрыл имя, 10 Мая 2012 в 23:13, доклад

Краткое описание

Целью данной курсовой работы является создание автомата световых эффектов на микроконтроллере в среде разработки CodeVisionAVR C Compiler, составление алгоритма работы программы и симулирование работы проекта в программе VMLab.

Содержимое работы - 1 файл

Отчет.doc

— 595.00 Кб (Скачать файл)

ВВЕДЕНИЕ

     Научно-технический  прогресс неутомимо идет вперед, в результате не только в промышленной, но и в бытовой технике все шире используются встроенные компьютерные системы на основе микроконтроллеров. Они широко применяются в персональных компьютерах и их периферийных устройствах, стиральных машинах, музыкальных центрах и т. д.

     Популярность  микроконтроллеров AVR постоянно увеличивается. Не последнюю роль в этом играет соотношение показателей «цена/быстродействие/энергопотребление», являющееся одним из лучших на рынке 8-разрадных микроконтроллеров. Кроме того, постоянно растет число выпускаемых сторонними производителями разнообразных программных и аппаратных средств поддержки разработок устройств на их основе. Все это позволяет говорить о микроконтроллерах AVR как о новом индустриальном стандарте среди 8-разрядных микроконтроллерах общего применения.

     Микроконтроллеры  семейства AVR фирмы Atmel представляют собой восьмиразрядную однокристальную микро-ЭВМ с упрощенной (сокращенной) системой команд – RISC (Restricted (Reduced) Instruction Set Computer).

     Микроконтроллеры  изготавливаются по высококачественной КМОП (CMOS) технологии, содержат энергонезависимые запоминающие устройства для хранения программы и данных, выполненные по Flash и EEPROM технологиям, и отличаются низким энергопотреблением при высокой тактовой частоте. Запись программы и исходных данных в память может выполнятся после установки микроконтроллера в аппаратуре, где ему предстоит работать [2].

     В состав семейства AVR входят микроконтроллеры трех серий – AT90, ATtiny и Atmega. В каждую серию входят микроконтроллеры нескольких типов. Микроконтроллеры AT90 по своим структурным характеристикам (объем памяти, состав периферийных устройств) близки к микроконтроллерам семейств AT89 фирмы Atmel и MCS-51 фирмы Intel. По своим вычислительным возможностям они занимают среднее положение между микроконтроллерами серий ATtiny и ATmega. Микроконтроллеры серии ATtiny имеют наименьшее, а микроконтроллеры серии ATmega – наибольшие вычислительные возможности в семействе AVR [3].

     Целью данной курсовой работы является создание автомата световых эффектов на микроконтроллере в среде разработки CodeVisionAVR C Compiler, составление алгоритма работы программы и симулирование работы проекта в программе VMLab. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
    1. Постановка задачи

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

     Среда разработки файла прошивки в Code Vision AVR и тестирование в среде VM Lab.

     1.2 Теоретические сведения

     Т. к. в курсовой работе используется микроконтроллер семейства ATmega, поговорим о нем более подробно.

     Как и все микроконтроллеры AVR фирмы «Atmel», микроконтроллеры семейства ATmega являются 8-разрядными микроконтроллерами, предназначенными для встраиваемых приложений. Они изготавливаются по малопотребляющей КМОП-технологии, которая в сочетании с усовершенствованной RISC-архитектурой позволяет достичь наилучшего соотношения быстродействия/энергопотребления.

     1.2.1 Отличительные особенности

     К числу особенностей микроконтроллеры AVR семейства ATmega относятся:

    • FLASH-память программ объемом 8…128 Кбайт;
    • оперативная память (статическое ОЗУ) объемом 1…4 Кбайт;
  • память данных на основе ЭСППЗУ (EEPROM) объемом 512 байт…4Кбайт (число циклов стирания записи менее 100000);
  • возможность защиты от чтения и модификации памяти программ и данных;
  • возможность программирования непосредственно в системе через последовательные интерфейсы SPI и JTAG;
  • возможности самопрограммирования;
  • возможность внутрисхемной отладки в соответствии со стандартом IEEE 1149.1(JTAG);
  • различные способы синхронизации: встроенный КС-генератор с внутренний или внешний времязадающей КС-цепочкой или с внешним резонатором; внешний сигнал синхронизации;
  • наличие нескольких режимов пониженного энергопотребления;
  • наличие детектора снижения напряжения питания (brown-out-detector, BOD);
  • возможность программного снижения частоты тактового генератора [4].
 

     1.2.2 Характеристика процессора

     Подавляющее большинство основных характеристика процессора микроконтроллеров семейства ATmega такие же, что и у микроконтроллеров  других семейств:

  • полностью статическая архитектура; минимальная тактовая частота равна нулю;
  • АЛУ подключено непосредственно к регистрам общего назначения;
    • большинство команд выполняются за один машинный цикл;
  • многоуровневая система прерываний; поддержка  очереди прерываний.

     В то же время процессор микроконтроллеров семейства ATmega имеет ряд характеристик, присущих именно этому  семейству:

  • наибольшее число источников прерываний (до 27 источников, из них до 8 внешних);
  • наличие программного стека во всех моделях семейства;
  • наличие программного умножителя.

     1.2.3 Характеристики подсистемы ввода/вывода

     Все характеристики подсистемы ввода/вывода микроконтроллеров семейства ATmega такие же, что и у микроконтроллеров других семейств:

    • программное конфигурирование и выбор портов ввода/вывода;
  • выводы могут быть запрограммированы как входные и как  

выходные  независимо друг от друга;

  • входные буферы с триггером Шмитта на всех выводах;
  • возможность подключения ко всем входам внутренних подтягивающих резисторов (сопротивление резисторов составляет 35…120кОм) [1].

     Порты ввода/вывода AVR имеют число независимых  линий "Вход/Выход" от 3 до 53. Каждый разряд порта может быть запрограммирован на ввод или на вывод информации. Мощные выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения приведены для напряжения питания 5 В).

     Интересная  архитектурная особенность построения портов ввода/вывода у AVR заключается  в том, что для каждого физического  вывода существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т.д.). Упрощенная структурная схема элемента ввода/вывода AVR – микроконтроллера приведена на рисунке 1.1. Здесь DDRx – бит контроля направления передачи данных и привязки вывода к шине питания (VCC), PORTx – бит привязки вывода к VCC и бит выходных данных, PINx – бит для отображения логического уровня сигнала на физическом выводе микросхемы [5].

Рисунок 1.1 — Структурная схема элемента ввода/вывода AVR

     1.2.4 Периферийные устройства

     Микроконтроллеры семейства ATmega имеют наиболее богатый набор периферийных устройств (ПУ). При этом в большинстве моделей имеются все ПУ, которые вообще встречаются в составе микроконтроллеров AVR. Этими устройствами являются:

  • 8-разрядные таймеры/счетчики (таймеры Т0 и Т2). В ряде моделей эти таймеры/счетчики могут работать в качестве часов реального времени (в асинхронном режиме). У некоторых моделей они могут использоваться в качестве одно- или двухканального 8-битного генератора ШИМ-сигналов. Количество регистров, обслуживающие таймеры, зависит от их сложности и функциональности;
  • 16-разрядные таймеры/счетчики (таймеры Т1 и Т3). Как и 8-разрядные таймеры/счетчики, они используются для подсчета внешних событий, формирование сигналов, генерация ШИМ, но уже переменной разрядности, и в дополнение может сохранять свое текущее состояние в отдельном регистре по внешнему событию;
  • сторожевой таймер WDT. Он предназначен для защиты микроконтроллеров от сбоев в процессе работы и имеется во всех моделях семейства. Этот таймер работает даже в режимах пониженного энергопотребления, т.к. имеет независимый тактовый генератор, работающий на частоте 1МГц при напряжении 5В;
  •    генераторы сигнала с ШИМ разрядностью 8 бит (один из режимов работы 8-разрядных таймеров/счетчиков Т0 и Т2);
  •   одно-, двух- и трехканальные генераторы сигнала  с ШИМ регулируемой разрядности (один из режимов работы 16-разрядных таймеров Т1 и Т3). Разрешение ШИМ-сигнала для разных моделей составляет 8…10 бит или 1…16 бит;
  • аналоговый компаратор. Он позволяет сравнивать значения напряжений, присутствующих на двух выводах контроллера. Результатом сравнения является логическое значение, которое может быть получено программой. По результатам может быть сгенерировано прерывание, а также осуществлен захват значение счетного регистра таймера/счетчика  Т1, что позволяет измерить длину аналоговых сигналов;
  • многоканальный 10-разрядный АЦП как с несимметричными, так и с дифференциальными входами. Он преобразовывает входной аналоговый сигнал в цифровое входное значение, которое соответствует входному сигналу относительно некоторого операторного напряжения. АЦП бывают: идеальный, совершенный и реальный;
  • полнодуплексный универсальный асинхронный приемопередатчик (UART);
  • полнодуплексный универсальный синхронный/асинхронный приемопередатчик (USART);
  • последовательный синхронный интерфейс SPI;
  • последовательный двухпроводный интерфейс TWI (аналог интерфейса I2C [1].
 

     1.2.5 Архитектура ядра

     Ядро  микроконтроллеров AVR семейства ATmega выполнено по усовершенствованной RISC-архитектуре (enhanced RISC). Fhbavtnbrj-логическое устройство (АЛУ), выполняющее все вычисления, подключено непосредственно к 32-м рабочим регистрам, объединенным в регистровый файл. Благодаря этому АЛУ выполняет одну операцию (чтение содержимого регистров, выполнение операции и запись результата обратно в регистровый файл) за один машинный цикл. Практически каждая из команд (за исключением команд, у которых одним из операндов является 16-разрядный адрес) занимает одну ячейку памяти программы.

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

     Еще одним решением, направленным на повышение быстродействия,

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

выборка из памяти и дешифрация кода следующей  команды. Причем, поскольку длительность машинного цикла микроконтроллеров AVR составляет всего один период тактового генератора, они могут обеспечивать ту же производительность, что и RISС-микроконтроллеры других фирм, но при более низкой тактовой частоте [3]. 

  1. ПРАКТИЧЕСКАЯ  ЧАСТЬ
    1. Принципиальная схема устройства

     На  рисунке 2.1 изображена принципиальная схема устройства.

Рисунок 2.1 — Принципиальная схема устройства

    1. Алгоритм работы программы
  1. На рисунке 2.1 изображен алгоритм работы программы в котором имеется 3 режима работы: режим 1, режим 2, автоматический режим. В свою очередь в автоматическом режиме имеется 3 световых эффекта, которые меняются в строгой последовательности

       
 
 
 
 
 

     

                                                                    нна

Информация о работе Автомат световых эффектов