3.3.2 Особливості мікроконтролерів PIC16F87X
В даний час, пристрої працюючі в режимі реального часу часто містять мікроконтролер як основний елемент схеми. PIC16F87X мають багато удосконалень підвищену надійність системи, що знижують вартість пристрою і число зовнішніх компонентів. Мікроконтролери PIC16F87X мають режими енергозбереження і можливість захисту коду програми.
Основні переваги:
Вибір тактового генератора
Скидання:
- скидання по включенню живлення (POR);
- таймер включення живлення (PWRT);
- таймер запуску генератора (OSC);
- скидання по зниженню напруги живлення (BOR).
Переривання
Сторожовий таймер (WDT)
Режим енергозбереження (SLEEP)
Захист коду програми
Область пам'яті для ідентифікатора
Внутрішньосхемне програмування по послідовному порту (ICSP)
Режим низьковольтного послідовного програмування
Режим внутріньосхемного налагодження (ICD)
У мікроконтролери PIC16F87X убудований сторожовий таймер WDT, що може бути виключений тільки в бітах конфігурації мікроконтролера. Для підвищення надійності сторожовий таймер WDT має власний RC генератор.
Додаткових два таймери виконують затримку старту роботи мікроконтролера. Перший, таймер запуску генератора (OST), утримує мікроконтролер у стані скидання, поки не стабілізується частота тактового генератора. Другий, таймер включення живлення (PWRT), спрацьовує після включення живлення й утримує мікроконтролер у стані скидання протягом 72мс (типове значення), поки не стабілізується напруга живлення. У більшості додатків ці функції мікроконтролера дозволяють виключити зовнішні схеми скидання.
Режим SLEEP призначений для забезпечення наднизького енергоспоживання. Мікроконтролер може вийти з режиму SLEEP по сигналі зовнішнього скидання, по переповненню сторожового таймера або при виникненні переривань.
Вибір режиму роботи тактового генератора дозволяє використовувати мікроконтролери в різних додатках. Режим тактового генератора RC дозволяє зменшити вартість пристрою, а режим LP знизити енергоспоживання. Біти конфігурації мікроконтролера використовуються для вказівки режиму його роботи. [5,62]
3.3.3 Система команд мікроконтролера
Кожна команда мікроконтролерів PIC16F87X складається з одного 14-розрядного слова, розділеного на код операції (OPCODE), що визначає тип команди й один або трохи операндов, що визначають операцію команди. Команди розділені на наступні групи: байт орієнтовані команди, біт орієнтовані команди, команди керування й операцій з константами.
Для байт орієнтованих команд “f” є покажчиком регістра, а “d” покажчиком адресата результату. Покажчик регістра визначає, який регістр повинний використовуватися в команді. Покажчик адресата визначає, де буде збережений результат. Якщо 'd'=0, результат зберігається в регістрі W. Якщо 'd'=1, результат зберігається в регістрі, що використовується в команді.
У біт орієнтованих командах “b” визначає номер біта задіяного в операції, а “f” - покажчик регістра, що містить цей біт.
У командах керування або операціях з константами 'к' представляє вісім або одинадцять біт константи або значення литералів.
Система команд акумуляторного типу, ортогональна і розділена на три основних групи:
Байт орієнтовані команди;
Біт орієнтовані команди;
Команди керування й операцій з константами.
Усі команди виконуються за один машинний цикл, крім команд умови, у яких отриманий щирий результат і інструкцій значення лічильника команд PC. У випадку виконання команди за два машинних цикли, у другому циклі виконується інструкція NOP. Один машинний цикл складається з чотирьох тактів генератора. Для тактового генератора з частотою 4 Мгц усі команди виконуються за 1мкс, якщо умова істина або змінюється лічильник команд PC, команда виконується за 2мкс.
Таблиця 3.10.
Список команд мікроконтролерів PIC16F87X
Мнемоніка команди | Опис | Цикл | 14-розрядний код | флаг | Прим. | |
Біт 13 | Біт 0 | |||||
Байт орієнтовані команди | ||||||
ADDWF f,d | Складання W і f | 1 | 00 0111 | dfff ffff | C,DC,Z | 1,2 |
ANDWF f,d | Побітове 'І' W і f | 1 | 00 0101 | dfff ffff | z | 1,2 |
CLRF f | Очистити f | 1 | 00 0001 | Ifff ffff | z | 2 |
CLRW | Очистити W | 1 | 00 0001 | 0xxx xxxx | z | |
COMF f,d | Інвертувати f | 1 | 00 1001 | dfff ffff | z | 1,2 |
DECF f,d | Вирахувати 1 з f | 1 | 00 0011 | dfff ffff | z | 1,2 |
DECFSZ f,d | Вирахувати 1 з f і пропустити якщо 0 | 1(2) | 00 1011 | dfff ffff | 1,2,3 | |
INCF f,d | Додати 1 до f | 1 | 00 1010 | dfff ffff | z | 1,2 |
INCFSZ f,d | Додати 1 до f і пропустити якщо 0 | 1(2) | 00 1111 | dfff ffff | 1,2,3 | |
IORWF f,d | Побітове 'АБО' W и f | 1 | 00 0100 | dfff ffff | z | 1,2 |
MOVF f,d | Переслати f | 1 | 00 1000 | dfff ffff | z | 1,2 |
MOVWF f | Переслати W в f | 1 | 00 0000 | Ifff ffff | ||
NOP | Нема операції | 1 | 00 0000 | 0xx0 0000 | ||
RLF f,d | Циклічний зсув f вліво через перенос | 1 | 00 1101 | dfff ffff | с | 1,2 |
RRF f,d | Циклічний зсув f вправо через перенос | 1 | 00 1100 | dfff ffff | с | 1,2 |
SUBWF f,d | Вирахувати W з f | 1 | 00 0010 | dfff ffff | C,DC,Z | 1,2 |
SWAPF f,d | Поміняти місцями півбайти в регістрі f | 1 | 00 1110 | dfff ffff | 1,2 | |
XORWF f,d | Побітове 'виключаюче АБО' W і f | 1 | 00 0110 | dfff ffff | z | 1,2 |
Біт0 орієнтовані команди | ||||||
BCF f,b | Очистити Біт0 b в регистрі f | 1 | 01 00bb | bfff ffff | 1,2 | |
BSF f,b | Встановити Біт0 b в регистрі f | 1 | 01 0lbb bfff ffff | 1,2 | ||
BTFSC f,b | Перевірити Біт0 b в регистрі f, пропустити якщо 0 | 1(2) | 01 l0bb bfff ffff | 3 | ||
BTFSS f,b | Перевірити Біт0 b в регистрі f, пропустити якщо 1 | 1(2) | 01 llbb bfff ffff | 3 | ||
Команди керування і операції з константами | ||||||
ADDLW k | Скласти константу з W | 1 | 11 lllx | kkkk kkkk | C,DC,Z | |
ANDLW k | Побітне 'І' константи і W | 1 | 11 1001 | kkkk kkkk | Z | |
CALL k | Виклик підпрограми | 2 | 10 Okkk | kkkk kkkk | ||
CLRWDT | Очистити WDT | 1 | 00 0000 | 0110 0100 | -TO.-PD | |
GOTO k | Безумовний перехід | 2 | 10 Ikkk | kkkk kkkk | ||
IORLW k | Побітне 'АБО' константи і W | 1 | 11 1000 | kkkk kkkk | Z | |
MOVLW k | Переслати константу в W | 1 | 11 00xx | kkkk kkkk | ||
RETFIE | Повернення з підпрограми з дозволом переривань | 2 | 00 0000 | 0000 1001 | ||
RETLW k | Повернення з підпрограми с записом константи в W | 2 | 11 0lxx | kkkk kkkk | ||
RETURN | Поветрення з підпрограми | 2 | 00 0000 | 0000 1000 | ||
SLEEP | Перейти в режим SLEEP | 1 | 00 0000 | 0110 0011 | -TO.-PD | |
SUBLW k | Вивахувати W з константи | 1 | 11 110x | kkkk kkkk | C,DC,Z | |
XORLW k | Побітне 'виключаюче АБО' константи W | 1 | 11 1010 | kkkk kkkk | Z |
Примітка:
При виконанні операції "читання - модифікація - запис" з портом вводу/виводу початкові значення зчитуются з виводів порта, а не з вихідних защібок. Наприклад, якщо в вихідній защібці було записано '1', а на відповідному виході низкий рівень сигналу, то будет записано значение '0'.
При виконанні запису в TMR0 (і d=1) передподільник TMR0 скидаєсться, якщо він підключений до модуля TMRO.
Якщо умова істина або змінюється значення лічильника команд PC, то інструкція виконується за два цикла. В другому циклі виконується команда NOP. [8,184]
... окремих деталей і вузлів на підприємствах, розташованих в районах видобування деревини, дозволяє більш ефективно використовувати відходи деревообробки для виробництва деревностружкових і деревноволокнистих плит. 2. Виробництво конструкцій із деревини В малоповерховому, сільському (склади мінеральних добрив тощо), цивільному (спортивні і концертні зали) будівництві знайшли застосування дерев ...
... і тирси розміром 1.5. 5 мм. 2. Виробництво виробів і конструкцій на неорганічних речовинах При виробництві блоків стін підвалів з бетонів класом по міцності при стиску В7,5 і В10 на підприємствах бетонних і залізобетонних конструкцій застосовують вторинні сировинні ресурси, які отримують внаслідок переробки некондиційних залізобетонних конструкцій і демонтованих з будинків і споруд з значним ...
... речовини, викиди поживних елементів, подібних до стоку добрив; осідання кислотних опадів, хвороботворні організми. Все це призводить до погіршення якості води і деградації водних ресурсів. Комплексна екологічна оцінка стану річок басейнів Дніпра за методикою, яка розроблена Українським НДІ водогосподарсько-екологічних проблем, показала, що немає жодного басейну, стан котрого можна було б класифі ...
0 комментариев