Разработка микропроцессорной системы пожаротушения

Страницы работы

Фрагмент текста работы

поочедедно подаются четырехразрядные сигналы индицируемой цифры на входы микросхемы B1, B2, B4, B8. Параллельно этим сигналам подаются соответствующие сигналы управления навходы DD2-DD5. Постоянно отображается точка DP2 для разделения номера зоны и значения температуры в этой зоне. Для контроля датчика дыма используется светодиодный индикатор HL2 АЛ307А.

Кнопка SB1 используется для сброса микроконтроллера.

Рисунок 3.6 – Схема индикации


3.5 Разработка блока питания

Источник питания имеет выводы:  +5 В, -5 В, +15 В, -15 В, +20 В  с которых снимается напряжение для питания микросхем и выдачи управляющих сигналов. Источник питания подключается к сети переменного напряжения ~220В.

Соотношение количества витков в обмотках трансформатора: 1.8W2=W3=0.5W4=0.5W5=W6=W1/44,    отсюда

W1=4400; W2=180; W3=100; W4=50; W5=50; W6=100;

Схема выпрямления напряжения состоит из микросхемы DA (К142НD1). Она представляет собой набор различным образом включенных диодов.

Схемы стабилизаторов напряжения выполнены на микросхемах К142ЕН5А и К142ЕН9А.

Конденсаторы С1-С6 – служат для сглаживания пульсаций.  В  цепь 220 В включен предохранитель.

          Рисунок 3.7 – Блок питания микропроцессорной управляющей системы


4 Разработка программного обеспечения

4.1 Алгоритм работы системы

Рисунок 4.1 – Основной цикл работы программы


 

Рисунок 4.2 – Подпрограмма двоично–десятичной коррекции

Рисунок 4.3 – Обработка прерываний

Программа работает циклически. Каждый цикл проверяется только один датчик температуры. Объект индикации обновляется только в том случае, если он соответствует преобразованному датчику. С помощью таймера 1 каждые 0,5 с изменяется объект индикации. С помощью таймера 2 задается частота звукового генератора. Выключение системы (SLEEP режим) осуществляется при подаче сигнала на вход INT.


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

     list p=16c74a

     #include<p16c74a.inc>    ;Подклюключаем заголовочный файл

     ERRORLEVEL     -302

     ERRORLEVEL     -305

;--------------------------------------------------------------

;РЕГИСТРЫ

;--------------------------------------------------------------

IND_0     EQU  0x21 ;РЕГИСТР 0-ГО РАЗРЯДА ИНДИКАТОРА

IND_1     EQU  0x22 ;РЕГИСТР 1-ГО РАЗРЯДА ИНДИКАТОРА

IND_2     EQU  0x23 ;РЕГИСТР 2-ГО РАЗРЯДА ИНДИКАТОРА

IND_3     EQU  0x24 ;РЕГИСТР 2-ГО РАЗРЯДА ИНДИКАТОРА

I         EQU  0x25 ;РЕГИСТР НОМЕРА ИНДИЦИРУЕМОЙ КОМНАТЫ

STATUS_TEMP    EQU  0x26

W_TEMP         EQU  0x27

;--------------------------------------------------------------

;КОНСТАНТЫ

;--------------------------------------------------------------

LIMIT     EQU  0x3C ;ПРЕДЕЛ ДОПУСТИМОЙ ТЕМПЕРАТУРЫ - 60

F         EQU  1

W         EQU  0

;--------------------------------------------------------------

;МАКРОКОМАНДЫ

;--------------------------------------------------------------

;_CONFIG _XT_OSC & _MCLRE_ON & _BODEN_OFF

     org  0x00      ;Вектор сброса

reset                   

     goto start     ;Переход на начало программы

     org  0x50      ;Вектор начала программы

start

;--------------------------------------------------------------

;Инициализация

;--------------------------------------------------------------

;ИНИЦИАЛИЗАЦИЯ ПОРТОВ ВВОДА/ВЫВОДА

;--------------------------------------------------------------

     BCF       STATUS,RP0

     BCF       STATUS,RP1

     BCF       INTCON,GIE     ;ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ВО ВРЕМЯ

;ИНИЦИАЛИЗАЦИИ

     CLRF      PORTA          ;ОЧИСТКА ПОРТОВ

     CLRF      PORTB         

     CLRF      PORTC

     CLRF      PORTD

     CLRF      PORTE

     BSF       STATUS,RP0

     BCF       STATUS,RP1

     MOVLW     B'11101111'    ;ВСЕ ЛИНИИ RA И RE НА ВВОД, КРОМЕ RA4

     MOVWF     TRISA

     MOVWF     TRISE

     MOVLW     B'00000001'    ;ЛИНИЯ RB0 НА ВВОД

                              ;ОСТАЛЬНЫЕ НА ВЫВОД

     MOVWF     TRISB         

     MOVLW     B'11000000'    ;ЛИНИИ ПОРТА RС НА ВЫВОД

     MOVWF     TRISC

     MOVLW     B'00000000'    ;ЛИНИИ ПОРТА RD НА ВЫВОД

     MOVWF     TRISD         

;--------------------------------------------------------------

;ИНИЦИАЛИЗАЦИЯ МОДУЛЯ USART

;--------------------------------------------------------------

     BCF       STATUS,RP0

     BCF       STATUS,RP1

     MOVLW     B'10000000'    ;ВКЛЮЧИТЬ МОДУЛЬ USART  

     MOVWF     RCSTA         

     BSF       STATUS,RP0

     BCF       STATUS,RP1

     MOVLW     B'10110000'    ;УСТАНОВИТЬ 8-РАЗРЯДНУЮ ПЕРЕДАЧУ

                              ;СИНХРОННЫЙ ВЕДУЩИЙ РЕЖИМ ПЕРЕДАЧИ

                              ;РАЗРЕШЕНИЕ ПЕРЕДАЧИ

     MOVWF     TXSTA

     MOVLW     0x67      ;СКОРОСТЬ ОБМЕНА 9600 бит/с

     MOVWF     SPBRG

;--------------------------------------------------------------

;ИНИЦИАЛИЗАЦИЯ МОДУЛЯ АЦП

;--------------------------------------------------------------

     MOVLW     B'00000000'    ;ВСЕ ВХОДЫ RA АНАЛОГОВЫЕ

     MOVWF     ADCON1        

     BCF       STATUS,RP0

     BCF       STATUS,RP1

     MOVLW     B'10000001'    ;МОДУЛЬ АЦП ВКЛЮЧЕН

     MOVWF     ADCON0         ;ТАКТОВАЯ ЧАСТОТА Fosc/32

                              ;ВЫБРАН КАНАЛ 0

     BSF       ADCON0,GO ;НАЧАТЬ ПРЕОБРАЗОВАНИЕ

;--------------------------------------------------------------

;ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА TMR1

;--------------------------------------------------------------

     MOVLW     B'00111001'    ;КОЭФФИЦИЕНТ ДЕЛЕНИЯ ПРЕДДЕЛИТЕЛЯ 1:8

     MOVWF     T1CON          ;ИСТОЧНИК ТАКТОВЫХ ИМПУЛЬСОВ Fosc/4

                              ;ГЕНЕРАТОР ВКЛЮЧЕН

     CLRF      TMR1L          ;ОЧИСТКА РЕГИСТРОВ TMR1L И TMR1H

     CLRF      TMR1H

;--------------------------------------------------------------

;ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА TMR2

;--------------------------------------------------------------

     CLRF      T2CON          ;ПРЕДДЕЛИТЕЛЬ 1/1, ВЫХОДНОЙ ДЕЛИТЕЛЬ 1/1

     MOVLW     0xA6

     BSF       STATUS,RP0

     BCF       STATUS,RP1

     MOVWF     PR2

     BCF       STATUS,RP0

     BCF       STATUS,RP1

;--------------------------------------------------------------

;ИНИЦИАЛИЗАЦИЯ ПРЕРЫВАНИЙ

;--------------------------------------------------------------

MOVLW     B'01010000'    ;РАЗРЕШИТЬ ПРЕРЫВАНИЯ ОТ ПЕРИФЕРИЙНЫХ                                               

;МОДУЛЕЙ

                              ;И ПРЕРЫВАНИЯ ПО ВХОДУ INT

     MOVWF     INTCON

     MOVLW     B'00000011'    ;РАЗРЕШИТЬ ПРЕРЫВАНИЯ ОТ ТАЙМЕРОВ

;TMR1 И TMR2

     CLRF      PIR1

     BSF       STATUS,RP0

     BCF       STATUS,RP1

     MOVWF     PIE1

     BSF       INTCON,GIE     ;РАЗРЕШИТЬ ПРЕРЫВАНИЯ

;---------------------------------------------------------------

     CLRF I   

;-------------------------------- ------------------------------

ADC_START      ;ПОДПРОГРАММА ИЗМЕРЕНИЯ ТЕМПЕРАТУРЫ

;---------------------------------------------------------------

     BCF       STATUS,RP0

     BCF       STATUS,RP1

     BTFSC     ADCON0,GO ;ОЖИДАТЬ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ 

     GOTO      $-1

     MOVLW     LIMIT     ;ПРОВЕРКА НА ПРЕВЫШЕНИЕ ЗАДАННОГО ПРЕДЕЛА

     SUBWF     ADRES,W  

     BTFSS     STATUS,C  ;ЕСЛИ ПРЕДЕЛ ПРЕВЫШЕН

     GOTO      SMOKE

     RRF       I,W       ;ОПРЕДЕЛЕНИЕ НОМЕРА КОМНАТЫ

     ADDLW     0x04      ;ПЕРЕДАЧА СИГНАЛА НА ОДИН ИЗ ПОРТОВ RB4-RB7

     BSF       PORTB,W       

     BSF       T2CON,TMR2ON   ;ВКЛЮЧЕНИЕ ГЕНЕРАТОРА

     MOVF      I,W       ;ПЕРЕДАЧА ПО USART КОДА НОМЕРА КОМНАТЫ

     MOVWF     TXREG     ;8421 БЕЗ ЗАПРОСА НА ПОДТВЕРЖДЕНИЕ SMOKE

     BTFSC     PORTA,4   ;ПРОВЕРКА СИГНАЛА ДАТЧИКА ДЫМА

     GOTO      IND

     BSF       PORTB,3   ;ПЕРЕДАЧА СИГНАЛА НА ПОРТ RB3

     BSF       T2CON,TMR2ON   ;ВКЛЮЧЕНИЕ ГЕНЕРАТОРА

     MOVLW     0x99      ;ПЕРЕДАЧА ПО USART КОДА B'10011001' БЕЗ ЗАПРОСА

     MOVWF     TXREG     ;НА ПОДТВЕРЖДЕНИЕ

IND

CALL      BIN_DEC   ;ВЫЗОВ ПОДПРОГРАММЫ ДВОИЧНО ДЕСЯТИЧНОЙ

;КОРРЕКЦИИ

;---------------------------------------------------------------

;ИНДИКАЦИЯ

;---------------------------------------------------------------   MOVF      IND_0,W   ;ВЫВОД В ПОРТ ДЕСЯТИЧНОЙ ЦИФРЫ

     MOVWF     PORTD         

     BSF       PORTC,3   ;ПОДАЧА ИМПУЛЬСА НА БУФЕР ПАМЯТИ

;МИКРОСХЕМЫ ИНДИКАЦИИ

     BCF       PORTC,3

     MOVF      IND_1,W   ;ПЕРЕДАЧА ТАКИМ ЖЕ ОБРАЗОМ СТАЛЬНЫХ

;ЧИСЕЛ

     MOVWF     PORTD

     BSF       PORTC,2

     BCF       PORTC,2

     MOVF      IND_2,W

     MOVWF     PORTD

     BSF       PORTC,1

     BCF       PORTC,1

     MOVF      IND_3,W

     MOVWF     PORTD

     BSF       PORTC,0

     BCF       PORTC,0

;---------------------------------------------------------------

;ИЗМЕНЕНИЕ I

;----------------------------------------------------------

     INCF I                   ;УВЕЛИЧЕНИЕ I НА 1

     BTFSC     I,3            ;ЕСЛИ I=8, ТО ОЧИСТИТЬ I

     CLRF I

     MOVLW     B'11000111'    ;ИЗМЕНЕНИЕ ВХОДА АЦП

     ANDWF     ADCON0,F

     MOVF      I,W

     RLF       W,F

     RLF       W,F

     RLF       W,F

     IORWF     ADCON0,F

     GOTO      ADC_START      ;ЗАЦИКЛИВАНИЕ ПРОГРАММЫ

;--------------------------------------------------------------- BIN_DEC          ;ПОДПРОГРАММА ДВОИЧНО-ДЕСЯТИЧНОЙ КОРРЕКЦИИ

;---------------------------------------------------------------

MOVF      IND_3,W   ;ЕСЛИ НОМЕР ПРЕОБРАЗОВАННОГО ВХОДА

;СООТВЕТСТВУЕТ

     RLF       W         ;НОМЕРУ КОМНАТЫ, ТО ЗНАЧЕНИЯ ИНДИКАТОРОВ

     BCF       STATUS,Z  ;ОБНОВЛЯЮТСЯ

     SUBWF     I,W

     BTFSS     STATUS,Z

     GOTO      M3

     CLRF      IND_0

     CLRF      IND_1

     CLRF      IND_2

     MOVF      ADRES,W

     MOVWF     IND_0

M1  

     SUBLW     0x64     

     BTFSS     STATUS,C  ;ЕСЛИ ЗНАЧЕНИЕ IND_0 НЕ МЕНЬШЕ 100

     GOTO      M2       

     INCF      IND_2,F   ;ОТНИМАЕМ ОТ IND_0 100 И УВЕЛИЧИВАЕМ

     MOVWF     IND_0     ;IND_2

     GOTO      M1             ;ПРОИЗВОДИМ ПОВТОРНУЮ ПРОВЕРКУ

M2  

     SUBLW     0x0A

     BTFSS     STATUS,C  ;ЕСЛИ ЗНАЧЕНИЕ IND_0 НЕ МЕНЬШЕ 0x0A

     GOTO      M3        ;ОТНИМАЕМ ОТ IND_0 10 И УВЕЛИЧИВАЕМ

     INCF      IND_2,F   ;IND_1

     MOVWF     IND_0

     GOTO      M2        ;ПРОИЗВОДИМ ПОВТОРНУЮ ПРОВЕРКУ

M3   RETURN

;---------------------------------------------------------------

;ОБРАБОТКА ПРЕРЫВАНИЙ

;---------------------------------------------------------------

     ORG  0x04                ;ВЕКТОР ПРЕРЫВАНИЙ

;---------------------------------------------------------------   BCF       INTCON,GIE     ;ЗАПРЕТ ВСЕХ ПРЕРЫВАНИЙ

;---------------------------------------------------------------

;СОХРАНЕНИЕ АККУМУЛЯТОРА И РЕГИСТРА STATUS

     BTFSS     STATUS,RP0     ;ОПРЕДЕЛЕНИЕ ТЕКУЩЕГО БАНКА

     GOTO      RP0_CLR       

     BCF       STATUS,RP0     ;УСТАНОВИТЬ БАНК 0

     MOVWF     W_TEMP         ;СОХРАНИТЬ АККУМУЛЯТОР

     SWAPF     STATUS,W

     MOVWF     STATUS_TEMP    ;СОХРАНИТЬ РЕГИСТР STATUS

     BSF       STATUS_TEMP,5;ВОССТАНОВИТЬ ЗНАЧЕНИЕ БИТА RP0

     GOTO      $+4

RP0_CLR

     MOVWF     W_TEMP         ;СОХРАНИТЬ АККУМУЛЯТОР

     SWAPF     STATUS,W

     MOVWF     STATUS_TEMP    ;СОХРАНИТЬ РЕГИСТР STATUS

;---------------------------------------------------------------

INT_SOURCE                    ;ОПРЕДЕЛЕНИЕ ИСТОЧНИКА ПРЕРЫВАНИЯ

;---------------------------------------------------------------

     CLRF      STATUS         ;ОЧИСТИТЬ РЕГИСТР STATUS

     BTFSC     PIR1,TMR1IF    ;ЕСЛИ ПРЕРЫВАНИЕ ОТ МОДУЛЯ CCP1

     GOTO      INT_TMR1       ;ПЕРЕХОД НА ПОДПРОГРАММУ ЧАСОВ

     BTFSC     PIR1,TMR2IF    ;ЕСЛИ ПРЕРЫВАНИЕ ОТ ТАЙМЕРА TMR2

     GOTO      INT_TMR2       ;ПЕРЕХОД НА ПОДПРОГРАММУ

;ОБРАБОТЧИКА ПРЕРЫВАНИЙ ОТ TMR2

     BTFSC     INTCON,INTF    ;ЕСЛИ ПРЕРЫВАНИЕ ПО ВХОДУ INT

     GOTO      INT_INT        ;ПЕРЕХОД НА ПОДПРОГРАММУ

;ОБРАБОТЧИКА ПРЕРЫВАНИЙ ПО INT

     GOTO      END_INT        ;ИНАЧЕ ПЕРЕХОД НА ПОДПРОГРАММУ

;ВОССТАНОВЛЕНИЯ

                              ;КОНТЕКСТА

;---------------------------------------------------------------

INT_TMR1                      ;ИЗМЕНЕНИЕ КОМНАТЫ ИНДИКАЦИИ

;---------------------------------------------------------------

     BCF       PIR1,TMR1IF

     INCF      IND_3          ;УВЕЛИЧЕНИЕ НА 1

     BTFSC     IND_3,2        ;ОПРЕДЕЛЕНИЕ НА МАКСИМАЛЬНОСТЬ IND_3

     CLRF      IND_3         

     GOTO      INT_SOURCE     ;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ

;---------------------------------------------------------------

INT_TMR2                      ;ЗВУКОВОЙ СИГНАЛ

;---------------------------------------------------------------

     BCF       PIR1,TMR2IF

     BTFSC     PORTB,2        ;ИНВЕРТИРОВАНИЕ RB2

     BCF       PORTB,2

     BSF       PORTB,2

     GOTO      INT_SOURCE     ;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ

;---------------------------------------------------------------

INT_INT

;---------------------------------------------------------------

     BCF       INTCON,INTF   

     SLEEP                    ;ПЕРЕХОД В SLEEP РЕЖИМ

     NOP

     BCF       INTCON,INTF

     GOTO      INT_SOURCE     ;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ

;ПРЕРЫВАНИЙ

;---------------------------------------------------------------

END_INT        ;ВОССТАНОВЛЕНИЕ АККУМУЛЯТОРА И РЕГИСТРА STATUS

;---------------------------------------------------------------

     BCF       STATUS,RP0

     BCF       STATUS,RP1

     SWAPF     STATUS_TEMP,W  ;ВОССТАНОВИТЬ РЕГИСТР STATUS

     MOVWF     STATUS

     BTFSS     STATUS,RP0     ;ОПРЕДЕЛЕНИЕ ТЕКУЩЕГО БАНКА

     GOTO      REST_WREG

     BCF       STATUS,RP0     ;ВЫБОР БАНКА 0

     SWAPF     W_TEMP,F       ;ВОССТАНОВИТЬ АККУМУЛЯТОР

     SWAPF     W_TEMP,W

     BSF       STATUS,RP0     ;ВЫБОР БАНКА 1

     RETURN

REST_WREG

     SWAPF     W_TEMP,F       ;ВОССТАНОВИТЬ АККУМУЛЯТОР    

     SWAPF     W_TEMP,W

     RETURN                   ;ВЕРНУТЬСЯ ИЗ ПРЕРЫВАНИЯ

;---------------------------------------------------------------

     END

;---------------------------------------------------------------


5 Разработка инструкции по эксплуатации

Инструкция по монтажу и эксплуатации системы

1. Система пожаротушения монтируется в герметичном корпусе. Система поставляется в виде блока, на панели которого размещено 4 разъема  для подключения датчиков и объектов управления. На тыльной стороне корпуса имеется гнездо для подключения к сети переменного тока ~220 В, частотой 50 Гц. Назначение разъемов на передней панели устройства:

  • ХS1 – подключение датчиков температуры;
  • ХS2 – подключение датчика дыма;
  • ХS3 – подключение датчика выключения системы;
  • XS4 – подключение исполнительного оборудования;

При подключении датчиков и объектов управления необходимо соблюдать правила техники безопасности. Кроме  того, необходимо помнить, что неправильное подключение внешних устройств приведет к ошибочной работе монтируемого устройства и даже может вызвать его поломку.

Включать систему разрешается только после подключения всех датчиков и объектов управления.

Следует избегать попадания воды на разъемы при подключении.

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

1.  Надежно укрепить систему.

2.  Подключить датчики и ИС.

3.  Включить питание.

4.   При возникновении аварийной ситуации для отключения аварийных сигналов произвести сброс системы.

Во время работы в режиме ожидания вмешательство в работу системы не требуется. Рекомендуется не заливать систему чаем, колой и другими спиртосодержащими жидкостями.


Заключение

В данной курсовой работе разработана система пожаротушения помещения. Эта система может контролировать 8 датчиков температуры в 4-х зонах

Похожие материалы

Информация о работе