- •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.4. Команди управління, логічні, роботи з байтами та бітами
Команди управління
Команда GOTO це 32-розрядна команда, яка може виконувати перехід на будь-яку комірку пам'яті програм. Команда BRA (постійний перехід), яка також виконує безумовний перехід, являє собою 16-розрядну команду, діапазон переходу в якої обмежений. Команда BRA містить 11-розрядне число, яке є не адресою, а збільшенням адреси. Це збільшення або зсув, як його часто називають, дозволяє BRA здійснювати перехід в програмі вперед на відстань аж до 1024 байтів від адреси наступної команди в програмі або назад аж до -1024 байт від адреси наступної команди в програмі. Цей тип переходу часто називають відносним переходом, оскільки ця команда ініціалізує перехід у відповідності з вказаним значенням зсуву незалежно від того, в якому місці пам'яті вона розташована. Усі команди умовного переходу використовують форму адресації зі зміщенням, проте в них використовується ще більш короткий діапазон переходу - від +127 до -128 байт, відраховуючи від адреси наступної команди програми. Причиною таких обмежень є обмеження кількості бітів, доступних в команді для адресації пам'яті. Команду GOTO часто називають абсолютним переходом, оскільки адреса переходу в ній є фіксованим або абсолютним. Команду BRA і команду умовного переходу часто називають командами відносного переходу, тому що адреса переходу визначається відносним адресою команди переходу в пам'яті програм.
Багато команд управління використовуються для реалізації програмних конструкцій, що становлять будівельні блоки програм. Цими конструкціями є такі конструкції: «if-then-else» (Якщо-то-інакше), «repeat-until» (Повторювати-доки) «do-while» (робити-доки) або «do-for» (робити -для умови), «while» (поки що) і функцій.
Команди CALL і RETURN використовуються для створення функцій або процедур, які використовує в програмі. Команда CALL заносить адресу повернення у внутрішній програмний стек, а потім виконує операцію GOTO за адресою пам'яті, вказаною в операнді команди CALL. Команда RETURN виконує повернення з функції, - точно так само, як вона це робить в мові С. Що команда RETURN робить фактично - так це витягує адресу повернення з програмного стека і заносить його в лічильник команд. Команда CALL використовується для виклику функції, a RETURN використовується для повернення з функції. Команда RETURN завжди повертає керування команді, наступного безпосередньо після самої останньої команди CALL.
Команди PUSH і POP також здійснюють доступ до програмного стеку мікроконтролера. Команда PUSH використовується для попереднього завантаження адреси повернення, рівного PC (лічильник команд) + 2 в програмний стек, а команда POP використовується для вилучення адреси повернення з стека. Обидві ці команди повинні використовуватися з обережністю.
Команда NOP не виконує абсолютно нічого, за винятком того, що на неї витрачається один командний цикл. Команда NOP іноді використовується при відпрацюванні тимчасових затримок на один командний цикл. NOP також додається до деяких командам асемблером.
Команда RETLW використовується для повернення з функції з регістром WREG,
завантаженим операндом команди RETLW. Вона використовується в деяких програмах на Асемблері для повернення значення функції.
Логічні команди
Є три логічні інструкції: AND (І), IOR (АБО) і XOR (виключне АБО). Таблиця істинності для всіх трьох операцій показана на Рис.10. Ці операції виконуються на побітній основі (біт за бітом) при виконанні програми. Операція AND часто використовується для вибіркової установки одного або більшого числа бітів в нуль, тому що при виконанні операції І з нулем результат завжди буде нульовим. Операція АБО (IOR) часто використовується для вибіркової установки одного або більшого числа бітів в одиницю, тому що при виконанні операції АБО з одиницею результат завжди буде одиничним. Операція виключне АБО (XOR) селективно інвертує один або кілька бітів з нуля в одиницю, або з одиниці в нуль, тому що при виконанні операції виключне АБО одиниці з яким або операндом, результатом буде інверсія цього операнда.
Рис.10. Операції І, АБО, Виключне АБО
Команди роботи з байтами
Команди роботи з байтами використовуються в PIC МК для пересилання даних між регістрами і виконання математичних операцій над їхнім умістом. Незважаючи на відносно невеликий набір команд, вони дозволяють реалізувати цілий ряд операцій. Це зв'язано, зокрема, з можливістю вказати в команді адреси розміщення результату операції. Перевагою системи команд є також можливість використання різних способів звертання до регістрів. Адреса регістра може бути зазначена безпосередньо в команді відповідним 11-бітним полем f. При цьому доступ можливий тільки до даних, розташованих у межах поточного банку даних. Адресація даних може здійснюватися і за допомогою індексного регістра FSR, шляхом звертання до регістра непрямої адресації INDF, розташованого за нульовою адресою.
Пересилання даних виконується за допомогою двох команд: MOVF і MOVWF, призначення яких істотно відрізняється. Команда MOVF використовується для встановлення біта нульового результату в залежності від умісту визначеного регістра і може застосовуватися для його завантаження в регістр w. Команда MOVWF використовується для запису вмісту робочого регістра w у зазначений регістр МК. Якщо в якості цього регістра вказується INDF, то адреса регістра призначення вибирається з регістра FSR. При виконанні даної команди біти стану не змінюються. Спеціальні команди CLRF f і CLRW застосовуються для очищення регістрів МК. Команда CLRF f записує нуль у зазначений регістр, а команда CLRW - у робочий регістр. При цьому необхідно пам'ятати, що вони також встановлюють відповідне значення біта нуля. Найчастіше використовуваною арифметичною операцією є додавання, що виконується командою ADDWF f,d. Ця операція може змінювати всі біти стану. Біт нуля встановлюється в 1, якщо при виконанні логічної операції "І" над отриманим результатом і числом 0x0FF (255) отримано нуль. Біт переносу встановлюється в 1, якщо результат перевищує число 0x0FF. Біт десяткового переносу встановлюється в 1, якщо сума чотирьох молодших бітів результату перевищує 0x0F (15). При використанні операції віднімання SUBWF f, d варто мати на увазі, що в PIC МК вона виконує операцію додавання з негативним числом. Тобто замість операції d = f - w у дійсності виконується d = f + (-w).Негативне значення вмісту w обчислюється за формулою Negw = (Posw ^ 0x0FF) + 1 . Команди при нульовому результаті: INCFSZ f, d і DECFSZ f, d. З погляду обробки даних вони працюють аналогічно командам INCF f, d і DECF f, d. Основна відмінність від цих команд полягає в тому, що при нульовому результаті виконання команди INCFSZ f, d або DECFSZ f, d пропускається наступна за нею команда. Це означає, що команди INCFSZ f, d і DECFSZ f, d можуть використовуватися для організації програмних циклів. Інша особливість цих команд полягає в тому, що вони не впливають на вміст бітів стану регістра STATUS.
Команда NOP означає відсутність операції. Традиційно вона використовується для двох цілей. Перша - забезпечення синхронізації програми з часовими характеристиками різних пристроїв системи. Другим можливим варіантом є використання команди NOP для видалення частини програмного коду. Унаслідок того, що код команди NOP складається з одних нулів, його легко ввести в пам'ять програм замість будь-якої іншої команди, не застосовуючи стирання і перепрограмування всієї пам'яті програм.
Команди роботи з бітами
Відмінною рисою даної групи команд є те, що вони оперують з однобітними операндами, у якості яких використовуються окремі біти регістрів МК. Установка і ініціалізація окремих бітів відбувається командами BSF f, b і BCF f, b. Будь-який доступний для запису біт у реєстровій пам'яті може бути модифікований таким способом. При цьому гарантується, що жоден з інших бітів регістра не буде змінений.
Однак при роботі з портами вводу/виводу останнє твердження не завжди справедливе. Зв'язано це з тим, що значення числа, яке зчитується з регістра порту, залежить від конфігурації його виводів як входи або виходи даних. У системі команд, розглянутих PIC МК, відсутні команди умовного переходу. Замість них є такі, які дозволяють пропустити виконання наступної команди. Зокрема, розглянуті вище команди INCFSZ f, d і DECFSZ f, d зручні для організації циклів у програмі.
Для управління процесом виконання програми використовуються команди роботи з бітами BTFSC f, b і BTFSS f, b, що дозволяють пропустити виконання наступної команди програми в залежності від стану визначеного біта в заданому регістрі. Якщо в якості задаючого регістра використовується регістр STATUS, то можна організувати управління переходами програми в залежності від стану бітів ознак результату
операції, як передбачено в мікропроцесорах стандартної архітектури.
