
- •1. Загальна частна
- •1.1. Загальний опис та призначення мікроконтролерів pic Microchip.
- •1.2. Особливості архітектури мікроконтролерів сімейства ріс18.
- •1.3. Спеціальні функціональні регістри в pic18
- •1.4. Команди управління, логічні, роботи з байтами та бітами
- •1.5. Опис мікросхеми l293, двигун постійного струму
- •Логіка роботи l293
- •2. Спеціальна частина
- •2.1. Інтегрована система розробки (ide)
- •2.2. Мова Асемблера, компонувальник, оператори мови
- •Приклади міток
- •2.3. Робота з Cadsoft Eagle.
- •3. Технологічна частина
- •3.1. Виготовлення монтажної плати
- •3.2. Монтаж елементів на плату
- •3.3. Програмування пристрою
- •Список програм для програмування мікроконтролера
- •3.4. Тестування пристрою
- •4. Охорона праці
- •4.1. Основні принципи охорони праці
- •4.2. Умови праці та виробниче середовище
- •4.3. Охорона праці при роботі з пеом
- •Норми мікроклімату для приміщень з втд
- •Рівні іонізації повітря приміщень при роботі на вдт
- •4.4. Вимоги безпеки при роботі ручними інструментами при збірних та монтажних роботах
- •4.5. Пожежна безпека на монтажних дільницях
- •5. Економічна частина.
- •5.1. Розрахунок витрат на основні матеріали
- •Витрати на основні матеріали
- •5.2. Розрахунок витрат на оплату праці та відрахувань в єдиний соціальний внесок.
- •Розрахунок витрат на оплату праці та відрахувань на потреби
- •5.3. Розрахунок витрат на виготовлення пристрою
- •Калькуляція витрат на виготовлення пристрою
- •Висновок
- •Список використаної літератури
1.3. Спеціальні функціональні регістри в pic18
Спеціальні функціональні регістри (СФР) використовуються для виконання цілого ряду спеціальних завдань в мікроконтролері. Регістр вибору банку є одним з цих спеціальних функціональних регістрів, при цьому інші спеціальні функціональні регістри здійснюють доступ до пам'яті непрямо, зберігаючи добуток після множення, вказуючи стан виходу команди, акумулюючи результат арифметичних і логічних операцій і адресуючи елемент пам'яті в програмі. Всі спеціальні функціональні розміщуються на вершині пам'яті даних в банку доступу. Всі спеціальні функціональні регістри мають імена і адреси, і те й інше може бути використано для доступу до них.
Акумулятор (WREG) або, як він часто називається, робочий регістр (регістр W або WREG) являє собою 8-розрядний регістр, доступ до якого здійснюють багато команд. Найімовірніше, що цей регістр називається акумулятором внаслідок того, що він являє собою місце, в якому акумулюються результати багатьох команд. Більшість ЦП містять акумулятор в якості головного робочого регістра. У сімействі PIC18 робочий регістр (WREG) розміщений в області спеціальних функціональних регістрів за адресою OxFE8. Хоча цього регістру та присвоєно адресу, багато команд здійснюють доступ до нього без вказівки адреси - по імені або неявно в рамках виконання команди. Ця неявна форма адресації і є те, чому WREG називається робочим регістром або акумулятором. Літеральну або безпосередню адресу команд адресує WREG як частину команди без необхідності специфікації його адреси. Багато інших команди також використовують регістр W.
Рис.7. Вибір банку регістрового файлу
Регістр вибору банку (BSR), (розмірність якого дорівнює 4 біта) плюс 8-бітна адреса об'єднуються з метою формування 12-розрядної адреси пам'яті даних, коли a-біт команди знаходиться в стані логічної одиниці, як це ілюструється на Рис.7. Це дозволяє здійснювати доступ до будь-якого регістру в будь-якому банку пам'яті даних.
Якщо a-біт команди знаходиться в стані логічного нуля, то доступ буде обмежений банком доступу, який зазвичай складається з комірок з адресами від 0x000 до 0x07F комірок від 0xF80 до 0xPPF. 8-розрядні адреси від 0x00 до 0x7F вибирають комірки пам'яті даних від 0x000 до 0x07F, 8-розрядні адреси від 0x80 до 0xFF вибирають комірки пам'яті даних від 0xF80 до 0xFFF банку доступу. Цей опис можна застосувати до стандартного набору команд. Інший біт, так званий d-біт або біт адресата, вибирає, чи є адресатом команди 8-розрядний адрес (коли d = 1) або регістр WREG (коли d = 0).
Рис.8. Двійкова бітова структура команди байтової операції
Код операції - це код, який інструктує мікроконтролер виконати яку-небудь операцію. Літеральні дані називаються операндом. Операнд використовується в відповідно до коду операції. Команда має тільки один код операції, проте може як не мати операнда, так і мати стільки операндів, скільки потрібно командою.
Регістри добутку містять результат чи добуток після виконання команди множення. Для добутку потрібен спеціальний регістр, бо добуток завжди має вдвічі більше розрядів, ніж операнди. Команда MULLW примножує регістр W на літеральне значення. Оскільки це 8-бітний мікроконтролер і добуток - восьмирозрядний, то результат буде мати 16 розрядів і буде збережений в регістрах PRODL і PRODH. Регістр PRODL зберігає молодші 8 бітів результату (L означає "low" (молодші)), а регістр PRODH зберігає старші 8 бітів результату (Н означає "high" (старші)). Згадані числа завжди будуть беззнаковими, тому що в наборі команд мікроконтролера відсутня команда множення чисел зі знаком.
Регістри вибору файлу (FSR) використовуються для непрямої адресації або індексування пам'яті даних. Пристрої сімейства PIC18 містять три регістра вибору файлу (FSRO, FSR1 і FSR2), кожен з яких містить 12-розрядну адресу пам'яті даних.
Регістр стану (SR) відображає стан результату операції. Біти регістра стану часто перевіряються в програмах після виконання операції. Рис.9 ілюструє вміст регістра стану. Тільки п'ять з восьми бітів ініціюють стан; вони позначаються як N (негативність), 0V (переповнення), Z (нуль), DC (перенесення розряду) і С (перенесення). Біти стану перевіряються командами умовного переходу, які найбільш часто використовуються для формування конструкцій if-then-else при програмуванні, а також інших про-програмних конструкцій. Біти регістра стану звичайно змінюються в пристроях PIC тільки арифметичними і логічними операціями.
- N (негативність) - біт заперечності має значення логічної 1, якщо результат арифметичної або логічної операції негативний і значення логічного нуля, якщо результат позитивний.
- 0V (переповнення) - біт переповнення має значення логічної 1, якщо арифметична операція призвела до переповнення 8-розрядного результату сімейство знаком.
- Z (нуль) - біт нуля знаходиться в стані логічної одиниці, якщо результат арифметичної або логічної операції є нульовим. Якщо результат не являється нульовим, то біт нуля знаходиться в стані логічного нуля.
- DC (перенесення розряду) - біт перенесення розряду відображає половинний перенос.
Він містить перенесення з молодшої частини результату (4 біти), а також старшої половини байта (4 bits) і використовується тільки командою DAW.
- С (перенесення) - біт перенесення регістру стану містить перенос з самого старшого біта результату.
Рис.9. Регістр стану
Лічильник команд (PC), хоча і не є безпосередньо адресованим, як SR, є дуже важливим регістром. Лічильник команд в пристроях сімейства PIC18 являє собою 21-розрядний регістр, він адресує наступну комірку пам'яті в пам'яті програм і дозволяє здійснювати послідовний доступ до команд в пам'яті програм. Лічильник команд є лічильником, однак він не рахує команди програми. Він рахує адреси пам'яті, щоб забезпечити доступ до наступної команді програми, що, ймовірно, і призвело до того, що він називається лічильником команд. У деяких процесорах цей регістр називається регістром адреси команди (IAR).
Послідовність виконання команд програми модифікується, якщо вміст лічильника команд змінюється. Для зміни вмісту лічильника команд команда GOTO або команда умовного переходу заносить нове значення в лічильник команд, що призводить до зміни послідовності виконання команд програми. Функції CALL і RETURN також змінюють вміст лічильника команд. Функція CALL поміщає адресу повернення (адреса команди, наступної безпосередньо після CALL) в стек, а потім виконує команду GOTO. Функція RETURN витягує адресу повернення з стека і поміщає його в лічильник команд. Це призводить до того, що наступною виконується команда, наступна безпосередньо після CALL.