Розробка таймера прямої ходи - Курсовая работа

бесплатно 0
4.5 53
Розробка таймера на базі мікроконтролера AT90S8515. Опис принципової електричної схеми блоку клавіатури і індикації. Використання периферійних пристроїв. Таблиця робочих регістрів. Підпрограми обробки переривання таймера, Oproskl та рахунку часу.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Поява інтегральних схем стало значною подією в області автоматизації, так як будь-яка інтегральна схема має набагато меншим розміром в порівнянні з аналогами , виконаними на базі простих транзисторів.Для завдання тактової частоти контролера використовується кварцовий резонатор на 8 МГЦ. В якості пристрою відображення використані чотири індикатори червоного кольору світіння із загальним анодом , кожен індикатор містить 8 сегментів. Індикація поточного часу здійснюється динамічно, в даний конкретний момент часу відображається лише одна цифра, що дозволяє значно знизити апаратні витрати. Аноди кожної з чотирьох цифр є роздільними, що дозволяє в даний момент часу підключити до джерела живлення тільки один анод і відобразити одну цифру. Ключі управляються мікроконтролером, причому відповідний ключ відкритий, якщо на виведенні контролера присутній логічний нуль.Таймер попередньо завантажується числом 100, що задає період генерації переривань по переповненню таймера кожні 5 мс, забезпечуючи високу точність ходу годинника, за умови використання якісного кварцового резонатора. З урахуванням цього, при записі числа n в регістр таймера 0 TCNT0 період його переповнення визначається за виразом: (256-n)*256*0,125 мксВикористання периферійних пристроїв : Таймер/ лічильник0 - лічильник імпульсів з періодом 5мс; Використовувані регістри : r0 - використовується при роботі з таблицею даних, в ньому міститься лічену значення з таблиці даних за адресою Z; r6, r27, r28 - використовується для брязкоту в підпрограмі для сканування клавіатури; r10 , r11 - використовуються в підпрограмі для сканування клавіатури; r18 , r15 - використовується в підпрограмі Klav, несуть в собі інформацію про хвилини і години;При подачі живлення і виконанні умов скидання виконується процедура скидання (Reset) для ініціалізації системних пристроїв. В якості зовнішнього переривання використовується переривання Int1, яке дозволяє відстежувати зміну сигналу на виведення PD.3. Для дозволу цього переривання необхідно встановити в "1" сьомий біт ("int1") регістра маски переривання GIMSK. Біти управління видом сигналу переривання 1 (Interrupt Sense Control - ISC11 і ISC10) в регістрі управління процесора MCUCR визначають, чи активізується зовнішнє переривання по зрізу (фронту) імпульсу або за рівнем на контакті PD.3. При виникненні події, що викликає переривання, в регістрі основних прапорів переривання GIFR встановлюється в логічну одиницю біт INTF1.У Algorithm Builder це підпрограма з імям Timer_0_Overflow (ріс.2.4.1). Виклик цієї підпрограми здійснюється при переповненні таймера/лічильника. В якості таймера в даному випадку може бути використаний наявний в мікроконтролері AT90S8515 таймер_0.Роботу пристрою можна розділити на 3 режиму: IMG_af217407-080f-48f1-874b-5b47003a5eda Режим 0 - введення часу годин, блимають розряди по черзі в залежності від змінної mode . При mode = 1 блимає 1 розряд, очікується введення десятків годин, mode = 2 - введення одиниць годин, mode = 3 - введення десятків хвилин, mode = 4 - введення одиниць хвилин. Тут враховується: коли вводяться десятки хвилин, то можна вводити тільки 0, 1, 2, інакше нічого не відбувається, також якщо введена 2 в десятки годин, то в одиниці годин можна ввести тільки 0, 1, 2, 3, в десятки хвилин можна вводити лише числа<6.Динамічна індикація здійснюється наступним чином: спочатку в порт А виводиться код, який запалює сегменти індикатора, при яких світиться необхідна цифра (0 , 1 , 2 ...) і відкривається перший транзисторний ключ, шляхом посилки 0 в PORTD.4. Через 5 мс необхідно закрити перший транзисторний ключ, вивести в порт А код, який відповідає цифрі, виведеної на другий розряд і відкрити другий розряд індикатора. При цьому буде відображатися тільки повторюється для кожного розряду і після відображення четвертого розряду знову виводиться перший розряд. Таким чином, час оновлення кожного розряду становить 5мс * 4 = 20 мс, при такій частоті відновлення людське око не помічає мерехтіння і сприймає індикацію як статичну. Виводить на всі розряди індикатора значення десятків і одиниць хвилин і годин, а також кожну секунду блимає 8-й сегмент 2-го розряду.У цій підпрограмі в регістрі r1 (seconds) міститься число секунд , в r2 (minut) - число хвилин і в r3 (hour) - число годин. r9 (tcount) - це лічильник, який інкриментується щоразу при виклику підпрограми по переповненню таймера 0, тобто r9 збільшується кожні 5 мс. Таким чином, коли r9 досягає 200 (проходить 1 сек) відбувається збільшення поточного числа секунд на 1. Також виконується перевірка секунд на рівність 60 і, якщо необхідно, збільшуються хвилини та години. Якщо заданий час досягнуто, то відбувається перехід в 2-ий режим.Клавіатура сканується за допомогою логічного "0", який подається на відповідну лінію при виведенні на індикацію . Робота її полягає в тому, щоб посилати на кожний рядок клавіатури (1-2-3 , 4-5-6 , 7-8-9 , *-0 - # ) сигнал, а потім підпрограма Oproskl буде сканувати стовпець клавіатури, і в залежності

План
Зміст

Вступ

1. ОПИС ПРИНЦИПОВОЇ ЕЛЕКТРИЧНОЇ СХЕМИ

2. ОПИС АЛГОРИТМА ПРОГРАМИ

2.1 ВИКОРИСТАННЯ РЕСУРСІВ

2.2 ОСНОВНА ПРОГРАМА

2.3 ПІДПРОГРАМА ОБРОБКИ ПЕРЕРИВАННЯ ТАЙМЕРА

2.4 ПІДПРОГРАМА ОБРОБКИ ПЕРЕРИВАННЯ ТАЙМЕРА 0. РЕЖИМИ РОБОТИ ПРИСТРОЇ

2.5 ПІДПРОГРАМА ІНДИКАЦІЇ

2.6 ПІДПРОГРАМА РАХУНКУ ЧАСУ

2.7 ОПИТУВАННЯ КЛАВІАТУРИ

3. ДОДАТКОВЕ ЗАВДАННЯ

ВИСНОВОК

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

ДОДАТОК А

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?