Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Опис спеціальних регістрів PIC16С5Х



 

 

Адреса Назва Біт 7 Біт 6 Біт 5 Біт 4 Біт З Біт 2 Біт 1 Біт 0 Значення по включен- ню живлення Значення по скиданню по MCLR і WDT
00h INDF Використовується значення FSR для доступу до пам'яті даних (не фізичний регістр) -- - - -- - -   -- - - -- - -  
01h TMRO 8-розрядний лічильник/таймер хххх хххх uuuu uuuu
02h PCL Молодші 8 розрядів лічильника команд PC 1111 1111 1111 1111
03h STATUS РА2 РА1 РАО ТО PD Z DC С 0001 1xxx 000? ?uuu
04h FSR Регістр побічної адресації хххх хххх uuuu uuuu
05h PORTA РАЗ RA2 RA1 RA0 -- - - хххх -- - - uuuu  
06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 хххх хххх uuuu uuuu
07h PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 хххх хххх uuuu uuuu

Позначення:x – не визначене, u – не змінюється, – відсутня, читається як "0", ? – значення залежить від умов скидання.

Примітки:

1. Старші розряди лічильника команд безпосередньо не доступні. Звернення до старших бітів здійснюється через біти РА1, РАО (STATUS<6:5>).

2. Для PIC16C52/54/C54A/CR54/CR54A/CR54B/C56/CR56/C58A/CR58A/CR58B ре­гістр 07h є регістром загального призначення.

3. Заштриховані фізично відсутні біти.

 

Крім того, спеціальні регістри керують конфігурацією портів вводу-виводу і режимом попереднього дільника (PRS).

Регістри загального призначення використовуються для зберігання змінних за розсудом користувача.

При прямій адресації (рис. 2.6) вибір банку здійснюється за допомогою 2-х бітів PR0 і RP1, що знаходяться в 5 і 6-му розрядах регістра побічної адресації (FSR/Pointer) відповідно.

Вибір регістра в банку здійснюється за допомогою 5-розрядної адреси, що надходить в ОЗП прямо з коду команди по виділеній для цих цілей окремій шині адреси, що зв'язує регістр команд і пам'ять даних.

 

 
 

 

 


FSR – Регістр побічної адресації

RP1, RP0 – Біти 6 і 5 регістра FSR, відповідно

 

Рис. 2.6. Пряма і побічна адресація

 

При побічній адресації (рис. 2.6) використовується перемикач побічної адресації (регістр f0 у пам'яті даних, що фізично не існує) і покажчик Pointer (регістр f4 – FSR).

Існують деякі відмінності при здійсненні побічної адресації для різних типів МК. Так для PIC16C54/C55/C56: біти 0 – 4 регістра (f4) вибирають один з 32 регістрів в режимі побічної адресації, тобто коли у команді є звернення до регістра побічної адресації (f0). Біти 5 – 7 не використовуються і завжди читаються як одиниці. Якщо побічна адресація не використовується, регістр f4 може бути використаний як 5-бітовий регістр загального призначення. Для PIC16C57 перші 16 байтів кожного банку представляють собою ті ж самі фізичні регістри. Тільки тоді, коли біт 4 (f4) встановлений у одиницю (вказує на наступні 16 байтів), біти 5 і 6 вибирають один з чотирьох банків по 16 регістрів кожний. Біт 7 регістра (f4) не використовується і завжди читається як одиниця.

 

Регістр стану STATUS

Регістр стану (f3) містить арифметичні прапорці АЛП, стан мікроконтролера при скиданні і біт вибору сторінок для програм з ємністю пам'яті, що перевищує 512 слів (PIC16C56/PIC16C57). Регістр STATUS доступний для будь-якої команди так само, як будь-який інший регістр. Проте біти TO і PD встановлюються апаратно і не можуть бути записані в регістр статусу програмно. Це слідує мати на увазі при виконанні команди із використанням регістра статусу. Наприклад, команда CLRF f3 обнулить всі біти, крім бітів TO і PD, а після цього встановить біт Z = 1. Після виконання цієї команди регістр статусу може і не мати нульового значення (через біти TO і PD) f3 = 000?? 100. Тому рекомендується для зміни регістра статусу використовувати тільки команди бітового встановлення BCF, BSF, MOVWF, що не змінюють інші біти статусу. Вплив всіх команд на біт статусу можна подивитися в описі команд.

Біти 5 – 6 регістра статусу визначаються як біти адреси сторінок PA0-PA1 програмної пам'яті (тільки для PIC16C56/PIC16C57 !!!). Коли виконуються команди GOTO, CALL і команди, коли програмний лічильник змінюється, наприклад MOVWF 2, біти адреси сторінок PA0-PA1 завантажуються в біти програмного лічильника A9-A10. Таким чином, пряма адреса, зазначена в слові команди, вказує на місце всередині певної сторінки пам'яті. Команда RETLW не змінює біти вибору сторінок. Після сигналу ''Скид" біти регістра статусу PA0-PA1 обнуляються.

Розміщення прапорців в регістрі STATUS (Адреса: 03h. Значення по включенню живлення: 0001 1ххх) наступне:

 

b7 b6 b5 b4 b3 b2 b1 b0
PA2 PA1 PA0 TO PD Z DC C

 

C – Прапорць перенесення/позики.

Для команд ADDWF і SUBWF. Цей біт встановлюється, якщо в результаті операції з самого старшого розряду відбувається перенесення. Віднімання здійснюється шляхом додавання додаткового коду другого операнда. При виконанні команд зсуву цей біт завжди завантажується з молодшого або старшого біта джерела, що зсувається.

 

;------------------------------- Приклад

; SUBWF Example #1

;

clrf 0x20 ; f(20h) = 0

movlf 1 ; wreg = 1

subwf 0x20 ; f(20h) = f(20h)-wreg = 0 = FFh

; Carry = 0: Результат від'ємний.

 

; SUBWF Example #2

;

movlw 0xFF

movwf 0x20 ; f(20h) = FFh

clrw ; wreg = 0

subwf 0x20 ; f(20h) = f(20h)-wreg = FFh-0 = FFh

; Carry = 1: Результат додатний.


DC– Прапорець десяткового перенесення/позики.

Для команд ADDWF і SUBWF. Цей біт встановлюється, якщо в результаті операції з четвертого розряду відбувається перенесення. Механізм встановлення десяткового біта перенесення "DC" такий же, відрізняється лише тим, що відстежується перенесення з четвертого біта.


Z– Прапорець нульового результату:

Встановлюється, якщо результатом арифметичної або логічної операції є нуль.

PD– Power Down (режим зберігання даних):

Встановлюється в "1" при включенні живлення або за командою CLRWDT. Скидається в "0" командою SLEEP.


TO– Time Out. Прапорець спрацьовування сторожового (Watchdog) таймера:

Встановлюється в "1" при включенні живлення і командами CLRWDT, SLEEP. Скидається в "0" по закінченню затримки часу таймера WDT.


PA0, PA1– Біти вибору сторінки пам’яті програм.

Для кристалів PIC16C54/C55 – це біти загального призначення.

Для PIC16C56:

PA0 – Біт вибору сторінки

0 = Сторінка 0 (000—FF),

1 = Сторінка 1 (200—FF).

PA1 – Біт загального призначення.

Для PIC16C57:

PA1, PA0 – обидва біти вибору сторінки:

00 = Сторінка 0 (000—FF),

01 = Сторінка 1 (200—FF),

10 = Сторінка 2 (400—FF),

11 = Сторінка 3 (600—FF).

PA2– Біт загального призначення (зарезервовано для майбутніх розробок).

 

 

Регістр OPTION

Це регістр конфігурації попереднього дільника і RTCC (TMRO). Значеннями бітів в цьому регістрі (він не має адреси!) визначається підключення попереднього дільника до RTCC або WDT, коефіцієнт його ділення, джерело лічильних імпульсів, вибирається фронт сигналу для RTCC. Регістр OPTION призначений тільки для запису і має ширину 6 бітів. Під час виконання команди "OPTION" вміст регістра W завантажується в цей регістр. За сигналом "Скид" всі біти цього регістра встановлюються в одиниці.

Регістр OPTION (Адреса: немає. Значення по ввімкненню живлення:

111111) має наступний зміст:

 

b5 b4 b3 b2 b1 b0
RTS (TOSC) RTE (TOSE) PSA PS2 PS1 PS0

 

PS2 ... PS0– Настроювання попереднього дільника (див. табл. 2.4).

PSA–Біт, який вказує, що дільник працює з RTCC (TMRO) або WDT:

0 – RTCC, 1 – WDT.

RTE (T0SE)– Фронт сигналу RTCC:

0 – інкремент по позитивному фронту на ніжці RTCC,

1 – інкремент по негативному фронту на ніжці RTCC.

RTS (T0CS)– Джерело сигналу для RTCC:

0 – сигнал від внутрішнього генератора,

1 – зовнішній сигнал на ніжці RTCC.

 

Таблиця 2.4

Настроювання попереднього дільника

 

PS2….PS0 Коефіцієнти ділення
RTCC (TMRO) WDT
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256

 

Програмний лічильник

Програмний лічильник забезпечує доступ до 12-бітних комірок вбудованої постійної пам'яті (EPROM), довжина якої може бути до 2048 комірок.

В залежності від типу PIC, програмний лічильник (PC) і відповідний дворівневий апаратний стек мають ширину від 9 до 11 бітів (див. табл. 2.5).

 

Таблиця 2.5

Ширина програмного лічильника і стека

 

Тип МК Ширина PC (біт) Ширина стека (біт)
PIC16C54/PIC16C55
PIC16C56
PIC16C57

 

При скиді, всі біти програмного лічильника встановлюються в одиниці. У процесі виконання програми PC автоматично інкрементується при виконанні кожної команди, якщо команда сама не змінить його у наступних випадках:

1) при виконанні команди GOTO в програмний лічильник завантажуються молодші 9 бітів (PC<8:0>). У випадку використання PIC16C56 або PIC16C57, в старші два біти програмного лічильника (PC<10:9>) завантажуються біти вибору сторінок PA1 і PA0 (біти 6 і 5 регістра статусу). За допомогою команди GOTO можна переміститись в будь-яке місце будь-якої сторінки пам'яті програм;

2) при виконанні команди CALL у програмний лічильник завантажують-

ся молодші 8 бітів, в той час як дев'ятий біт обнуляється. Значення PC, збільшене на одиницю, буде збережене в стеці. У випадку PIC16C56/PIC16C57, в старші два біти PC (PC <10:9>) завантажуються біти вибору сторінок PA1, PA0 (біти 6 і 5 регістра статусу);

3) команда RETLW вивантажує в програмний лічильник вміст з вершини стека;

4) якщо програмний лічильник задіяний в команді (наприклад, MOVWF 2, ADDWF 2, BSF 2,5), то 8 бітів результату виконання команди будуть завантажені в молодші 8 бітів програмного лічильника. Дев'ятий біт PC буде обнулятися. У випадку PIC16C56/PIC16C57, в старші біти PC<10,9> будуть завантажені біти вибору сторінок PA1, PA0 (біти 6 і 5 в регістрі статусу).

Так як дев'ятий біт програмного лічильника обнуляється при виконанні команди CALL, або команд, що записують свій результат в PC, то виклик підпрограм або здійснення переходу, що вираховується, обмежені першою половиною сторінки програмної пам'яті, тобто першими 256 адресами.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.