Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГЗ ВТ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
570.68 Кб
Скачать
    1. Разработка блок-схемы алгоритма «signal»

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

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

Счетчик

повторов=3

Светодиод

вкл

Пауза

1 сек

Светодиод

выкл

Звуковой сигнал

0.5 сек

Задержка 0.5 сек

нет

Сч=0

Рис.2.1.

Из условия формирования светового сигнала следует иметь подпрограмму задержки на 1 мс

Последовательное исполнение включения и выключения светодиода с одновременным включением звукового сигнала составит 2 сек. Следовательно, количество повторов такой комбинации три.

3.Текст исходной программы

После того, как мы разработали алгоритм работы МК, можно приступать собственно к написанию программы.

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

; 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 - вход

MOVWF TRISB ; остальные - -выходы

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