Добавил:
інстаграм _roman.kob, курсові роботи з тєрєхова в.в. для КІ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1

.pdf
Скачиваний:
2
Добавлен:
31.05.2020
Размер:
782.19 Кб
Скачать

виразу виконується операція логічного множення (операція «І») між вмістом порту РВ і маскою 0x07. результат виразу записується в змінну codl.

Вираз в рядку 22 об'єднує етапи 2 і 3. Права частина цього вираження являє собою суму двох доданків. Перше доданок являє собою операцію логічного зсувузмістузмінноїcodlнавісімрозрядіввліво. цейзсуввідповідаєетапуномер 2 на малюнку. В результаті зсуву вісім молодших розрядів числа стають старшими.

Другий доданок - це ще одна операція логічного множення. На цей раз множиться вміст порту PD і константа 0x7F, що представляє собою маску для цього порту. Результатом складання двох цих складових є шуканий код стану клавіатур, який записується в змінну codl. Обчислення другого доданка і складання їх обох і відповідає етапу но заходів 3 на рис. 1.18. Символом «X» на малюнку позначаються розряди, значення яких не визначено. Розряди, значення яких залежить від тієї або іншої кнопки клавіатури, позначається назвою цієї кнопки. Решта розряди рівні або «0», або «1».

Отже, в результаті виконання описаних вище операцій змінна codl містить нове значення коду стану клавіатури.

Урядку 23 цей код порівнюється зі старим значенням, яке зберігається в змінної cod0. Якщо коди не рівні, то виконуються команди перезапуску циклу (рядки 24, 25). У рядку 24 змінної до (параметру циклу) присвоюється нульове значення. В рядку 25 значення змінної codl записується в змінну cod0. Тепер нове, щойно отримане значення коду стає старим.

Урядках 27-33 розташована функція формування затримки. Алгоритм роботи та цієї функції повторює алгоритм роботи аналогічної процедури на Асемблері. Функція не повертає ніяких значень, але зате має вхідний параметр: код виду затримки.

Як і процедура на Асемблері, функція wait() формує три виду затримки. Параметр, що визначає номер затримки, має ім'я kodz і тип unsigner

- 31 -

char. Робота функції починається з визначення значення маски переривань. Для цього в рядках 28, 29 оцінюється значення змінної kodz. Якщо значення kodz

Рис. 1.18. Формування коду стану клавіатури

дорівнює1,товрегістрмаскиперериваньTIMSKзаписуєтьсякод0x40. Цей код дозволяє переривання за випадковим збігом в каналі А.

Якщо kodz НЕ дорівнює одиниці, то регістру TIMSK присвоюється значення 0x80 (переривання по переповнення). Таким чином, в режимі 1 буде працювати переривання за випадковим збігом вканаліА. При цьомуформується затримка тривалістю 48 мс. У інших режимах (2, 3) використовується

- 32 -

переривання по переповнення таймера. У цьому випадку формується затримка тривалістю в одну секунду.

У рядку 30 обнуляється значення рахункового регістр таймера. З моменту обнулення таймера починається формування заданого тимчасового інтервалу. У рядку 31 обнуляється значення прапора затримки. У рядку 32 виконується командаглобальногодозволупереривань. Нацьомунастройкатаймераісистеми переривань закінчуються. Тепер залишається лише організувати цикл очікування.

Цикл очікування, презначений для роботи в режимах 1 і 3,

організований в рядку 33. Це порожній цикл, організований при допомоги оператора while. Як умова продовження циклу вибрано рівність прапора flz нулю. Тобто поки flz дорівнює нулю, цикл очікування триватиме. А закінчиться він в той момент, коли процедура обробки переривання змінить значення прапора flz на одиничне.

Урежимі2використовуєтьсяіншийциклочікування,якийзнаходитьсяпоза функцієюwait (). Томуврядку33, крім циклуочікування, є оператор порівняння if. Він перевіряє значення змінної kodz. Завдяки оператору порівняння, цикл очікуванняврядку33виконуєтьсятількивтомувипадку,колиkodzНЕдорівнює двом.

- 33 -

ВИСНОВОК У даній курсовій роботі було здійснено розробку схеми кодового замка.

На основі вимог була побудована функціональна схема. Для якої були підібрані відповідні пристрої для реалізації функцій, покладених на елементи системи. Виходячи з економічних та експлуатаційних міркувань, для даного пристрою був встановлений мікроконтролер ATtiny2313 . Цей кодовий замок призначений для установки на вхідних дверях приміщення, куди доступ має обмежене коло людей. Його основною відмінною рисою є можливість швидкого запису нового коду за допомогою клавіатури Розробка завершилася складанням алгоритму роботи програми та написанням вихідного коду програми для мікроконтролера.

Здійснено вибір елементної бази.

Також здійснений докладний опис роботи схеми.

- 34 -

СПИСОК ВИКОРИСТАНИХ ЛІТЕРАТУРНИХ ДЖЕРЕЛ

1.Белов А.В. Создаем устройства на микроконтроллерах, 2007.

2.https://shematok.ru/transistor/kt315

- 35 -

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]