- •Пристрій керування цифровим автомобільним тахометром на базі мікроконтроллера pic16f84a.
- •3. Огляд предметної області та застосування пристрою
- •4. Огляд і аналіз існуючих технічних рішень.
- •5. Розробка структурної схеми пристрою і її опис
- •6. Розробка алгоритму роботи пристрою з поясненнями призначення кожного блоку.
- •8. Опис вибору елементної бази та розробка принципової схеми
- •9. Висновки
- •10. Список використаної літератури
- •11. Додатки
5. Розробка структурної схеми пристрою і її опис
Огляд характеристик.
- Тільки 33 простих команди;
- Всі команди виконуються за один цикл (200ns), крім команд переходу -2 циклу;
- Робоча частота 0 Гц ... 20 МГц (200 нс цикл команди)
- 12 - бітові команди;
- 8 - бітові дані;
- 512 ... 2К х 12 програмної пам'яті на кристалі EPROM;
- 25 ... 72 х 8 регістрів загального використання;
- 7 спеціальних апаратних регістрів SFR;
- Дворівневий апаратний стек;
- Пряма, непряма і відносна адресація даних і команд;
Периферія й Введення / Висновок
- 12 ... 20 ліній вводу-виводу з індивідуальною настройкою;
- 8 - бітний таймер / лічильник RTCC з 8- бітним програмованим попередніми дільником;
- Автоматичне скидання при включенні;
- Таймер запуску генератора;
- Watchdog таймер WDT із власним вбудованим генератором, що забезпечує підвищену надійність;
- EPROM біт секретності для захисту коду;
- Економічний режим SLEEP;
- Програмовані EPROM біти для установки режиму збудження вбудованого генератора:
- RC генератор: RC
- Звичайний кварцовий резонатор: XT
-
Високочастотний кварцовий резонатор:
HS
- Економічний низькочастотний кристал: LP
КМОП технологія
- Економічна високошвидкісна КМОП EPROM технологія;
- Статичний принцип в архітектурі;
- Широкий діапазон напруг живлення:
- Комерційний: 2.5 ... 6.25 У
- Промисловий: 2.5 ... 6.25 У
У проектованому пристрої можна виділити наступні функціональні блоки: контакт управління; мікроконтролер, пульт управління, що дозволяє змінити режими вимірювань; стабілізатор напруги; кварцовий резонатор; семисегментні світлодіоди - індикатор.
Структурна схема тахометра
Розташування виводів:
Розташування виводів МК РIС16F84A зображено на рис. 2.
Рис. 2 – Розташування виводів МК РIС16F84A
Виконання мікроконтролера:
Мікроконтролер випускається в двох видах корпусів.
Розташування виводів і конструктивні розміри різних корпусів наведені на Рис. 3 и Рис. 4.
Рис. 3 – Конструктивні розміри РIС16F84A (додаток 1)
Рис. 4 – Конструктивні розміри мікроконтроллера РIС16F84A (додаток 2)
6. Розробка алгоритму роботи пристрою з поясненнями призначення кожного блоку.
Алгоритм програми тахометра представлений на рис. 6. Після включення живлення відбувається початкова ініціалізація всіх регістрів з подальшою індикацією. Після ініціалізації вступає в роботу таймер TMR0. Таймер має коефіцієнт ділення, рівний 256, що разом з предделітеля , які мають коефіцієнт розподілу , рівний 32 , і циклом процесора , рівним 4 , дає переривання кожну секунду (4 х 32 х 256 = 32768 ) .
При замиканні контактів переривника з входу RB0 також відбувається переривання. При перериванні зберігаються значення регістрів, задіяних на момент переривання, і визначається походження переривання. Якщо переривання з входу RB0, то двійковий 16- розрядний лічильник збільшується на одиницю.
Таким
чином, підраховується кількість
переривань з входу RB0 між перериваннями
від переповнення таймера, тобто за 1
секунду. Кожне переривання закінчується
відновленням раніше збережених значень
регістрів, і процесор перемикається на
роботу з індикацією.
Якщо переривання відбулося по переповненню таймера, то визначається стан перемикача межі вимірювання і, якщо перемикач на межі однієї секунди, двійкове значення 16- розрядного лічильника множиться на 3 (2N х 3). 16- розрядний лічильник обнуляється, готуючись до нового циклу вимірювання. Отримане двійкове значення перекодується в трьохрозрядне десяткове число і переписується в регістри індикації. Після відновлення значень регістрів індикація відбувається з новими даними. Тобто індикація оновлюється кожну секунду. Якщо встановлена межа вимірювання, рівний 3 секундам, то при переповненні таймера значення лічильника секунд збільшується на одиницю.
Якщо значення лічильника секунд ще не дорівнює трьом, переривання завершується без обнулення 16-розрядного лічильника.
В іншому випадку в 16-розрядному лічильнику накопичується кількість переривань з входу RB0 за три секунди. Це значення перекодируется в двійкове-десяткове число і переписується в регістри індикації. Двійковий лічильник обнуляється і цикл повторюється. У даному випадку індикація оновлюється кожні три секунди.
Призначення блоків алгоритму:
Блок 1. Ініціалізація всіх регістрів з подальшою індикацією.
Блок 2. Вступає в роботу таймер TMR0.
Блок 3. Переривання.
Блок 4. Зберігаються значення регістрів.
Блок 5. Перевіряється, з якого входу переривання.
Блок 6. Двійковий 16- розрядний лічильник збільшується на одиницю.
Блок 7. Переривання.
Блок 8. Визначається стан перемикача та межі вимірювання.
Блок
9.
Двійкове
значення 16- розрядного лічильника
множиться на 3 (2N х 3)
Блок 10. Якщо встановлена межа вимірювання, рівний 3 секундам, то при переповненні таймера значення лічильника секунд збільшується на одиницю.
Блок 11. Якщо значення лічильника секунд ще не дорівнює трьом, переривання завершується без обнулення 16-розрядного лічильника.
Блок 12. В 16-розрядному лічильнику накопичується кількість переривань з входу RB0 за три секунди. Це значення перекодируется в двійкове-десяткове число.
Блок 13. Це число записується в регістри індикації.
Блок 14. Двійковий лічильник онулюється і цикл повторюється.
Алгоритм роботи пристрою
