
- •Расчетно-графическое задание
- •Разработка сигнализации на pic контроллере
- •Описание работы принципиальной схемы.
- •Разработка блок-схемы алгоритма «signal»
- •3.Текст исходной программы
- •4.0 Проверка работы программы
- •Заключение
- •Список используемых источников
- •1)Микроконтроллеры? Это же просто! Том 1
- •2)Микроконтроллеры? Это же просто! Том 2
- •3) Микроконтроллеры? Это же просто! Том 3
- •4) Сайт http://ru.Wikipedia.Org/wiki/%d0%9c%d0%b8%d0%ba%d1%80%d0%be%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d0%bb%d0%b5%d1%80
- •5) Устройство микроконтроллера
Разработка блок-схемы алгоритма «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