Єдиною відмінністю даного модуля від аналогічного в PIC 16С5Х є можливість формування сигналу переривання.
Переривання по RTCC виробляється тоді, коли відбувається переповнення RTCC таймера/лічильника при переході від FFH до 00h. Тоді встановлюється біт запиту RTIF в регістрі INTCON < 2 >. Дане переривання можна замаскувати бітом RTIE в регістрі INTCON < 5 >. Біт запиту RTIF повинен бути скинутий програмно при обробці переривання. Переривання по RTCC не може вивести процесор з SLEEP тому, що таймер не функціонує в цьому режимі.
Таблиця 2.9
Т
Опис спеціальних регістрів PIC 16С71
Адреса | Ім'я | Біт 7 | Біт 6 | Біт 5 | Біт 4 | Біт 3 | Біт 2 | Біт 1 | Біт 0 |
Банк 0 | |||||||||
00h | INDF | Використовується значення FSR для доступу до пам'яті даних (нефізичний регістр) | |||||||
01h | TMRO | 8-розрядний таймер/лічильник | |||||||
02h | PCL | Молодші 8 розрядів лічильника команд РС | |||||||
03h | STATUS2 | IRP | RP1 | RP0 | TO | PD | Z | DC | C |
04h | FSR | Регістр непрямої адресації (Покажчик адреси) | |||||||
05h | PORTA | – | – | RA4/ TOCKI | RA3 | RA2 | RA1 | RA0 | |
06h | PORTB | RB7 | RB6 | RB5 | RB4 | RB3 | RB2 | RB1 | RB0/INT |
07h | |||||||||
08h | ADCON0 | ADCS1 | ADCS0 | CHS1 | CHS0 | GO/ DONE | ADIF | ADON | |
09h | ADRES1 | Регістр зберігання результатів АЦП | |||||||
0Ah | PCLATH | – | – | – | Старші розряди лічильника РС1 | ||||
0Bh | INTCON | GIE | EEIE | TOIE | INTE | RBIE | TOIF | INTF | RBIF |
Банк 1 | |||||||||
80h | INDF | Використовується значення FSR для доступу до пам'яті даних (нефізичний регістр) | |||||||
81h | OPTION | RBPU | INTEDG | TOCS | TOSE | PSA | PS2 | PS1 | PS0 |
82h | PCL | Молодші 8 розрядів лічильника команд РС | |||||||
83h | STATUS2 | IRP | RP1 | RP0 | TO | PD | Z | DC | C |
84h | FSR | Регістр непрямої адресації (Покажчик адреси) | |||||||
85h | TRISA | – | – | – | Біти управління портом А | ||||
86h | TRISB | Біти управління портом В | |||||||
87h | |||||||||
88h | ADCON1 | PCFG1 | PCFG0 | ||||||
89h | A ADRES2 | Р Регістр зберігання результатів АЦП | |||||||
0Ah | P PCLATH | – | – | – | Ст Старші розряди лічильника РС1 | ||||
0Bh | I INTCON | G GIE | E EEIE | T TOIE | I INTE | R RBIE | T TOIF | I INTF | RBIF |
Примітки:
1. Старші розряди програмного лічильника РС < 12:8 > прямо недосяжні. Вони можуть бути записані або прочитані тільки через регістр PCLATH.
2. Низький рівень сигналу на вході MCLR не змінює стану бітів PD і TO. Біти зберігають своє значення, доки не надійде будь-яка інша умова скидання.
2.3.5. Регістр статусу (STATUS)
Відрізняється від аналогічного регістра PIC 16С5Х лише тим, що замість трьох бітів вибору сторінок пам'яті програм РА2, РА1, РА0 у відповідних розрядах 7.6 і 5 містяться біти вибору сторінки пам'яті даних RP1, RP0 при прямій адресації і IRP при непрямій. Розміщення прапорців в регістрі статусу наступне:
R/W | R/W | R/W | R | R | R/W | R/W | R/W |
IRP | RP1 | RP0 | __ TO | __ PD | Z | DC | C |
Біт 7 | Біт 0 |
RP1,RP0 – Біти вибору сторінки пам'яті даних при прямій адресації:
RP1,RP0:
00 = Сторінка 0 (00h-7Fh);
01 = Сторінка 1 (80h-FFh);
10 = Сторінка 2 (100h-17Fh);
11 = Сторінка 3 (180h-1FFh).
На кожній сторінці розміщено 128 байтів. В кристалі PIC16C71 використовується тільки RP0. В цьому кристалі RP1 може використовуватися просто як біт загального призначення читання/запису. Однак треба пам'ятати, що в наступних розробках він буде використовуватись.
IRP – Біт вибору сторінки пам'яті даних при непрямій адресації:
IRP:
0 = Сторінки 0, 1 (00h-FFh);
1 = Сторінки 2, 3 (100h-1FFh).
Цей біт в кристалі PIC16C71 використовувати не має сенсу. Тому його можна використати як біт загального призначення читання/запису. Однак, треба пам'ятати, що в наступних розробках він буде використовуватись.
2.3.6. Програмний лічильник і організація пам'яті програм
Програмний лічильник в PIC16C71 має ширину 13 бітів і здатний адресувати 8к х 14 бітів ємності програмної пам'яті. Однак, фізично на кристалі PIC16C71/711 є тільки 1к х 14 бітів пам'яті (адреси 0000h-03FFh). Звернення до адрес вище 3FFh фактично є адресація в той же перший кілобайт. Модифікація PIC16C710 має тільки 512 х 14 бітів пам'яті, а PIC16C715 – 2к х 14 бітів. Вектор скидання для всіх модифікацій знаходиться за адресою 0000h, вектор переривання знаходиться за адресою 0004h.
Організація пам'яті програм показана на рис. 2.20.
0000h | Вектор скидання | |
......................... | ||
0004h | Вектор переривання | |
03FFh | Команди програми | Доступна користувачу пам'ять |
0400h 1FFFh | ////////////////////////////////////////////////////////////////////////////////////////////////////// | Відсутня в PIC 16С71/711 |
Рис. 2.20. Організація пам'яті програм
Ширина програмного лічильника – 13 бітів. Молодший байт програмного лічильника (PCL), доступний для читання і запису, знаходиться в регістрі 02h. Старший байт програмного лічильника (PCH) не може бути прямим чином прочитаний або записаний. Старший байт програмного лічильника може бути записаний через PCLATH регістр, адреса якого 0Ah. В залежності від того, завантажується чи ні в програмний лічильник нове значення під час виконання команд CALL, GOTO або в молодший байт програмного лічильника (PCL) проводиться запис результату виконання команди, старші біти програмного лічильника завантажуються із PCLATH різними засобами так, як показано на рис. 2.21.