Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASSEMBLER / MK8051.doc
Скачиваний:
243
Добавлен:
16.04.2015
Размер:
1.8 Mб
Скачать

2.3. Организация памяти

2.3.1. При организации взаимодействия CPUс памятью и другими функциональными устройствами используется единый принцип идентификации устройств–выбор по адресу. Совокупность всех возможных адресов называетсяадресным пространством.

2.3.2. МК 80C51 имеют четыре раздельных адресных пространства: адресное пространство программной памяти (program memory) объемом 64К байт, адресное пространство внешней памяти данных (external data memory) объемом 64К байт, адресное пространство внутренней памяти данных (internal data memory) объемом 128 байт и адресное пространство регистров специальных функций (SFR Special Function Register) объемом 128 байт (рис. 2.4).

Микроконтроллеры типа 80С51BHPотличаются от микроконтроллеров других типов тем, что имеют объемы адресных пространств программной памяти и внешней памяти данных по 4К байт.

2.3.3. Программная память предназначена для хранения кодов команд или констант. Это постоянная память, она доступна только для чтения и недоступна для записи (ROM Read Only Memory). МК 80C51 выпускаются четырех типов (см. рис. 2.1): без внутренней постоянной памяти (80С31BH), с внутренней постоянной памятью масочного типа (80C51BH), с внутренней постоянной памятью масочного типа, защищенной от внешнего считывания (80C51BHP), с внутренней программируемой постоянной памятью, стираемой ультрафиолетовым светом (D87C51), и с однократно программируемой внутренней постоянной памятью (P87C51).МикросхемаP87C51 отличается от микросхемыD87C51 только тем, что она выпускается в пластмассовом корпусе, не имеющем окна для стирания памяти, в то время как микросхемаD87C51 имеет керамический корпус с окном, через которое осуществляется ультрафиолетовое облучение кристалла.

Для того, чтобы запретить доступ CPUк внутренней программной памяти, на МК требуется подать внешний логический сигналEA’=0(External Access). При чтении информации из внешней программной памяти МК вырабатывает стробPSEN(ProgramStorage Enable).

Для разрешения доступа к внутренней программной памяти необходимо выполнение условия EA’=1. При обращенииCPUк внутренней программной памяти стробPSEN’ не вырабатывается.

Рис. 2.4. Структура памяти МК 80C51

2.3.4. Память данных (data memory) предназначена для хранения переменных в процессе выполнения программы. Это оперативная память, она доступна как для чтения, так и для записи (RAM Random Access Memory). При обращении к внешней памяти данных МК вырабатывает строб чтенияRD(read) и строб записиWR(write).

2.3.5. Адресные пространства внешней памяти программ и внешней памяти данных могут быть объединены. Для этого нужно подать сигналы RD’ иPSEN’ на входы логического элемента И, выходной сигнал которого следует использовать в качестве строба чтения из единой внешней памяти программ/данных.

2.4. Программная память

2.4.1. При сбросе МК (по внешнему сигналу RST)CPUначинает выполнение программы с адреса 0000H. В том случае, когдаEA’=1 (см. рис. 2.4), начальный участок программы (младшие 4К байт) извлекается процессором из внутренней постоянной памяти, а остальная часть программы–из внешней памяти. Если МК не имеет внутренней постоянной памяти (или она не используется), то на входEA’ следует подать логический сигнал 0. При этом выборка всей программы будет осуществляться из внешней памяти

2.4.2. Область адресного пространства программной памяти, начиная с адреса 0003Н, отводится для размещения начальных участков подпрограмм обслуживания прерываний (8 байтов на каждую из пяти программ). Адрес первого байта подпрограммы обслуживания прерывания (0003Н, 000BH, 0013H, 001BH, 0023Н), называемый адресом вектора прерывания, формируется контроллером прерываний МК аппаратно при обработке соответствующего запроса прерывания (см. подраздел 2.17).

2.4.3. Подключение к МК микросхемы внешней программной памяти показано на рис. 2.5, где A0A7–входы младших разрядов адреса,A8A15–входы старших разрядов адреса,OE’ иCS’–управляющие входы,DATA–данные, считываемые из памяти,LATCH–регистр-защелка младшего байта адреса (8-разрядный параллельный регистр памяти, тактируемый уровнем).

При обращении к внешней программной памяти порт P0 МК работает в режиме временного мультиплексирования и служит как для вывода младшего байта адреса ячейки внешней памяти, так и для ввода в МК байта данных. ПортP2 используется для вывода старшего байта адреса.

Временным мультиплексированием(time-division multiplexing) называется предоставление канала ввода/вывода информации различным устройствам в разные промежутки времени.

Стробирование ввода/вывода информации через порт P0 при чтении данных из внешней программной памяти осуществляется с помощью управляющих сигналовALEиPSEN, вырабатываемых МК. СигналALE(Address Latch Enable), поступающий с соответствующего выхода МК на тактовый вход регистра-защелки, предназначен для “защелкивания” младшего байта адреса, т.е. запоминания в регистре-защелке того кода, который был на выходах портаP0 в момент окончания сигналаALE. СигналPSENслужит для управления считыванием данных из микросхемы памяти. Если на управляющий входCS(Chip Select) микросхемы памяти поступает сигналCS’=0, то подача сигналаPSEN’=0 на управляющий входOE(Output Enable) микросхемы приведет к тому, что байт данных (DATA) из адресуемой ячейки памяти поступит на вход портаP0 МК.

Рис. 2.5. Подключение микросхемы EPROM к МК 80C51

Временные диаграммы работы МК при выборке кодов команд из внешней программной памяти приведены в подразделе 2.9.

2.4.4. При обращении к внешней программной памяти всегда вырабатывается 16-разрядный адрес (даже тогда, когда объем исполняемой программы меньше, чем 64К байт), поэтому в тех случаях, когда для хранения программы или значений констант используется внешняя программная память, приходится “жертвовать” двумя портами МК.

Соседние файлы в папке ASSEMBLER