Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Процес розробки контролера вимірювача відстаней

Реферат Процес розробки контролера вимірювача відстаней





p>

Програму складається з наступних блоків:

початкова ініціалізація контролера

процедура ініціалізації дисплея

порожній нескінченний цикл

обробник переривання по зміні станів на входах кнопок

процедура множення для розрахунку відстані

процедура переведення числа з двійкового в двійково-десятковий формат

процедура виведення на дисплей

процедури затримки

Початкова ініціалізація контролера полягає в налаштуванні портів контролера (висновки 0-5 порту B на вихід для виведення на LCD, висновки 0,1 порту D на вихід - світлодіод харчування і фотопередатчік, висновки 2-5 порту D на вхід - кнопки і фотоприймач). А також відбувається запис рядків-заготовок для виведення на дисплей формату «1: $», де $ - знак кінця рядка, буде використаний в процедурі виводу.

Процедура ініціалізації дисплея складається з налаштування дисплея, яка здійснюється шляхом посилки на нього службових повідомлень, що встановлюють розрядність, настройки курсора і виводу. Службові повідомлення відсилаються процедурою WriteCmd (Вхідні дані: R16 (Temp) - адреса DDRAM + 0x80.).

Після ініціалізації контролер входить в режим очікування. Цей режим реалізований як нескінченний цикл (мітка main). У режимі очікування контролер чекає виникнення переривання. Переривання виникнуть при зміні стану на будь-якому з входів порту D, заданими маскою в регістрі PCMSK0. Після виникнення переривання контролер йде на його обробку.

У тілі переривання контролер визначає вхід, який викликав переривання, порівнюючи попередній стан входів (зберігається в регістрі flag) з поточним. Потім відбувається перехід за відповідною мітці (but0, but1, but2 - для кнопок; foto - для фотоприймача).

При обробці натискань на кнопки 1 і 2 відбувається зміна маски для переривання PCMSK0, посилка зондуючого імпульсу і включення рахункового таймера. При обробці натиснення на клавішу 3 відбувається очищення результатів вимірювання. Для результатів вимірювання і подальшого виведення на дисплей відведено 34 байта в ОЗУ (izm1: .byte 17). значення за адресами (izm + 3) - (izm + 7) очищаються записом нулів.

При обробці переривання від фотоприймача відбувається зупинка таймера і розрахунок відстані. Розрахунок відстані ведеться за допомогою множення числа з лічильника (tcnt1h, tcnt1l) на константу, отриману в результаті відносини швидкості світла до подвоєною тактовій частоті генератора. Після множення число переводиться в двійковій-десяткове процедурою bin2BCD16. Потім результати вимірювання в підготовленому форматі записуються в ОЗУ.

Після підрахунку відстані і переведення його в потрібну форму відбувається виведення на індикатор. Висновок здійснюється підпрограмою display, яка в свою чергу вказує початковий адреса рядка в ОЗУ (ldi ZL, Low (izm1) і визовает підпрограму виведення рядка.

Підпрограма виводу рядка діє таким чином: в якості адреси початку рядка вона витягує число з регістра Z. побайтное зчитуючи дані з ОЗУ підпрограма відправляє їх на дисплей, до тих пір поки наступним символом для відправки не буде «$». Після виведення маска переривань знову встановлюється на спрацьовування від кнопок і контролер переходить в режим очікування.

Під час ініціалізації дисплея і виведення використовуються процедури затримки Delay40mks і Delay1500mks, для затримки на 40 і 1500мкс соответсвенно.


.3 Програма Монітор контролера


Вихідний текст програми контролера представлений у додатку А даної пояснювальної записки.


.4 Коментар до загальносистемного програмного забезпечення контролера


Використовуваний в даному курсовому проекті мікроконтролер має 2 КБ програмованої в системі Flash пам'ять програми, 128 байтную EEPROM пам'ять даних, 128 байтное SRAM (статичне ОЗУ), 32 робочих регістра загального призначення, послідовний програмований USART.


7. Оцінка обсягів ОЗУ, ПЗУ. Розподіл адресного простору контролера


Мікроконтролер має 2 КБ програмованої в системі Flash пам'ять програми, 128 байтная EEPROM пам'ять даних, 128 байтное SRAM (статичне ОЗУ). Вихідний код програми (прошивка) генерується в шістнадцятковому форматі * .hex, як для завантаження в Flash-пам'ять мікроконтролера (пам'ять програм), так і в EEPROM (електрично перепрограмувальна постійна пам'ять). Дві початкові і одна кінцева рядок прошивки (файл з розширенням * .hex) представлені в таблиці:


Таблиця - Фрагмент прошивки

:020000020000FC:1000000000C00FEF07BB0FE301BB969A00C08699B3...…...….….….….….….….…...:00000001FF

Кожен рядок починається двокрапкою. Кожна наступна пара символів являє собою один байт в шістнадцятковому коді. Чотири байти на початку і один байт в кінці рядка є службовими, що знаходяться між ними байти - інформаційні - завантажуються в пам'ять. У службових рядках ...


Назад | сторінка 5 з 9 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Пристрій для вимірювання температури в індустріальних системах і розробка п ...
  • Реферат на тему: Перспективи держави Афганістан після виведення Міжнародних сил сприяння без ...
  • Реферат на тему: Мікроконтролер виведення малюнків на графічний РК-індикатор
  • Реферат на тему: Переривання вагітності
  • Реферат на тему: Переривання і виключення