Встановлюємо початкове значення лічильника th, tl
У змінній yprdvig: 0000 (стоп), 0110 (вперед), 1001 (тому), 0101 (праворуч), 1010 (ліворуч). Далі задана змінна, що визначає час руху в заданому напрямку - timedvig - int. Якщо попередній стан timedvig дорівнює 0, то тоді платформа виконує команду стоп - if (- timedvig = 0) napr = 0
Робимо обнулення адрес для початку прийому даних. Якщо виявлено, що команда дорівнює ff, то тоді далі ведеться прийом блоку даних. Для цього додатково команду призначаємо рівної ff. По кожній події RI перевіряємо, поки команда дорівнює ff і дані, записані не у всю ПЗУ кожен наступний байт приймаємо, якщо прийнято 10 байт, записуємо їх. p align="justify"> Частина найцікавіших алгоритмів представлено у вигляді графічних схем, а рис.3.1, 3.2. br/>
Висновок
Поставлена ​​задача в даному курсовому проекті була реалізована, розроблена функціональна схема. Після аналізу функціональної схеми розгляд безлічі розробок та окремих електронних вузлів була розроблена схема контролера, яка реалізує поставлене завдання на апаратному рівні. При схемотехнической реалізації блоку був зроблений вибір найбільш оптимального контролера для вирішення завдання. Також були обрані датчики і виконавчі ключі та устаткування (крокові двигуни). А також забезпечено пару інтерфейсів комп'ютера і контролера через радіо модулі. p align="justify"> Другим етапом реалізації проекту стало написання програмної частини, яка забезпечує управління обладнанням за заданим алгоритмом. Для реалізації функцій обміну з ПЗУ був вивчений протокол I2C, який і був далі реалізований у вигляді частини програмного коду. Також було виконано опис програми і представлений її код. p align="justify"> Після закінчення розробки проекту, він був представлений у вигляді звіту має програми: лістинг програми та принципова схема.
Таким чином відзначити, що поставлене завдання виконана і проект реалізований як схемотехнически так і програмно.
Додаток (Схема пристрою)
В
Додаток (Лістинг програми)
# include /* special function register declarations8052 */
# include /* prototype declarations for I/O functions */
// ********************* pereimenovanie bitov ***************** ** s1 = P2 ^ 2; s2 = P2 ^ 3; s3 = P2 ^ 4; fr = P3 ^ 4; fl = P3 ^ 5; rr = P2 ^ 0; ll = P2 ^ 1; scl = P3 ^ 6; sda = P3 ^ 7; k1 = P2 ^ 5; // key start_stopk2 = P2 ^ 6;
// ******************* Flagi ******************** ************* StartStop; // flag Start stop platformreadwrite; // flag read --- writekey ; avtoradio;
// ******************* Per...