Обращение к внутреннему ОЗУ данных всегда осуществляется с использованием 8-разрядного адреса

Рис 4. Распределение памяти данных

 

Внешняя память данных – формируется дополнительными микросхемами памяти и может иметь емкость до 64 Кбайт. Обращение к ячейкам внешней памяти данных осуществляется только с использованием косвенной адресации по регистрам R0 и R1 активного банка регистров внутреннего ОЗУ (команды типа MOV @Ri) или по регистру специальных функций DPTR (команды типа MOVХ @DPTR). При обращении к внешней памяти данных адрес выводится через порт Р0 (младший байт) и порт Р2 (старший байт) ОЭВМ. Обмен байтом данных производится через порт Р0 ОЭВМ. Считывание данных из внешнего ОЗУ в ОЭВМ производится с помощью выходного сигнала ОЭВМ RD, а запись - сигнала WR.

Организация ввода-вывода

Порты Р0, Р1, Р2, Р3 являются двунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией ОМЭВМ с внешними устройствами, образуя 32 шины ввода-вывода. Помимо работы в качестве обычных портов ввода-вывода линии портов Р0-Р3 могут выполнять ряд дополнительных функций.

Через порт Р0:

· выводится младший байт адреса А0-А7 при работе с внешней памятью программ и внешним ОЗУ;

· выдается из ОМЭВМ и принимается в ОЭВМ байт данных при работе с внешней памятью (таким образом, этот порт представляет собой в этом режиме так называемую мультиплексированную шину адреса/данных);

· задаются данные при программировании внутреннего ППЗУ, и читается содержимое внутренней памяти команд.

Через порт Р1:

·задается младший байт адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ.

Через порт Р2:

·выводится старший байт адреса А8-А15 при работе с внешней памятью команд и внешней памятью данных (для внешней памяти данных – только при использовании команд MOVX A,@DPTR и MOVX @DPTR,A, которые вырабатывают 16-разрядный адрес);

· задается старший байт (разряды А8-А15) адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ.

Каждая линия порта Р3 имеет индивидуальную альтернативную функцию:

·Р3.0 – RxD, вход последовательного порта;

·Р3.1 – TxD, выход последовательного порта;

·Р3.2 – INT 0, используется как вход 0 внешнего запроса прерывания;

·Р3.3 – INT 1, используется как вход 1 внешнего запроса прерывания;

·Р3.4 – T0, используется как вход счетчика внешних событий Т/С0;

·Р3.5 – T1, используется как вход счетчика внешних событий Т/С1;

·Р3.6 – WR, строб записи во внешнюю память данных, выходной сигнал, сопровождающий вывод данных через порт Р0 при использовании команд MOVX @Ri,A и MOVX @DPTR,A;

·Р3.7 – RD, строб чтения из внешней памяти данных, выходной сигнал, сопровождающий ввод данных через порт Р0 при использовании команд MOVX A,@Ri и MOVX A,@DPTR.

Таким образом, функции портов ввода/вывода зависят от режима работы ОМЭВМ. В принципе она может работать в двух принципиально разных режимах:

· минимальный режим, в котором не требуется подключения к ОЭВМ дополнительных БИС ОЗУ, ПЗУ, или УВВ. В этом случае все 4 порта могут использоваться совершенно произвольно;

· максимальный режим, в котором требуется подключение к ОМЭВМ дополнительных БИС либо ОЗУ, либо ПЗУ, либо УВВ. В этом случае необходимо организовать шинную структуру (ША, ШД и ШУ). При этом для фиксации младшего байта адреса ША необходимо подключить специальный регистр-защелку, в котором будет храниться этот байт в течение всего цикла обращения к внешней памяти. (Напомним, что Р0 является мультиплексированной шиной адреса-данных). По сигналу ALE этот байт запоминается в регистре. Старший байт адреса и так сохраняется неизменным на выводах порта Р2. Таким образом в этом режиме занятыми оказываются порты Р0, Р2, и в случае подключения внешних ОЗУ или УВВ - выводы WR и RD.

Синхронизация ОМЭВМ