Скачиваний:
116
Добавлен:
21.02.2014
Размер:
870.4 Кб
Скачать

4.4 Организация памяти микроконтроллера pic16f876. Регистры.

Организация памяти данных и программ. В микроконтроллерах PIC16F87X имеется три вида памяти. Память программ и память данных имеют раздельные шины данных и адреса, что позволяет выполнять параллельный доступ.

Микроконтроллеры PIC16F87X имеет тринадцати разрядный счетчик команд, способность реализовать 8К14 слов памяти программ. Физически реализовано FLASH памяти программ 8К14. Обращение к физически не реализованной памяти программ приведет к адресации реализованной памяти.

Память данных разделена на четыре банка, которые содержат регистры общего и специального (SFR) назначения. Биты RP1 (STATUS<6>) и RPO (STATUS<5>) предназначены для управления банками данных. В таблице 4 показано состояние управляющих битов при обращении к банкам памяти данных.

Объем банков памяти данных до 128 байт (7Fh).

В начале банка размещаются регистры специального назначения, затем регистры общего назначения выполненные как статическое ОЗУ. Все реализованные банки содержат регистры специального назначения. Некоторые, часто ис

пользуемые регистры специального назначения могут отображаться и в других банках памяти.

Таблица 4 – Значения битов управления доступом к банкам памяти данных

Rp1,Rp0

Банк

00

0

01

1

10

2

11

3

Память данных в РПЗУ (EEPROM). Микроконтроллеры подгруппы PIC6F8X имеют энергонезависимую память данных 64х8 бит EEPROM, которая допускает запись и чтение во время нормальной работы. Эта память не принадлежит области регистровой памяти ОЗУ. Доступ к ней осуществляется посредством косвенной адресации через регистры специальных функций: EEDATA <08h>, который содержит 8-битовые данные для чтения/записи и EEADR <09h>, включающий адрес ячейки, к которой идет обращение. Для управления процессом чтения/записи используются два регистра: EECON1 <88h> и EECON2 <89h>.

При записи байта автоматически стирается предыдущее значение, и записываются новые данные (стирание перед записью). Все эти операции производит встроенный автомат записи EEPROM. Содержимое ячеек этой памяти при выключении питания сохраняется.

Вектор сброса

Вектор прерываний

Страница 0

Страница 1

Страница 2

Страница 3

Внутренняя память программ

Рисунок 14 – Организация памяти программ микроконтроллера PIC16F876

Регистры общего назначения. Обратиться к регистрам общего назначения можно прямой или косвенной адресацией, через регистр FSR.

Регистр STATUS. В регистре STATUS содержатся флаги состояния АЛУ, флаги причины сброса микроконтроллера и биты управления банками памяти данных.

Регистр STATUS может быть адресован любой командой, как и любой другой регистр памяти данных. Если обращение к регистру STATUS выполняется командой, которая воздействует на флаги Z, DC и С, то изменение этих трех битов командой заблокирована. Эти биты сбрасываются или устанавливаются согласно логике ядра микроконтроллера. Команды изменения регистра STATUS также не воздействуют на биты ТО и PD.

Рисунок 11 - Карта памяти данных микроконтроллеров PIC16F877/876

Например, команда CLRF STATUS сбросит три старших бита и установит бит Z. Флаги С и DC используются как биты заёма и десятичного заёма соответственно, например, при выполнении команд вычитания SUBLW и SUBWF.

R-чтение бита; W – запись бита; U – не реализовано; n – значение после

POR; x – неизвестное значение после POR.

Рисунок 15 – Регистр STATUS

Таблица 5 - Назначение битов регистра STATUS

Обозначение

Назначение

Значения

0

C

Флаг перенос/заема

1- был перенос; 0- не было переноса из старшего бита;

1

DC

Флаг десятичного переноса/заема

1- был перенос; 0- не было переноса из младшего полубайта;

2

Z

Флаг нулевого результата

1 - нулевой результат; 0 - ненулевой результат;

3

-PD

Флаг включения питания

1 - после POR; 0 - после выполнения команды SLEEP;

4

-TO

Флаг переполнения сторожевого таймера

1 – после POR или CLRWDT; 0 – после переполненияWDT;

5,6

RP

Биты выбора банка

11 - банк 3; 10 - банк 2; 01 - банк 1; 00 - банк 0

7

IRP

Бит выбора банка при косвенной адресации

1 - банк 2, 3 (100h-1FFh);

0 - банк 0,1(000h-0FFh);

Регистр OPTION REG. Регистр OPTION доступен для чтения и записи, содержит биты управления:

- предварительным делителем TMR0/WDT;

- активным фронтом внешнего прерывания RB0/INT;

- подтягивающими резисторами на входах PORTB.

R – чтение бита; W – запись бита; U – не реализовано; n – значение по-

сле POR; x – неизвестное значение после POR.

Рисунок 16 – Регистр OPTION REG

Таблица 6 – Назначение битов регистра OPTION REG

Обозначение

Назначение

Значения

0

PS0

Установка коэффициента деления предделителя

000 – 1/2;

001 – 1/4;

010 – 1/8;

011 – 1/16;

100 – 1/32;

101 – 1/64;

110 – 1/128;

111 – 1/256;

1

PS1

2

PS2

3

PSA

Выбор включения предделителя

1 – перед WDT;

0 – перед TMPR0;

4

TOSE

Выбор тактового сигнала для TMR0

1 – приращение по заднему фронту; 0 - приращение по переднему фронту;

5

T0CS

Выборка тактового сигнала для TMR0

1 – внешний тактовый сигнал с вывода RA4; 0 – внутренний тактовый сигнал CLKOUT;

6

INTEDG

Выборка активного фронта сигнала на входе внешнего прерывания

1 – прерывание по переднему фронту сигнала;0 – прерывание по заднему фронту сигнала;

7

-RBPU

Включение подтягивающих резисторов на входах PORTB

1 – подтягивание резисторов отключено;0 – подтягивание резисторов включено;