Модуль таймера (TMRO-RTCC)

 

Єдиною відмінністю даного модуля від аналогічного в 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.