Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
final_vershion.doc
Скачиваний:
66
Добавлен:
26.03.2015
Размер:
305.15 Кб
Скачать

4.Порты. Откуда поступает старший байт адреса на выводы порта р2 при выполнении команды movx @r0,a?

Из старших разрядов аккумулятора a8...a15

Вариант 17

  1. Модуль РСА как вход запроса на прерывание

Режим захвата.

При обнаружении фронта или спада на внешнем выводе СЕХn в этом режиме осуществляется запись значения РСА таймера-счетчика в регистры ССАРnН, CCAPnL (см. рисунок). Этот режим рекомендуется использовать при измерении периодов, длительности, скважности импульсов, а также разности фаз между различными входами. Установка битов САРРn и/или CAPNn в регистре ССАРМn определяет перепад (0-1 или 1-0), по которому будет осуществляться захват. При захвате устанавливается флаг события модуля CCFn в регистре CCON, и генерируется запрос на прерывание, если установлен бит ECCFn в регистре ССАРМn. Флаг события сбраывается программно. До наступления следующего события значение в регистрах ССАРnН, CCAPnL должно быть сохранено в ОЗУ подпрограммой обработки прерывания. В противном случае, в регистрах ССАРnН, CCAPnL будет записано новое значение.

Режим 16-разрядного программируемого таймера.

В этом режиме 16-разрядное значение РСА таймера-счетчика сравнивается с 16-разрядным значением, которое было предварительно загружено в регистры CCAPnH, CCAPnL одного из модулей сравнения-захвата. Это происходит трижды за машинный цикл. Установка бита ЕСОМn в регистре ССАРМn разрешает функцию сравнения, как показано на рисунке. Для перехода в режим программируемого таймера также должен быть установлен бит МАТn. Когда происходит совпадение значений РСА таймерасчетчика и регистров CCAPnH, CCAPnL, устанавлиается флаг событий CCFn. При этом будет генерироваться запрос на прерывание, если бит ECCFn установлен. Математическое обеспечение должно сбрасывать флаг событий CCFn перед тем, как произойдет следующее совпадение.

Подпрограмма обработки прерывания может записать новое 16-paзpядное значение в регистры ССАРnН, CCAPnL. Однако следует помнить, что запись в CCAPnL сбрасывает ЕСОМn бит, тем самым запрещая функцию сравнения на время пока происходит изменение содержимого этих регистров, что позволяет избежать неверного совпадения. Запись ССАРnН устанавливает бит ЕСОМn и возобновляет работу компаратора. По этой причине математическое обеспечение должно записывать сначала CCAPnL, затем ССАРnН.

Режим скоростного вывода.

В этом режиме формируется сигнал на внешнем выводе СЕХn, когда происходит совпадение РСА таймера со значением, которое было предварительно загружено в регистры ССАРnН, CCAPnL одного из модулей. В этом режиме бит TOGn должен быть установлен дополнительно к битам ЕСОМn и МАТn, как показано на рисунке в предыдущем разделе. Устанавливая или сбрасывая этот бит в своей программе, вы можете формировать на внешнем выводе СЕХn или фронт, или спад. Кроме того, при совпадении может генерироваться запрос на прерывание, если бит ECCFn установлен. Режим скоростного вывода является более точным по сравнению с переключением контактов параллельного порта программным путем, поскольку формирование сигнала на внешнем выводе происходит до обращения к подпрограмме обработки прерывания. Это значит, что задержка, связанная с выполнением подпрограммы обработки прерывания, не будет влиять на формирование сигнала. Если подпрограмма обработки прерывания не изменит содержимого регистров ССАРnН, CCAPnL, то следующий сигнал "совпадение" будет сформирован после того, как значение РСА таймера-счетчика снова совпадет со старым сравниваемым значением.

  1. Последовательный связной адаптер. Как организовать программно-управляемую передачу данных, если в SCON записан код 52h?

В регистре SCON – 50h (01010000b) – SCON.6 (SM=1) и SM 0=0 – 8 битный приёмо-передатчик. И установлен SCON.4 – бит разрешения приёма.

ЕСЛИ 52h:

BYTE_T:

WAIT:

JNB SCON.1, WAIT

CLR SCON.1 // сначала сбросим флаг (TI) прерывания передатчика.

MOV SBUF, A

RET

  1. Память. Рассчитайте адрес ячейки памяти для команды movс а,@а+рс

Адрес ячейки вычисляется следующим образом ((A)+(PC)+1)

  1. Порты. Почему при выполнении команд типа чтение-модификация-запись над содержимым порта информация берется не с вывода, а с выхода триггера-защелки порта?

Выходная информация порта фиксируется в триггере-защелке при записи в него соответствующего значения по внутренней шине данных. Входная информация порта интерпретируется либо как содержимое триггера-защелки порта, либо как состояние на соответствующем выводе микросхемы в зависимости от типа используемой команды. Выходные цепи портов P0 и P2 переключаются либо выход своего тригера-защелки либо на внутреннюю шину адреса и данных в зависимости от текущего режима работы. Во время доступа к внешней памяти содержимое тригеров-защелок порта P2 не изменяется, а тригеры-защелки порта P0 устанавливаются в 1. Выводы портов P1, P2, P3 имеют внутренние резисторы-подпорки. Выводы порта P0 имеют выходы с открытым стоком. Если требуется использование выводов этого порта в качестве выходов, то необходимы внешние резисторы подпорки на соответствующие выводы. Для того чтобы отдельные выводы порта могли использоваться как входы либо выполнять альтернативные функции, в их триггеры защелки должна быть записана 1. После системного сброса триггеры всех выводов всех портов содержат 1, т.е. все выводы портов настроены на работу в качестве входов либо на выполнение альтернативных функций. Если выполняемая команда записывает новое значение в порт, т.е. изменяет содержимое внутреннего триггера-защелки, новое значение поступает на вход триггера-защелки в фазе S6P2 последнего цикла инструкции. Однако новая информация действительно появится на выходе порта лишь в фазе S1P1 следующего машинного цикла. Входные данные, считываемые с выводов портов фиксируются в моменты S5P1 каждого машинного цикла. Чтение информации с выходов защелок, а не с внешних контактов выводов порта позволяет исключить возможную в ряде случаев неправильную интерпретацию уровня напряжения на выводе порта. К примеру, вывод порта может использоваться для управления базой n-p-n транзистора. В этом случае, когда в защелку вывода порта записывается "1", транзистор открывается. Если после этого ОМЭВМ прочитает состояние внешнего контакта рассматриваемого вывода порта, то получит значение логического "0", т. к. на контакте в это время присутствует напряжение базы открытого транзистора. Чтение же выхода защелки покажет истинное значение сигнала на выводе порта, т. е. "1".

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