Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPSS Lab.rab.(ru) 2011-07-16 EP.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

Распределение областей памяти процессоров pic16

Организация памяти программы. Область памяти программ включает в себя 8192 14-разрядных ячеек. Эта область памяти разделена на 4 банка, а каждый банк – на 8 сегментов по 256 ячеек (табл.1.1). Адрес каждой ячейки памяти указывается в счетчике команд PC. Содержимое PC отображается в двух специализированных ячейках области памяти данных имеющих формальные имена PCL и PCLATH (младший байт и старший байт адреса). Переключение между банками осуществляется за счёт модификации разрядов 3 и 4 в регистре PCLATH. Сегменты в пределах каждого банка соответствуют изменению только младшего байта PCL, а номер сегмента определяют биты 0, 1, 2 регистра PCLATH.

Таблица 1.1 – Организация памяти программ

Segment

Address

Label

Address

Label

Address

Label

Address

Label

0

0x0000

RESET

0x0800

 

0x1000

 

0x1800

 

…

 

 

 

…

 

 

 

0x0004

V_INT

 

 

0x1004

 

 

 

…

 

 

 

…

 

 

 

0x00FF

 

0x08FF

 

0x10FF

 

0x18FF

 

1

0x0100

 

0x0900

 

0x1100

 

0x1900

 

…

 

 

 

…

 

 

 

0x01FF

 

0x09FF

 

0x11FF

 

0x19FF

 

2

0x0200

 

0x0A00

 

0x1200

 

0x1A00

 

…

 

 

 

…

 

 

 

0x02FF

 

0x0AFF

 

0x12FF

 

0x1AFF

 

3

0x0300

 

0x0B00

 

0x1300

 

0x1B00

 

…

 

 

 

…

 

 

 

0x03FF

 

0x0BFF

 

0x13FF

 

0x1BFF

 

4

0x0400

 

0x0C00

 

0x1400

 

0x1C00

 

…

 

 

 

…

 

 

 

0x04FF

 

0x0CFF

 

0x14FF

 

0x1CFF

 

5

0x0500

 

0x0D00

 

0x1500

 

0x1D00

 

…

 

 

 

…

 

 

 

0x05FF

 

0x0DFF

 

0x15FF

 

0x1DFF

 

6

0x0600

 

0x0E00

 

0x1600

 

0x1E00

 

…

 

 

 

…

 

 

 

0x06FF

 

0x0EFF

 

0x16FF

 

0x1EFF

 

7

0x0700

 

0x0F00

 

0x1700

 

0x1F00

 

…

 

 

 

…

 

 

 

0x07FF

 

0x0FFF

 

0x17FF

 

0x1FFF

 

Bank 0

Bank 1

Bank 2

Bank 3

Организация памяти данных. Шина данных разрядностью 8 бит соединяет группу регистров ОЗУ, порты ввода/вывода и 8-разрядное АЛУ. Область памяти данных содержит до 512 однобайтовых ячеек, разделенных на страницы по 128 байт или секторы по 256 байт. В младших 32 ячейках каждой страницы содержатся служебные регистры, содержащие информацию о состоянии процессора, отображающие режимы работы и состояние устройств ввода и вывода. Регистры, обеспечивающие функционирование процессора – РСL, PCLATH, STATUS, INDF, FSR, INTCON – имеют клоны во всех страницах. Эти ячейки всегда доступны независимо от того, какая страница памяти активна (табл. 1.2). Пользовательские регистры (USER FILES) размещены в нижней части каждой страницы. Некоторые из них (UNITED USER FILES) также объединены для организации пользовательского стека данных.

Таблица 1.2. Организация памяти данных

Address

file

Address

file

Address

file

Address

file

0x00

INDF

0x01

TMR0

0x81

 

0x101

 

0x181

 

0x02

PCL

0x03

STATUS

0x04

FSR

0x05

PORTA

0x85

TRISA

 

 

 

 

0x06

PORTB

0x86

TRISB

 

 

 

 

0x07

PORTC

0x87

TRISC

 

 

 

 

0x08

PORTD

0x88

TRISD

 

 

 

 

0x09

PORTE

0x89

TRISE

 

 

 

 

0x0A

PCLATH

0x0B

INTCON

…

 

 

 

 

 

 

 

0x1E

ADRES

 

 

 

 

 

 

0x1F

ADCON0

0x9F

ADCON1

 

 

 

 

0x20

USER FILES

0xA0

USER FILES

0x120

USER FILES

0x1A0

USER FILES

…

…

…

…

0x6F

0xEF

0x16F

0x1EF

0x70

UNITED

…

USER

0x7F

FILES

Page 0

Page 1

Page 2

Page 3

Sector 0

Sector 1

Регистры могут быть адресованы прямо с указанием их адреса в команде либо косвенно путем указания формального адреса INDF, инициирующего извлечение фактического адреса из регистра косвенной адресации FSR. Непосредственная адресация поддерживается специальными командами, загружающими данные из кода команды в программе в рабочий регистр W.

Регистр состояния STATUS. Регистр состояния содержит флаги состояния АЛУ, состояние контроллера при сбросе и биты выбора страниц памяти программы. Регистр STATUS доступен для любой команды так же, как и любой другой регистр. Однако биты ТО и PD устанавливаются аппаратно и не могут быть изменены программно. Это следует иметь в виду при выполнении команд с использованием регистра состояния. Например, команда CLRF STATUS обнулит все биты, кроме битов ТО и PD, а затем установит бит Z=1. После выполнения этой команды регистр состояния будет иметь значение 000uu100 (ТО и PD не изменились). В связи с этим не рекомендуется изменять состояние битов этого регистра непосредственно, а использовать команды, устанавливающие биты признаков в необходимое состояние. Допускается также использовать команды битовой установки BCF, BSF.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]