Рефераты по БЖД

Адаптер адресной пожарной сигнализации

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) //!!! необходимо вызывать перед выходом из программы

{

disable();

reseterr();

outportb(MCR,8); //rts=0 out2=1

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

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

enable();

}

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  5  6  7  8  9 


Другие рефераты:

© 2010-2024 рефераты по безопасности жизнедеятельности