Память данных
Память данных 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 - произвольное состояние по умолчанию, т.е. сброс разряда при включении микропроцессора отсутствует.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.