Память данных и спецрегистры. Специальные регистры

Страницы работы

Содержание работы

Память данных

Память данных PIC-микроконтроллеров построена на статических регистрах, собранных на транзисторах по КМОП технологии. Это обеспечивает достаточно высокое быстродействие с возможностью снижения потребления питания при снижении тактовой частоты.

Каждая ячейка (слово) памяти данных в восьмиразрядных микроконтроллерах содержит восемь разрядов и имеет свой адрес. Так как адреса могут пересылаются по шине данных, они состоят обычно тоже из восьми двоичных разрядов. Таким адресом можно однозначно определить только 256 ячеек памяти. Этого для современных микропроцессоров часто совершенно недостаточно. Память большего объема разбивают на части, которые называют банками данных. Каждый банк имеет свой дополнительный адрес банка, который хранится в специальном регистре. В восьмиразрядных микропроцессорах банк обычно состоит из 256 ячеек адресуемых с помощью адреса длиной в один байт.

Рассмотрим память данных RISK микроконтроллеров на примере PIC16F84A. В PIC16 для адресации памяти данных используется только 7 разрядов (6:0) поэтому банк данных PIC16F84A содержит только 128 регистров.

В единое адресное пространство памяти данных PIC микроконтроллеров кроме обычных регистров общего назначения (РОН, англоязычная аббревиатура GPR), выполняющих хранение обрабатываемых данных, включены специальные регистры. (СФР или SFR)

Специальные регистры

Специальные регистры имеют дополнительные электрические соединения, которые позволяют управлять отдельными устройствами микроконтроллера или считывать с них данные.

Табл 1. Распределение памяти данных PIC16F84A

Банк 0

Банк 1

Адрес

Регистр

Адрес

Регистр

00h

INDF

80h

INDF

01h

TMR0

81h

OPTION_REG

02h

PCL

82h

PCL

03h

STATUS

83h

STATUS

04h

FSR

84h

FSR

05h

PORTA

85h

TRISA

06h

PORTB

86h

TRISB

07h

-----

87h

-------

08h

EEDATA

88h

EECON1

09h

EEADR

89h

EECON2

0Ah

PCLATH

8Ah

PCLATH

0Bh

INTCON

8Bh

INTCON

0Ch

4Fh

Регистры общего назначения (РОН или GPR)

8Ch

8Fh

Дублирующее отображение РОН нулевого банка

50Fh

7Fh

Регистры отсутствуют

D0h

CFh

Регистры отсутствуют

Пользуясь РОН, как ячейками обычной памяти, можно выполнять любые вычисления. Регистры СФР не следует использовать для обычных вычислений.

Рассмотрим память данных самого простого микроконтроллера семейства PIC16, а именно - PIC16F84A, которая описана в табл. 1.

Из таблицы видно, что оперативная память состоит из двух банков, но содержит всего 68 однобайтовых ячеек (РОН) с адреса 0Ch по 4Fh. Здесь символ h указывает на шестнадцатеричное представление значения адреса. Такого объема оперативной памяти (SRAM) вполне достаточно для решения простейших задач на языке ассемблера. Поэтому банк 0 использован не полностью и последние адреса с 50Fh просто не используются. В банке 1 по адресам 8Ch - 8Fh своих регистров нет, а читаются регистры из банка 0. Регистры с адресами 00h, 80h и 89h заняты как вспомогательные ячейки для промежуточного хранения оперативных адресов устройств микроконтроллера и программистом не могут быть использованы.

Специальные регистры имеют индивидуальные имена и используются для взаимодействия управляющей программы с внутренними устройствами микропроцессора. В памяти данных некоторые из них дублированы в обоих банках памяти.

Часть регистров имеет узко специальное назначение и используется только в отдельных операциях. К таким относятся регистр TMRO, который является восьмиразрядным регистром-счетчиком соответствующего таймера, и регистры EEDATE, EECON1, EEADR и EECON2. Последние предназначены для взаимодействия с дополнительной энергонезависимой памятью EEPROM, которая выполнена встроенной в микроконтроллер, но считается периферийным устройством. Остальные специальные регистры могут использоваться в программах с самыми различными функциями.

Регистр состояния STATUS

Регистр STATUS содержит информацию о состоянии арифметико-логического устройства (разряды C, DC и Z), о причинах выполнения последнего сброса микроконтроллера ( и ) и указатель номера выбранной страницы. В табл.2 приведено распределение указанных данных по двоичным разрядам регистра. Над именем каждого разряда указана возможность чтения и записи в разряд, а также состояние по умолчанию (обычно после сброса при включении питания). Здесь символы означают следующее: R/W - содержимое разряда можно считывать и записывать при необходимости, R - только считывать, 1 - единичное состояние по умолчанию, 0 - нулевое состояние по умолчанию, x - произвольное состояние по умолчанию, т.е. сброс разряда при включении микропроцессора отсутствует.

Похожие материалы

Информация о работе