Разработка быстродействующей системы контроля влажности почвы на основе микропроцессора ATmega16 фирмы Atmel
Структурная схема системы управления. Характеристики первичных датчиков, электронасоса, индикатора, микроконтроллера, системы прерываний. Работа регистров и аналого-цифрового преобразователя. Алгоритм работы микропроцессора - управляющего устройства.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 06.02.2013 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Содержание
Введение
1. Структурная схема системы управления
2. Описание аппаратной части
2.1 Первичные датчики
2.2 Исполнительное устройство
2.3 Индикация
2.4 Управляющее устройство
2.4.1 Архитектура микропроцессора
2.4.2 Область Ввода/Вывода
2.4.3 Работа аналого-цифрового преобразователя
2.4.4 Система прерываний
3. Алгоритм работы микропроцессора
Заключение
Список литературы
Приложения
Введение
Современный мир предлагает нам разнообразные решения для автоматизации тех или иных процессов человеческой деятельности. Например, производства всё больше автоматизируются, чтобы довести человеческий фактор до минимума. Так, для оранжереи существуют много систем, предназначенных для создания искусственного микроклимата. Разрабатываемая в этом проекте система контроля влажности почвы является составной частью такой системы управления микроклиматом. На данный момент нет таких систем отечественного производства, а системы иностранного производства имеют высокую стоимость. Это объясняет актуальность данной разработки.
1. Структурная схема системы управления
Любая система управления характеризуется следующими элементами:
- управляющее устройство (УУ);
- исполнительное устройство (ИУ);
- объект управления (ОУ);
- первичные датчики (ПД);
- индикация и ввод информации (ИВИ).
Для данного проекта не предусмотрены задачи ввода информации, поэтому средств ввода нет. На рисунке 1 представлена структурная схема.
Рисунок 1 - Структурная схема
Управляющим устройством является микропроцессор.
Исполнительное устройство - электронасос, в зависимости от реализации имеющий ту или иную мощность и исполнение, во всяком случае, система будет управлять электродвигателем, а их питание может быть однофазным или трехфазным. В данном проекте решено использовать однофазный электродвигатель мощностью менее 2 кВт, но стоит заметить, что существуют силовые коммутаторы для более мощных однофазных или трехфазных двигателей, они управляются точно так же, как и силовой коммутатор для однофазного двигателя, то есть те же параметры управляющего электрического тока и те же условия включения и выключения.
Объект управления - 8 участков оранжереи.
Первичные датчики - 8 датчиков влажности почвы.
Индикация - 2 семисегментных индикатора.
микропроцессор регистр микроконтроллер преобразователь
2. Описание аппаратной части
2.1 Первичные датчики
В качестве первичных датчиков выбраны датчики влажности почвы EC-5 компании Decagon Devices Inc. Он имеет следующие характеристики:
Время отклика: 10 мс.
Погрешность: не более 2%.
Напряжение питания: от 2.5 до 3.6 В.
Диапазон температур: от -40? до +60? С.
Диапазон измерений: от 0 до 100%.
Размеры датчика: 8,9 х 1,8 х 0,7 см.
Выбор пал на этот датчик, благодаря его низкому энергопотреблению и небольшому времени отклика, а также этот датчик один из самых дешевых и популярных датчиков влажности почвы.
Формула вычисления влажности почвы:
, (1)
где V - значение выходного напряжения датчика в милливольтах,
- значение влажности почвы в процентах.
На рисунке 2 представлен соединительный штекер датчика, а на рисунке 3 показан вид датчика[1].
Рисунок 2 - Штекер датчика TSR Jack 3,5 мм.
Рисунок 3 - Внешний вид датчика.
2.2 Исполнительное устройство
Исполнительным устройством является электронасос БЦС Leader 100, конечно, в зависимости от конкретных условий и параметров оранжереи, может быть выбран и другой электронасос, отвечающий особым требованиям пользователя. Но, можно сказать, в качестве примера будет использован выбранный электронасос.
Производитель: Aquatechnica, Россия;
Тип насоса: Самовсасывающий центробежный, с внутренним эжектором;
Максимальный напор: 52 м;
Мощность: 970 Вт;
Рабочая среда: Вода;
Производительность: 54 л/мин;
Максимальная высота всасывания: не более 8 м;
Максимальный размер всасываемых частиц: не более 2мм;
Питание: 220В~50Гц;
Содержание механических примесей: не более 100г/м3;
Максимальная температура воды: не более 40°С;
На рисунке 4 показан электронасос.
Рисунок 4 - Внешний вид электронасоса.
Электронасос будет управляться силовым коммутатором PDH1028RD1 компании ПРИБОРИКА с характеристиками[2]:
Рабочий ток нагрузки: 10 А.
Коммутируемое напряжение переменного тока: 240 В.
Способ управления: произвольное фазовое включение.
Входное напряжение управления: постоянное 4…16 В.
Минимальное напряжение включения: 4 В.
Максимальное напряжение отключения: 1 В.
На рисунке 5 отображен вид силового коммутатора, на рисунке 6 показано обозначение силового коммутатора, на рисунке 7 фронтальный вид корпуса с размерами.
Назначение контактов: 1 и 2 - контакты для подключения коммутируемого электрического тока, 3 - управляющее напряжение, 4 - общий (земля).
Рисунок 5 - Внешний вид коммутатора
Рисунок 6 - Обозначение силового коммутатора
Рисунок 7 - Вид корпуса коммутатора
2.3 Индикация
Два семисегментных индикатора в одном корпусе DC56-11 компании Kingbright являются средством отображения среднего значения влажности.
Рисунок 8 - Чертёж индикатора
На рисунке 8 представлен чертёж индикатора, где размеры представлены в миллиметрах, а в скобках в дюймах. На рисунке 9 показан внешний вид индикатора. На рисунке 10 - электрическая схема индикатора[3].
Рисунок 9 - Внешний вид индикатора
Рисунок 10 - Схема подключения индикатора
2.4 Управляющее устройство
Управляющим устройством выбран микропроцессор ATmega16 фирмы Atmel, построенный с использованием расширенной RISC архитектуры AVR. Исполняя по одной команде за период тактовой частоты, ATmega16 имеет высокую производительность около 16 MHz[4].
Так как этот микроконтроллер является самым дешевым, примерно 270 рублей, и обладает большим ресурсом, низким энергопотреблением, не удивительно, что он является самым популярным.
Характеристики ATmega16[5]:
· Прогрессивная RISC архитектура 130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл 32 8-разрядных рабочих регистра общего назначения. Полностью статическая работа Производительность приближается к 16 MIPS (при тактовой частоте 16 МГц) Встроенный 2-цикловый перемножитель
· Энергонезависимая память программ и данных 16 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash) Обеспечивает 10000 циклов стирания/записи Дополнительный сектор загрузочных кодов с независимыми битами блокировки Внутрисистемное программирование встроенной программой загрузки Обеспечен режим одновременного чтения/записи (Read-While-Write) 512 байт EEPROM обеспечивает 100000 циклов стирания/записи 1 Кбайт встроенной SRAM. Программируемая блокировка, обеспечивающая защиту программных средств пользователя
· Интерфейс JTAG (совместимый с IEEE 1149.1) Возможность сканирования периферии, соответствующая стандарту JTAG Расширенная поддержка встроенной отладки Программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки
· Встроенная периферия. Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения Счетчик реального времени с отдельным генератором 8-канальный 10-разрядный аналого-цифровой преобразователь 8 несимметричных каналов
2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат (только в корпусе TQFP) Байт-ориентированный 2-проводный последовательный интерфейс Программируемый последовательный USART Последовательный интерфейс SPI (ведущий/ведомый) Программируемый сторожевой таймер с отдельным встроенным генератором Встроенный аналоговый компаратор
· Специальные микроконтроллерные функции Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания Встроенный калиброванный RC-генератор Внутренние и внешние источники прерываний
Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC
· Выводы I/O и корпуса 32 программируемые линии ввода/вывода 40-выводной корпус PDIP и 44-выводной корпус TQFP
· Рабочие напряжения 2,7 - 5,5 В (ATmega16L) 4,5 - 5,5 В (ATmega16)
· Рабочая частота 0 - 8 МГц (ATmega16L) 0 - 16 МГц (ATmega16)
Расположение выводов ATmega16:
Рисунок 11 - PDIP корпус микроконтроллера
Рисунок 12 - TQFP корпус микроконтроллера
Описание выводов:
· VCC - Питание;
· GND - Земля;
· Port A (PA7..PA0) - Порт А - 8-ми битный, двунаправленный порт ввода вывода. Пины порта могут использовать внутренний источник питания (pullups)(Для каждого пина отдельно). Выходной буфер порта А может питаться 40 мА и может управлять LED дисплеем напрямую. Порт A служит мультипликативной шиной Адреса/Данных (Multiplexed Addres/Data) при использовании внешней статической памяти (SRAM). Также выводы порта могут использоваться как входы 8-ми канального 10-ти разрядного АЦП;
· Port B (PB7..PB0) - Порт B- 8-ми битный, двунаправленный порт ввода вывода c внутренним питанием пинов. Входной буфер порта B может питаться 40 мА. Порт В используется для различных специальных возможностей ATmega16;
· Port C (PC7..PC0) - 8-ми битный двунаправленный порт ввода вывода c внутренним питанием пинов. Выходной буфер порта С может питаться 40 мА Порт С также служит для вывода адреса при использовании SRAM;
· Port D (PD7..PD0) - Порт D- 8-ми битный, двунаправленный порт ввода вывода c внутренним питанием пинов. Выходной буфер порта D может питаться 40 мА. Порт D также используется для различных специальных возможностей ATmega16;
· RESET - входной пин. Низкий уровень сигнала в течение двух машинных тактов на этом пине приводит к перезагрузке устройства;
· XTAL1 - Вход для инвертирующего генератора-усилителя, a также вход для внутренней схемы часов;
· XTAL2 - Выход для подключения кварцевого или керамического резонатора;
· AVCC - Питание для Аналого-Цифрового Преобразователя (ADC);
· AREF - Аналоговый управляющий входной сигнал задаёт опорное напряжение для АЦП (analog reference input);
2.4.1 Архитектура процессора
Блок регистров содержит 32 8-ми битовых рабочих регистра со временем доступа - 1 такт. Это означает, что за один такт ALU успевает выполнить одну операцию. Два операнда берутся из различных регистров, полученный результат сохраняется в блоке регистров - и все это за один такт.
6 из 32 8-ми битовых регистров могут использоваться как три 16-и битовых. Такое использование регистров делает более эффективным адресацию. Один из 16-ти битовых регистров используется для адресования функции поиска таблиц констант. 16-ти битовые регистры соответственно называются X-Register, Y-Register, Z-Register[4].
Рисунок 13 - Блок схема ядра микропроцессора
ALU Производит арифметические и логические действия между двумя регистрами и между регистром и константой. Также ALU производит действия с одним операндом - регистром. Адресное пространство Ввода/Вывода содержит 64 адреса через которые можно адресоваться к Регистрам, Таймеру/счетчику, аналого-цифровому преобразователю. Адреса с первого по 32-й соответствуют регистрам, поэтому есть возможность адресоваться не непосредственно к регистру, а через его адрес.
AVR использует концепцию архитектуры Harvard - она заключается в том, что память и основная шина разделяются для кода программы и данных. 'Программная' память выполняется с одноуровневой конвейеризацией. Пока одна инструкция выполняется, следующая выбирается из 'программной' памяти. Эта концепция позволяет выполнять команды во время каждого машинного такта. 'Программная' память - это внутрисистемный, загружаемый FLASH.
Гибкий контроллер прерываний имеет собственный управляющий регистр в памяти Ввода/Вывода (Через эту память можно адресоваться к этому регистру), также есть специальный бит - главный бит прерываний (global interupt enable) в регистре статуса. Все различные прерывания имеют отдельные вектора в таблице векторов прерываний, которая находится в начале Программной памяти. Прерывания имеют приоритет в соответствии с положением их в таблице: чем ниже вектор находится в таблице, тем выше у него приоритет.
В соответствии с AVR архитектурой вся память линейна и имеет регулярную структуру.
Блок регистров:
Все операции с регистрами выполняются напрямую и занимают во времени один такт. Исключение составляют лишь пять логических и арифметических команд работающих с константами: SBCI, SUBI, CPI, ANDI, ORI
Весь 1 Килобайт статической памяти доступен по адресам: $0060 - $0400
X-Register, Y-Register, Z-Register:
Регистры R26-R31 имеют несколько дополнительных функций помимо их основного использования. Эти регистры используются для косвенной адресации статической памяти.
Высоко производительное Арифметическое Логическое Устройство(ALU) AVR работает напрямую со всеми 32-мя рабочими регистрами. Операции ALU делятся на три категории: арифметические, логические и побитовые.
ATmega16 имеет 16K встроенной, загружаемой, программной памяти.
Для памяти данных предусмотрено пять способов адресации:
· Прямой
· Косвенный с замещением
· Косвенный
· Косвенный с пред-Вычитанием (Pre-Decrement)
· Косвенный с пост-Вычитанием (Post-Decrement)
ATmega16 содержит 512 байт памяти EEPROM. Она организована как отдельная область памяти, в которой каждый бит можно читать и записывать. Память EEPROM имеет гарантию на 100,000 раз записи/стирания. Для доступа в EEPROM используются три регистра: регистр адреса EEPROM, регистр данных, управляющий регистр.
2.4.2 Область Ввода/Вывода
Описание регистров, а также расположение области ввода/вывода в статической памяти показано в таблицах 1 и 2:
Таблица 1 - Регистры.
Таблица 2 - Регистры настройки
В пространстве регистров ввода-вывода находятся и регистры управления процессором микроконтроллера: регистр состояния, указатель стека, регистр выбора страницы, регистр управления процессором, регистр управления коэффициентом деления частот.
Формат этих регистров следующий:
Регистр состояния SREG
Бит 7 - I - Общее разрешение прерываний. При установке этого бита в 1 прерывания разрешаются.
Бит 6 - T - Используется командами BLD(Загрузить бит) и BST(Сохранить бит) как бит-источник и бит-приемник.
Бит 5 - H - Флаг полу-переноса. Используется в некоторых арифметических операциях.
Бит 4 - S - Знаковый бит. Зависит от битов V и N. S = N+V.
Бит 3 - V - Флаг переполнения двойного дополнения (Two's Complement OverFlow Flag).
Бит 2 - N- Бит знака результата. Значения бита зависят от знака арифметической или логической операции
Бит 1 - Z - Флаг нуля. Бит показывает был ли результат равным нулю.
Бит 0 - С - Флаг переноса.
Регистр управления MCUCR
Биты регистра управления MCUCR управляют выполнением основных функций процессора.
MCUCR. 7 - SRE: Разрешение внешнего ОЗУ. Установленный (=1) бит SRE разрешает обращение к внешней памяти данных и переводит работу выводов AD0 - 7 (Порт А), А8 - 15 (Порт С), WR и RD на выполнение альтернативной функции. Бит SRE также перенастраивает установки направлений в соответствующих регистрах направления данных.
Очистка бита SRE (=0) запрещает обращение к внешней памяти данных и восстанавливает нормальные установки направлений выводов и данных. MCUCR.6 - SRW: Режим состояния ожидания. При установленном (=1) бите SRW к циклу обращений к внешней памяти данных добавляется один цикл ожидания. При сброшенном (0) бите SRW обращение к внешней памяти выполняется по трехцикловой схеме.
MCUCR.5 - SE: Разрешение режима энергосбережения. Установленный в 1 бит SE разрешает перевод MCU в режим sleep по команде SLEEP. Чтобы исключить перевод MCU в незапланированный режим sleep, рекомендуется устанавливать бит SE непосредственно перед выполнением команды SLEEP.
MCUCR.4,3 ~ SM1, SM0: Биты выбора режима энергосбережения. Эти биты позволяют выбрать один из трех возможных режимов энергосбережения следующим образом.
MCUCR.2..0 -- Зарезервированные биты
Каждый порт имеет три регистра: DDRx, PORTx, PINx, где x - буква порта. Например порт А имеет регистры: DDRA, PORTA, PINA.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
PINA не является регистром, при обращении по этому адресу читаются значения на выводах порта. При чтении регистра PORTA читается состояние защелок данных порта А.
Все восемь линий порта А при его использовании в качестве цифрового устройства ввода/вывода работают одинаково. Соответствующий бит DDAn определяет направление вывода, а бит PORTAn = 1 при работе вывода в качестве входа подключает нагрузочный резистор. После сброса выводы портов находятся в третьем состоянии. Воздействие битов DDAn на работу выводов порта А показано в таблице 3.
Таблица 3 - Направление данных порта.
DDAn |
PORTAn |
I/O |
Нагрузочный резистор |
Описание |
|
0 |
0 |
Вход |
Не подключен |
Третье состояние |
|
0 |
1 |
Вход |
Подключен |
При входном низком уровне РАn обеспечивает вытекающий ток |
|
1 |
0 |
Выход |
Не подключен |
Низкий уровень, двухтактный выход |
|
1 |
1 |
Выход |
Не подключен |
Высокий уровень, двухтактный выход |
2.4.3 Работа аналого-цифрового преобразователя
Аналого-цифровой преобразователь может работать в двух режимах: режиме однократного преобразования и режиме циклического преобразования. В режиме однократного преобразования каждое преобразование инициируется пользователем. В режиме циклического преобразования ADC осуществляет выборку и обновление содержимого регистра данных ADC непрерывно. Выбор режима производится битом ADFR регистра ADCSR.
Работа ADC разрешается установкой в состояние 1 бита ADEN в регистре ADCSR. Первому преобразованию, начинающемуся после разрешения ADC, предшествует пустое инициализирующее преобразование. На пользователе это отражается лишь тем, что первое преобразование будет занимать 27 тактовых циклов, вместо обычных 14.
Преобразование начинается с установки в состояние 1 бита начала преобразования ADSC. Этот бит находится в состоянии 1 в течение всего цикла преобразования и сбрасывается, по завершении преобразования, аппаратно. Если в процессе выполнения преобразования выполняется смена канала данных, то ADC вначале закончит текущее преобразование и лишь потом выполнит переход к другому каналу.
Поскольку ADC формирует 10-разрядный результат, то по завершении преобразования результирующие данные размещаются в двух регистрах данных ADCH и ADCL. Для обеспечения соответствия результирующих данных считываемому уровню используется специальная логика защиты. Этот механизм работает следующим образом: при считывании данных первым должен быть считан регистр ADCL. Как только ADCL считан обращение ADC к регистрам данных блокируется. Таким образом, если после считывания состояния ADCL, но до считывания ADCH, будет завершено следующее преобразование, ни один из регистров не будет обновлен и записанный ранее результат не будет искажен. Обращение ADC к регистрам ADCH и ADCL разрешается по завершении считывания содержимого регистра ADCH.
ADC имеет свое собственное прерывание, которое может быть активировано по завершению преобразования. Когда обращение ADC к регистрам запрещено, в процессе считывания регистров ADCL и ADCH, прерывание будет активироваться, даже если результат будет потерян.
Рисунок 14 - Схема АЦП
Мультиплексор АЦП имеет регистр управления ADMUX описание которого представлено в таблице 4.
Таблица 4 - Регистр управления мультиплексором АЦП- ADMUX.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
REFS1 |
REFS0 |
ADLAR |
MUX4 |
MUX3 |
MUX2 |
MUX1 |
MUX0 |
ADMUX |
||
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
||
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Разряд 7:6 - REFS1:0: Биты выбора источника опорного напряжения
Данные биты определяют какое напряжение будет использоваться в качестве опорного для АЦП (см. табл. 5). Если изменить значения данных бит в процессе преобразования, то новые установки вступят в силу только по завершении текущего преобразования (т.е. когда установится бит ADIF в регистре ADCSRA). Внутренний ИОН можно не использовать, если к выводу AREF подключен внешний опорный источник.
Таблица 5 - Выбор опорного источника АЦП.
REFS1 |
REFS0 |
Опорный источник |
|
0 |
0 |
AREF, внутренний VИОН отключен |
|
0 |
1 |
AVCC с внешним конденсатором на выводе AREF |
|
1 |
0 |
Зарезервировано |
|
1 |
1 |
Внутренний источник опорного напряжения 2.56В с внешним конденсатором на выводе AREF |
Разряд 5 - ADLAR: Бит управления представлением результата преобразования. Бит ADLAR влияет на представление результата преобразования в паре регистров результата преобразования АЦП. Если ADLAR = 1, то результат преобразования будет иметь левосторонний формат, в противном случае - правосторонний. Действие бита ADLAR вступает в силу сразу после изменения, независимо от выполняющегося параллельно преобразования.
Разряд 4:0 - MUX4:0: Биты выбора аналогового канала и коэффициента усиления
Данные биты определяют какие из имеющихся аналоговых входов подключаются к АЦП. Кроме того, с их помощью можно выбрать коэффициент усиления для дифференциальных каналов (см. табл. 6). Если значения бит изменить в процессе преобразования, то механизм их действия вступит в силу только после завершения текущего преобразования (после установки бита ADIF в регистре ADCSRA).
Таблица 6 - Выбор входного канала и коэффициента усиления.
MUX4..0 |
Однополярный вход |
Неинвертирующий дифференциальный вход |
Инвертирующий дифференциальный вход |
Коэффициент усиления, Ку |
|
00000 |
ADC0 |
Нет |
|||
00001 |
ADC1 |
||||
00010 |
ADC2 |
||||
00011 |
ADC3 |
||||
00100 |
ADC4 |
||||
00101 |
ADC5 |
||||
00110 |
ADC6 |
||||
00111 |
ADC7 |
||||
01000 |
Нет |
ADC0 |
ADC0 |
10 |
|
01001 |
ADC1 |
ADC0 |
10 |
||
01010 |
ADC0 |
ADC0 |
200 |
||
01011 |
ADC1 |
ADC0 |
200 |
||
01100 |
ADC2 |
ADC2 |
10 |
||
01101 |
ADC3 |
ADC2 |
10 |
||
01110 |
ADC2 |
ADC2 |
200 |
||
01111 |
ADC3 |
ADC2 |
200 |
||
10000 |
ADC0 |
ADC1 |
1 |
||
10001 |
ADC1 |
ADC1 |
1 |
||
10010 |
ADC2 |
ADC1 |
1 |
||
10011 |
ADC3 |
ADC1 |
1 |
||
10100 |
ADC4 |
ADC1 |
1 |
||
10101 |
ADC5 |
ADC1 |
1 |
||
10110 |
ADC6 |
ADC1 |
1 |
||
10111 |
ADC7 |
ADC1 |
1 |
||
11000 |
ADC0 |
ADC2 |
1 |
||
11001 |
ADC1 |
ADC2 |
1 |
||
11010 |
ADC2 |
ADC2 |
1 |
||
11011 |
ADC3 |
ADC2 |
1 |
||
11100 |
ADC4 |
ADC2 |
1 |
||
11101 |
ADC5ADC21 Нет111110В(GND) |
||||
11110 |
1.23В (VBG) |
Регистр управления и статуса АЦП - ADCSRA.
Таблица 7 - Регистр ADCSRA.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
ADEN |
ADSC |
ADFR |
ADIF |
ADIE |
ADPS2 |
ADPS1 |
ADPS0 |
ADCSRA |
||
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
||
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Разряд 7 - ADEN: Разрешение работы АЦП
Запись в данный бит лог. 1 разрешает работу АЦП. Если в данный бит записать лог. 0, то АЦП отключается, даже если он находился в процессе преобразования.
Разряд 6 - ADSC: Запуск преобразования АЦП
В режиме одиночного преобразования установка данного бита инициирует старт каждого преобразования. В режиме автоматического перезапуска установкой этого бита инициируется только первое преобразование, а все остальные выполняются автоматически. Первое преобразование после разрешения работы АЦП, инициированное битом ADSC, выполняется по расширенному алгоритму и длится 25 тактов синхронизации АЦП, вместо обычных 13 тактов. Это связано с необходимостью инициализации АЦП.
В процессе преобразования при опросе бита ADSC возвращается лог. 1, а по завершении преобразования - лог. 0. Запись лог. 0 в данный бит не предусмотрено и не оказывает никакого действия.
Разряд 5 - ADFR: Выбор режима автоматического перезапуска АЦП
Если в данный бит записать лог. 1, то АЦП перейдет в режим автоматического перезапуска. В этом режиме АЦП автоматически выполняет преобразования и модифицирует регистры результата преобразования через фиксированные промежутки времени. Запись лог. 0 в этот бит прекращает работу в данном режиме.
Разряд 4 - ADIF: Флаг прерывания АЦП
Данный флаг устанавливается после завершения преобразования АЦП и обновления регистров данных. Если установлены биты ADIE и I (регистр SREG), то происходит прерывание по завершении преобразования. Флаг ADIF сбрасывается аппаратно при переходе на соответствующий вектор прерывания. Альтернативно флаг ADIF сбрасывается путем записи лог. 1 в него. Обратите внимание, что при выполнении команды "чтение-модификация-запись" с регистром ADCSRA ожидаемое прерывание может быть отключено. Данное также распространяется на использование инструкций SBI и CBI.
Разряд 3 - ADIE: Разрешение прерывания АЦП
После записи лог. 1 в этот бит, при условии, что установлен бит I в регистре SREG, разрешается прерывание по завершении преобразования АЦП.
Разряды 2:0 - ADPS2:0: Биты управления предделителем АЦП
Данные биты определяют на какое значение тактовая частота ЦПУ будет отличаться от частоты входной синхронизации АЦП.
Таблица 8 - Управление предделителем АЦП.
ADPS2 |
ADPS1 |
ADPS0 |
Коэффициент деления |
|
0 |
0 |
0 |
2 |
|
0 |
0 |
1 |
2 |
|
0 |
1 |
0 |
4 |
|
0 |
1 |
1 |
8 |
|
1 |
0 |
0 |
16 |
|
1 |
0 |
1 |
32 |
|
1 |
1 |
0 |
64 |
|
1 |
1 |
1 |
128 |
Регистры данных АЦП - ADCL и ADCH.
Таблица 9 - ADLAR = 0.
- |
- |
- |
- |
- |
- |
ADC9 |
ADC8 |
ADCH |
||
ADC7 |
ADC6 |
ADC5 |
ADC4 |
ADC3 |
ADC2 |
ADC1 |
ADC0 |
ADCL |
||
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
||
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Таблица 10 - ADLAR = 1.
ADC9 |
ADC8 |
ADC7 |
ADC6 |
ADC5 |
ADC4 |
ADC3 |
ADC2 |
ADCH |
||
ADC1 |
ADC0 |
- |
- |
- |
- |
- |
- |
ADCL |
||
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
||
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
По завершении преобразования результат помещается в этих двух регистрах. При использовании дифференциального режима преобразования результат представляется в коде двоичного дополнения.
Если выполнено чтение ADCL, то доступ к этим регистрам для АЦП будет заблокирован (т.е. АЦП не сможет в дальнейшем модифицировать результат преобразования), пока не будет считан регистр ADCH.
Левосторонний формат представления результата удобно использовать, если достаточно 8 разрядов. В этом случае 8-разрядный результат хранится в регистре ADCH и, следовательно, чтение регистра ADCL можно не выполнять. При правостороннем формате необходимо сначала считать ADCL, а затем ADCH.
2.4.4 Система прерываний
Микроконтроллеры ATmegal6 обслуживают 20 источников прерывания. Все прерывания и механизм сброса имеют отдельные векторы, которые образуют таблицу прерываний. Эта таблица располагается по младшим адресам пространства памяти программ. У каждого прерывания существует свой бит разрешения, который должен быть установлен совместно с битом I регистра SREG, чтобы прерывание могло быть обслужено.
Перечень векторов прерываний приведен в таблице. Перечень отражает также уровень приоритета каждого прерывания. Прерывания с младшими адресами имеют больший уровень приоритета: RESET имеет наивысший уровень приоритета, следующим является запрос внешнего прерывания INT0 и т.д.
Микроконтроллеры содержат два 8-разрядных регистра масок прерываний: регистр масок внешних прерываний EIMSK (External Interrupt Mask) и регистр масок прерываний таймеров/счетчиков TIMSK (Timer/Counter Interrupt Mask). Кроме того, в регистрах управления блоков ввода/вывода имеются и другие биты разрешения и масок.
При возникновении прерывания бит I (разрешения всех прерываний) в регистре SREG очищается и все прерывания запрещаются. Процедура прерывания может установить бит I, чтобы разрешить вложенные прерывания. Команда RETI в конце процедуры обслуживания прерывания устанавливает бит I (=1).
Таблица 11 - Векторы сброса и прерываний.
Когда в счетчик команд загружен вектор прерывания, соответствующий флаг, вызвавший прерывание, аппаратно очищается. Некоторые флаги прерываний можно очистить программно записью логической единицы по адресу бита флага.
Если запрос прерывания возник, когда соответствующий бит разрешения очищен, флаг прерывания будет сохранен в установленном состоянии, пока прерывание не будет разрешено или флаг не будет очищен программно.
Если запросы прерываний возникают при сброшенном бите разрешения всех прерываний, флаги прерываний будут сохранены в установленном состоянии, пока все прерывания не будут разрешены и обработаны в порядке приоритетов.
Внешние прерывания по уровню сигнала флага не имеют и условия прерывания имеют место, пока активен внешний сигнал.
В целом, система прерываний микроконтроллеров весьма удобна для использования, флаги прерываний автоматически сбрасываются при принятии запроса на обслуживание, но программно установить флаг прерывания невозможно.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
EIMSK.7.4 - Разрешение внешних прерываний INT7..INT4. При установленных битах INT7-INT4 и установленном бите I регистра SREG разрешаются запросы по соответствующим входам внешних прерываний. Биты управления идентификацией регистра EICR (External Interrupt Control Register) определяет условия возникновения запроса: по нарастающему/спадающему фронту сигнала или по логическому уровню. Активность сигнала по любому из этих выводов вызовет запрос прерывания, даже если вывод определен как выход.
EIMSK.3..0 - Разрешение внешних прерываний INT3..INT0. При установленных битах INT3-INT0 и установленном бите I регистра SREG разрешаются прерывания по соответствующим входам внешних прерываний. Активным всегда является низкий уровень сигнала. Активность сигнала по любому из этих выводов вызовет запрос прерывания, даже если вывод определен как выход. Запрос прерывания по логическому уровню, если он разрешен, будет существовать до тех пор, пока на входе будет низкий уровень сигнала.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
EIFR.7.4 - Флаги внешних прерываний INTF7 - INTF4. При идентификации активного сигнала на входах INT7 - INT4 соответствующий флаг прерывания INTF7 - INTF4 устанавливается (=1). Если бит I регистра SREG и соответствующий бит разрешения (INT7 - INT4) регистра EIMSK установлены, то выполняется переход по вектору прерывания. При этом переходе флаг очищается. Кроме того, флаг можно очистить, записав в него логическую 1.
Внимание! Программно установить флаг внешнего прерывания нельзя!
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
EICR.7..О - ISCX1, ISCX0: Биты управления идентификацией внешних прерываний INT7-INT4. Запросы внешних прерываний на выводах INT7 - INT4 идентифицируются по значениям ISCxl/ISCx0 в соответствии со следующей таблицей:
Таблица 12 - Управление идентификацией прерываний.
ISCx1 |
ISCx0 |
Описание |
|
0 |
0 |
Запрос прерывания идентифицируется по низкому уровню на INTx |
|
0 |
1 |
Зарезервирован |
|
1 |
0 |
Запрос прерывания идентифицируется по спадающему фронту на INTx |
|
1 |
1 |
Запрос прерывания идентифицируется по нарастающему фронту на INTx |
х = 7.. 4
При изменении значений битов ISCxl/ISCx0 прерывание должно быть запрещено очисткой бита разрешения в регистре GIMSK. Иначе может произойти прерывание в момент изменения значения битов.
Входы прерываний INTx периодически опрашиваются на наличие запроса. Если внешний запрос прерывания фиксируется по фронту, то для надежной работы длительность импульса должна быть больше, чем период частоты синхронизации процессора. Заметим, что частота процессора может быть меньше частоты XTAL из-за наличия делителя. Запрос прерывания по низкому логическому уровню должен продолжаться, пока выполняется текущая инструкция, после которой он будет зафиксирован. Запрос прерывания по логическому уровню, если он разрешен, будет генерировать прерывания до тех пор, пока на входе удерживается низкий уровень.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
TIMSK.7 - OCIE2: Разрешение прерывания по совпадению Таймера 2. При установленном бите OCIE2 и установленном бите I регистра SREG разрешается прерывание по совпадению содержимого регистра сравнения и рабочего регистра Таймера 2.
TIMSK.6 - TOIE2: Разрешение прерывания по переполнению Таймера 2. При установленном бите TOIE2 и установленном бите I регистра SREG разрешается прерывание по переполнению Таймера 2.
TIMSK.5 - TICIE1: Разрешение прерывания по захвату Таймера 1. При установленном бите TICIE1 и установленном бите I регистра SREG разрешается прерывание по захвату Таймера 1.
TIMSK.4 - OCIE1A: Разрешение прерывания по совпадению регистра OCR1A с Таймером 1. При установленном бите OCIE1A и установленном бите I регистра SREG разрешается прерывание по совпадению значения в регистре OCR1A со значением в рабочем регистре Таймера1.
TIMSK.3 - OCIE1B: Разрешение прерывания по совпадению регистра OCR1B с Таймером 1. При установленном бите OCIE1B и установленном бите I регистра SREG разрешается прерывание по совпадению значения в регистре OCR1B со значением в рабочем регистре Таймера 1.
TIMSK.2 - TOIE1: Разрешение прерывания по переполнению Таймера 1. При установленном бите TOIE1 и установленном бите I регистра SREG разрешается прерывание по переполнению Таймера 1.
TIMSK. 1 - OCIE0: Разрешение прерывания по совпадению Таймера 0. При установленном бите OCIE0 и установленном бите I регистра SREG разрешается прерывание по совпадению содержимого регистра сравнения OCR0 и рабочего регистра Таймера 0.
TIMSK.0 - TOIE0: Разрешение прерывания по переполнению Таймера 0. При установленном бите TOIE0 и установленном бите I регистра SREG разрешается прерывание по переполнению Таймера 0.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
TIFR.7 - OCF2: Флаг совпадения значения Таймера 2. Бит OCF2 устанавливается при совпадении значения Таймера 2 и содержимого регистра OCR2. Бит OCF2 аппаратно очищается при переходе на вектор прерывания. Возможна очистка флага записью в бит логической 1.
TIFR.6 - TOV2: Флаг переполнения Таймера 2. Бит TOV2 устанавливается при переполнении Таймера 2. Он аппаратно очищается при переходе на вектор прерывания. Возможна очистка бита записью во флаг логической 1. В режиме PWM этот бит устанавливается при переходе через $00.
TIFR.5 - ICF1: Флаг захвата входа Таймера /. Бит ICF1 устанавливается в случае захвата по входу и показывает, что значение Таймера 1 послано в регистр захвата ICR1. Бит очищается аппаратно при переходе на вектор прерывания. Возможна очистка бита записью во флаг логической 1.
TIFR.4 - OCF1A: Флаг А совпадения выхода Таймера 1. Бит OCF1A устанавливается при совпадении значения в Таймере 1 и содержимого регистра OCR1A. Бит OCF1A аппаратно очищается при переходе на вектор прерывания. Возможна очистка бита записью во флаг логической 1.
TIFR.3 - ОСF1В: Флаг В совпадения выхода Таймера 1. Бит OCF1B устанавливается при совпадении значения в Таймере 1 с содержимым регистра OCR1B. Бит OCF1B аппаратно очищается при переходе на вектор прерывания. Возможна очистка бита записью во флаг логической 1.
TIFR.2 - TOV1: Флаг переполнения Таймера 1. Бит TOV1 устанавливается при переполнении Таймера 1. Он аппаратно очищается при переходе на вектор прерывания. Возможна очистка бита записью во флаг логической 1.
TIFR.1 - OCF0: Флаг совпадения выхода Таймера 0. Бит OCF0 устанавливается при совпадении значения в Таймере 0 с содержимым регистра OCR0. Бит OCF0 аппаратно очищается при переходе на вектор прерывания. Возможна очистка бита записью во флаг логической 1.
TIFR.0 - TOV0: Флаг переполнения Таймера 0. Бит TOV0 устанавливается при переполнении Таймера 0. Он аппаратно очищается при переходе на вектор прерывания. Возможна очистка бита записью во флаг логической 1.
3. Алгоритм работы микропроцессора
На рисунке 15 представлен алгоритм работы микропроцессора.
Рисунок 15 - Алгоритм работы
Заключение
Разработана быстродействующая система контроля влажности почвы в основе которой микропроцессор ATmega16 фирмы Atmel. Этот микроконтроллер был выбран из множества разных микропроцессоров различных фирм благодаря его низкой стоимости, широким функциональным возможностям и простоте программирования, а также средства прошивки микроконтроллера находятся в свободном распространении. Помимо этого, использование именно этого микроконтроллера не требует дополнительных схем.
Список литературы
1. User's Manual ЕС-5, Decagon Devices, Washington - 2012.
2. Твердотельные однофазные реле серии PD, М.: Приборика - 2012.
3. KINGBRIGHT FULL-LINE CATALOG. [Электронный ресурс] - http://lib.chipdip.ru/151/DOC000151610.pdf
4. Евстифеев А.В., Микроконтроллеры AVR семейства Mega: Руководство пользователя. - М.: Додэка-XXI - 2007. - 594 с.
5. Мортон Д., Микроконтроллеры AVR вводный курс. - М.: Додэка-XXI, 2006.
Приложения
Перечень элементов
Таблица 13 - Элементы.
Обозначение |
Тип |
Кол-во |
Примечание |
|
Конденсаторы |
||||
С1 |
К10-7В-100пФ-50В |
1 |
||
Дроссели |
||||
L1 |
ДМ 0.1-100 |
1 |
||
Микросхемы |
||||
DD1 |
ATmega16-16PI |
1 |
||
DD2 |
DC56-11 |
1 |
||
Резисторы |
||||
R1, R2 |
C5-35В- 3.3 Ом |
2 |
||
R3 |
C1-4 - 10 кОм |
1 |
||
Разъёмы |
||||
X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16 |
ST-033 |
16 |
Листинг программы
; ******************************************************
; BASIC.ASM template file for AVR
; ******************************************************
.include "C:\PROGRA~1\cvavr2\VMLAB\include\m16def.inc"
; Define here the variables
;
.def temp =r22
.defdrem16uL=r14
.defdrem16uH=r15
.defdres16uL=r16
.defdres16uH=r17
.defdd16uL=r16
.defdd16uH=r17
.defdv16uL=r18
.defdv16uH=r19
.defdcnt16u=r20
; Define here Reset and interrupt vectors, if any
;
reset:
rjmp start
reti; Addr $01
reti; Addr $02
reti; Addr $03
reti; Addr $04
reti; Addr $05
reti; Addr $06 Use 'rjmp myVector'
reti; Addr $07 to define a interrupt vector
reti; Addr $08
reti; Addr $09
reti; Addr $0A
reti; Addr $0B This is just an example
reti; Addr $0C Not all MCUs have the same
reti; Addr $0D number of interrupt vectors
reti; Addr $0E
reti; Addr $0F
reti; Addr $10
reti; Addr $11
reti; Addr $12
reti; Addr $13
reti; Addr $14
reti; Addr $15
reti; Addr $16 Use 'rjmp myVector'
reti; Addr $17 to define a interrupt vector
reti; Addr $18
reti; Addr $19
reti; Addr $1A
reti; Addr $1B This is just an example
rjmp aadd; Addr $1C Not all MCUs have the same
; Program starts here after Reset
;
aadd:
in r17,adch
lsr r17
lsr r17
rjmp tsi
start:
ldi r16,0x80
out sreg,r16;разрешение прерываний
clr r13
clr r14
ldi r16,0x00;настройка портов
out DDRA,r16
ldi r16,0xff
out DDRB,r16
out DDRC,r16
out DDRD,r16
clr r16
forever:
out admux,r16;выборка канала датчика
ldi r17,0xc8
nop
out adcsr,r17;запуск АЦП
tsi:
push r17;сохранение значения
cpi r17,76;влажность меньше 90%?
brsh pro
cpi r16,0;включение i-го насоса
brne pr1
sbi portb,0
rjmp plu
pr1:
cpi r16,1
brne pr2
sbi portb,1
rjmp plu
pr2:
cpi r16,2
brne pr3
sbi portb,2
rjmp plu
pr3:
cpi r16,3
brne pr4
sbi portb,3
rjmp plu
pr4:
cpi r16,4
brne pr5
sbi portb,4
rjmp plu
pr5:
cpi r16,5
brne pr6
sbi portb,5
rjmp plu
pr6:
cpi r16,6
brne pr7
sbi portb,6
rjmp plu
pr7:
cpi r16,7
brne plu
sbi portb,7
rjmp plu
pro:
cpi r17,79;влажность больше 96%?
brlo plu
cpi r16,0;выключение i-го насоса
brne pr12
cbi portb,0
rjmp plu
pr12:
cpi r16,1
brne pr22
cbi portb,1
rjmp plu
pr22:
cpi r16,2
brne pr32
cbi portb,2
rjmp plu
pr32:
cpi r16,3
brne pr42
cbi portb,3
rjmp plu
pr42:
cpi r16,4
brne pr52
cbi portb,4
rjmp plu
pr52:
cpi r16,5
brne pr62
cbi portb,5
rjmp plu
pr62:
cpi r16,6
brne pr72
cbi portb,6
rjmp plu
pr72:
cpi r16,7
brne plu
cbi portb,7
plu:
inc r16
cpi r16,7
brlo rii
rjmp start
rii:
clr r16
clr r17
clr r18
clr r19
clr r20
vos:
pop r17;восстановление значения
add r19,r17
adc r18,r20
inc r16
cpi r16,8
brlo vos
mov r17,r18;настройка для деления
mov r16,r19
clr r19
ldi r18,8;начало деления
div16u:clrdrem16uL;clear remainder Low byte
subdrem16uH,drem16uH;clear remainder High byte and carry
ldidcnt16u,17;init loop counter
d16u_1:roldd16uL;shift left dividend
roldd16uH
decdcnt16u;decrement counter
brned16u_2;if done
ret; return
d16u_2:roldrem16uL;shift dividend into remainder
roldrem16uH
subdrem16uL,dv16uL;remainder = remainder - divisor
sbcdrem16uH,dv16uH;
brccd16u_3;if result negative
adddrem16uL,dv16uL; restore remainder
adcdrem16uH,dv16uH
clc; clear carry to be shifted into result
rjmpd16u_1;else
d16u_3:sec; set carry to be shifted into result
rjmpd16u_1
cpi r17,0
breq fre
rjmp forever
fre:
ldi r17,31;преобразование среднего значения
sub r16,r17
cpi r16,40
brlo da1
ldi r19,8
ldi r17,40
sub r16,r17
rjmp mla
da1:
cpi r16,30
brlo da2
ldi r19,6
ldi r17,30
sub r16,r17
rjmp mla
da2:
cpi r16,20
brlo da3
ldi r19,4
ldi r17,20
sub r16,r17
rjmp mla
da3:
cpi r16,10
brlo da4
ldi r19,2
ldi r17,10
sub r16,r17
rjmp mla
da4:
clr r19
mla:
lsl r16
cpi r16,10
brlo vi
subi r16,10
inc r19
vi:
cpi r19,9;начало вывода среднего значения
brlo ba1
ldi r20,0b11011110
ba1:
cpi r19,8
brlo ba2
ldi r20,0b11111110
ba2:
cpi r19,7
brlo ba3
ldi r20,0b00001110
ba3:
cpi r19,6
brlo ba4
ldi r20,0b11111010
ba4:
cpi r19,5
brlo ba5
ldi r20,0b11011010
ba5:
cpi r19,4
brlo ba6
ldi r20,0b11001100
ba6:
cpi r19,3
brlo ba7
ldi r20,0b00001110
ba7:
cpi r19,2
brlo ba8
ldi r20,0b10110110
ba8:
cpi r19,1
brlo ba9
ldi r20,0b00001100
ba9:
ldi r20,0b01111110
cpi r16,9
brlo ba11
ldi r21,0b11110110
ba11:
cpi r16,8
brlo ba21
ldi r21,0b11111110
ba21:
cpi r16,7
brlo ba31
ldi r21,0b11100000
ba31:
cpi r16,6
brlo ba41
ldi r21,0b10111110
ba41:
cpi r16,5
brlo ba51
ldi r21,0b10110110
ba51:
cpi r16,4
brlo ba61
ldi r21,0b01100110
ba61:
cpi r16,3
brlo ba71
ldi r21,0b11110010
ba71:
cpi r16,2
brlo ba81
ldi r21,0b11011010
ba81:
cpi r16,1
brlo ba91
ldi r21,0b01100000
ba91:
ldi r21,0b11111100
out portc,r20;вывод
out portd,r21
clr r16
rjmp forever
Размещено на Allbest.ru
Подобные документы
Структурная схема микроконтроллера, процесс разработки принципиальной схемы и программного обеспечения. Конфигурирование регистров аналого-цифрового преобразователя. Код программы на языке Assembler, конфигурирование регистров внешних прерываний.
курсовая работа [267,5 K], добавлен 08.06.2019Внутренняя архитектура микропроцессора Intel 486. Формат данных и команд. Регистры общего назначения. Программная модель устройства FPU, регистр флагов. Разработка структуры и микропрограммы микропроцессора, управляющего автомата с жесткой логикой.
курсовая работа [1,6 M], добавлен 27.05.2013Особенности разработки устройства управления системой измерения веса, построенного на микроконтроллере ATmega16 фирмы Atmel. Схема включения микроконтроллера, сброса, стабилизатора напряжения. Проектирование функций микроконтроллера. Листинг программы.
курсовая работа [153,6 K], добавлен 19.12.2010Комплексные характеристики возможностей микропроцессора, базовая структура системы. Понятие архитектуры микропроцессора. Классификации микропроцессоров по типу архитектуры. Особенности программного и микропрограммного управления, режимы адресации.
реферат [100,7 K], добавлен 20.09.2009Прерывание и его природа. Контролер прерываний. Обработка прерываний в реальном режиме. Характеристики реального режима работы микропроцессора. Схема обработки прерываний в реальном режиме. Написание собственного прерывания. Разработка в общем случае.
доклад [347,0 K], добавлен 22.09.2008Создание дискретной системы автоматического управления кистью руки робота андроида. Технические характеристики; выбор и обоснование элементной базы: микропроцессора, датчиков, усилителя. Синтез аппаратного и программного корректирующего устройства.
курсовая работа [925,3 K], добавлен 09.03.2012Применение цифровых микросхем для вычисления, управления и обработки информации. Назначение микропроцессора и устройств микропроцессорной системы, их структурная и принципиальная схемы. Системная шина процессора и распределение адресного пространства.
курсовая работа [1,5 M], добавлен 29.02.2012Выбор элементной базы. Разработка системы управления отопительного котла на основе семейства восьмибитных микроконтроллеров фирмы Atmel с архитектурой AVR на языке Assembler. Усилитель сигнала датчика температур. Схема подключения шагового двигателя.
курсовая работа [2,5 M], добавлен 26.11.2012Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.
курсовая работа [871,9 K], добавлен 16.09.2010Создание рабочего модуля аналого-цифрового преобразователя с минимальным количеством микросхем на основе микроконтроллера ATmega8L. Описание блок-схемы АЦП. Схема запуска преобразования. Программа микроконтроллера в среде программирования CodeVision.
курсовая работа [1,2 M], добавлен 04.10.2013