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

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

23 страницы (Word-файл)

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

поочедедно подаются четырехразрядные сигналы индицируемой цифры на входы микросхемы 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-х зонах

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

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