Курсовая работа: Автомобильная сигнализация
Курсовая работа: Автомобильная сигнализация
Министерство
образования РФ
Уральский
государственный технический университет
Кафедра РЭИС
Пояснительная записка
к курсовой
работе
автомобильная
сигнализация
По предмету
«Цифровые устройства и микропроцессоры»
Екатеринбург 2005
Задание на проектирование
В данной курсовой работе
предлагается разработать авто сигнализацию на микроконтроллере КР1816ВЕ51.
Основные требования к системе:
Система
должна обрабатывать показания следующих датчиков: капота, багажника, дверей и
двух уровневого датчика удара (сильного и слабого ударов), так же система
должна выполнять блокировку зажигания при включении на охрану и содержать
устройство сигнализации (сирену). Авто сигнализация должна работать в двух
режимах. Первый режим – полная постановка на охрану с опросом всех датчиков,
при втором режиме датчики удара и багажника игнорируются, т. е. можно без
проблем открыть багажник, не включив сигнализацию, потом по желанию вернуться в
первый режим.
Кроме выше указанных
обязательных функций системы разработчику предлагается усложнить систему по
своему усмотрению. Функции, предложенные разработчиком, указаны ниже.
Оглавление
Задание
на проектирование
Введение
Функции
и принцип работы устройства
Разработка
схемы устройства
Описание
прикладной программы
Заключение
Библиографический
список
Приложение
1. Схема электрическая принципиальная
Приложение
2. Блок-схема основной программы
Приложение
3. Блок-схемы подпрограмм
Приложение
4. Программа устройства на языке Assembler
Приложение
5. Листинг программы отлаженной в ProView 32
Введение
Некоторое время назад в
микропроцессорной технике выделился самостоятельный класс интегральных схем –
микроконтроллеры, которые предназначены для применения в приборах различного
назначения.
Использование
микроконтроллеров в различных изделиях не только приводит к улучшению всех
показателей (стоимость, надежность, потребляемая мощность, габариты) и
позволяет многократно сократить сроки разработки и придаёт изделиям
принципиально новые потребительские качества, такие как расширенные
функциональные возможности и д.р.
Однокристальные
(однокорпусные) микроконтроллеры представляют собой приборы, конструктивно
выполненные в виде БИС и включающие в себя следующие составные части:
микропроцессор, память программ и память данных, а также программируемые
интерфейсные схемы для связи с внешней средой.
Цель курсовой работы
состоит в развитии навыков проектирования специализированных цифровых
радиоэлектронных систем с применением микропроцессорных комплектов. Изучить
архитектуру однокристальных микроконтроллеров популярного семейства INTEL8051, а также структуру одного из
клонов семейства – микроконтроллера КМ1816ВЕ51, его функциональные узлы и
особенности их работы. Изучение основ языка Ассемблер и интегрированной среды ProView фирмы Franklin Software Inc., которая предназначена для разработки программного
обеспечения микроконтроллеров этого семейства.
Функции и принцип работы устройства
Данная
система будет содержать пять двоичных датчиков: сильного и слабого удара,
капота, багажника и дверей. Постановка на охрану осуществляется с радиопульта,
имеющего две кнопки: первая кнопка осуществляет постановку/снятие системы с
охраны и выключение сирены при срабатывании системы (последняя функция
осуществляется следующим образом: нажатие кнопки выключает сигнализацию, а
автомобиль остаётся на охране, для снятия с которой надо еще раз нажать кнопку
1); вторая кнопка осуществляет постановку в режим 2 (датчики багажника и оба
датчика удара игнорируются, блокировка багажника снимается) или снятие с него,
в режиме 2 выключение сирены так же осуществляется с помощью кнопки 1.
При
включении охраны автоматически происходит блокировка стартера, закрытие дверей
и багажника, но если багажник, капот или одна из дверей открыты, то постановки
на охрану не происходит, сирена дает 3 характерных звуковых сигнала (сигналы
подаются примерно через 0.2 секунды, с таким же интервалом происходят все
сигналы сирены и габаритами, описанные ниже), а микроконтроллер переходит в
ожидание включения системы. Если все закрыто, то система переходит в режим
охраны, символизируя об этом 1 сигналом сирены и габаритами.
При
срабатывании датчика слабого удара система дает 5 сигналов сирены. При
срабатывание любого из других датчиков происходит включение сирены,
сопровождающееся миганием габаритов в течении одной минуты. Отключение сирены
можно произвести с пульта кнопкой 1 или с помощью сигнала с Valet’а,
который установлен в салоне автомобиля (Valet
должен располагаться в потайном месте, что бы взломщики не могли его
обнаружить, и возможно может быть защищен паролем, но это уже отдельное
устройство, не относящееся к данному курсовому, поэтому мы будем учитывать
только сигнал приходящий с него). Если датчик капота, багажника или дверей
срабатывает больше пяти раз подряд (скажем, дверь была открыта), то после 5
циклов сирены по 1 минуте, система встает на охрану игнорируя цепь (датчик),
которая вызвала срабатывание.
В
салоне автомобиля устанавливается светодиод, который при нормальной работе
системы мигает приблизительно с интервалом в 1 секунду, а при срабатывании
любого датчика, кроме датчика слабого удара, включается на постоянное свечение,
символизируя нам, что было вторжение. Так же при выключении системы о вторжении
нам говорят 4 сигнала сирены и 4 габаритами, а если не было вторжения, то при
выключении будет 2 сигнала сирены и 2 габаритами.
При
включении режима 2 система оповещает нас 3 сигналами сирены и 3 габаритами, а
система автомобиль остается на полной охране.
При
выключении системы происходит разблокировка стартера, дверей и багажника.
Разработка схемы устройства
Схема
микроконтроллера электрическая принципиальная представлена в приложении 1. Она
содержит RC-цепь для формирования
сигнала сброса при включении питания и кварцевый резонатор 12 МГц(ZQ).
На вход ЕА подается уровень 1 (+5В).
Связь
микроконтроллера с датчиками и исполнительными механизмами обеспечивается через
порты (Р0 и Р2), а незадействованные порты могут быть в последствии
использованы для расширения функциональных возможностей системы.
Включение/выключение
системы, а так же постановка и снятие режима 2, отключение сирены
осуществляется с пульта, сигналы с которого принимаются антенной и в виде
двоичного кода поступают на входы порта Р0 (Р0.0 и Р0.1):
Таблица
1
P0.0 |
P0.1 |
Режим системы |
0 |
0 |
Режим 2 |
0 |
1 |
Режим 1 |
1 |
0 |
Выключение сирены в режиме 2 или
снятие с охраны |
1 |
1 |
Выключение сирены в режиме 1 или
снятие с охраны |
Расшифровка
таблицы: сигнал 0 на Р0.0 включает систему, до этого Р0.0=1 (система не
включена). При включении сирены её можно выключить если нажать на кнопку 1, в
результате чего антенна пошлет сигнал Р0.0=1, который сразу после выключения
сирены программно сбрасывается Р0.0=0. Аналогично с режимом 2 и Р0.1. Кнопки 1
и 2 на пульте инвертируют сигнал соответственно на входах Р0.0 и Р0.1 микроконтроллера.
Исполнительные
механизмы подключены к выходам порта Р0 (Р0.0÷Р0.6). Из-за низкой
нагрузочной способности выходов микропроцессора для всех исполнительных
механизмов потребуются усилители мощности.
Датчики
в системе подключены ко входам порта Р2 (Р2.2÷Р2.6). Пример подключения
датчика представлен на рис.1. О срабатывании датчика сообщает низкий уровень на
входе порта.
Рис.1. Подключение
двоичного датчика
Описание прикладной программы
Блок-схема
алгоритма программы была составлена исходя из функций и принципа действия
охранной системы, изложенных выше. Текст программы составлен в точности,
основываясь на алгоритме в блок-схеме. Программа оперирует с портами Р0 и Р2,
регистры R0÷R4
используются в подпрограммах задержки, регистры R5÷R7
являются счетчиками числа срабатывания датчиков капота, багажника и дверей, что
бы потом можно было их игнорировать. В программе создается байтовая константа FLAGS
внутри сегмента перемещаемого внутрь битовой адресуемой памяти данных. В этой
константе используются пять битов, каждый из которых является флагом,
использующимся в программе: флаги игнорирования датчиков (капота, багажника и
дверей), флаг режима 2 и флаг попытки вторжения. Подпрограммы, начинающиеся с
метки SIGNAL** производят
сигналы сиреной (число сигналов = первой звездочке) и габаритами (число
сигналов = второй звездочке).
Заключение
В ходе выполнения данной
курсовой работы была разработана автомобильная охранная система на
однокристальном микроконтроллере КР1816ВЕ51. В процессе выполнения курсовой
работы система была немного усовершенствована по сравнению с техническим
заданием, был разработан алгоритм её работы и составлена блок-схема рабочей
программы. Текст программы мы составили на языке assembler и провели её тестирование и отладку
в интегрированной среде ProView
фирмы Franklin Software Inc.
Библиографический список
1.
Микропроцессоры.
В 3 кн. Кн. 1. Архитектура и проектирование микро-ЭВМ. Организация
вычислительных процессов: Учебник для втузов / П.В. Нестеров, В.Ф. Шаньгин,
В.Л. Горбунов и др.; Под ред. Л.Н. Преснухина. М.: Высшая школа, 1986. 495 с.
2.
Ваша
первая программа для микроконтроллера Intel 8051: Методические указания к
лабораторной работе №1 по курсу “Микропроцессоры и вычислительные устройства”/
Добряк В.А. Екатеринбург: УГТУ, 1999. 32 с.
3.
Система команд
микроконтроллера Intel 8051: Методические указания к лабораторной работе №2 по
курсу “Цифровые устройства и микропроцессоры”/Добряк В.А., Рагозин В.К.
Екатеринбург: УГТУ, 1999. 32 с.
4.
Программирование
микроконтроллера Intel 8051 на языке ассемблера: Методические указания к
лабораторной работе №3 по курсу “ Цифровые устройства и микропроцессоры”/
Добряк В.А., Рагозин В.К.. Екатеринбург: УГТУ, 1999. 26 с.
5.
Взаимодействие
микроконтроллера Intel 8051 с
объектами управления: Методические указания к лабораторной работе №4 по курсу “
Цифровые устройства и микропроцессоры”/Добряк. В.А. Екатеринбург: Изд-во УГТУ,
2001. 24 с.
Приложение 1. Схема электрическая принципиальная
Приложение. Программа устройства на языке Assembler
BEGIN: JMP START ;
переход к программе START
USING 0 ;
выбор 0 банка регистров
ORG 30H ; директива размещения
программы с адреса ; 30H
SEG_FLAG SEGMENT
DATA BITADDRESSABLE ; объявляем сегмент перемещаемый ; внутрь битовой
адресуемой памяти ; данных
SEG_PROG SEGMENT CODE ;
объявляем сегмент перемещаемый в ; пространство кода программы
OVER_K SET R5 ;
назначаем символические
OVER_D SET R6 ;
имена регистрам
OVER_B SET R7 ; R5,R6,R7
RSEG SEG_FLAG ;
выбор сегмента
FLAGS: DS 1
; однобайтовая переменная (FLAGS)
FDOOR BIT FLAGS.0 ;
флаг игнорирования (да(1) / нет(0)) датчика дверей
FBOX BIT FLAGS.1 ; -------------------- багажника
FKAPOT BIT FLAGS.2 ; ---------------------------------- капота
FMODE2 BIT FLAGS.3 ;
флаг режима 2 (да(1)/нет(0))
FALARM BIT FLAGS.4 ;
флаг попытки вторжения (да(1)/нет(0))
RSEG SEG_PROG ;
выбор сегмента
START: ;
установка начальных значений параметров
MOV FLAGS,#00H ;
сброс флагов
MOV P0,#00H ;
установка режимов портов
MOV P2,#0FFH ;
MOV R0,#00H ;
обнуление регистров
MOV R1,#00H ;
MOV R2,#00H ;
MOV R3,#00H ;
MOV R4,#00H ;
MOV OVER_B,#00H ;
MOV OVER_K,#00H ;
MOV OVER_D,#00H ;
CLR A ;
обнуление аккумулятора
WAIT: JB P2.0,WAIT ;
ждем сигнала постановки на охрану
JNB P2.4,SIGNAL3 ;
переходим на метку SIGNAL3,
JNB P2.5,SIGNAL3 ;
если открыты двери, капот
JNB P2.6,SIGNAL3 ;
или багажник
JMP BLOCKING ;
переход к п/п блокировки
SIGNAL3: MOV R0,#3 ; программа
LOOP3: CALL SIGNAL1 ;
реализации трех
CALL DELAY ;
сигналов сиреной
DJNZ R0,LOOP3 ;
с последующим переходом
JMP BEGIN ;
в начало
SIGNAL5: MOV R0,#5 ; программа
LOOP5: CALL SIGNAL1 ; реализации пяти
CALL DELAY ; сигналов сиреной
DJNZ R0,LOOP5 ; с последующим переходом
JMP GAUGE_L ; к опросу датчиков GAUGE_L
BLOCKING: SETB P0.0 ; блокировка стартера
SETB P0.1 ;
закрытие дверей
SETB P0.2 ;
закрытие багажника
CALL SIGNAL11 ;
сигнал сирены и габаритов - СИСТЕМА НА ОХРАНЕ!
GAUGE_L: JNB P2.2,SIGNAL5 ;
5 сигналов сирены, если сработал датчик ; слабого удара
GAUGE_S: JNB P2.3,LABELB ;
переход на метку LABELB, если ; сработал датчик сильного удара
IGN_BOX: JB FBOX,IGN_KAPOT
; переход к IGN_KAPOT, если датчик ; багажника игнорируется
BOX: JB P2.5,IGN_KAPOT ; переход к IGN_KAPOT, если датчик ; багажника не срабатывает
INC OVER_B;
если датчик багажника сработал, то +1 к ; константе хранящей число срабатываний
; этого датчика
JMP LABELB;
переход на метку LABELB, включающую ; сирену
IGN_KAPOT: JB FKAPOT,IGN_DOOR ; 8 ниже следующих строк выполняют ;
аналогичную функцию,
KAPOT: JB P2.4,IGN_DOOR ; как при опросе датчика
багажника (выше),
INC OVER_K;
только для датчиков капота и дверей!
JMP LABELB;
IGN_DOOR: JB FDOOR,CHECK_ALARM ;
DOOR: JB P2.6,CHECK_ALARM ;
INC OVER_D;
JMP LABELB;
CHECK_ALARM: JB FALARM,CHECK_MODE2 ; проверка на вторжение, если да, то ;
переходим на метку CHECK_MODE2
LIGHT_DIOD: MOV R4,#5 ; программа
обеспечивающая мигание светодиода
D_CYCLE: CALL DELAY;
мигание светодиода примерно
DJNZ R4,D_CYCLE ;
с интервалом в 1 секунду
CPL P0.5 ;
CHECK_MODE2: JNB P2.1,LABELA ;
если происходит постановка в режим 2, то ; переходим на метку LABELA
CLR FMODE2 ;
сброс флага режима 2
MOV OVER_B,#00H ;
и констант
MOV OVER_K,#00H ;
MOV OVER_D,#00H ;
SETB P0.2; закрытие багажника на случай если
включался ; режим 2
JNB P2.0,GAUGE_L
; если система не выключается, то переход к ; опросу датчиков
JNB FALARM,EXIT ;
если не было вторжения в процессе работы, ; то переход на EXIT
CALL SIGNAL44 ;
если было вторжение, то 4 сигнала сирены и ; габаритов
ANTIBLOKING: CLR P0.0 ; разблокирование стартера
CLR P0.1 ; открытие дверей
CLR P0.2 ; открытие багажника
JMP BEGIN ; переход в начало
LABELA: JB FMODE2,IGN_KAPOT ;
если режим 2 уже установлен, то переход ; на IGN_KAPOT, если нет, то:
SETB FMODE2 ;
уст. флага режима 2
CALL SIGNAL22 ;
2 сигнала сирены и габаритов при постановке в ; режим 2
CALL DELAY;
CALL SIGNAL11 ;
CLR P0.2 ;
открытие багажника
JMP IGN_KAPOT ; переход к проверке датчиков
LABELB: SETB P0.3 ; включение сирены
MOV R0,#3 ; загрузка регистров для
LOOP1: MOV R4,#100 ; цикла
в 60 секунд
LOOP0: JB P2.0,STOP_PULT ;
переход если сирена отключается с пульта
JB P0.6,STOP_VALET ;
переход если сирена отключается с Valet`а
CALL DELAY ;
задержка 0.2 секунды
CPL P0.4 ;
мигание габаритов
DJNZ R4,LOOP0 ;
внутренний цикл
DJNZ R0,LOOP1 ;
внешний цикл
JMP SHUTDOWN ;
пропускаем 2 строки
STOP_PULT: CLR P2.0 ; сброс
отключения с пульта
STOP_VALET: CLR P0.6 ;
сброс отключения с Valet`а
SHUTDOWN: CLR P0.3 ;
выключение сирены
CLR P0.4 ;
выключение габаритов
CJNE OVER_B,#5,SET_FKAPOT ;
установка флагов для
SETB FBOX ;
игнорирования датчиков
SET_FKAPOT: CJNE OVER_K,#5,SET_FDOOR
; если воздействие было
SETB FKAPOT ; 5 раз
SET_FDOOR: CJNE OVER_D,#5,SET_FALARM ;
SETB FDOOR ;
SET_FALARM: SETB FALARM ; запомнили БЫЛА ПОПЫТКА ВТОРЖЕНИЯ!!!
SETB P0.5 ; включаем
светодиод на постоянное свечение
JNB P2.1,TO_IGN_KAPOT ; переход если режим 2 на
TO_IGN_KAPOT
JMP GAUGE_S ;
переход к опросу датчиков GAUGE_S
TO_IGN_KAPOT: JMP IGN_KAPOT ; переход на
IGN_KAPOT
SIGNAL11: SETB P0.3 ; вкл. сирены
SETB P0.4 ; вкл. габаритов
CALL DELAY;
задержка 0.2 секунды
CLR P0.3 ;
выкл. сирены
CLR P0.4 ;
выкл. габаритов
RET ;
возврат
SIGNAL22: CALL SIGNAL11 ;
1 сигнал сирены и габаритами
CALL DELAY ;
задержка 0.2 секунды
CALL SIGNAL11 ;
1 сигнал сирены и габаритами
RET ;
возврат
SIGNAL44: CALL SIGNAL22 ;
2 сигнала сирены и габаритами
CALL DELAY ;
задерка 0.2 секунды
CALL SIGNAL22 ;
2 сигнала сирены и габаритами
RET ;
возврат
EXIT: CALL SIGNAL22 ;
2 сигнала сирены и габаритами
JMP BEGIN ;
переход в начало
SIGNAL1: SETB P0.3 ; вкл. сирены
CALL DELAY ; задержка 0.2 секунды
CLR P0.3 ;
выкл. сирены
RET ;
возврат
DELAY: MOV R3,#2 ;
задержка приблизительно 0.2 секунды
CYCLE2: MOV R2,#200 ; с помощь
вложенных циклов
CYCLE0: MOV R1,#248 ;
CYCLE1: DJNZ R1,CYCLE1 ;
NOP ;
DJNZ R2,CYCLE0 ;
DJNZ R3,CYCLE2 ;
RET ; возвраты
END ; конец
|