Разработка алгоритма работы мк
На начальном этапе организован процесс ожидания нажатия кнопки.
При нажатии кнопки переход в режим тревожной сигнализации.
Алгоритм работы сигнализатора
нет
Нет
да
Рис. 2.
Разработка блок-схемы алгоритма «SIGNAL»
Детализированная блок схема алгоритма «SIGNAL» приведена на рис.2.1она заключается в установке трехциклов, состоящих из включения / выключения на 1 сек сигнального светодиода с поочередной подачей звукового сигнала частотой 1кГц.
Блок-схема алгоритма «SIGNAL»
Счетчик
повторов=3
Светодиод
вкл
Пауза
1 сек
Светодиод
выкл
Звуковой сигнал
0.5 сек
Задержка
0.5 сек
нет
Сч=0
Рис.2.1.
Из условия формирования светового сигнала следует иметь подпрограмму задержки на 1мс
Последовательное исполнение включения и выключениясветодиода с одновременным включением звукового сигнала составит 2 сек. Следовательно, количество повторов такой комбинации три.
ТЕКСТ ИСХОДНОЙ ПРОГРАММЫ
После того, как мы разработали алгоритм работы МК, можно приступать собственно к написанию программы.
;=========================================
; SIGNALIZATION - Охранная сигнализация
;=========================================
; Кнопка S1 подключена к РОRТB<0>
;пьезоизлучатель к РОRТВ<1>
;светодиод к РОRТВ<2>
; определение рабочих регистров-----------------------------
CNT EQU 0CH; счетчик импульсного сигнала
CNT_2 EQU 20H;счетчик повторов сигнала
GOTO START
;********************************************
;ПОДПРОГРАММЫ
;********************************************
;задержка 10 мс------------------------------
DELAY_10
NOP
RETURN
;задержка 500 мкс----------------------------
DELAY
MOVLW .165
MOVWF CNT
LOOP
DECFSZ CNT,F
GOTO LOOP
RETURN
;Сигнализация -реакция на нажатие S1---------
SIGNAL
MOVLW .3;счетчик повторов
MOVWF 20H; сигнала
REPITE
BSF PORTB,2; зажечьсветодиод
CALL DELAY ; на 500 мкс
CALL DELAY ; на 500 мкс
BCF PORTB,2; погаситьсветодиод
BSF PORTB,1; импульс
CALL DELAY ; длительность 500 мкс
BCF PORTB,1; пауза
CALL DELAY; длительность 500 мкс
DECFSZ 20H,F; повторить
GOTO REPITE ; 3 раза
RETURN;
;***********************************************
;ОСНОВНАЯ ПРОГРАММА
;***********************************************
;инициализация--------------------------------
START
BSF STATUS,RP0;page 1
MOVLW B'00001'; RB0 - вход
MOVWFTRISB; остальные - -выходы
BCF STATUS,RP0; page 0
; Опрос_порта--------------------------------
BEGIN
BTFSC PORTB,0; есликнопка S1 нажата (=0),
GOTO ON_1; то обработать нажатие
GOTO BEGIN;иначе к опросу порта
;Обработка нажатия кнопки 1------------------
ON_1
CALL DELAY_10; устранение дребезга контактов
BTFSS PORTB,0; если кнопка 1 нажата (=1),
GOTO BEGIN; иначе к началу
CALL SIGNAL; товыполнить SIGNAL
; ожидание освобождения кнопки 1-------------
OFF_1
BTFSC PORTB,0; если кнопка 1 освобождена (=0),
GOTO OFF_1; ждать освобождения
GOTO BEGIN; то к опросу порта
; конецвсемкомандам-----------------------
END
При нажатии кнопки начинает выполняться подпрограмма сигнализации SIGNAL: формирование перемежающегося светового и звукового сигнала частотой 1 кГц и длительностью по 1сек в течение 6 сек.
Алгоритм ее работы представлен на рис.2. По включению контроллера программа выставит единицу на линию, к которой подключен светодиод, подождет 1сек, выставит нуль, затем выдаст импульсный сигнал на 0.5 сек на линию, к которой подключен пьезоизлучатель, а затем повторит все заново три раза.
Светодиод подключен к линии RB2 (через резистор), зажигать его будем единицей, а пьезоизлучатель - к линии RB1, подавать на него будем импульсный сигнал.
1. Программа формирования импульсного сигнала MULTIприведена в лаб.№4. В ней необходимо изменить лишь частоту следования импульсов.
Период следования Т = 1/F = 1/2*10E3 Гц = 500 мкс
Для формирования импульса и паузы нужна задержка 500
Используем для расчета загрузки счетчиков циклCNT, формирующих импульс и паузу формулу
Т = 4+3Х, мкс
Ти = (500 – 4)/3 = 165
2. Для формирования времени свечения светодиода 1с используем подпрограмму задержки на 500мкс программы MULTI , повторив ее два раза.
3. Для формирования повторов (3) сигнала сигнализации введем счетчик повторов CNT_2
ПРОВЕРКА РАБОТЫ ПРОГРАММЫ
Припроверке работы прoграммы использовался симулятор PICSimulatorIDE.
1. Текст программы был загружен в окно редактора исходного кода Assembler
2. После устранения синтаксических ошибок был создан исполнительный код программы – Assembler&Load
3. В программе был обнаружен и устранен ряд программных ошибок. Дляэтогоиспользовалисьокна [MicrocotrollerView], [Break Point Manager], [Oscilloscope].
4. Состояние окон рис.4.1 показывает работающую версию программы.
ЗАКЛЮЧЕНИЕ
В результате работы над заданием на тему Разработка сигнализации на PIC контроллеребыла разработана, отлажена ипроверена в симулятореPICSimulatorIDE программа охранной сигнализации.
Результат работы программы полностью соответствует заданию на работу.
Вывод: задание выполнено полностью.