Датчик дыма на микроконтроллере

Автор работы: Пользователь скрыл имя, 20 Июля 2011 в 21:26, курсовая работа

Описание

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

Содержание

Введение………………….……………………………………………………........4

1 Постановка задачи и её физическая интерпретация………….………………..5

2 Выбор технических средств и структурная схема МПУ.……………..…..........7

3 Алгоритм работы МПУ и протокол обмена информацией между МПУ и объектом управления……………………………………………………………....12

Заключение…………………………………………………………………………13

Список использованных источников…………………………………………......14

Приложение

Работа состоит из  1 файл

Курсовая.doc

— 1.08 Мб (Скачать документ)

Специализированные  микроконтроллеры серии MR содержат 12-разрядные модули ШИМ с 6 выходными каналами. Они ориентированы на применение в системах управления электроприводом. Микроконтроллеры RK и RF ориентированы на использование в радиотехнике.

       Серии JB, JK, JL, КХ выпускаются в дешевых корпусах с малым числом выводов. Микроконтроллеры этих серий имеют от 13 до 23 линий параллельного ввода-вывода данных. Они используются в бытовой аппаратуре и изделиях массового применения, где требование низкой стоимости является одним из первостепенных факторов.

       В сериях QT, QY представлены модели, ориентированные на применение в малобюджетных проектах. Эти микроконтроллеры отличаются низкой стоимостью и выпускаются в компактных корпусах с малым числом выводов (8 или 16). Они имеют встроенный осциллятор, обеспечивающий формирование тактовой частоты с точностью 5%. Небольшой объем FLASH-памяти (до 4 Кбайт), наличие АЦП и таймера делают эти модели идеальными для построения несложных контроллеров распределенных систем мониторинга и управления.

       Оба семейства микроконтроллеров имеют программаторы, позволяющие использовать, как языки высокого уровня (в частности, язык С), так и ассемблеры. Цены на оба семейства микроконтроллев существенно не отличаются: при средней стоимости около 400 рублей разница состоявляет 50-100 рублей, что практически не влияет на итоговую стоимость внедрения системы противопожарной защиты.

       В силу большей доступности на рынке  микроконтроллеров ADuC812 и программаторов для них, было решино использовать микроконтроллеры этого семейства, а конкретно - ADuC812BS.

       В данном курсовом проекте микроконтроллер  является координирующим элементом системы. Следовательно, ему необходимо получать данные с датчиков и отдавать команды на элементы системы противодымной защиты. Так как и те, и другие являются устройствами аналоговыми, а микроконтроллер - устройством цифровым, то необходимо использовать АЦП и ЦАП для преобразования сигналов.

       Для АЦП мы будем использовать встроенный в микропроцессорную систему  преобразователь Н1562-8 фирмы Hitachi.

       Приведём  основные характристики АЦП:

       - разрядность 12 бит;

       - быстродействие 0.4 мкс; -DNL ±0,018%;

       -INL ±0,018%;

       - напряжение питания Ucc +5/-15 В;

       - ток питания 1СС15/48 мА;

       - опорное напряжение Uref +10,24В;

       - выходной ток Iout 3-7 мА;

       - рабочие температуры от-60 до ±85°С;

       - корпус 210В.24-1 (24-pin CerDIP).

Для отображения  текстовых данных воспользуемся  LCD WH16028-NGK-CP фирмы Winstar Display. Это монохромный дисплей с возможностью одновременного отображения до 32 символов (две строки по 16 позиций). Помимо этого в состав схемы входят светодиоды и динамик. 
 
 
 
 

      3 Алгоритм работы МПУ и протокол  обмена информацией между МПУ  и объектом управления. 

       Непосредственно на входы порта Р1.0-Р1.2 микроконтроллера приходят сигналы с датчиков дыма. Для взаимодействия с периферией в схему включена МАХ3064: сигналы с выходов D0-D10 поступают на LCD. Сигналы для свето диодов поступают с выходов D10-D16. Управляющие сигналы для светодиодов и LCD приходят из портов РО и Р2 микроконтроллера. Через Р1.5-Р1.7 подаются управляющие сигналы системам дымоудаления.

       Схема алгоритма программы приведена  в приложении Б. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Заключение 

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

. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

   Список  использованных источников 

       1 Справочник. Микроконтроллеры: архитектура, программирование, интерфейс. Бродин В.Б., Шагурин М.И.М.:ЭКОМ, 1999.

       2 Андреев Д.В. Программирование микроконтроллеров MCS-51: Учебное пособие. - Ульяновск: УлГТУ, 2000.

       3 М. Предко. Руководство по микроконтроллерам. Том I. Москва: Постмаркет, 2001.

       4  Интегральные микросхемы: Справ. / Б. В. Тарабрин, Л. Ф. Лукин, Ю. Н. Смирнов и др.; Под ред. Б. В. Тарабрина. – М.: Радио и связь, 1985.

       5 Бурькова Е.В. Микропроцессорные системы. ГОУ ОГУ. 2005. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ПРИЛОЖЕНИЕ  А

(Справочное) 

     Структурная схема МК ADuC812BS 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ПРИЛОЖЕНИЕ Б

(обязательное) 

Схема алгоритма программы

 
 
 

ПРИЛОЖЕНИЕ  В

(обязательное) 

Схема устройства 
 
 

 
 
 
 
 
 

ПРИЛОЖЕНИЕ  Г

(обязательное) 

Листинг программы

#include "ADuC812.h"

#include "max.h"

#include "kb.h"

#include "lcd.h"

#include "i2c.h" 

int etazN,i,j,curEtaz,Prepat; 

int VvodEtaz()

{

char etaz;

int tmp;  

LCD_Type("Etazh:");

       etaz='0';

        while(etaz=='0')

         {

          if(ScanKBOnce(&etaz))

           {

            etazN=etaz-48;

            LCD_Putch(etazN+48);

            etaz='0';

            while(etaz=='0')

             {

              if(ScanKBOnce(&etaz))

               {

                if(etaz=='A'){break;} else

                 {

                  tmp=etaz-48;

                  etazN=(etazN*10)+(etaz-48);

                  LCD_Putch(tmp+48);

                 };

               };

             };

           };

         };

return etazN;

} 

void HodLifta()

{

int j,i;

if(curEtaz<etazN)

  {

   for (i=curEtaz;i<=etazN;i++)

   {

    for (j=0; j<=10000; j++)

     {

      WriteMax(SV,i);

      Delay();

     }

   }

  };

if(curEtaz>etazN)

  {

   for (i=curEtaz;i>=etazN;i--)

    {

     for (j=0; j<=10000; j++)

      {

       WriteMax(SV,i);

       Delay();

      }

    }

  };

curEtaz=etazN;

} 

// 5 sec na zakrytie dverei i proverka prepatstviya:

void ZakrDveri()

{

int j,i;

char Bc; 

Bc='0';

for (i=1;i<=5;i++)

{

  for (j=0; j<=1000; j++)

   {

    if(ScanKBOnce(&Bc))

     {

      if(Bc=='B')

       {

        Prepat=1;

        goto id3;

       };          // B - datchik prepatstviya

     };

    Delay();

   };

  LCD_GotoXY(15,1);

  LCD_Putch(i+48);

}

id3: i=1;

} 

void main()

{

char Ac,etaz;

int tmp;

 

TMOD=0x20;

TCON=0x40; 

InitLCD();

LCD_GotoXY(0,1);

LCD_Type("SvetVyk");

LCD_GotoXY(7,1);

LCD_Type("DveriZakr"); 

curEtaz=1;  // tekushii etaz

Prepat=0;   // prepyatsvii net

id: Ac='0';

while(Ac=='0')

  {

   if(ScanKBOnce(&Ac))

    {

     if(Ac=='A')

      {

       etazN=VvodEtaz();

       LCD_GotoXY(0,0);        // "etaz" propal

       LCD_Type("         ");

       LCD_GotoXY(0,1);

       LCD_Type("SvetVkl");

       HodLifta();

       id2: LCD_GotoXY(7,1);

       LCD_Type("DveriOtkr");

       // zdem 20 sec:

       for(i=0;i<=10000;i++)

        {

         if(ScanKBOnce(&Ac))   // nazhatie etaza vnutri

          {

           if(Ac=='A')

            {

             etazN=VvodEtaz();

             LCD_GotoXY(7,1);

             LCD_Type("DveriZakr");

             ZakrDveri();  // medlenno zakryvaem dveri

             if (Prepat==1)

              {

               LCD_GotoXY(0,1);

               LCD_Type("SvetVkl");

               Prepat=0;

               goto id2;

              };

             LCD_GotoXY(0,0);

             LCD_Type("         ");

             HodLifta();

             goto id2;

            };

          };

         Delay();

        };

       LCD_GotoXY(0,1);

       LCD_Type("SvetVyk");

       LCD_GotoXY(7,1);

       LCD_Type("DveriZakr");

       ZakrDveri();  // medlenno zakryvaem dveri

Информация о работе Датчик дыма на микроконтроллере