- •Конспект лекцій з дисципліни “Мікропроцесорні пристрої”
- •1 Основи теорії мікропроцесорних пристроїв
- •Класифікація мікропроцесорів. Варіанти архітектури
- •Базова структура мікропроцесорної системи
- •Основні характеристики мп
- •Типова структура мікропроцесора
- •Система команд мп і режими адресації
- •Організація передачі інформації в мпс. Інтерфейс
- •1.6.1 Способи передачі інформації
- •Методи обміну інформацією в мікропроцесорній системі
- •2 Мікроконтролери
- •Структура мк
- •Процесорне ядро мк
- •Резидентна пам'ять мк
- •Порти уведення/виводу
- •Таймери і процесори подій
- •Аналогово-цифрові й цифро-аналогові перетворювачі
- •Мінімізація споживання енергії в мп-системах
- •Моніторинг напруги живлення мк
- •Апаратні і програмні рішення по підвищенню надійності роботи мк
- •Контролери Intel mcs-51
- •3.1 Структурна організація Intel 8051
- •3.1.1 Арифметично-логічний пристрій
- •Зовнішня пам'ять
- •Пристрій керування і синхронізації
- •Програмна модель омк
- •Система команд Intel 8051
- •Арифметичні операції:
- •Логічні команди:
- •Бітові команди:
- •Периферійні присторої омк
- •Порти введення/виводу
- •Звертання до портів можливе тільки за прямою адресою.
- •Лічильники/таймери
- •Послідовний порт
- •Примітка
- •Мікроконтролер pic16f877
- •Характеристика мікроконтролера
- •Cтруктурна схема мікроконтролера pic16f877
- •Організація пам'яті
- •Пам’ять програм
- •Організація пам'яті даних
- •Регістр стану status
- •Лічильник команд
- •Порти введення/виводу
- •Регістри portа і trisa
- •Регістри portb і trisb
- •Регістри portc і trisc
- •Регістри portd і trisd
- •Регістри porte і trise
- •Таймери
- •Модуль таймера tmr0
- •Модуль таймера tmr1
- •Модуль таймера tmr2
- •Модуль 10-розрядного ацп
- •Adcon0 (адреса 1Fh)
- •Adcon1 (адреса 9Fh)
- •Переривання
- •Сторожовий таймер wdt
- •Біти конфігурації
- •Слово конфігурації (адреса 2007h)
- •Система команд
- •Література
Регістр стану status
Регістр стану (адреса 03h, 83h, 103h або 183h) містить арифметичні прапори АЛП, біти стану контролера при скиданні і біти вибору сторінок пам’яті. Регістр STATUS доступний для будь-якої команди так само, як будь-який інший регістр. Проте біти TO і PD встановлюються апаратно і не можуть бути записані в регістр статусу програмно. Це слід мати на увазі при виконанні команди з використанням регістра статусу. Наприклад, команда CLRF обнулить усі біти, окрім бітів TO і PD, а потім встановить біт Z=1. Після виконання цієї команди регістр статусу може і не мати нульового значення (із-за бітів TO і PD) 000??100. Тому рекомендується для зміни регістра статусу використовувати тільки команди бітової установки BCF, BSF, MOVWF, які не змінюють решту біт статусу.
Розміщення прапорів в регістрі STATUS наступне:
b7 b6 b5 b4 b3 b2 b1 b0
IRP |
RP1 |
RP0 |
-TO |
- PD |
Z |
DC |
C |
Біт 7: IRP: Біт вибору банку при непрямій адресації 1 – банк 2, 3(100…1FFh)
0 – банк 0, 1 (000… 0FFh)
Біти 6-5: RP1:RPO: Біти вибору банку при безпосередній адресації 11 – банк 3 (180…1FFh)
10 – банк 2 (100…17Fh)
01 – банк 1 (080… 0FFh)
00 – банк 0 (000… 07Fh)
Біт 4: -ТО: Прапор переповнювання сторожового таймера
1 – після POR або виконань команд CLRWDT, SLEEP 0 – після переповнювання WDT
Біт 3: -PD: Прапор включення живлення
1 – після POR або виконань команди CLRWDT 0 – після виконання команди SLEEP
Біт 2: Z: Прапор нульового результату
1 – нульовий результат виконання арифметичної або логічної операції
0 – не нульовий результат виконання арифметичної або логічної операції
Біт 1: DC: Прапор десяткового перенесення/позики (для команд ADDWF, ADDWL, SUBWF, SUBWL), позика має інверсне значення
1 – було перенесення з молодшого півбайта
0 – не було перенесення з молодшого півбайта
Біт 0: С: Прапор перенесення/позики (для команд ADDWF, ADDWL, SUBWF, SUBWL), позика має інверсне значення
1 – було перенесення із старшого біта
0 – не було перенесення із старшого біта
Примітка. Прапор позики має інверсне значення. Віднімання виконується шляхом збільшення додаткового коду другого операнда. При виконанні команд зрушення (RRF, RLF) біт С завантажується старшим або молодшим бітом зрушуваного регістра.
Регістр OPTION
Регістр OPTION доступний для читання і запису, містить біти управління:
попереднім дільником TMR0/WDT;
активним фронтом зовнішнього переривання RB0/INT;
підтягаючими резисторами на входах PORTB.
Примітка. Якщо попередній дільник включений перед WDT, то коефіцієнт ділення тактового сигналу для TMR0 дорівнює 1:1.
Розміщення бітів керування в регістрі OPTION наступне:
b7 b6 b5 b4 b3 b2 b1 b0
-RBPU |
|INTEDG |
TOCS |
| TOSE |
PSA |
PS2 |
PS1 |
PS0 |
біт 7: -RBPU: Включення підтягаючих резисторів на входах PORTB:
1 = підтягаючі резистори відключені, 0 = підтягаючі резистори включені;
біт 6: INTEDG: Вибір активного фронту сигналу на вході зовнішнього переривання: INT 1 = переривання за переднім фронтом сигналу,
0 = переривання за заднім фронтом сигналу;
біт 5:TOCS: Вибір тактового сигналу для TMR0: 1 = зовнішній тактовий сигнал з виведення RA4/TOCKI, 0 = внутрішній тактовий сигнал CLKOUT;
біт 4: TOSE: Вибір фронту приросту TMR0 при зовнішньому тактовому сигналі: 1 = приріст за заднім фронтом сигналу (з високого до низького рівня) на виведенні RA4/TOCKI, 0 = приріст за переднім фронтом сигналу (з низького до високого рівня) на виведенні RA4/TOCKI;
біт 3: PSA: Вибір включення переддільника: 1 = переддільник включений перед WDT, 0 = переддільник включений перед TMR0;
біти 2-0: PS2…PS0: Установка коефіцієнта ділення переддільника, коефіцієнти ділення наведені в таблиці 4.2.
Таблиця 4.2 – Коефіцієнти ділення переддільника
Значення PS2 – PS0 |
Для TMR0 |
Для WDT |
000 |
1 :2 |
1:1 |
001 |
1 :4 |
1:2 |
010 |
1:8 |
1:4 |
011 |
1:16 |
1:8 |
100 |
1:32 |
1:16 |
101 |
1:64 |
1:32 |
110 |
1:128 |
1:64 |
111 |
1 :256 |
1:128 |
Примітка. При використанні режиму низьковольтного програмування і включених підтягаючих резисторах на PORTB необхідно скинути в '0' 3-й біт регістра TRISB для виключення підтягаючого резистора на виведенні RB3.
Регістр INTCON
Регістр INTCON доступний для читання і запису, містить біти дозволів і прапори переривань: переповнювання TMR0; зміни рівня сигналу на виводах PORTB; зовнішнє джерело переривань RBO/INT.
Розміщення бітів в регістрі INTCON наступне:
b7 b6 b5 b4 b3 b2 b1 b0
GIE |
|PEIE |
TOIE |
INTE |
RBI |
TOIF |
INTF |
RBIF |
біт 7: GIE: Глобальний дозвіл переривань:
1 = дозволені всі немасковані переривання, 0= усі переривання заборонені;
біт 6: PEIE: Дозвіл переривань від периферійних модулів:
1= дозволені всі немасковані переривання периферійних модулів, 0= переривання від периферійних модулів заборонені;
біт 5: TOIE: Дозвіл переривання по переповнюванні TMR0: 1= переривання дозволене,
0= переривання заборонене;
біт 4: INTE: Дозвіл зовнішнього переривання INT: 1= переривання дозволене,
0= переривання заборонене;
біт 3: RBIE: Дозвіл переривання по зміні сигналу на входах RB7:RB4 PORTB:
1= переривання дозволене,
0= переривання заборонене;
біт 2: TOIF: Прапор переривання по переповнюванні TMR0: 1= відбулося переповнення TMR0 (скидається програмно), 0= переповнювання TMR0 не було;
біт 1: INTF: Прапор зовнішнього переривання INT:
1=виконана умова зовнішнього переривання на виведенні RBO/INT (скидається програмно),
0= зовнішнього переривання не було;
біт 0: RBIF: Прапор переривання по зміні рівня сигналу на входах RB7:RB4 PORTB:
1 = зафіксована зміна рівня сигналу на одному з входів RB7:RB4 (скидається програмно),
0 = не було зміни рівня сигналу ні на одному з входів RB7:RB4.
Примітка. Прапори переривань встановлюються при виникненні умов переривань незалежно від відповідних бітів дозволу і біта загального
дозволу переривань GIE (INTCON<7>).
