МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Приемно-адаптерный прибор пожарной сигнализации

    5.     Нилов В.А. Технические средства охранно-пожарной сигнализации.; НОУ «Такир», -М., 1998г.

    6.     Панель охранно-пожарная «Control Equipment». Техническое описание.

    7.     Пожарная безопасность. Специализированный каталог. – М.: «Гротек», 2000г.

    8.     Пожарная сигнализация. Современные устройства пожарной сигнализации. Проектирование систем безопасности на основе компьютерных технологий.; «Гротеск», -М, 1998г.

    9.     Пожарно-охранный извещатель «Apollo XP95». Техническое описание.

    10. Пульт приемно-контрольный ППК-2. Паспорт еу2.407.003 ПС.

    11. Руководство по архитектуре IBM PC/AT. под ред. М.Л.Махрхасина.; ООО «Консул», -Мн., 1993г.

    12. СНиП 2.04.09-84 Пожарная автоматика.

    13. Собурь В.А. Установки автоматической пожарной сигнализации: Справочник. Вып. 1-й – М.: Спецтехника, 1999.

    14.  Современные средства пожарной и пожарно-охранной сигнализации.; -М, 1990г.

    15. СТБ 11.16.01-98 Системы пожарной сигнализации.

    16.  Юлин В.А., Булатова И.Р. Приглашение к СИ. – Мн.: Выш. Шк.,

       1990.


     













































    ПРИЛОЖЕНИЕ 1

                   

       // ======================================================================

       // = Базовая программа работы с последовательным портом COMi.

       // = Обмен с использованием прерываний

       // ======================================================================

    #include <conio.h>

    #include <iostream.h>

    #include <stdio.h>

    #include <dos.h>

    #include <stdlib.h>

    #include <math.h>

    #include <string.h>

    #include <process.h>

    #define COM 2  // задается номер порта 1-COMi; 2-COM2

                   // дальнейший код справедлив для машин класса AT

    #define INTRS 13-COM

    #define m_speed 2   // множитель задает скорость передачи

                     // 1-9600

                     // 2-19200 и т.д.

                     // 6-57600

                     // 12-115200

    #define cbuf  2000   // размер буфера данных

    #ifdef __cplusplus

        #define __CPPARGS ...

    #else

        #define __CPPARGS

    #endif

    #define rgmask 16/COM  //маска в регистре маски прерываний

    #define byte_sync 33

    #define byte_pream 85



    int IMR=0x21;    // регистр маски прерываний

    int  base,IER,IIR,LCR,LSR,MSR,MCR,LSB,MSB; // регистры контроллера

                                  // последовательного интерфейса

    char fl_d=0;        // флаг устанавливается если принят байт

                    // если=0 то буфер пуст

    char overb=0;       // флаг устанавливается если буфер переполнен

    char area[cbuf];  // буфер данных

    int  head=0,teil=0; // указатели головы и хвоста

    char count0=0;    // help count

    char exiterr=0;           //номер ошибки при приеме

                                 // exiterr=0 - ошибок нет

                                 // exiterr=1 - ошибка приема

                                 // exiterr=2 - ошибка по тайм-ауту

                                 // exiterr=3 - cбой в приеме: передано неверное

                                              //число байт

                                 // exiterr=4 - сбой при приeмe или переполнение

                                              //буфера

    char errcode=0;     // код ошибки

    void interrupt obrcom(__CPPARGS);    /* interrupt prototype */

    void interrupt (*oldfunc)(__CPPARGS); /* interrupt function pointer */

    void nevid(void);   //делает курсор невидимым

    void initrs(void);  //инициализация COM порта

    void init(void);   //инициализация переменных

    void  exitp(void); //!!! необходимо вызывать перед выходом из программы

    int  trans(char);   //передача байта через СОМ порт

    void deside(void);  //обработка данных

    void signal(void);  //звуковой сигнал

    void outinfo(void); //вывод информации на экран

    void reseterr(void);   //сброс ошибок RS232

    void instvect(void);    //Замена вектора прерываний COMi

    void restorevect(void);  //Восстановление старого обработчика C

    void incteil(void);      //Увеличение указателя хвоста

    void err(char *);  //Выход по ошибке

    void Transb(char); // посылка байта с сервисом

    int Transb_hiden(char);  // Не выдает сообщения об ошибках

    void clearbof(void);  // очистка буфера данных

    void definit(void);    // определяет работоспособность с той стороны

    void clearbofkey(void);  // очистка буфера клавиатуры

    void pusk(void);


    struct k_win           // координаты окна

    { int x0,y0,x1,y1,lastx,lasty; } wmain,wmes;



    //=======================

    void nevid(void)      //невидимый курсор

    {  asm{ push    cx

            push    ax

            mov     ah,01

            mov     ch,20H

            mov     cl,0

            int     10H

            pop     ax

            pop     cx

          }

    }


    // ===========  инициализация переменных ====================

    void init(void)

    { int i;


      wmain.x0=1; wmain.y0=1; wmain.x1=80; wmain.y1=16;

      wmes.x0=1; wmes.y0=wmain.y1+2; wmes.x1=80; wmes.y1=25;

      wmain.lastx=wmain.lasty=wmes.lastx=wmes.lasty=1;

      exiterr=0;

    }

    //============ инициализация последовательного порта ===========

    void initrs(void)

    {

      asm { push    es

            push    bx

            mov     bx,COM

            dec     bx

            shl     bx,1

            mov     ax,40H      //вычислить базовый адрес

            mov     es,ax

            mov     dx,es:[bx]

            mov     base,dx

            pop     bx

            pop     es

          }

      IER=base+1;  IIR=base+2;  LCR=base+3;  MCR=base+4;  LSR=base+5;

      MSR=base+6;  LSB=base; MSB=base+1;


      disable();

      instvect(); // установить обработчик

      outportb(IMR,(inportb(IMR)&(255-rgmask))); // разрешить прерывание

      outportb(IER,5); //разрешить прерывания по доступности данных и по ошибке

      outportb(LCR,(inportb(LCR)|0x80)); // доступ к делителю частоты

      outportb(LSB,12/m_speed);    // 1843200/(x*16)=y бит/c

      outportb(MSB,0);

      outportb(LCR,27); // установить параметры :

          

                // длина слова обмена 8 бит + контроль четности + DLAB=0

      outportb(MCR,(8));    //   ;rts=0 ;dtr=0

                // сбросить условия возникновения прерываний

      //outportb(base,0);

      inportb(base);

      inportb(MSR);

      inportb(LSR);

      enable();

    }


    //=========== звуковой сигнал ==================

    void signal(void)

    { sound(700); delay(200); nosound();

    }

             // чтение LSR - сброс ошибок

    void reseterr(void)

    {

      inportb(LSR);

    }

    char foi=0;


    // ================= передача байта 'dm' в канал связи ==========

    int trans(char dm)

    {

    inlsr:

     asm {

            mov     dx,base

            add     dx,5

            in      al,dx          //прочитать LSR

            test    al,00011110B  // ошибка ?

            jnz     toer

            test    al,1

            jnz     indata

            test    al,32       // Передатчик освобожден ?

            jz      inlsr

            sub     dx,5

            mov     al,dm

            out     dx,al

          }

       return 0;

    toer:  reseterr(); return -1;

    indata:  return 1;

    }


    void instvect(void)       // замена вектора прерывания

    {

      oldfunc  = _dos_getvect(INTRS);

      _dos_setvect(INTRS,obrcom);

    }


                  // восстановление старого вектора

    void restorevect(void)

    {  /* restore to original interrupt routine */

      _dos_setvect(INTRS,oldfunc);

    }

    char d;


    //=========== прием данных не используя прерываний  =============

    int priem(void)

    {  char clt; int i=0;

      do { clt=inportb(LSR);

           if ((clt&30)!=0) { errcode=clt; reseterr(); return -1; }

                 // байт принят ?

           if (clt&1)  { d=inportb(base); return 0; }

           i++;

         }

      while (i!=0);

      return 1;

    }


                // новый обработчик прерывания от COMi

    void interrupt obrcom(__CPPARGS)

    { char p;


       p=((inportb(IIR)>>1)&3);

          switch (p) // определить тип прерывания

            { case 0:   // изменение линии состояния устройства с той стороны

                    inportb(MSR); break;

              case 1: // прерывание от передатчика

                    break;

              case 3: // по ошибке

                   errcode=inportb(LSR); inportb(base); break;

            case 2: // доступность данных

                   { area[head++]=inportb(base);  //записать байт в буфер

                     if (head==cbuf) head=0;

                     if (head==teil) overb=1;  // отметить если голова догнала

                                               // хвост

                     fl_d=1; // отметить заполнение буфера

                     break;

                   };

              default: // неизвестное прерывание

                   errcode=128;

            }

    enfin:         // завершить прерывание

      asm { mov   al,20H

            out   20H,al

          }

    }


              // очищает буфер данных

    void clearbof(void)

    { while (fl_d) incteil(); }



    void clearbofkey(void)

    { while (kbhit()) getch(); }


                 // Выход по ошибке

    void err(char *mes)

    {

      exitp(); clearbofkey();

      printf("%s\n",mes); exit(0);

    }

                // Увеличение указателя хвоста

    void incteil(void)

    {  if (teil==(cbuf-1)) teil=0; else teil++;

       asm cli;

       if (head==teil) fl_d=0;   // если буфер пуст

       asm sti;

    }

                     // посылка байта с ожиданием и с очищением буфера

                         // от байта который был послан

    void Transb(char CC)

    { int li,opf,hp;

      li=1; opf=0;

          do     // цикл посылки и ожидания освобождения передатчика

            { hp=trans(CC);

              switch (hp)

                { case 0:  opf=1; break;

                  case 1:  li++;  hp=inportb(base); break;

                case -1: { printf("Ошибка при передаче\n"); reseterr(); break;}

                }

              if (li==0) printf("Тайм-аут при передаче\n");

            }

          while (!opf);

    }

                     // посылка байта с ожиданием и с очищением буфера

                     // от байта который был послан

                     // Не выдает сообщения об ошибках

    int Transb_hiden(char CC)

    { int li,opf,hp;


      li=0; opf=0;

          do     // цикл посылки и ожидания освобождения передатчика

            { hp=trans(CC);

              switch (hp)

                { case 0:  opf=1; break;

                  case 1: { //доступность данных

                            li++;

                            inportb(base);

                      reseterr;

                            break;

                          };

                  case -1: return -1; //err("Ошибка при передаче"); break;

                }

              if (li==100) return 1; //err("Тайм-аут при передаче");

            }

          while (opf==0);

                 // цикл ожидания приема байта - того что был послан

          li=0;

          while (fl_d==0)

            {

              if (++li==0) return 2; //err("Тайм-аут Не принято ни 1 символа");

            }

          if (area[teil]!=CC) return 3; //err("Не принято то что послано");

          incteil();

          return 0;

    }

    void priembig(void)

    {  int a;

       a=priem();

          switch (a)

            { case 0:  printf("Принято %d\n",d); break;

              case 1:  printf("Тайм-аут\n"); break;

              case -1:  printf("ErorCode=%d\n",errcode); inportb(base);

            }

    }

    #define pi      3.1416


          // Возвращает главное значение ARCTAN [0..2*pi]

    double mARCTAN(double z_sin,double z_cos)

    { double ang;


        if (z_sin==0)

          { if (z_cos<0) return (pi/2.0);

            else return (1.5*pi);

          }

        ang=-atan(z_cos/z_sin);

        if (z_sin<0) ang+=pi;

        if (ang<0) ang+=2*pi;

        return ang;

    }

    char getsym(void)

    { char a;

      a=area[teil]; incteil();

      return a;

    }

    //---------------------------------

    void  exitp(void)     //!!! необходимо вызывать перед выходом из программы

    int get_size(void)  // возвращает число байт в буфере

    { int i;

      if ( (i=(head-teil))<0 ) i+=cbuf;

      return i;

    }

    //===== отобразить информацию ==================

    void outinfo(void)

    { char a;  char str1[40];


       while ( (get_size()>=1) & (!kbhit()) )

         {

           printf(" %X",(int)getsym());

           if (errcode!=0) { printf("ErrCode=%d\n",errcode);

                      errcode=0;

                       }

         }

    }


    struct dostime_t w,w1;

    double at,bt;

    void fix_time(void)  // фиксирует системное время во внутреней переменной

    {

      _dos_gettime(&w);

      at=(double)(w.hour*360000+w.minute*6000+w.second*100+(double)w.hsecond);

    }

    double get_time(void) // возвращает время прошедшее с момента последнего

                      // фиксирования

    {

      _dos_gettime(&w1);

      bt=(double)(w1.hour*360000+w1.minute*6000+w1.second*100+(double)w1.hsecond);

      bt-=at;

      return bt;}

    int wait(int x)

    { fix_time();

      while (get_size()<x)

        { if (get_time()>(double)(x*4)) return 0;

        }

      return 1;}

    #define Esc 27

    #define     sym_S 83

    #define sym_W     87

    #define sym_Z     90

    #define sym_A     65


    //====================================

    void main(void)

    { char hpl,hph,ch;  char mas[100];

      int j,i,jh;

      long li;

      int cos,sin,sh,am;

      double sr;


    //  printf("my_dt=%7.4f  \n",(mARCTAN(14927.0,-28113.0)/pi*2000));

    //  return ;


      init(); initrs();

      clrscr();

      Transb(85);

      Transb(6);

      Transb(0);

      while (!kbhit()) // { Transb(85); delay(100); }

                  outinfo();

    me:

      errcode=0;

      clearbofkey();

      exitp();

    }






























    Аннотация научной работы






       Девиз:   "Не отступать и не сдаваться!"

    1.     Приемно-адаптерный прибор пожарной сигнализации.

    2.     УДК 614.842.4

    3.     КИИ МЧС Республики Беларусь.

    4.     2000 год.

    5.     Объём работы: 44 с.

    6.     Количество приложений: 3

    7.     Количество иллюстраций: 3

    8.     Количество таблиц: 2

    9.     Источников литературы: 16.






    Характеристика работы.

     

     

     

    1. Цель: Обеспечение возможности автоматизированной компьютерной                обработки информации систем пожарной сигнализации. 


    2. Методы: анализ технических решений, опытно-конструкторская проработка, программирование.


    Основные результаты:  разработан проект конструкции приемно-адаптерного прибора пожарной сигнализации и программа информационного обмена.

    Наличие документа об использовании научных результатов: да.

     

     

     

    подпись автора  ______________

     

     

     

     

     

     


    СВЕДЕНИЯ


    об авторе и научном руководителе работы,

    представленной под девизом: «Не отступать и не сдаваться!»

     

     

     

     

     

     

     

     АВТОР                    НАУЧНЫЙ РУКОВОДИТЕЛЬ


    1.Хегстрем 

    2.Сергей

    3.Сергеевич

    4. 4

    5. 220118, Республика Беларусь, г. Минск, улица Машиностроителей, 25.

    1.Мисюкевич

    2.Николай

    3.Стефанович

    4.Командно-инженерный институт Министерства по чрезвычайным ситуациям Республики Беларусь

    5. 05

    6. 1

    7. 2

    8. 220075, г. Минск, улица

     А. Бачило 5, кв. 68




     










    Председатель конкурсной комиссии                                        ______________

                 Научный руководитель                                        ______________

                            Автор работы                                                         ______________






    Сведения о научной работе

     

     



    1. Приемно-адаптерный прибор пожарной сигнализации.

    2. 45

    3. УДК 614.842.

    4. 2

    5. нет.

    6. да.

    7. нет.

    8. нет.

    9. Пожарная автоматика. Пожарная сигнализация. Приемно-контрольное оборужование.















    Автор                                       _____________

    Научный руководитель                  _____________





    Страницы: 1, 2, 3, 4


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.