Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stenin Lab / C8051F60-67-устройство МК.pdf
Скачиваний:
150
Добавлен:
10.02.2015
Размер:
5.19 Mб
Скачать

C8051F060/1/2/3/4/5/6/7

17. ИНТЕРФЕЙС ВНЕШНЕЙ ПАМЯТИ ДАННЫХ И ВСТРОЕННАЯ ПАМЯТЬ XRAM.

МК C8051F060/1/2/3/4/5/6/7 содержат 4 Кбайт встроенного ОЗУ, отображенные в пространстве внешней памяти данных (XRAM). Кроме этого МК C8051F060/2/4/6 интерфейс внешней памяти данных (external memory interface – EMIF), который может использоваться для доступа к внешней (не встроенной) памяти и отображенным на память устройствам, присоединенным к портам ввода/вывода общего назначения. Доступ к пространству внешней памяти осуществляется либо с использованием команды MOVX и указателя данных DPTR, либо с использованием команды MOVX с косвенным режимом адресации (используя регистры R0 и R1). Если команда MOVX используется с 8-битным операндом адреса (например, @R1), то старший байт 16-битного адреса берется из регистра управления интерфейсом внешней памяти EMI0CN (см. рис.17.1).

Примечание: команда MOVX также используется для записи во Flash-память (см. раздел 16). По умолчанию команда MOVX обращается к памяти XRAM.

17.1. Доступ к памяти XRAM

Для доступа к пространству памяти XRAM (как внутренней, так и внешней) используется команда MOVX. Команда MOVX имеет две формы, причем обе используют косвенный режим адресации. В первой форме используется 16-разрядный указатель данных (DPTR), содержащий полный адрес ячейки памяти XRAM, которую требуется прочитать или записать. Во второй форме для получения полного адреса ячейки памяти XRAM используются регистры R0 или R1 в комбинации с регистром EMI0CN. Ниже приведены примеры использования команды MOVX в обоих формах.

17.1.1. Пример использования команды MOVX с 16-разрядным адресом

Команда MOVX в 16-разрядной форме обращается к ячейке памяти, на которую указывает содержимое регистра DPTR. Следующая последовательность команд осуществляет чтение байта по адресу 0х1234 в аккумулятор А:

MOV

DPTR, #1234h

; загрузка в DPTR 16-разрядного адреса 0х1234

MOVX

A, @DPTR

; загрузка содержимого ячейки памяти с адресом 0х1234 в аккумулятор А

В приведенном выше примере регистр DPTR загружается сразу 16-разрядным значением адреса (используя команду MOV). Кроме этого, к регистру DPTR можно обращаться через SFR регистры DPH, который содержит старшие 8 бит DPTR, и DPL, который содержит младшие 8 бит DPTR.

17.1.2. Пример использования команды MOVX с 8-разрядным адресом

Команда MOVX в 8-разрядной форме использует содержимое регистра EMI0CN, чтобы определить старшие 8 бит полного адреса, по которому происходит обращение, и содержимое регистров R0 или R1, чтобы определить младшие 8 бит полного адреса. Следующая последовательность команд осуществляет чтение байта по адресу 0х1234 в аккумулятор А:

MOV

EMI0CN, #12h ; загрузка старшего байта адреса в регистр EMI0CN

MOV

R0, #34h

; загрузка младшего байта адреса в регистр R0 (или R1)

MOVX

A, @R0

; загрузка содержимого ячейки памяти с адресом 0х1234 в аккумулятор А

187

Ред. 1.2