поочедедно подаются четырехразрядные сигналы индицируемой цифры на входы микросхемы 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 Гц. Назначение разъемов на передней панели устройства:
При подключении датчиков и объектов управления необходимо соблюдать правила техники безопасности. Кроме того, необходимо помнить, что неправильное подключение внешних устройств приведет к ошибочной работе монтируемого устройства и даже может вызвать его поломку.
Включать систему разрешается только после подключения всех датчиков и объектов управления.
Следует избегать попадания воды на разъемы при подключении.
В режиме ожидания система работает без требуемого вмешательства. На индикаторе последовательно отображается температура в 4-х зонах, светодиодный индикатор отображает состояние датчика дыма. Рекомендуется следующий порядок действий при эксплуатации системы:
1. Надежно укрепить систему.
2. Подключить датчики и ИС.
3. Включить питание.
4. При возникновении аварийной ситуации для отключения аварийных сигналов произвести сброс системы.
Во время работы в режиме ожидания вмешательство в работу системы не требуется. Рекомендуется не заливать систему чаем, колой и другими спиртосодержащими жидкостями.
В данной курсовой работе разработана система пожаротушения помещения. Эта система может контролировать 8 датчиков температуры в 4-х зонах
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.