Разработка алгоритма работы мк

На начальном этапе организован процесс ожидания нажатия кнопки.

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

Алгоритм работы сигнализатора

разработка алгоритма работы мк - student2.ru

нет

Нет

да

Рис. 2.

Разработка блок-схемы алгоритма «SIGNAL»

Детализированная блок схема алгоритма «SIGNAL» приведена на рис.2.1она заключается в установке трехциклов, состоящих из включения / выключения на 1 сек сигнального светодиода с поочередной подачей звукового сигнала частотой 1кГц.

Блок-схема алгоритма «SIGNAL»

 
  разработка алгоритма работы мк - student2.ru

Счетчик разработка алгоритма работы мк - student2.ru

разработка алгоритма работы мк - student2.ru повторов=3

разработка алгоритма работы мк - student2.ru

Светодиод

вкл

 
  разработка алгоритма работы мк - student2.ru

разработка алгоритма работы мк - student2.ru Пауза

1 сек

 
  разработка алгоритма работы мк - student2.ru

разработка алгоритма работы мк - student2.ru разработка алгоритма работы мк - student2.ru

Светодиод

выкл

 
  разработка алгоритма работы мк - student2.ru

разработка алгоритма работы мк - student2.ru Звуковой сигнал

0.5 сек

       
    разработка алгоритма работы мк - student2.ru
 
  разработка алгоритма работы мк - student2.ru

разработка алгоритма работы мк - student2.ru Задержка
0.5 сек

нет

разработка алгоритма работы мк - student2.ru Сч=0

 
  разработка алгоритма работы мк - student2.ru

Рис.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 показывает работающую версию программы.

разработка алгоритма работы мк - student2.ru

ЗАКЛЮЧЕНИЕ

В результате работы над заданием на тему Разработка сигнализации на PIC контроллеребыла разработана, отлажена ипроверена в симулятореPICSimulatorIDE программа охранной сигнализации.

Результат работы программы полностью соответствует заданию на работу.

Вывод: задание выполнено полностью.

Наши рекомендации