MCS-51 (1031646), страница 13
Текст из файла (страница 13)
При этом внутренняя память программ отключается и, начиная с нулевого адреса, все обращения происходят к внешней памяти программ с формированиемсигнала РМЕ. В случае, если DEMA=1, работают и внутренняя и внешняя память программ. Для ОМЭВМ, не имеющих внутренней памяти программ, для нормальной работывсегда необходимо задавать DEMA=0.Таким образом, доступ к внешней памяти программ осуществляется в двух случаях:1) при действии сигнала DEMA=0 независимо от адреса обращения,2) в любом случае, если программный счетчик (PC) содержит число, большее чем0FFFH.Если центральный процессор осуществляет доступ к внешней памяти программ,сигнал РМЕ вырабатывается дважды во время каждого машинного цикла (исключение составляет команда MOVX) независимо от того, необходим или нет выбираемый байт длятекущей команды.
При выборке из внешней памяти программ всегда используется 16битовый адрес, младший байт которого выдается через порт Р0, а старший байт - черезпорт Р2 ОМЭВМ. Байт из внешней памяти программ вводится в ОМЭВМ через порт Р0,который в этом случае используется как шина адреса/данных в режиме мультиплексирования.На рис.
2.24а показаны младшие адреса памяти программ, которые, как правило,отводятся под обработку прерываний и начало работы ОМЭВМ после сброса.Рис. 2.24а. Младшие адреса памяти программВнутренняя память данных ОМЭВМ состоит из двух областей: 128 байт оперативной памяти (ОЗУ) с адресами 0—7FH и области регистров специальных функций, занимающей адреса 80Н—FFH. Распределение пространства внутренней памяти данных показано на рис. 2.25. Физически внутреннее ОЗУ данных и область регистров специальныхфункций являются отдельными устройствами.Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямойи косвенной адресации (режимы адресации описаны в описании системы командОМЭВМ).
Кроме того, внутреннее ОЗУ данных имеет следующие особенности.61Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров в каждом (БАНК0—БАНКЗ на рис. 2.25). Команды программы могут обращаться крегистрам, используя их имена R0—R7. Два бита PSW (указатели банка рабочих регистров RS0 и RS1) определяют, с регистрами какого банка! производятся манипуляции. Наличие такого механизма работы с ячейками ОЗУ, позволяет экономить память программ,т.
к. команды, работающие с регистрами R0—R7, короче команд, использующих прямуюадресацию.Следующие после банков регистров внутреннего ОЗУ данных 16 байт (адреса 20Н 2FH) образуют область ячеек, к которым возможна побитовая адресация. Набор командОМЭВМ семейства МК51 содержит значительное количество инструкций, позволяющихработать с отдельными битами, используя при этом прямую адресацию. 128 бит, составляющих рассматриваемую область внутреннего ОЗУ данных, имеют адреса 00Н - 7FH ипредназначены для работы с такими инструкциями. Битовая адресация ОЗУ показана нарис. 2.26, где в квадратах, символизирующих биты, указаны их адреса.Обращение к внутреннему ОЗУ данных всегда осуществляется с использованием 8разрядного адреса.
При включении питания содержимое ОЗУ будет иметь случайное значение.Рис. 2.25. Адресное пространство внутренней памяти данныхОбласть регистров специальных функций содержит защелки портов, регистры таймеров/счетчиков, регистры управления и т.п. Полный список регистров специальныхфункций с их адресами приведен в табл. 2.1а раздела 2.1. Эти регистры допускают толькопрямую адресацию. Двенадцать байт в области регистров специальных функций допускают как байтовую, так и побитовую адресацию.
Список регистров с побитовой адресацией показан на рис. 2.27. Как видно из рисунка, побитовую адресацию допускают те регистры специальных функций, чей адрес заканчивается 000В. Биты в рассматриваемой области регистров специальных функций имеют адреса 80Н—F7H.62Адресбайтастаршийбит D72FH2ЕН2DH2СН2ВН2АН29Н28Н27Н26Н25Н24Н23Н22Н21Н20Н1FH18Н17Н10Н0FH08Н07Н00Н7F776F675F574F473F372F27IF170F077Е766Е665Е564Е46ЗЕ362Е26IE160Е06младшийбит D07D756D655D554D453D352D25ID150D057С746С645С544С44ЗС342С241С140С047В736В635В534В43ЗВ332В231В130В037А726А625А524А42ЗА322А221А120А027971696159514941393129211911090178706860585048403830282018100800БАНК_3БАНК_2БАНК_1БАНК_0Рис. 2.26.
Битовая адресация ОЗУАдресбайтастаршийбит D70F0H0Е0НF7E7CVD7B7EA47A7SM09F97TF117870D0H0B8Н0B0H0A8H0A0Н098Н090Н088H080НF6 F5 F4 F3E6 E5 E4 E3AC F0 RS1 RS0D6 D5 D4 D3- PT2 PS PT1- BD BC BBB6 B5 B4 B3- ET2 ES ET146 45 44 43A6 A5 A4 A3SM1 SM2 REN TB89Е 9D 9С 9В96 95 94 93TR1 TE0 TR0 IE116 15 14 1386 85 84 83младшийбит D0F2E2OVD2PX1BAB2EX142A2RB89А92IT11282F1E1D1PT0B9B1ET041A1TI9991IE01181F0E0PD0PX0B8B0EX040A0RI9890IT01080Идентификатор регистраBACCPSWIPP3IEP2SCONP1TCONP0Рис. 2.27. Адреса битов регистров специальных функцийВнешняя память данных формируется дополнительными микросхемами памяти,подключаемыми к ОМЭВМ и может иметь емкость до 64 Кбайт.
Пространства внутренней и внешней памяти данных не пересекаются, т.к. доступ к ним осуществляется с помощью разных команд. Для работы с внешней памятью данных существуют специальные63команды M0VX, которые не влияют на внутреннюю память данных ОМЭВМ. Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00Н—FFH и внешняя память данных с адресами 0000H-FFFFH. Обращение к ячейкам внешней памяти данных осуществляется только с использованием косвенной адресации по регистрам R0 и R1 активного банка регистров внутреннего ОЗУ (команды типаMOV @Ri или по регистру специальных функций DPTR (команды типа MOV @DPTR).Соответственно в первом случае будет формироваться 8-разрядный, а во втором случае16-разрядный адреса внешней памяти данных.При обращениях к внешней памяти данных адрес выводится через порт Р0 (младший байт) и порт Р2 (старший байт) ОМЭВМ.
Обмен байтом данных (запись и чтение)производится через порт Р0 ОМЭВМ, т. е. порт Р0 используется как шина адреса/данных врежиме мультиплексирования.Считывание данных из внешней памяти данных в ОМЭВМ производится с помощью выходного сигнала ОМЭВМ RD, а запись данных из ОМЭВМ во внешнюю памятьданных с помощью выходного сигнала ОМЭВМ WR.Каждый тип внешней памяти (память программ, память данных) может быть добавлен независимо от другого и каждый использует те же адреса и шины данных, но различные сигналы управления.2.4.
Система командСистема команд ОМЭВМ предоставляет большие возможности обработки данных,обеспечивает реализацию логических, арифметических операций, а также управление врежиме реального времени. Реализована побитовая, потетрадная (4 бита), побайтовая (8бит) и 16-разрядная обработка данных.БИС семейства МК51 — 8-разрядная ОМЭВМ: ПЗУ, ОЗУ, регистры специальногоназначения, АЛУ и внешние шины имеют байтовую организацию. Двухбайтовые данныеиспользуются только регистром-указателем (DPTR) и счетчиком команд (PC). Следуетотметить, что регистр-указатель данных может быть использован как двухбайтовый регистр DPTR или как два однобайтовых регистра специального назначения DPH и DPL.Счетчик команд всегда используется, как двухбайтовый регистр.Набор команд ОМЭВМ имеет 42 мнемонических обозначения (аббревиатур) команд для конкретизации 33 функций этой системы.Синтаксис большинства команд ассемблерного языка ОМЭВМ состоит из мнемонического обозначения функции, вслед за которым идут операнды, указывающие методыадресации и типы данных.
Различные типы данных или режимы адресации определяютсяустановленными операндами, а не изменениями мнемонических обозначений. Например,аббревиатура "MOV" используется восемнадцатью различными командами для обработкитрех типов данных (битов, байтов, адресов) в различных адресных пространствах.Мнемонические обозначения функций однозначно связаны с конкретными комбинациями способов адресации и типами данных. Всего в системе команд возможно 111 таких сочетаний.В машинном коде команда занимает один, два или три байта.Команды выполняются за один, два или четыре (умножение и деление) машинныхцикла.При частоте тактового генератора, равной 12 МГц, одноцикловые команда выполняются за 1 мкс, двуцикловые — за 2 мкс и т.д.Из 111 типов команд 64 выполняются за 1 мкс (12 тактов), 45 команд — за ; мкс (24такта) и две команды — умножение и деление (MUL, DIV) выполняются за 4 мкс (48 тактов).В системе команд ОМЭВМ семейства МК51 по сравнению с системой командОМЭВМ типа МК48 отсутствуют специальные команды ввода-вывода, управления тайме-64рами/счетчиками и др.
Эти функции реализуются, например, как частные случаи обращения к регистрам специального назначения с помощью прямой адресации:MOV direct, A;Все команды условных переходов осуществляются относительно содержимогосчетчика команд с адресом перехода, вычисляемым ЦПУ во время выполнена команды.Трехбайтовые команды перехода и вызова LCALL, LJMP (с 16-разрядньк адресом)позволяют осуществлять переход и обращение по любому адрес адресного пространствапамяти программ емкостью 64 Кбайт. Если необходим переход в пределах области памятипрограмм 2 К, то можно использовать команды перехода и вызова с 11-разрядным адресом (ACALL, AJMP).