Смекни!
smekni.com

Разработка микропроцессорной системы на базе микроконтроллера для пожарной сигнализации (стр. 3 из 4)

Программа на языке Ассемблеp приведена в Приложении А.

5. Описание функциональных узлов МПС и алгоритма их взаимодействия

Описание функциональных узлов было описано в пункте разработки алгоритма устройства, поэтому не будем более подробно останавливаться на разборе, т.к. алгоритм взаимодействия будет описан еще при разработке принципиальной схемы и выборе элементарной базы.

В Приложении Б приведена программа файла модулятора, а в Приложении В файла демодулятора.

6. Описание выбора элементной базы и работы принципиальной схемы

Принципиальная схема модулятора показана на рис.10 (Приложение Г). На выходе RA3 появляются импульсы модуляции положительной полярности. На выходе RA4 появляется единичный потенциал включения несущей. Все остальные входы микроконтроллера задействованы охранными датчиками. Охранное положение датчиков нормально замкнутое. Программно ко всем входам порта «В» подключены подтягивающие резисторы, поэтому при размыкании датчиков программа обнаружит единичный потенциал на разомкнутом датчике. Входы порта «А» программно не подтягиваются к плюсовому напряжению питания, поэтому установлены резисторы Rl-R3. При подключении вывода RA4 к схеме передатчика необходимо иметь в виду, что этот выход имеет открытый сток, поэтому, в зависимости от схемы передатчика, может потребоваться нагрузочный резистор.

Схема демодулятора показана на рис. 11 (Приложение Д). Вход RB0 подключается к выходу компаратора приемника. Выход компаратора должен быть с уровнями ТТЛ. Остальные выводы порта «В» задействованы под выход сегментов индикатора.

К выходу RA4 подключается зуммер НСМ120бх. Кнопка SA1 включает индикатор. Резистор R1 необходимо подобрать по приемлемой яркости для свечения 3-4 сегментов. Тогда один сегмент будет светиться ярче, а восемь сегментов будут светиться слабее.

Перед подключением пожарной сигнализации к приемнику и передатчику желательно проверить ее на совместную работу. Для этого необходимо выход несущей и модуляции с модулятора подать на входы логического элемента микросхемы К561ЛА7 и, инвертировав сигнал еще одним элементом, подать на вход демодулятора. При проверке индикации число 10 на индикаторе высвечивается нижней чертой (сегмент d), а число 11 - средней чертой (сегмент g).

Все временные характеристики приведены для случая использования кварцевого резонатора на частоту 32768 Гц.

Принципиальные схемы модулятора и демодулятора выполнены в САПР AccelEda (Рис. 8 и Рис.9).

Рис. 8 - Принципиальная схема модулятора пожарной сигнализации в AccelEDA.

Принципиальная схема модулятора пожарной сигнализации приведена в Приложении Г.


Рис. 9 - Принципиальная схема демодулятора пожарной сигнализации в AccelEDA

Принципиальная схема демодулятора пожарной сигнализации приведена в Приложении Д.

Спецификация компонентов модулятора приведена в Приложении Ж.

Спецификация компонентов демодулятора приведена в Приложении К.

ЗАКЛЮЧЕНИЕ

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

СПИСОК ЛИТЕРАТУРЫ

1. Белов А.В. Микроконтроллеры АVR в радиолюбительской практике – СП-б, Наука и техника, 2007 – 352с.

2. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин [ и др.]. – М.: Энергоатомиздат, 1990. – 224 с.

3. Евстифеев А.В. Микроконтроллеры Microchip: практическое руководство/А.В.Евстифеев. – М.: Горячая линия – Телеком, 2002. – 296 с.

4. Кравченко А.В. 10 практических устройств на AVR-микро-

контроллерах. Книга 1 – М., Додэка –ХХ1, МК-Пресс, 2008 – 224с.

5.Трамперт В. Измерение, управление и регулирование с помощью АVR-микроконтроллеров: Пер. с нем – К., МК-Пресс, 2006 – 208с.

6. Мортон Дж. Микроконтроллеры АVR. Вводный курс /Пер. с англ. – М., Додэка –ХХ1, 2006 – 272с.

7. Техническая документация на микроконтроллеры PIC16F84А компании MicrochipTechnologyIncorporated. ООО «Микро-Чип», Москва, 2002.-184 с.

ПРИЛОЖЕНИЕ А

Листинг программы и объектный файл

Приложение Б

; ПОЖАРНАЯ СИГНАЛИЗАЦИЯ НА 11 ДАТЧИКОВ,

; МОДУЛЯТОР ПЕРЕДАТЧИКА.

; РАЗРАБОТАЛ ЧЕБОТАРЕВ А,А,.

; ДЛЯ СВОБОДНОГО ИСПОЛЬЗОВАНИЯ.

; СЕВЕРОДОНЕЦК

;

; ПРОГРАММА = OXPANAPD.ASM

; ВЕРСИЯ: 11-04-03.

; АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, ВЕРСИЯ: 5.61.00.

;

#include p16f84a.inc

__CONFIG 3FF0H

;=========================================

; ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАСТОТОЙ 32768 ГЦ.

;=========================================

; RB0=1, RB1=2, RB2=3, RB4=4, RB5=6, RB6=7, RB7=8,

; RA0=9, RA1=10, RA2=11 - ВХОДЫ ДАТЧИКОВ.

; RA3-ВЫХОД МОДУЛЯЦИИ, RA4-ВЫХОД ВКЛЮЧЕНИЯ НЕСУЩЕЙ.

;=========================================

; СПЕЦ РЕГИСТРЫ.

;=========================================

INDF EQU 00H ;ДОСТУП К ПАМЯТИ ЧЕРЕЗ FSR.

TIMER0 EQU 01H ;TMR0.

OPTIONR EQU 81H ;OPTION (RP0=1).

PC EQU 02H ;СЧЕТЧИК КОМАНД.

STATUS EQU 03H ;РЕГИСТР СОСТОЯНИЯ АЛУ.

FSR EQU 04H ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.

PORTA EQU 05H ;ПОРТ А ВВОДА/ВЫВОДА.

PORTB EQU 06H ;ПОРТ В ВВОДА/ВЫВОДА.

TRISA EQU 85H ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А.

TRISB EQU 86H ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА В.

INTCON EQU 0BH ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ.

;===========================================

; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ.

;===========================================

SC EQU 0CH ;РЕГИСТР ИНДИКАЦИИ.

COU EQU 0DH ;СЧЕТЧИК ПАУЗЫ.

;========================================

; ВРЕМЕННЫЕ РЕГИСТРЫ.

;========================================

W_TEMP EQU 0EH ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА W ПРИ ПРЕРЫВАНИИ.

STATUS_TEMP EQU 0FH ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА STATUS ПРИ ПРЕРЫВАНИИ.

FSR_TEMP EQU 10H ;ВРЕМЕННЫЙ ДЛЯ FSR.

;=======================================

; ОПРЕДЕЛЕНИЕ БИТОВ РЕГИСТРА FLAG.

;=======================================

FLAG EQU 11H ;

;

; 0-> НЕСУЩАЯ ВЫКЛЮЧЕНА ПО ДАТЧИКУ.

; 1-> НЕСУЩАЯ ВКЛЮЧЕНА ЧЕРЕЗ 1 СЕКУНДУ.

;

;=========================

; 1. ПУСК.

;=========================

ORG 0

GOTO INIT

ORG 4

GOTO CONST

;========================================

; 4. ВЫВОД ИМПУЛЬСОВ МОДУЛЯЦИИ.

;========================================

ID2

MOVLW.2 ;АНАЛОГИЧНО ПЕРВОМУ.

MOVWFSC;

GOTO IDZ ;

;=========================

ID3

MOVLW.3

MOVWF SC

GOTO IDZ ;

;========================

ID4

MOVLW.4

MOVWF SC

GOTO IDZ ;

;=========================

ID5

MOVLW.5

MOVWF SC

GOTO IDZ ;

;=========================

ID6

MOVLW.6

MOVWF SC

GOTO IDZ ;

;=========================

ID7

MOVLW.7

MOVWF SC

GOTO IDZ ;

;=========================

ID8

MOVLW.8

MOVWF SC

GOTO IDZ ;

;=========================

ID9

MOVLW.9

MOVWF SC

GOTO IDZ ;

;=========================

ID10

MOVLW.10

MOVWF SC

GOTO IDZ ;

;=========================

ID11

MOVLW.11

MOVWF SC

GOTO IDZ ;

;=========================================

ID1

MOVLW.1 ;ЗАПИШЕМ НОМЕР ДАТЧИКА

MOVWF SC ;В РЕГИСТР ИНДИКАЦИИ.

IDZ

TSTF SC ;ЕСЛИ

SKPNZ ;РЕГИСТР НУЛЕВОЙ,

GOTO ID0I ;ИДЕМ НА ЗАВЕРШЕНИЕ.

DECF SC,1 ;ВЫЧТЕМ 1 ИЗ РЕГИСТРА.

BSF PORTA,3 ;ВКЛЮЧИМ ВЫХОД.

CALL ID21 ;ОТРАБОТАЕМ ПАУЗУ, РАВНУЮ ДЛИТЕЛЬНОСТИ ЕДИНИЦЫ.

BCF PORTA,3 ;ВЫКЛЮЧИМ ВЫХОД.

CALL ID2O ;ОТРАБОТАЕМ ПАУЗУ, РАВНУЮ ДЛИТЕЛЬНОСТИ НОЛЯ.

GOTO IDZ ;НАЧНЕМ СНАЧАЛА.

ID0I

CLRWDT

BCF PORTA,4 ;ВЫКЛЮЧИМ НЕСУЩУЮ.

BSF FLAG,0 ;ВКЛЮЧИМ ФЛАГ ВЫКЛЮЧЕНИЯ НЕСУЩЕЙ.

BTFSC FLAG,1 ;ЖДЕМ ПОКА ВКЛЮЧИТСЯ ФЛАГ ВКЛЮЧЕНИЯ НЕСУЩЕЙ.

GOTO ID0I ;ХОДИМ ПО КРУГУ.

GOTO KEY ;ПРОВЕРИМ ДАТЧИКИ.

;===========================

; 5. ПАУЗА.

;===========================

ID2O

MOVLW.2 ;ПАУЗА 2,69 МИЛЛИСЕКУНДЫ.

MOVWF COU ;ОБЩАЯ ДЛИНА-22 ТАКТА.

PAUSA

DECF COU,1 ;ВЫЧТЕМ 1.

TSTF COU ;ПРОТЕСТИРУЕМ НА НОЛЬ.

SKPZ ;ЕСЛИ НЕ РАВНО НУЛЮ,

GOTO PAUSA ;ПОВТОРИМ.

RETURN

ID21

MOVLW.2 ;ПАУЗА 2,69 МИЛЛИСЕКУНДЫ.

MOVWF COU ;ОБЩАЯ ДЛИНА-22 ТАКТА.

PAUSA1

DECF COU,1 ;ВЫЧТЕМ 1.

CLRWDT

NOP

NOP

TSTF COU ;ПРОТЕСТИРУЕМ НА НОЛЬ.

SKPZ ;ЕСЛИ НЕ РАВНО НУЛЮ,

GOTO PAUSA1 ;ПОВТОРИМ.

RETURN

;=============================

; 3. ОПРОС ДАТЧИКОВ.

;=============================

KEY

CLRWDT

BTFSS FLAG,1 ;ЕСЛИ НЕСУЩАЯ ВЫКЛЮЧЕНА,

GOTO KEY ;ОПРОС ДАТЧИКОВ НЕ ПРОИЗВОДИТСЯ.

BTFSC PORTB,0 ;ЕСЛИ ДАТЧИК РАЗОРВАН,

GOTO ID1 ;ИДЕМ ФОРМИРОВАТЬ ИМПУЛЬС МОДУЛЯЦИИ.

BTFSC PORTB,1

GOTO ID2

BTFSC PORTB,2

GOTO ID3

BTFSC PORTB,3

GOTO ID4

BTFSC PORTB,4

GOTO ID5

BTFSC PORTB,5

GOTO ID6

BTFSC PORTB,6

GOTO ID7

BTFSC PORTB,7

GOTO ID8

BTFSC PORTA,0

GOTO ID9

BTFSC PORTA,1

GOTO ID10

BTFSC PORTA,2

GOTO ID11

BCF FLAG,0

GOTO KEY ;ЕЩЕ РАЗ ПРОВЕРИМ ДАТЧИКИ.

;== ================================================

; 6. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ.

;======================================================

CONST

MOVWF W_TEMP ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ W И

MOVFW STATUS ;STATUS,

MOVWF STATUS_TEMP ;

MOVFW FSR ;FSR.

MOVWF FSR_TEMP ;

CALL S1 ;ПРИБАВИМ 1 В СЧЕТЧИК.

RECONST ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ЗНАЧЕНИЙ.

BCF INTCON,2 ;СБРОС ФЛАГА (T0IF) ПЕРЕПОЛНЕНИЯ ТАЙМЕРА.

MOVFW STATUS_TEMP ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ:

MOVWF STATUS ;STATUS,

MOVFW FSR_TEMP ;

MOVWF FSR ;FSR,

MOVFW W_TEMP ;W.

RETFIE ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ.

;============================

; 7. ВКЛЮЧЕНИЕ НЕСУЩЕЙ.

;============================

S1

BTFSC FLAG,1 ;ЕСЛИ НЕСУЩАЯ БЫЛА ВКЛЮЧЕНА,