Міністерство освіти РФ
Уральський державний технічний університет
Кафедра РЕІС
Пояснювальна записка
до курсової роботи
автомобільна сигналізація
По предмета «Цифрові пристрої та мікропроцесори»
Єкатеринбург 2005
Завдання на проектування
У цій роботі пропонується розробити авто сигналізацію на мікроконтролері КР1816ВЕ51. Основні вимоги до системи:
Система повинна обробляти свідчення наступних датчиків: капота, багажника, дверей і двох рівневого датчика удару (сильної і слабкої ударів), так само система повинна виконувати блокування запалювання при включенні на охорону і містити пристрій сигналізації (сирену). Авто сигналізація повинна працювати в двох режимах. Перший режим - повна постановка на охорону з опитуванням всіх датчиків, при другому режимі датчики удару і багажника ігноруються, тобто можна без проблем відкрити багажник, не включивши сигналізацію, потім за бажанням повернутися в перший режим.
Крім вище зазначених обов'язкових функцій системи розробнику пропонується ускладнити систему на свій розсуд. Функції, запропоновані розробником, вказані нижче.
Зміст
Завдання на проектування
Введення
Функції і принцип роботи пристрою
Розробка схеми пристрою
Опис прикладної програми
Висновок
Бібліографічний список
Додаток 1. Схема електрична принципова
Додаток 2. Блок-схема основної програми
Додаток 3. Блок-схеми підпрограм
Додаток 4. Програма пристрою на мові Assembler
Додаток 5. Лістинг програми налагодженої в ProView 32
Введення
Деякий час тому в мікропроцесорній техніці виділився самостійний клас інтегральних схем - мікроконтролери, які призначені для застосування в приладах різного призначення.
Використання мікроконтролерів у різних виробах не тільки приводить до поліпшення всіх показників (вартість, надійність, споживана потужність, габарити) і дозволяє багаторазово скоротити терміни розробки та надає виробам принципово нові споживчі якості, такі як розширені функціональні можливості і д.р.
Однокристальний (однокорпусні) мікроконтролери є прилади, конструктивно виконані у вигляді ВІС і включають в себе наступні складові частини: мікропроцесор, пам'ять програм і пам'ять даних, а також програмовані інтерфейсні схеми для зв'язку із зовнішнім середовищем.
Мета курсової роботи полягає у розвитку навичок проектування спеціалізованих цифрових радіоелектронних систем з застосуванням мікропроцесорних комплектів. Вивчити архітектуру однокристальних мікроконтролерів популярного сімейства INTEL 8051, а також структуру одного з клонів сімейства - мікроконтролера КМ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
P 0.0 | P 0.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, регістри R 0 ÷ R 4 використовуються в підпрограма затримки, регістри R 5 ÷ R 7 є лічильниками числа спрацьовування датчиків капота, багажника і дверей, що б потім можна було їх ігнорувати. У програмі створюється байтове константа FLAGS усередині сегмента переміщуваного всередину бітової адресується пам'яті даних. У цій константі використовуються п'ять бітів, кожен з яких є прапором, що використовується в програмі: прапори ігнорування датчиків (капота, багажника і дверей), прапор режиму 2 і прапор спроби вторгнення. Підпрограми, що починаються з мітки SIGNAL ** виробляють сигнали сиреною (число сигналів = першу зірочці) і габаритами (число сигналів = другій зірочці).
Висновок
У ході виконання даної курсової роботи була розроблена автомобільна охоронна система на однокристальним мікроконтролері КР1816ВЕ51. У процесі виконання курсової роботи система була трохи вдосконалена в порівнянні з технічним завданням, був розроблений алгоритм її роботи і складена блок-схема робочої програми. Текст програми ми склали на мові assembler і провели її тестування і налагодження в інтегрованому середовищі ProView фірми Franklin Software Inc.
Бібліографічний список
Мікропроцесори. У 3 кн. Кн. 1. Архітектура і проектування мікро-ЕОМ. Організація обчислювальних процесів: Підручник для втузів / П.В. Нестеров, В.Ф. Шаньгін, В.Л. Горбунов та ін; Під ред. Л.М. Преснухін. М.: Вища школа, 1986. 495 с.
Ваша перша програма для мікроконтролера Intel 8051: Методичні вказівки до лабораторної роботи № 1 з курсу "Мікропроцесори і обчислювальні пристрої" / Добряк В.О. Єкатеринбург: УГТУ, 1999. 32 с.
Система команд мікроконтролера Intel 8051: Методичні вказівки до лабораторної роботи № 2 з курсу "Цифрові пристрої й мікропроцесори" / Добряк В.О., Рагозін В.К. Єкатеринбург: УГТУ, 1999. 32 с.
Програмування мікроконтролера Intel 8051 на мові асемблера: Методичні вказівки до лабораторної роботи № 3 з курсу "Цифрові пристрої й мікропроцесори" / Добряк В.О., Рагозін В.К.. Єкатеринбург: УГТУ, 1999. 26 с.
Взаємодія мікроконтролера 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 R 0, LOOP 5; з наступним переходом
JMP GAUGE _ L; до опитування датчиків GAUGE _ L
BLOCKING: SETB P 0.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 P 2.5, IGN _ KAPOT; перехід до IGN _ KAPOT, якщо датчик; багажника не спрацьовує
INC OVER_B; якщо датчик багажника спрацював, то +1 до; константі зберігає число спрацьовувань; цього датчика
JMP LABELB; перехід на мітку LABELB, що включає; сирену
IGN _ KAPOT: JB FKAPOT, IGN _ DOOR; 8 нижче наступних рядків виконують; аналогічну функцію,
KAPOT: JB P 2.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 _ MODE 2; перевірка на вторгнення, якщо так, то; переходимо на мітку CHECK _ MODE 2
LIGHT _ DIOD: MOV R 4, # 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 P 0.0; розблокування стартера
CLR P 0.1; відкриття дверей
CLR P 0.2; відкриття багажника
JMP BEGIN , Перехід у початок
LABELA: JB FMODE2, IGN_KAPOT; якщо режим 2 вже встановлено, то перехід; на IGN_KAPOT, якщо ні, то:
SETB FMODE2; вуст. прапора режиму 2
CALL SIGNAL22; 2 сигнали сирени і габаритів при постановці в; режим 2
CALL DELAY;
CALL SIGNAL11;
CLR P 0.2; відкриття багажника
JMP IGN _ KAPOT; перехід до перевірки датчиків
LABELB: SETB P 0.3; включення сирени
MOV R 0, # 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 P 0.5; включаємо світлодіод на постійне світіння
JNB P 2.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 ; Кінець