5. Описание функциональных узлов МПС и алгоритма их взаимодействия
Описание функциональных узлов было описано в пункте разработки алгоритма устройства, поэтому не будем более подробно останавливаться на разборе, т.к. алгоритм взаимодействия будет описан еще при разработке принципиальной схемы и выборе элементарной базы.
В Приложении Б приведена программа файла модулятора, а в Приложении В файла демодулятора.
6. Описание выбора элементной базы и работы принципиальной схемы
Принципиальная схема модулятора показана на рис.10 (Приложение Г). На выходе RA3 появляются импульсы модуляции положительной полярности. На выходе RA4 появляется единичный потенциал включения несущей. Все остальные входы микроконтроллера задействованы охранными датчиками. Охранное положение датчиков нормально замкнутое. Программно ко всем входам порта «В» подключены подтягивающие резисторы, поэтому при размыкании датчиков программа обнаружит единичный потенциал на разомкнутом датчике. Входы порта «А» программно не подтягиваются к плюсовому напряжению питания, поэтому установлены резисторы Rl-R3. При подключении вывода RA4 к схеме передатчика необходимо иметь в виду, что этот выход имеет открытый сток, поэтому, в зависимости от схемы передатчика, может потребоваться нагрузочный резистор.
Схема демодулятора показана на рис. 11 (Приложение Д). Вход RB0 подключается к выходу компаратора приемника. Выход компаратора должен быть с уровнями ТТЛ. Остальные выводы порта «В» задействованы под выход сегментов индикатора.
К выходу RA4 подключается зуммер НСМ120бх. Кнопка SA1 включает индикатор. Резистор R1 необходимо подобрать по приемлемой яркости для свечения 3-4 сегментов. Тогда один сегмент будет светиться ярче, а восемь сегментов будут светиться слабее.
Перед подключением пожарной сигнализации к приемнику и передатчику желательно проверить ее на совместную работу. Для этого необходимо выход несущей и модуляции с модулятора подать на входы логического элемента микросхемы К561ЛА7 и, инвертировав сигнал еще одним элементом, подать на вход демодулятора. При проверке индикации число 10 на индикаторе высвечивается нижней чертой (сегмент d), а число 11 - средней чертой (сегмент g).
Все временные характеристики приведены для случая использования кварцевого резонатора на частоту 32768 Гц.
Принципиальные схемы модулятора и демодулятора выполнены в САПР Accel Eda (Рис. 8 и Рис.9).
Рис. 8 - Принципиальная схема модулятора пожарной сигнализации в Accel EDA.
Принципиальная схема модулятора пожарной сигнализации приведена в Приложении Г.
Рис. 9 - Принципиальная схема демодулятора пожарной сигнализации в Accel EDA
Принципиальная схема демодулятора пожарной сигнализации приведена в Приложении Д.
Спецификация компонентов модулятора приведена в Приложении Ж.
Спецификация компонентов демодулятора приведена в Приложении К.
ЗАКЛЮЧЕНИЕ
В данном курсовом проекте разработано устройство - пожарная сигнализация на 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А компании Microchip Technology Incorporated. ООО «Микро-Чип», Москва, 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 ;АНАЛОГИЧНО ПЕРВОМУ.
MOVWF SC ;
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 ;ЕСЛИ НЕСУЩАЯ БЫЛА ВКЛЮЧЕНА,
GOTO S10 ;ТО ИДЕМ ВЫКЛЮЧАТЬ.
BSF PORTA,4 ;ВКЛЮЧИМ НЕСУЩУЮ,
BSF FLAG,1 ;ПОСТАВИМ ФЛАГ ВКЛЮЧЕНИЯ.
BTFSC FLAG,0 ;ЕСЛИ НЕСУЩАЯ ВЫКЛЮЧАЛАСЬ ПО ДАТЧИКУ,
RETURN ;ИМПУЛЬС НЕ ФОРМИРУЕТСЯ.
CALL ID2O ;ПАУЗА, РАВНАЯ НУЛЮ.
BSF PORTA,3 ;ВКЛЮЧИМ ВЫХОД.
CALL ID21 ;ОТРАБОТАЕМ ПАУЗУ, РАВНУЮ ДЛИТЕЛЬНОСТИ ЕДИНИЦЫ.
BCF PORTA,3 ;ВЫКЛЮЧИМ ВЫХОД.
CALL ID2O ;ПАУЗА, РАВНАЯ НУЛЮ.
BCF PORTA,4 ;ВЫКЛЮЧИМ НЕСУЩУЮ.
RETURN
S10
BCF FLAG,1 ;СБРОСИМ ФЛАГ ВКЛЮЧЕНИЯ НЕСУЩЕЙ.
BTFSC FLAG,0 ;ЕСЛИ НЕСУЩАЯ ВЫКЛЮЧАЛАСЬ ПО ДАТЧИКУ,
RETURN ;ИМПУЛЬС НЕ ФОРМИРУЕТСЯ.
BSF PORTA,4 ;ВКЛЮЧИМ НЕСУЩУЮ,
CALL ID2O ;ПАУЗА, РАВНАЯ НУЛЮ.
BSF PORTA,3 ;ВКЛЮЧИМ ВЫХОД.
CALL ID21 ;ОТРАБОТАЕМ ПАУЗУ, РАВНУЮ ДЛИТЕЛЬНОСТИ ЕДИНИЦЫ.
BCF PORTA,3 ;ВЫКЛЮЧИМ ВЫХОД.
CALL ID2O ;ПАУЗА, РАВНАЯ НУЛЮ.
BCF PORTA,4 ;ВЫКЛЮЧИМ НЕСУЩУЮ.
RETURN
;======================
; 2. ИНИЦИАЛИЗАЦИЯ.
;======================
INIT
BSF STATUS,RP0 ;ПЕРЕХОДИМ В БАНК 1.
MOVLW B'00000100';ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕРОМ, К=32...100,
MOVWF OPTION_REG^80H;ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ ВКЛЮЧЕНЫ.
MOVLW B'10100000' ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ = ПРИ ПЕРЕПОЛНЕНИИ ТАЙМЕРА.
MOVWF INTCON ;
MOVLW B'00000111' ;RA3,RA4-НА ВЫХОД, RA0-RA2-ВХОД.
MOVWF TRISA^80H
MOVLW B'11111111' ;RB0-RB7-НА ВХОД.
MOVWF TRISB^80H
BCF STATUS,RP0 ;ПЕРЕХОДИМ В БАНК 0.
CLRF TMR0 ;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛИВАЕМ
CLRF FLAG
CLRF PORTA
CLRF COU
GOTO KEY ;ИДЕМ НА ОПРОС ДАТЧИКОВ.
;==============================================
END
;
Приложение В
ПОЖАРНАЯ СИГНАЛИЗАЦИЯ НА 11 ДАТЧИКОВ,
; ДЕШИФРАТОР ПРИЕМНИКА.
;
; РАЗРАБОТАЛ ЧЕБОТАРЕВ А,А,
; ДЛЯ СВОБОДНОГО ИСПОЛЬЗОВАНИЯ.
; СЕВЕРОДОНЕЦК.
;
; ПРОГРАММА = OXPANAPM.ASM
; ВЕРСИЯ: 12-04-03.
; АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, ВЕРСИЯ: 5.61.00.
;
#include p16f84a.inc
__CONFIG 3FF0H
;======================================
; ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАСТОТОЙ 32768 ГЦ.
; RB0 - ВХОД.
; RA4 - ВЫХОД СИГНАЛА ТРЕВОГИ.
; RB1-RB7 - ВЫХОД СЕГМЕНТОВ.
;======================================
; СПЕЦ РЕГИСТРЫ.
;================
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 ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ.
;=================================
; ОПРЕДЕЛЕНИЕ РАБОЧИХ РЕГИСТРОВ.
;=================================
SCN EQU 0CH ;СЧЕТЧИК ИМПУЛЬСОВ.
SMC EQU 0DH ;СЧЕТЧИК МИЛЛИСЕКУНД.
SIN EQU 0EH ;РЕГИСТР ИНДИКАЦИИ.
;====================
; ВРЕМЕННЫЕ РЕГИСТРЫ.
;====================
W_TEMP EQU 0FH ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА W ПРИ ПРЕРЫВАНИИ.
STATUS_TEMP EQU 10H ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА STATUS ПРИ ПРЕРЫВАНИИ.
FSR_TEMP EQU 11H ;ВРЕМЕННЫЙ ДЛЯ FSR.
;=========================================
; ОПРЕДЕЛЕНИЕ БИТОВ РЕГИСТРА FLAG.
;=========================================
FLAG EQU 12H
;
; 0-> ФЛАГ ВКЛЮЧЕНИЯ ПЕРЕПОЛНЕНИЯ.
; 1-> ФЛАГ ВЫПОЛНЕННОЙ ПЕРЕЗАПИСИ.
;==================
; 1. ПУСК.
;==================
ORG 0
GOTO INIT
ORG 4
GOTO CONST
;==================
; 2. ИНИЦИАЛИЗАЦИЯ.
==================
INIT
BSF STATUS,RP0 ;ПЕРЕХОДИМ В БАНК 1.
MOVLW B'01000001' ;ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ ПОДКЛЮЧЕНЫ, К=4...1.
MOVWF OPTION_REG^80H ;СРАБАТЫВАНИЕ ПО ПЕРЕДНЕМУ ФРОНТУ.
MOVLW B'10110000' ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ = ПРИ ИЗМЕНЕНИИ СИГНАЛА RВ0.
MOVWF INTCON ;
MOVLW B'00000000' ;ВСЕ - НА ВЫХОД.
MOVWF TRISA^80H
MOVLW B'00000001' ; RB1-RB7-НА ВЫХОД, RB0-ВХОД.
MOVWF TRISB^80H
BCF STATUS,RP0 ;ПЕРЕХОДИМ В БАНК 0.
CLRF TMR0 ;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛИВАЕМ
CLRF SCN
CLRF SMC
CLRF SIN
CLRF PORTB
CLRF FLAG
GOTO IND ;ИДЕМ НА ИНДИКАЦИЮ.
;========================================
; 3. ТАБЛИЦА СЕГМЕНТОВ ДЛЯ ОБЩЕГО КАТОДА.
;========================================
SEGDATA ; 7, 6, 5, 4, 3, 2, 1, 0.
ADDWF PCL,F ; G, F, E, D, C, B, A, IN.
; ОБЩИЙ: КАТОД АНОД
RETLW B'00000000' ; B'1111111' СЕГМЕНТЫ ВЫКЛЮЧЕНЫ.
RETLW B'00001100' ; B'1111001' 1
RETLW B'10110110' ; B'0100100' 2
RETLW B'10011110' ; B'0110000' 3
RETLW B'11001100' ; B'0011001' 4
RETLW B'11011010' ; B'0010010' 5
RETLW B'11111010' ; B'0000010' 6
RETLW B'00001110' ; B'1111000' 7
RETLW B'11111110' ; B'0000000' 8
RETLW B'11011110' ; B'0010000' 9
RETLW B'00010000' ; B'1110111' 10
RETLW B'10000000' ; B'0111111' 11
;==============================================
; 4. ПП. ИНДИКАЦИИ.
;==============================================
IND
MOVFW SIN ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ РАЗРЯДА ИНДИКАЦИИ.
CALL SEGDATA ;ОПРЕДЕЛИМ ЗНАЧЕНИЯ СЕГМЕНТОВ.
MOVWF PORTB ;В ВЫХОДНОЙ РЕГИСТР ПОРТА "B" ПЕРЕПИШЕМ ЗНАЧЕНИЯ СЕГМЕНТОВ.
GOTO IND ;ПОВТОРИМ.
;====================================
; 5. СЧЕТЧИК ИМПУЛЬСОВ НОМЕРА ДАТЧИКА.
;====================================
SEC
BTFSS PORTB,0 ;ДЛЯ ИСКЛЮЧЕНИЯ ИМПУЛЬСА ПОМЕХИ.
RETURN ;ИМПУЛЬС КОРОЧЕ 1,34 МС. ОТСЕКАЕМ.
CLRF SMC ;СЧЕТЧИК И ТАЙМЕР СБРАСЫВАЮТСЯ
CLRF TMR0 ;ПРИ КАЖДОМ ИМПУЛЬСЕ.
BTFSS FLAG,0
RETURN
INCF SCN,1 ;ПРИ ЕДИНИЧНОМ ФЛАГЕ СЧИТАЕМ ИМПУЛЬСЫ.
MOVLW.20 ;ЕСЛИ УЖЕ 20 И БОЛЬШЕ,
SUBWF SCN,0 ;
SKPNC
BCF PORTA,4 ;ВКЛЮЧИМ СИГНАЛ.
RETURN
;====================================
; 6. ПЕРЕЗАПИСЬ В РЕГИСТР ИНДИКАЦИИ.
;====================================
SES
MOVFW SCN ;ПЕРЕПИШЕМ ЗНАЧЕНИЯ СЧЕТЧИКА ИМПУЛЬСОВ
MOVWF SIN ;В РЕГИСТР ИНДИКАЦИИ.
MOVLW.12 ;ЕСЛИ УЖЕ 12 И БОЛЬШЕ,
SUBWF SIN,0 ;
SKPNC
CLRF SIN ;ОБНУЛИМ.
MOVLW.20 ;ЕСЛИ УЖЕ 20 И БОЛЬШЕ,
UBWF SCN,0 ;
SKPNC
BCF PORTA,4 ;ВКЛЮЧИМ СИГНАЛ.
CLRF SCN ;ОБНУЛИМ.
RETURN
;======================================================
; 7. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ.
;======================================================
CONST
MOVWF W_TEMP ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ W И
MOVFW STATUS ;STATUS,
MOVWF STATUS_TEMP ;
MOVFW FSR ;FSR.
MOVWF FSR_TEMP ;
BTFSS INTCON,1
GOTO S01 ;ПРИБАВИМ 1 В СЧЕТЧИК.
CALL SEC ;СБРОСИМ ТАЙМЕР ИЛИ УВЕЛИЧИМ СЧЕТЧИК.
RECONST ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ЗНАЧЕНИЙ.
BCF INTCON,2 ;СБРОСИМ ФЛАГ ПО ПЕРЕПОЛНЕНИЮ ТАЙМЕРА.
BCF INTCON,1 ;СБРОСИМ ФЛАГ ПРЕРЫВАНИЯ ПО ВХОДУ RВ0.
MOVFW STATUS_TEMP ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ:
MOVWF STATUS ;STATUS,
MOVFW FSR_TEMP ;
MOVWF FSR ;FSR,
MOVFW W_TEMP ;W.
; CLRF TMR0
RETFIE ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ.
;========================
; 8. СЧЕТЧИК МИЛЛИСЕКУНД.
;========================
S01
INCF SMC,1 ;ЕСЛИ ДЕЛИТЕЛЬ НА 8, ТО БУДЕТ 1 СЕКУНДА.
MOVFW SMC ;
ADDLW -05H ;К=5. ЧТОБЫ ОБНУЛИТЬ
SKPNZ ;СЧЕТЧИК ПОСЛЕ
CALL SES ;АВАРИЙНОГО РЕЖИМА.
MOVFW SMC ;ПЕРЕЗАПИСЬ
ADDLW -07H ;К=7. ЧТОБЫ РАЗРЕШИТЬ ЗАПИСЬ
SKPNZ ;
BCF FLAG,0 ;В АВАРИЙНОМ РЕЖИМЕ.
SKPNZ ;ПОСЛЕ АВАРИЙНОГО РЕЖИМА
BSF PORTA,4 ;ВЫКЛЮЧИМ СИГНАЛ.
MOVFW SMC ;ЕСЛИ ДЕЛИТЕЛЬ НА 9, ТО БУДЕТ БОЛЬШЕ 1 СЕКУНДЫ.
ADDLW -09H ;К=9.
SKPNZ ;ПРИ ПЕРЕПОЛНЕНИИ СЧЕТЧИКА
BCF PORTA,4 ;ВКЛЮЧИМ СИГНАЛ.
SKPNZ
BSF FLAG,0 ;РАЗРЕШИМ СЧЕТ.
SKPNZ
CLRF SMC ;
GOTO RECONST
MOVFW SMC ;
ADDLW -0AH ;К=11.
SKPNZ
CLRF SMC ;ОБНУЛИМ СЧЕТЧИК МИЛЛИСЕКУНД.
GOTO RECONST
;=============================================
END
==============================================
Приложение Г
Приложение Д
Схема принципиальная электрическая
... информации о количестве полученной потребителем или выработанной производителем тепловой энергии, температуре, давлении, объеме (массе) теплоносителя и о времени работы в открытых и закрытых водяных системах теплоснабжения при давлениях до 1,6 МПА (16 кгсм2) и температурах до +150 °С. Область применения - теплоэнергетика, системы коммерческого учета расхода горячей воды и тепловой энергии, ...
... , элементы питания – 2400 мм2) высота пульта управления с учётом ширины корпуса будет равна 10 мм. 7. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ 7.1 Характеристика проекта Проектируемая система представляет собой систему охранной сигнализации автомобилей. В разрабатываемой системе будут реализованы функции, как автономной охраны, так и централизованной. Так, например, она будет в режиме «Тревога» ...
... сигналами времени. Ядро предлагает интерфейс для программирования приложения с целью получения функций в виде отдельных программ. 1.2 Разработка автоматизированной системы управления электроснабжением КС «Ухтинская» 1.2.1 Цель создания АСУ-ЭС Целью разработки является создание интегрированной АСУ ТП, объединяющей в единое целое АСУ электрической и теплотехнической частей электростанции, ...
... процессорной станции осуществлять высоконадежную защиту и эффективный контроль доступа на объект защиты. 2.Выбор и обоснование технических требований Структура технических средств системы защиты и контроля доступа в помещения (СЗКДП) должна представлять собой двухуровневую централизованную систему, работающую в реальном времени. На верхнем уровне — пульт управления (ЭВМ, совместимая с IBM ...
0 комментариев