Раздел: Документация
0 ... 17 18 19 20 21 22 23 ... 39 Циклограмма онерации чтения из портов ввода-вывода Импульсы тактовой частоты Шина адреса (младшие разряды. А0...А7) Y Адрес порта устанавливается на шине адреса Сигнал IORQ - Сигнал RD Шина данных (D0-D7) V «О» Определяется адрес порта; код данных устанавливается на шине данных «0»/~ Шина данных и выход схемы ЦПУ находятся в высокоомном (Z) состоянии Команда твает шину анных и считывает информацию из порта ввода Рис. 6.11. Временная диаграмма операции считывания данных из порта ввода Цикл записи в порт вывода Команда вывода «OUT (и) А» соответствует 2-байтовой машинной команде, аналогичной команде ввода. Временная диаграмма операции записи в порт вывода показана на Рис. 6.12. При записи в порт вывода ЦПУ посылает сигналы управления IORQ и WR. Сначала на шине адреса устанавливается адрес порта Циклограмма операции записи в порты ввода-вывода Импульсы тактовой частоты. Шина адреса разрвдьТАО.А?) "д7 Адрес порта устанавливается на и ине адреса Сигнал IORQ Сигнал WR- Шина данных -(D0...D7) < По сигналу IORQ в соответствии с адресом выбирается порт X По сигналу WR информация с шины данных записывается в порт вывода Содержи й вливаете мое регистра устанавливается на шине Высокоомное (Z) состояние данных Рис. 6.12. Временная диаграмма операции записи в порт вывода вывода. Затем на шине данных устанавливается двоичное число, равное числу, находящемуся в регистре А (пользуясь жаргоном программистов, на шину данных «выставляется» содержимое регистра А). По сигналу IORQ и адресу на шине адреса устанавливается связь с портом вывода, а по сигналу WR в порт вывода записывается число, установленное на шине данных (оно, как мы знаем, в этот Момент равно числу, хранящемуся в регистре А). Ранее мы выяснили, что время выполнения операций ввода и вывода, осуществляющих прием и передачу данных из портов ввода-вывода в регистры ЦПУ и наоборот, определяются тактовой частотой процессора (для ЦПУ Z80 - 2.5 МГц). Обмен данными между ЦПУ и внешними устройствами сопряжен с определенными техническими проблемами. Речь идет о быстродействии Внешних устройств. Так, при низкой скорости считывания данных внешним устройством из порта вывода возникают ошибки при передаче данных из ЦПУ через порт вывода, поскольку внешнее устройство не успевает за процессором. В этом случае, если нет возможности применить быстродействующие внешние устройства, необходимо предпринять меры для коррекции работы ЦПУ с учетом технических характеристик имеющегося внешнего устройства. При этом очередная команда вывода данных должна подаваться, когда есть полная уверенность в том, что предыдущая «порция» данных благополучно считана соответствующим внешним устройством. Один из самых простых способов - это подавать команды вывода с интервалом, заведомо большим, чем требуется для приема данных внешним устройством. Используя программные средства, можно этого добиться, например, методом «квитирования», смысл которого подробно изложен в восьмой главе. К техническим методам следует отнести выбор быстродействующего внешнего устройства или модернизацию имеющегося. Сказанное относится также и к внешним устройствам, подключенным к портам ввода. Быстродействие внешнего устройства, с которого считываются сигналы, также должно соответствовать применяемому ЦПУ. В противном случае следует использовать соответствующие программные средства. Так или иначе, при выполнении команд ввода/вывода необходимо синхронизировать между собой работу микрокомпьютера и внешних устройств с учетом тактовой частоты микрокомпьютера. В этой главе мы рассмотрели основные наиболее часто используемые команды ЦПУ Z80. На самом деле таких команд, позволяющих существенно упростить процесс составления программ, гораздо больше. Авторы, однако, считают, что к освоению других команд следует переходить постепенно, по мере того как вы приобретете достаточный опыт применения основных команд. Те сведения относительно языка ассемблера, которые изложены в настоящей главе, вполне достаточны для того, чтобы вы сами могли приступить к составлению программ. ОБОБЩЕНИЕ ГЛАВЫ 1.При выполнении действий с 8-разрядными двоичными числами первые восемь разрядов результирующего числа помещаются в регистр А, а нулевой разряд регистра флагов устанавливается в состояние, по которому можно определить, произошел ли перенос разряда при вычислениях. 2.При помощи команд ADD и ADC 8-разрядное ЦПУ может складывать 16-разрядные и даже 32-разрядные двоичные числа (команда ADC отличается от команды ADD тем, что в случае переноса разряда прибавляет 1 к результату сложения). 3.Флаг С (перенос) регистра признаков служит для выполнения команд ADC, SBC; флаг Z (ноль) - для выполнения команды сравнения (CP); флаг S (знак) наиболее часто используется при выполнении команды условного перехода. 4.Счетчик команд (РС) представляет собой 16-разрядный регистр ЦПУ, который показывает адрес следующей команды, выполняемой ЦПУ. Как правило, число, находящееся в счетчике команд, увеличивается каждый раз на 1. При выполнении команды перехода в счетчик команд загружается адрес перехода. При выполнении команд вызова подпрограммы в счетчик команд загружается первый адрес подпрограммы. 5.Указатель стека (SP) - это 16-разрядный регистр ЦПУ, указывающий адрес ячейки в области стека, в которой содержится адрес возврата из подпрограммы. 6.Область стека - это область памяти, отведенная для загрузки 16-разрядного адреса возврата из подпрограммы. Данные в нее заносятся в две стадии побайтно в порядке уменьшения адресов. 7.Каждая из команд ввода или вывода выполняется за время, равное 11 периодам тактовой частоты. Для обеспечения надежной работы контроллера необходимо учитывать быстродействие устройств ввода-вывода. Практические задания 1) Составьте программу на языке ассемблера, в результате работы которой сумма 16-разрядного числа 1055Н с содержимым регистра С помещается в пару регистров D-E (достаточно фрагмента программы). В этой главе, чтобы поупражняться в применении основных команд языка ассемблера, мы попробуем составить несколько программ для управляющего микрокомпьютера. Рассмотрим достаточно простые задачи, решение которых не потребует глубоких знаний и опыта и вместе с тем позволит новичкам быстро войти в курс дела. 7.1. ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ МИКРОКОМПЬЮТЕРА (АППАРАТНЫЕ СРЕДСТВА) Прежде чем приступить к решению какой-либо практической задачи, необходимо представлять себе технические возможности того микрокомпьютера, для которого составляется программа. ~ Параметры микрокомпьютера ~ ЦПУ: Z80 ЦПУ (тактовая частота - 2.5 МГц). Устройство памяти: ПЗУ, объем 2 Кбайт (область адресов с 0000Н по 07FFH); ОЗУ, объем 2 Кбайт (область адресов с 0800Н по 0FFFH). Порты ввода-вывода: 8-разрядный порт ввода (адрес ОАОН); 8-разрядный порт вывода (адрес ОАШ). Порты построены на регистрах-защелках. 2)Объясните, каким образом ЦПУ выполняет команду перехода JP 1т (с указанием абсолютного адреса) и команду перехода JR е (с указанием относительного адреса). 3)Значение указателя стека (SP) в начале программы устанавливается равным сумме последнего адреса памяти ОЗУ и 1. Объясните, почему 4)Пусть во время выполнения главной программы значение указателя стека равно 8001Н. Посредством команды CALL 2000Н, находящейся по адресу 0800Н, выполнение передано подпрограмме. Какой адрес возврата из подпрограммы? По какому адресу загружен этот код? 5)Составьте временную диаграмму операции считывания данных из порта ввода при выполнении команды ввода и временную диаграмму процесса записи в порт вывода при выполнении команды вывода. 0 ... 17 18 19 20 21 22 23 ... 39
|