76100

Схема управления инкубатором

Курсовая

Коммуникация, связь, радиоэлектроника и цифровые приборы

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

Русский

2015-01-28

315.5 KB

34 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Факультет информатики и вычислительной техники

                                                                                           Кафедра ИВС

 

Схема управления инкубатором

Курсовой проект

по дисциплине

Микропроцессорные системы

Выполнил: студент группы ВМ-41 Габдулхаков Р. Ш.     

                                                                                                                                                                                   

       

Проверил:               

                                                                                  

                                                                                          Оценка:

Йошкар-Ола

2005

АННОТАЦИЯ

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

СОДЕРЖАНИЕ

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

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

Также необходимо предусмотреть дополнительное питание, которое может питать устройство несколько часов при отключении основного.

В устройстве необходимо реализовать следующий интерфейс:

  1.  кнопка включения / выключения устройства:
  2.  кнопка управления поворотом лотка:
  3.  кнопки установки времени:
  4.  кнопка перехода в режим установки времени:
  5.  кнопка перехода в режим установки температуры:
  6.  кнопки управления температурой:
  7.  ЖКИ для вывода информации о температуре и времени:

Текущее время

1

9

:

2

5

:

3

7

Текущая температура

+

3

7

°

С

Нагреватель должен иметь диапазон температуры +35 +40 С, точность поддержания температуры < 0,5 С.

ВВЕДЕНИЕ

Инкубатор – аппарат для искусственного вывода молодняка из яиц птиц. В настоящее время промышленностью выпускается широкая номенклатура бытовых инкубаторов, такие как: инкубаторы с электромеханическим терморегулятором, с электронным терморегулятором, с цифровым электронным термометром, с дублирующим питанием от аккумулятора, без него и с авто перепоротом яиц и без.

Схема управления инкубатором разработанная  в данном курсовом проекте содержит встроенный микроконтроллер, который выполняет регулировку температуры. Нужная температуры задается с помощью цифрового индикатора и двух кнопок: "больше" и "меньше".  

1. ФУНКЦИОНАЛЬНАЯ СПЕЦИФИКАЦИЯ 

  1.  По отношению к требованиям пользователя инкубатором функциональная спецификация должна содержать следующие функции, которые необходимо выполнять системе:
  2.  управление температурой
  3.  управление поворотом лотка
  4.  установка времени
  5.  подавлять дребезг контактов при нажатии кнопок
  6.  при зависании системы сформировать сигнал сброса

Векторы

Лампочки включены

Лампочки выключены

Лампочки и электродвигатель

включены

Лампочки выключены,  электродвигатель включен

Z0

+

Z1

+

Z2

+

Z3

+

  1.  Описание интерфейса между системой и пользователем:
  2.  система должна реагировать на нажатие кнопок
  3.  система должна реагировать на срабатывание датчика
  4.  система должна управлять лампочками,  электродвигателем и ЖКИ

Представим функциональную спецификацию в виде документа по категориям ВХОДЫ, ВЫХОДЫ и ФУНКЦИИ.

ВХОДЫ:

  1.  кнопки
  2.  термометр

ВЫХОДЫ

  1.  управление лампочками
  2.  управление электродвигателем
  3.  ЖКИ

ФУНКЦИИ

  1.  система восстанавливается при зависаниях
  2.  система имеет защиту от дребезга контактов
  3.  при поступлении сигнала система должна перевернуть лоток

2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ

На основании анализа функциональной спецификации можно выделить следующие блоки, которые необходимо реализовать аппаратным способом:

ВХОДЫ:

  1.  модуль датчиков и кнопок;

ВЫХОДЫ:

  1.  модуль лампочек;
  2.  модуль электродвигателя;
  3.  модуль ЖКИ;

ФУНКЦИИ:

  1.  модуль силовых цепей управления лампочками;
  2.  модуль защиты от зависания контроллера;

СТАНДАРТНЫЕ МОДУЛИ СИСТЕМЫ:

  1.  модуль контроллера;
  2.  модуль сброса и синхронизации;
  3.  модуль питания;

Программные модули также определяются на основе анализа функциональной спецификации, из которого следует, что система может быть разделена на три части ВХОД, ВЫХОД и ФУНКЦИИ.

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

Часть спецификации функции может быть разделена на три различных модуля:

  1.  Входное состояние кнопок и термометра считывается с помощью процедуры входного модуля. Однако прежде, чем должно быть предпринято какое-либо действие, необходимо проверить состояние этих входов. Все процедуры, выполняющие проверку и определяющие, какие действия должны быть предприняты по результатам проверки, необходимо сгруппировать вместе в модуле проверки;
  2.  Модуль обслуживания охранного таймера;
  3.  Если результат проверки одной из процедур модуля проверки указывает на то, что кнопка была нажата или изменилась температура, то должна быть вызвана процедура для последовательного установления выходных состояний;
  4.  Модуль подавления дребезга контактов;

Модули, которые могут быть реализованы как аппаратным, так и программным способом:

  1.  модуль таймера, для формирования временных интервалов;

Наиболее производительное решение – это использование встроенного модуля таймера, а программный модуль таймера будет осуществлять управление аппаратным узлом.

Модуль подавления дребезга контактов кнопок лучше реализовать аппаратным способом.

В результате разработки проекта системы можно построить её структурную схему:

Рис 1. Структурная схема контроллера инкубатора

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

Рис 2. Функционально-модульная структура ПО контроллера

3. ПРОЕКТИРОВАНИЕ АППАРАТНОЙ ЧАСТИ УСТРОЙСТВА

3.1. Разработка функциональной схемы устройства

Элементная база МПУ требует напряжения питания +5В.

Модуль датчиков и кнопок реализуем с помощью не кодирующей клавиатуры (например, пленочной), которая представляет собой простую матрицу двоичных переключателей, включенных на пересечении рядов и колонок матрицы и в которых идентификация и кодирование нажатой клавиши выполняется программой. Кроме идентификации, программное обеспечение должно распознавать и обеспечивать защиту от одновременного нажатия более одной клавиши и, кроме того, исключить влияние переходных процессов, так называемый "дребезг" контактов.

На рис ниже приведена схема подключения клавиатуры к портам микроЭВМ. Резисторы R6…R9 являются подтягивающими и служат для задания логической «1» при отсутствии нажатия клавиши.

В качестве термометра необходимо выбрать такой, который бы обеспечивал заданную точность измерения температуры и имел интерфейс для связи с микроконтроллером, например, SPI.

Для модуля микроконтроллера необходимо определить требования на его архитектуру, в соответствии с заданием и структурной схемой. Так, в нашем случае микроконтроллер должен содержать таймер, контроллер обработки внешних прерываний, охранный таймер. Все современные микроконтроллеры имеют встроенный тактовый генератор с внешней времязадающей цепью. Использование варианта с полностью встроенным тактовым генератором также привлекательно, однако номенклатура таких устройств ограничена. На основании анализа структурной схемы получим, что количество внешних линий ввода/вывода должно быть не менее 24 (8 линий ввода сигналов с клавиатуры, 3 линий ввода сигнала датчика температуры, 11 линий вывода на ЖКИ, по одной на лампочки и электродвигатель).

На схему сброса и синхронизации не накладывается каких-либо особых требований, вида: частота генератора должна иметь определенную стабильность, её значение необходимо выбирать с учетом обеспечения требуемой синхронизации последовательного канала и т.д. Поэтому в качестве задающего генератора, если не будет варианта с встроенным тактовым генератором, можно выбрать внутренний генератор с внешними времязадающими цепями, у которого частота определяется подсоединенным к внешним выводам кварцевым  резонатором. Такой вариант является самым распространенным и дешёвым.

Схема сброса должна выработать импульс сброса для микроконтроллера при включении питания.

Модуль драйверов позволяет микроконтроллеру управлять мощной нагрузкой. Лампы инкубатора запитываются от напряжения  ~220 В, поэтому модуль драйверов должен выполнять еще и роль гальванической развязки, с целью защиты всей схемы от возможного попадания высокого напряжения. Наиболее приемлемым вариантом развязки является использование оптосимисторов.

В качестве модуля ламп можно выбрать обычные лампы накаливания на  ~220В.

В качестве модуля ЖКИ можно выбрать любой двух строчный индикатор по восемь символов в каждой из строк.

В качестве модуля электродвигателя можно взять любой электродвигатель, работающий от сети переменного тока в 220 В, тогда для управления придётся использовать драйверы с оптосимисторами или электродвигатель питающийся от постоянного тока - для управления им необходимо использовать реле.

Модуль питания в нашем случае преобразует переменное напряжение  ~220 В в напряжение питания для схемы контроллера. Остановимся на промышленном модуле питания АС/DC, имеющем меньшие габариты, повышенную надежность по сравнению с классическим источником питания на трансформаторе и линейном стабилизаторе.

Таким образом, функциональная схема контроллера инкубатора будет иметь вид, изображенный на рисунке ниже:

3.2. Разработка принципиальной схемы устройства

Выбор клавиатуры определяется эргономическими требованиями, ценой и т.д.

В качестве датчика температуры выберем модель фирмы Dallas Semiconductors DS1620. Она обеспечивает диапазон измерения температуры от –55 до 125 С, с точностью 0,5 С и имеет интерфейс SPI. Кроме того, температурные датчики Dallas Semiconductor позволяют значительно упростить выполнение температурных измерений благодаря прямому преобразованию температуры в цифровой код.

На основании анализа требований, предъявляемых к микроконтроллеру, и учитывая, что в задании на разработку нет рекомендации по его выбору, остановимся на микроконтроллере AVR –  АТ90LS4434. Его характеристики: 40-выводной корпус – 32 программируемых линий ввода/вывода с выходными буферами, обеспечивающими 40-мА втекающий ток; два 8-разрядных и 16-разрядный таймеры/счетчики; два внешних и четырнадцать внутренних источников сигнала прерывания; программируемый сторожевой таймер, интерфейс SPI и др.

Схема синхронизации наиболее просто реализуется путем использования внутреннего тактового генератора с подключенным внешним кварцевым резонатором. Так как разрабатываемая схема не критична к быстродействию, то зададимся частотой процессора 1МГц. Данная частота позволяет легко формировать необходимые временные задержки и энергопотребление микроконтроллера в этом случае незначительное.

При выборе схемы сброса (супервизора питания) необходимо обратить внимание на то, чтобы длительность импульса, генерируемого схемой по включению питания, была больше длительности, требуемой для сброса микроконтроллера. Кроме того, у АТ90LS4434 сброс низким уровнем.

АТ90LS4434 имеет встроенную схему сброса по включению питания, которая вырабатывает импульс при достижении питания уровня ≈2В. Соответственно, при снижении напряжения питания ниже 2В также произойдет сброс микроконтроллера. Во многих ответственных приложениях работа устройства при напряжении ниже 4,2В не гарантируется. В этих случаях используют внешние схемы сброса, порог срабатывания которых имеет требуемый порог срабатывания. Зададимся уровнем срабатывания схемы сброса в 4,5В.

Выберем супервизор фирмы Dallas – DS 1813-5, удовлетворяющий указанным условиям. Типовая схема его включения приведена на рис ниже:

В качестве электродвигателя выберем ДСМ2У42-П-220 питающийся от сети в 220 В 50 Гц.

Схему драйвера управления лампами светофора и электродвигателем построим на мощных симисторах, которыми будем управлять через оптоэлектронную развязку. Например, фирма MOTOROLA предлагает симисторы серии МАС для токов до 40А и напряжений до 800В. Для управления симисторами фирма выпускает оптоэлектронные приборы серии МОС3хх. На рисунке ниже представлена типовая схема драйвера, нагруженная на лампу накаливания, мощностью которой может быть до 1кВт.

В качестве ЖКИ выберем индикатор PC 0802-A фирмы Powertip. Это 2-х строчный 8-символьный индикатор. Его корпус имеет 14 выводов: 8 – под данные, один для сигнала чтения/записи, сигнала разрешения, питания и др. На рисунке ниже показано подключение данного устройства:

В качестве источника питания, как отмечалось выше, проще всего выбрать промышленный АС/DC модуль. Данные модули выпускаются на разное входное/выходное напряжение с широкой номенклатурой выходной мощности. В нашем случае входное напряжение равно ~220В, выходное +5В. Напряжение, которое должен обеспечить модуль, зависит от мощности потребления контроллера инкубатора. Определим приблизительно мощность потребления контроллером инкубатора. Так, ток потребления микросхем составляет:

  1.  АТ90LS4434 – 2,5 мА на частоте 1 МГц;
  2.  DS 1813-5 – 40 мА;
  3.  выходной ток для включения двух оптопар драйвера – 20 мА;
  4.  PC 0802-A – 2,5 мА

Итого потребляемый ток составит около 65 мА, при 5В питании потребляемая мощность равна 0,325 Вт. В настоящее время предлагается большой спектр подобной продукции, в частности можно остановиться на AC/DC преобразователях фирмы Franmar.

Окончательная функциональная схема устройства представлена на следующем рисунке:

Рис. Функциональная схема контроллера инкубатора

4. ПРОЕКТИРОВАНИЕ ПРОГРАММНОЙ ЧАСТИ УСТРОЙСТВА

4.1. Разработка структуры программного обеспечения

В разделе проектирования системы была определена функционально-модульная структура ПО контроллера (рис. 2).

Эта структура должна быть дополнена еще двумя модулями, которые не могут быть выведены из функциональной спецификации – модуль ИНИЦИАЛИЗАЦИИ и модуль РАЗРЕШЕНИЯ ОБЩЕГО ПРЕРЫВАНИЯ. Когда система включается, она должна быть инициализирована, таким образом данный модуль должен находиться на втором уровне нисходящей иерархии – сразу за главным модулем. Разрешение общего прерывания не будем включать в модуль ИНИЦИАЛИЗАЦИИ, с целью лучшей читаемости программы.

В соответствии с функционально модульной структурой процедура MAIN будет иметь вид:

MAIN()

{

   ИНИЦИАЛИЗАЦИЯ СИСТЕМЫ();

   РАЗРЕШЕНИЕ ОБЩЕГО ПРЕРЫВАНИЯ();

   while (1)          

     {

ПРОВЕРКА ();

СБРОС WDT();

      }

}

Первая операция процедуры MAIN обращается к процедуре ИНИЦИАЛИЗАЦИЯ, далее к процедуре РАЗРЕШЕНИЕ ОБЩЕГО ПРЕРЫВАНИЯ. После выхода из этой процедуры осуществляется переход к другим процедурам, которые содержаться внутри бесконечного цикла while. Таким образом в системе обеспечивается проверка нажатия кнопки, проверка состояния датчика температуры и сброс охранного таймера. Эти операции выполняются до тех пор, пока система подключена к источнику питания.

Модуль ИНИЦИАЛИЗАЦИИ должен содержать процедуры, которые выполняют функции инициализации и восстановления после зависания. При включении питания необходимо настроить следующие узлы микроконтроллера: порты, таймеры, систему прерываний, охранный таймер. Порты настраиваются на ввод или вывод информации. Таймер служит для отсчета временных интервалов и  для часов реального времени. Настройка системы прерывания заключается в определении источников прерывания и их разрешения. У охранного таймера настраивается время задержки до его срабатывания, если не будет к нему обращения. Данный модуль является не сложным, поэтому не имеет смысла разбивать его на отдельные процедуры:

ИНИЦИАЛИЗАЦИЯ()

   {   

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

настройка таймера на минимальный дискрет отсчета времени;

настройка постоянной времени охранного таймера;

настройка системы прерывания, разрешение отдельных прерываний;

    }

Модуль РАЗРЕШЕНИЯ ОБЩЕГО ПРЕРЫВАНИЯ разрешает системе реагировать на прерывания. Для контроллера это внешнее прерывание от кнопок/датчика и внутреннее от таймера. Разрешение индивидуальных прерываний выполнено в модуле ИНИЦИАЛИЗАЦИЯ.

Модуль ПРОВЕРКИ проверяет состояние флага нажатия. Если флаг установлен, то запускается процедура соответствующая нажатой кнопке. Эти процедуры содержатся в ВЫХОДНОМ модуле, такие как включения/выключения ламп, запуск электродвигателя вывод информации на ЖКИ.

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

ПРОВЕРКА()

  {        

           Если  флаг нажатия установлен, то выполнить

{

ВЫХОДНОЙ (параметры);      

Сброс флага нажатия;

  Разрешение прерывания по нажатию;

    }

    }

Модуль СБРОС WDT устанавливает охранный таймер в исходное состояние, не позволяя ему сбросить всю систему. Это библиотечная функция языка.

Модуль ТАЙМЕРА выполняет отсчет времени с определенной точностью. Для систем реального времени наиболее просто данный модуль реализуется в виде подпрограммы обработки прерывания по переполнению внутреннего таймера. В теле модуля должна располагаться переменная – счетчик текущего времени, значение которой будет увеличиваться с каждым вызовом прерывания. Синхронизация текущего времени с временем срабатывания кнопки должна осуществляться во входном модуле путем сброса счетчика времени в ноль.

ТАЙМЕР()

   {

перезагрузка таймера для задания периода вызова прерывания;

увеличение счетчика текущего времени;

    }

ВХОДНОЙ модуль должен реагировать на изменение сигнала от кнопок/датчика. Реализуем данный модуль в виде подпрограммы прерывания по входному сигналу. При возникновении прерывания необходимо установить флаг нажатия.

ВХОДНОЙ()

   {

установка флага нажатия;

сброс счетчика текущего времени;

сканирование клавиатуры;

подавление дребезга контактов;

опрос термометра;

    }

 

ВЫХОДНОЙ модуль устанавливает выходной вектор на выходной порт микроконтроллера. Данные сигналы управляют ЖКИ и через драйвер свечением ламп и электродвигателем.   

    ВЫХОДНОЙ(параметры)

   {        /* начало процедуры*/

установка на порту выходного вектора;  

    }            /* возврат

5.2. Разработка заданного программного модуля

Для реализации выберем модуль ПРОВЕРКИ. Представим его в графическом виде при помощи блок-схемы алгоритма.   

Для реализации выберем модуль ПРОВЕРКИ. Представим его в графическом виде при помощи блок-схема алгоритма.

При входе в процедуру осуществляется проверка значения температуры, полученной от термометра tv со значением температуры, заданной пользователем tset. Если температура меньше чем установленная, то система переходит в состояние Z1(лампочки горят), иначе в состояние Z0(лампочки не горят) и производится вывод информации о температуре на ЖКИ.

Если была нажата кнопка I/O, то вызывается процедура выключения устройства, если была нажата клавиша “поворот лотка”, то вызывается процедура Turn(), которая формирует управляющие сигналы управления лотком. Если была нажата клавиша “установка времени”, вызывается процедура Set_time(), устанавливающая реальное время, а если нажата кнопка “установка температуры”, то вызывается процедура Set_temp(), устанавливающая температуру, которую необходимо установить.

Приведём представление архитектуры ПО контроллера инкубатора в виде графа состояний системы.

 

Р1 – сигнал от кнопки “I/O”;

Р2 – сигнал от кнопки “поворот лотка”;

Т – датчик температуры: Т=1 – текущая температура больше установленной, Т=0 – текущая температура меньше установленной.  

5.3. Руководство программиста

Программа управления инкубатором, написанная на языке С. Текст модуля ПРОВЕРКИ и функции main() представлены ниже.

Программа содержит два обработчика прерываний TimerOverflow1 и TimerOverflow2  - первый для опроса клавиатуры,  работает на частоте 100 Гц, второй для часов реального времени, работает на частоте 1 Гц – прерывание каждую секунду. Также содержит процедуру инициализации – INIT(), процедуру сканирования клавиатуры и опрос термометра SCAN(), проверки буфера клавиатуры и сравнение температуры CHECK() (её блок-схема приведена на 16  странице). Функция Time() – увеличивает значение времени на одну секунду.

В программе также используется охранный таймер, сброс которого осуществляется библиотечной процедурой _WDR() в теле основной программы. Период сброса установлен 2,048 в процедуре INIT.

Пояснения к программе приведены в самом листинге.

#define OutZ1  1 //Задание выходного вектора Z1 – лампочки горят

#define OutZ0  0 //Задание выходного вектора Z0 – лампочки не горят

#define OutZ2  2 //Задание выходного вектора Z2 – лампочки не горят и включение

   // электродвигателя

#define OutZ3  3 //Задание выходного вектора Z3 – лампочки горят и включение

   // электродвигателя

#define buf  APORT

long tv, tset;

// Прерывание по переполнению таймера 1 - 100 Гц

interrupt [TIMER1_OVF1_vect] void TimerOverflow1(void)

 {     

    TCNT1L = 10;            // Задание периода работы таймера – 100 Гц

 Scan();    // Сканирование клавиатуры

 }

// Прерывание по переполнению таймера 2 - 1 Гц – для часов

interrupt [TIMER2_OVF1_vect] void TimerOverflow2(void)

 {     

    TCNT2L = 1000;       //Задание периода работы таймера – 1 Гц

 Time();  // Увеличение текущего времени на одну секунду

 }

void main(void)

 {

   INIT();                 //инициализация контроллера

     _SEI();                     // Общее разрешение прерываний

                         // Бесконечный цикл

    while (1)

      {

         _WDR();         // Сброс охранного таймера

      }

  }

void INIT(void)                                   // инициализация контроллера

 {

             // Настройка таймера 1

   TCCR1A = 0x00;

    TCCR1B = 0x28;                                 // коэффициент деления частоты генератора = 40

    TCNT1 = 0xFA;        //100 Гц при частоте кварца 1МГц

                                                                // 1МГц/40/100Гц = 250 = 0xFA;                                                                    

    TIMSK |= Bit(MskTIE1);                   // Таймер 1(8 – разрядный) - разрешение прерываний

    GIMSK |= Bit(MskInt0);                    // INT0 - разрешение прерывания

             // Настройка таймера 2

   TCCR2A = 0x00;

    TCCR2B = 0x0F;                                 // коэффициент деления частоты генератора = 16

    TCNT2H = 0x0B; TCNT2L = 0xDC;  //1 Гц при частоте кварца 1МГц

                                                                // 1МГц/16/1Гц = 62500 = 0xF424;  

                                                                //т.к. 16р таймер работает на увеличение,

                                                                //то загрузка его = 0x10000-0x1388 = 0x0BDC 

    TIMSK |= Bit(MskTIE2);                   // Таймер 2 - разрешение прерываний

    GIMSK |= Bit(MskInt1);                    // INT1 - разрешение прерывания

   WDTCR = 0x0F;       // Настройка WATCHDOG - период сработки 2.048 сек

          // Настройка портов

    DDRА = 0xFF;                              //11111111 – РА0...РА7-на выход – данные на ЖКИ

    DDRB = 0x1F;                               //00011111 - РВ7...РВ5-на вход, РВ5...Р0 – на выход

    DDRС = 0x0F;                               //00001111 - РВ7...РВ4-на вход, РВ5...Р0 – на выход

    BPORT = OutZ1;                          //Установка выходного вектора Z1 на PORTB

    DDRD = 0x00; PORTD = 0x00;    //все на вход и в третье состояние

 }

 void CHECK(void)                     // проверка флага сработки и установка выходного вектора

 {

   if (tv<tset)

 BPORT = OutZ1;  // Если замеренная температура меньше чем

     // установленная, то лампочки будут включены

else

 BPORT = OutZ0;   // Если замеренная температура больше чем

     // установленная, то лампочки будут выключены

          switch (buf)                                    // Проверка нажатия кнопки

           {

case 0х7Е:  Off();          // Off() – Процедура, подготавливающая

break;    // микроконтроллер к выключению

case 0x7D:  Turn();           // Поворот лотка

break;

case 0x7B:  Set_time();           //Установка времени

break;

case 0x77:  Set_temp();           //Установка температура

break;

           }

 Write_LCD();   // вывод информации на ЖКИ;

  }

void Turn(void)                                   // поворот лотка

{

 

if (BPORT  == OutZ0)

{

BPORT  = OutZ2;

delay(100);   // задержка на время поворота лотка

BPORT  = OutZ0;

}

If (BPORT  = OutZ1)

{

BPORT  = OutZ3;

delay(100);   // задержка на время поворота лотка

BPORT  = OutZ1;

}

}

void Off(void);  // – эти функции подробно описывать не будем

void Set_time(void);   //

void Set_time(void);  //

void Write_LCD(void); //

void Scan(void);  //

void Time(void);  //

 

5. ЗАКЛЮЧЕНИЕ

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

6. ЛИТЕРАТУРА

  1.  Мясников В.И. Микропроцессорные системы. Учебное пособие по курсовому проектированию.- Йошкар-Ола: МарГТУ, 2003.
  2.  Предко М. Руководство по микроконтроллерам. В 2-х томах. – М.: Постмаркет, 2001.

Конт

Цепь

1

2

3

Gnd


DS1813-5

Поворот

0

9

+

-

t

Т=0

Время

Модуль датчиков и кнопок

Р1=1

Модуль микроконтроллера

Модуль драйверов лампочек и электродвигателя

Модуль лампочек и электродвигателя

Схема сброса и синхронизации

Главный модуль Main

Модуль ПРОВЕРКИ

Модуль СБРОСА

ВХОДНОЙ модуль

Модуль ТАЙМЕРА

ВЫХОДНОЙ модуль

Модуль ЖКИ

Р1=1

КНФУ.ХХХХХХ.001 ПЗ

22

Вывод инфор. на ЖКИ

+5В

Vss

Vdd

Vo

RS

R/W

E

DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7

Р1=1

Лист

Дата

DS1813-5

№ докум.

SP

Подпись

~220В

АС / DC

К портам микроконтроллера

DS1620

МАС

218-10

МОС

3041

МАС

218-10

300 Ом

GND

  R

Reset

Clock

Data

~  220В

GND

RESET

+ 5В

   SP

I/0

ОС

3041

к порту СРU

+5В

МАС

218-10

МОС

3041

Tc Gnd

Tl   Rst

Th  Clk

V    DQ

Vss

Vdd

Vo

RS

R/W

E

DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7

Клавиатура

PB0            PA7

PB1            PA6

PB2            PA5

PB3            PA4

PB4            PA3

PB5            PA2

PB6            PA1

PB7            PA0

Reset          ARef

Vcc         AGnd

Gnd          AVcc

Xtal2            PC7    

Xtal1            PC6

PD0            PC5

PD1            PC4

PD2            PC3

PD3            PC2

PD4            PC1

PD5            PC0

PD6            PD7

           

Лампочки не горят

и поворот электродвигателя

Лампочки горят

и включение электродвигателя

Лампочки не горят

Z = Z0

Z = Z1

Лампочки горят

Set_temp()

Set_time()

Turn()

Выключено

buf = I/O

Вход

Off()

buf =УТ

buf =УВ

tv < tset

Возврат

buf =поворот

Т=1

Р2=1

Р2=1

Вывод инфор. на ЖКИ

МарГТУ ВМ-41

12

Листов

Лит.

Контроллер инкубатора

Пояснительная записка

Утверд.

Н. Контр.

Реценз.

Мясников  В. И.

Провер.

Габдулхаков Р. Ш.

Разраб.

КНФУ.ХХХХХХ.001 ПЗ

5

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

9

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

6

Лист

Дата

Подпись

№ докум.

Лист

Изм.

+5В

GND

DS1620

МАС

218-10

МОС

3041

Электродвигатель

Vcc

КНФУ.ХХХХХХ.001 ПЗ

8

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

7

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

10

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

13

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

11

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

12

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

14

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

15

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

16

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

17

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

18

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

19

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

20

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

21

Лист

Дата

Подпись

№ докум.

Лист

Изм.

~220В

АС / DC

Vcc

Reset

   SP

ЖКИ

МАС

218-10

МОС

3041

AT90SL4434

CPU

Масштаб

Масса

 Реценз.

МарГТУ ВМ-41

1

Листов

Лит.

Контроллер инкубатора

Схема электрическая принципиальная

 Утверд.

 Н. Контр.

 Т. Контр.

Мясников В. И.

 Провер.

Габдулхаков Р. Ш

 Разраб.

КНФУ.ХХХХХХ.001 Э3

1

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Лист

Изм.


 

А также другие работы, которые могут Вас заинтересовать

81555. Обмен железа: всасывание, транспорт кровью, депонирование. Нарушение обмена железа: железодефицитная анемия, гемохроматоз 121.13 KB
  Нарушение обмена железа: железодефицитная анемия гемохроматоз. Освобождению железа из солей органических кислот способствует кислая среда желудочного сока. Наибольшее количество железа всасывается в двенадцатиперстной кишке.
81556. Основные белковые фракции плазмы крови и их функции. Значение их определения для диагностики заболеваний. Энзимодиагностика 115.07 KB
  Почти все белки плазмы, за исключением альбумина, являются гликопротеинами. Олигосахариды присоединяются к белкам, образуя гликозидные связи с гидроксильной группой серина или треонина, или взаимодействуя с карбоксильной группой аспарагина. Концевой остаток олигосахаридов в большинстве случаев представляет собой N-ацетилнейраминовую кислоту, соединённую с галактозой
81557. Свертывающая система крови. Этапы образования фибринового сгустка. Внутренний и внешний пути свертывания и их компоненты 234.47 KB
  При повреждении кровеносного сосуда инициируется каскад реакций, в результате которого образуется сгусток крови - тромб, предотвращающий кровотечение. Основную роль в свёртывании (коагуляции) крови играют тромбоциты и ряд белков плазмы крови. В остановке кровотечения различают 3 этапа. На первом этапе происходит сокращение кровеносного сосуда
81558. Принципы образования и последовательность фукционирования ферментных комплексов прокоагулянтного пути. Роль витамина К в свертывании крови 107.4 KB
  В циркулирующей крови содержатся проферменты протеолитических ферментов: фактор II протромбин фактор VII проконвертин фактор IX Кристмаса фактор X Стюарта. Находящиеся в крови факторы V акцелерин и VIII антигемофильный фактор а также мембранный белок тканевый фактор ТФ фактор III являются белкамиактиваторами этих ферментов. Комплекс XVСа2 протромбиназный комплекс активирует протромбин фактор II. В процессе реализации тромбогенного сигнала проферменты факторы VII IX X и II частичным протеолизом превращаются в...
81559. Основные механизмы фибринолиза. Активаторы плазминогена как тромболитические средства. Основаные антикоагулянты крови: антитромбин III, макроглобулин, антиконвертин. Гемофилии 154.37 KB
  Основаные антикоагулянты крови: антитромбин III макроглобулин антиконвертин. Такие ингибиторы ферментов свёртывания крови как α2макроглобулин α1антитрипсин и комплекс антитромбин IIIгепарин также обладают небольшой фибринолитической активностью. Снижение фибринолитической активности крови сопровождается тромбозами. Нарушение разрушения фибринового сгустка может быть вызвано наследственным дефицитом плазминогена или генетическим дефектом его структуры снижением поступления в кровь активаторов плазминогена повышением содержания в крови...
81560. Клиническое значение биохимического анализа крови 101.37 KB
  Среди медицинских анализов особенное значение имеет анализ крови связующего звена между всеми системами и органами тела. Распространенным лабораторным методом изучения ее состава является биохимический анализ крови. В связи со своей универсальностью биохимический анализ крови назначается врачами разных медицинских специальностей терапевтами кардиологами гастроэнтерологами ревматологами и другими.
81561. Основные мембраны клетки и их функции. Общие свойства мембран: жидкостность, поперечная асимметрия, избирательная проницаемость 106.22 KB
  Все клетки имеют мембраны. Мембраны ответственны за выполнение многих важнейших функций клетки. К основным функциям мембран можно отнести: отделение клетки от окружающей среды и формирование внутриклеточных компартментовотсеков; контроль и регулирование транспорта огромного разнообразия веществ через мембраны; участие в обеспечении межклеточных взаимодействий передаче внутрь клетки сигналов; преобразование энергии пищевых органических веществ в энергию химических связей молекул АТФ.
81562. Липидный состав мембран (фосфолипиды, гликолипиды, холестерин). Роль липидов в формировании липидного бислоя 104.87 KB
  В мембранах присутствуют липиды трёх главных типов фосфолипиды гликолипиды и холестерол холестерин. Липидный состав мембран различен содержание того или другого липида повидимому определяется разнообразием функций выполняемых этими липидами в мембранах. В мембранах эукариотических клеток обнаружено огромное количество разных фосфолипидов причём они распределены неравномерно по разным клеточным мембранам. В плазматических мембранах клеток в значительных количествах содержатся сфингомиелины.
81563. Белки мембран - интегральные, поверхностные, «заякоренные». Значение посттрансляционных модификаций в образовании функциональных мембранных белков 104.74 KB
  Мембранные белки контактирующие с гидрофобной частью липидного бислоя должны быть амфифильными. Белки мембран различаются по своему положению в мембране. Они могут глубоко проникать в липидный бислой или даже пронизывать его интегральные белки либо разными способами прикрепляться к мембране поверхностные белки. Поверхностные белки.