БИС КР580ВВ79 организована на базе внутренней шины. В ее состав входят: ОМ ОЗУ датчиков со схемой управления и устранения дребезга клавиатуры, буферами клавиатуры и датчиков и схемой анализа состояния ОМ ОЗУ датчиков; схема управления и синхронизации со счетчиком сканирования; ОЗУ отображения с регистрами адреса и данных; средства сопряжения с системной шиной - буферы канала данных и схема управления чтением-записью. Структура контроллера изображена на рис 1.20а.
Рисунок 1.20а - Структура контроллера КР580ВВ79
ОМ ОЗУ датчиков обеспечивает хранение информации, поступающей со входов RET7…RET0, и выдачу ее в микропроцессор через внутреннюю шину данных и буферы канала данных по командам чтения. В этом блоке используются следующие сигналы:
RET7…RET0 - информация, вводимая с клавиатуры или матрицы датчиков. За счет внутренних нагрузок на этих выводах постоянно обеспечивается состояние лог.1 до появления входных сигналов низкого уровня.
SH - входной сигнал, используемый в режиме сканирования клавиауры для расширения (увеличения числа) функций клавиш (вывод SH также имеет внутреннюю нагрузку.
- входной сигнал, назначение которого определяется режимом работы в режиме сканирования (состояние лог.1) увеличивает число конфигураций клавиатуры; в режиме сканирующего ввода (состояние лог.0) используется как строб для ввода информации с линий возврата RET0…RET7 в ОМ ОЗУ датчиков по фронту сигнала (вывод также имеет внутреннюю нагрузку).
INT - выходной сигнал, переходит в состояние лог.1: в режиме сканирования клавиатуры при наличии данных в ОМ ОЗУ датчиков; в режиме сканирования матрицы датчиков при обнаружении изменения в датчиках.
|
Схема управления и синхронизации программно задает скорость ввода-вывода и синхронизирует работу всех узлов контроллера. Необходимая скорость ввода-вывода создается от деления частоты входной синхронизации на программно задаваемое число, лежащее в диапазоне 2…31. При работе схемы используются сигналы сброс SR, тактовый С и BD, блокирующий индикатор (дисплей в момент смены кодов символов.
Счетчик сканирования - 4-разрядный двоичный счетчик сканирует строки клавиатурной матрицы и регенерирует изображения на дисплее (индикаторе). Программно счетчик можно установить в кодированный или декодированный (дешифрированный режим работы. В кодированном режиме он выдает на линии сканирования S3…S0 4-разрядный двоичный код от 00002 до 11112, который дешифрируется внешними дешифраторами; в декодированном режиме он выдает два младших разряда кода, а на линии сканирования S3…S0 4- разрядный унитарный код (активный уровень - лог.0). Внешних дешифраторов в этом случае не требуется, однако клавиатура может иметь не более четырех строк клавиш, а дисплей не более четырех знакомест при 8-разрядном коде символа и восемь знакомест при 4-разрядном коде.
Буферное ОЗУ отображения - ОЗУ с произвольным доступом, хранит коды символов, отображаемых на дисплее. Каждый байт может рассматриваться как два независимых полубайта. Это позволяет обслужить дисплей с большими функциональными возможностями - на 16 знакомест при восьмиразрядном коде символа и на 32 знакоместа при 4-разрядном коде символа. ОЗУ доступно для записи и чтения информации. Регистр адреса ОЗУ отображения может быть программно установлен в режим автоинкрементирования. В процессе регенерации отображения на дисплее информация из ОЗУ отображения на дисплее циклически выдается на выходы DSPA3…DSPA0 и DSPB3…DSPB0, причем бит DSPA3 соответствует биту D7 шины данных, а DSPB0 - биту D0.
|
Буфер канала данных - двунаправленный трехстабильный, осуществляет стыковку внутренней шины данных БИС КР580ВВ79 с системной шиной данных с помощью линий D7… D0.
Схема управления чтением-записью управляет блоками контроллера при приеме информации с системной шины данных и выдаче информации на эту шину. Для управления схемой используются следующие сигналы:
- разрешают проведение операций чтение-запись, выдачу информации на системную шину данных, прием информации с системной шины данных соответственно;
- определяет передачу комманд и слов сотояния (INS = 1) или передачу данных ( = 0).
1.12 Контроллер видеотерминала КР580ВГ75
Микросхема КР580ВГ75 предназначена для фиксации управляющих слов и параметров, поступающих из микропроцессора, и информации, предназначенной для вывода на экран видеотерминала и загружаемой из системной памяти в режиме ПДП. Микросхема КР580ВГ75 выдает накопленные коды непосредственно на видеотерминал для визуализации или на генератор символов, в котором хранятся коды символов, предназначенные для выдачи на экран. КР580ВГ75 формирует сигналы управления лучом электронно-лучевой трубки (ЭЛТ) видеотерминала, генерирует символ курсора и фиксирует сигналы светового пера.
На рис. 1.21, а приведено схематическое изображение корпуса микросхемы КР580ВГ75, а на рис. 1.21, б - ее условное обозначение на схеме электрической принципиальной. Функциональное назначение выводов сделано в табл. 1.11.
|
В программируемом контроллере видеотерминала КР580ВГ75 (рис. 1.22) можно выделить два блока: 1) управления; 2) видеосигнала и сканирования видеотерминала.
Блок управления. В состав блока управления входят, буфер данных; схема управления вводом-выводом; регистры управляющего слова, параметров, состояния; схема управления и синхронизации.
Буфер данных. Через буфер шины данных, подключаемый к шине данных системы, происходит обмен информацией между памятью системы, микропроцессором и микросхемой КР580ВГ75: запись управляющих слов, параметров и данных в контроллер видеотерминала; чтение параметров, слова состояния, координат светового пера из регистров контроллера.
Схема управления вводом-выводом. С помощью управляющих сигналов, подаваемых на входы , , , , этой схемы, производятся управление обменом информацией с системной шиной данных и выбор соответствующих регистров микросхемы КР580ВГ75.
Регистр управляющего слова. В этот регистр по команде OUT микропроцессор загружает управляющие слова, которые затем дешифрируются в схеме управления и синхронизации и микросхема ВГ75 настраивается на выполнение допустимого режима.
Регистры параметров. После загрузки некоторых управляющих слов, например «начальная установка», «чтение регистров светового пера», «настройка курсора», требуется дополнительная информация, которая содержится в параметрах. Параметры последовательно загружаются микропроцессором с помощью команд OUT в соответствующие регистры микросхемы КР580ВГ75, где они дешифрируются схемой управления и синхронизации, в результате чего соответствующие счетчики устанавливаются в программируемые состояния, а микросхема КР580ВГ75 - на заданные подрежимы.
Регистр состояния. Разряды регистра состояния имеют следующее функциональное назначение:
D7 - в этом разряде записан ноль;
D6 - разрешение прерывания - устанавливается программно после загрузки управляющего слова «начало отображения», а сбрасывается после загрузки слова «начальная установка»; по флагу D6 разрешается прерывание во время обратного хода луча по кадру;
D5 - запрос на прерывание - устанавливается в «1» при выдаче последней строки символов в кадре;
D4 - световое перо - устанавливается в «1» по стробу, поступающему на вход LPEN;
D3 - недопустимое управляющее слово - устанавливается в «1», когда последовательность параметров, посылаемых после управляющего слова имеет длину, отличную от допустимой;
D2 - разрешение видеосигнала - устанавливается в «1» после загрузки управляющего слова «начало отображения», а сбрасывается в «О» после загрузки слова «конец отображения»;
D1 - незаполнение буфера символов - единица в разряде D1 указывает на попытку отображения символов, происходящую после загрузки управляющего слова «начало отображения» из незаполненного буфера строк символов;
D0 - переполнение буфера-очереди - устанавливается в «1» при переполнении буфера очереди.
Разряды D5, D4, D3, D1, D0 сбрасываются в «0» после прочтения слова состояния.
Рисунок 1.21 - Схематическое изображение корпуса микросхемы КР580ВГ75 (а), условное обозначение на схеме электрической принципиальной (б)
Рисунок 1.22 - Контроллер видеотерминала КР580ВГ75
Таблица 1.11
Номер вывода | Обоз- начение | Тип вывода | Функциональное назначение |
+5В | - | Питание | |
GND | - | Общий | |
Вход | Выбор микросхемы. Сигнал низкого уровня на входе 22 разрешает работу микросхемы. Сигнал высокого уровня на данном входе переводит выводы DB7 - DB0 в высокоимпедансное состояние. | ||
» | Чтение. По сигналу низкого уровня на входе 9 производится чтение содержимого регистров параметров и регистра слова состояния контроллера видеотерминала. | ||
» | Запись. По сигналу низкого уровня на входе 10 производится запись управляющих слов в соответствующий регистр и содержимого системной памяти в буферы строк символов контроллера видеотерминала | ||
А0 | Вход | По сигналу высокого уровня на входе 21 обеспечивается Подключение регистра управляющего слова к выводам DB7 - DB0. По сигналу низкого уровня на входе 21 обеспечивается подключение регистров параметров и регистров светового пера к выводам DB7 - DB0 | |
12 - 19 | DB0 … DB7 | Двунаправ- ленные выводы с высоко- импеданс- ным состоянием | Шина данных. Выводы 12 - 19 подключаются к шине данных системы |
IRQ | Выход | Запрос на прерывание | |
DRQ | » | Запрос на ПДП | |
Вход | Подтверждение запроса на ПДП | ||
29 - 23 | СС6 … СС0 | Выходы | Адрес кода символа (код символа). Сигналы на выходах 29 - 23 могут использоваться для адресации кодов символов, хранимых в ЗУ-генераторе символов |
1 - 4 | LC3 … LC0 | » | Номер линии (телевизионной строки) в строке символов. Сигналы на выходах 1 - 4 используются для адресации кодов символов |
CCLK | Вход | Сигналы, подаваемые на вход 30, используются для синхронизации выдачи адресов кода символов (кодов символов) | |
HRTC | Выход | Обратный ход строчной развертки. Сигнал высокого уровня появляется на выходе 7 для управления обратным ходом луча по телевизионной строке | |
VRTC | Выход | Обратный ход кадровой развертки. Сигнал высокого уровня появляется на выходе 8 для управления обратным ходом луча по кадру | |
VSP | » | Блокировка видеосигнала. Сигнал высокого уровня появляется на выходе 35 в следующих случаях: 1) во время обратного хода луча по телевизионной строке и по кадру; 2) в верхних и нижних линиях строки символов, если число линий, используемых для отображения одной строки символов больше или равно восьми; 3) после обнаружения специальных кодов «конец строки», «конец строки - ПДП останов», «конец кадра», «конец кадра - ПДП останов»; 4) в режимах мерцания изображения программируемых для курсора (с частотой 1/16 частоты смены кадров) символов, формируемых из кодов атрибутов символов и символов следуемых за кодом атрибутов поля (с частотой 1/32 частоты смены кадров); 5) при извлечении кодов символов, предназначенных для отображения на экране, из незаполненного буфера строк символов микросхемы КР580ВГ75. | |
LTEN | » | Разрешение видеосигнала. Сигнал высокого уровня на выходе 37 разрешает выдачу видеосигнала. На выводе LTEN является сигнал высокого уровня при формировании подчеркивания (курсора) или в позициях, определяемых кодами атрибутов поля. | |
RVV | » | Реверс видеосигнала. Сигнал высокого уровня появляется на выходе 36 при программировании негативных изображений курсора или символов в позициях, определяемых кодами атрибутов поля. | |
HLGT | » | Подсветка. Сигнал высокого уровня появляется на выходе 32 при программировании подсветки символов в позициях, определяемых кодами атрибутов символов или поля. | |
39, 38 | LA0, LA1 | » | Коды атрибутов линии. Сигналы на выходах 39, 38 используются для формирования графических символов на экране видеотерминала. |
33, 34 | GPA0, GPA1 | Выходы | Коды атрибутов общего назначения. Сигналы на выходах 33, 34 могут использоваться как атрибуты поля, определяемые разработчиком системы. |
LPEN | Вход | Строб светового пера. На вывод 11 микросхемы КР580ВГ75 подается сигнал, снимаемый с видеотерминала в случае обнаружения сигнала от светового пера. |
Схема управления и синхронизации дешифрирует управляющие слова, параметры и вырабатывает управляющие сигналы, которые поступают во все функциональные узлы контроллера видеотерминала. Кроме того, схема управления и синхронизации формирует сигналы запроса на прерывания (выход INT) и запрос на ПДП (выход DRQ). В состав этой схемы входят счетчик циклов ПДП и счетчик интервалов между последовательными обменами в режиме ПДП.
Блок видеосигнала и сканирования видеотерминала. Схема управления вводом символов дешифрирует коды символов, поступающие из системного ЗУ, и помещает их в соответствующий буфер строк символов в зависимости от того, из какого буфера идет в это время извлечение кодов символов, которые отображаются на экран видеотерминала. Если в схему управления вводом символов поступают коды атрибутов поля или специальные символы, то схема формирует управляющие сигналы, поступающие на схему управления и синхронизации. В режиме без вывода кодов атрибутов поля схема управления вводом помещает символ, следующий за кодом атрибутов поля, в соответствующий буфер-очередь.
Схема управления выводом символов. Схема дешифрирует символы, выводимые из буфера строк. Если встречается код атрибутов поля, то в режиме без вывода кодов атрибутов поля он не выводится, а для вывода извлекается символ из буфера-очереди. В режиме с выводом кодов атрибутов поля, коды атрибутов поступают на выходы СС0 - СС6 микросхемы КР580ВГ75 для визуализации на экране. Если извлекаемый из буфера строк символ - код атрибутов символов, то схема управления выводом вырабатывает сигналы, которые инициируют выдачу схемой управления видеосигналом и сканирования дисплея кода графического символа (выходы LA0, LA1, VSP, LTEN), непосредственно поступающего на экран ЭЛТ.
Буфер строк символов. В один из буферов строк символов происходит загрузка символов из системного ЗУ, а из другого в это же время коды символов выдаются на генератор символов или непосредственно на экран видеотерминала. Емкость каждого буфера строк символов - 80 восьмиразрядных кодов.
Буфер-очередь - буфер с организацией доступа по принципу очереди емкостью 16 семиразрядных слов - используется для хранения кодов символов в режиме обработки кодов атрибутов поля без вывода на экран.
Счетчик символов - семиразрядный программируемый счетчик - используется для управления разверткой луча - задания числа символов в строке и длительности обратного хода луча в линии. Счетчик ведет подсчет сигналов, поступающих на вход CCLK микросхемы КР580ВГ75 из внешней схемы, учитывающей особенности применяемой электронно-лучевой трубки. Подсчет символов в строке может быть прерван, если среди вводимых символов, дешифрируемых схемой управления вводом встретятся специальные управляющие коды «конец строки» или «конец строки - ПДП останов».
Счетчик линий - четырехразрядный программируемый счетчик - используется для управления разверткой - задания числа горизонтальных линий в строке символов. Счетчик линий ведет подсчет сигналов, поступающих со схемы управления выводом символов. Формирование сигналов происходит по окончании счета счетчика символов. Содержимое счетчика линий поступает на входы LC0 - LC3 микросхемы КР580ВГ75 для адресации генератора символов.
Счетчик строк - шестиразрядный программируемый счетчик - используется для управления разверткой - задания числа строк в кадре. Счетчик ведет подсчет сигналов, поступающих со счетчика линий, и может быть прерван схемой управления выводом символов, если среди дешифрируемых символов встречаются специальные коды «конец кадра» или «конец кадра - ПДП останов».
Схема управления видеосигналом и сканирования дисплея формирует сигналы управления видеосигналом: разрешение, блокировка, реверс, обратный ход строчной развертки, обратный ход кадровой развертки, появляющиеся на соответствующих выходах микросхемы КР580ВГ75: LTEN, VSP, RVV, HRTC, VRTC.
Регистры светового пера. Два регистра используются для хранения состояний счетчиков символов и строк, которые заносятся в регистры по стробу, поступающему на вход LPEN. Содержимое регистров может быть прочитано после загрузки управляющего слова «чтение регистров светового пера».
1.13 Особенности МП К1821ВМ8085А
На БИС МП 8085А реализуют процессоры с 8-разрядной системной шиной, совместимые с процессорами на БИС КР580.
Микропроцессор 8085А (рис. 1.23) полностью программно совместим с микропроцессором КР580ВМ80А, но питается от единого источника +5 В. МП 80С85А выполнен по КМОП-технологии. Микропроцессор обрабатывает те же типы и форматы данных, адресует пространство ЗУ объемом 64К байт, ВУ объемом 256 байт и имеет СОЗУ, аналогичное СОЗУ МП КР580ВМ80А, располагает теми же способами адресации и системой команд, расширенной двумя специальными командами.
Рисунок 1.23 - Расположение выводов БИС микропроцессора 8085А
Структура МП 8085А организована аналогично структуре МП КР580ВМ80А, назначение выводов показано на рис. 1.24, временные диаграммы - на рис. 1.25. В отличие от МП КР580 ВМ80А МП 8085А имеет встроенный системный генератор, выполняющий функции, аналогичные ИС КР580ГФ24. Он обеспечивает синхронизацию микропроцессора и временную привязку сигналов со входов начальной установки и готовности RDY. Частота генератора определяется внешним кварцевым резонатором, RC-цепочкой, LC-контуром или внешним источником, подключаемыми ко входам X1, Х2. На выходы CLКО и RESО выдаются сигналы синхронизации и начальной установки устройств ввода/вывода, располагаемых на системной шине. Внутренний системный контроллер формирует общие для ЗУ и ВУ сигналы чтения/записи на трехстабильные выходы , , а для разделения доступа к ЗУ или ВУ используется выход IO/ . Адресная шина полусовмещенная - на выводы А15...А8 выставляется адрес ЗУ А15...А8 или адрес ВУ A7...A0 на весь интервал обращения к ЗУ/ВУ, а на выводы AD7...AD0 - в режима разделения времени вначале адрес ЗУ/ВУ А7...А0, а затем данные. Адрес на шине AD7...AD0 сопровождается адресным стробом на выходе ALE, по которому он фиксируется во внешнем регистре. Состояние процессора выдается на выходы ST1, ST0, где ST0 определяет цикл записи, a ST1 - цикл чтения.
Рисунок 1.24 - Назначение выводов БИС 8085А
Рисунок 1.25 - Временные диаграммы работы БИС 8085А
Процессор имеет средства обслуживания прерываний с пяти входов. Вход INT аналогичен входу INT МП КР580 и предназначен для обслуживания маскируемых векторных прерываний по командам RSTV или CALL ADR V (с использованием контроллера КР580ВН59). На выходе при этом автоматически формируется один для RST либо три для CALL сигнала подтверждения прерываний. По командам RST V осуществляется обращение к памяти по адресам в зависимости от кода V (0000, 0008, 0010, 0018, 0020, 0028, 0030, 003816). По входам TRAP, RST 5.5, RST 6.5, RST 7.5 обращение осуществляется по фиксированным адресам ЗУ 0024, 002С, 0034, 00ЗС соответственно. Входы RST 5.5, RST 6.5, RST 7.5 являются программно-маскируемыми, вход TRAP немаскируемый и используется для обслуживания аварийных ситуаций, таких как сбой питания и др. Входы INT, RST 5.5, RST6.5 - потенциальные (1 - запрос прерывания), RST 7.5 - импульсный (переход из 0 в 1 - запрос прерывания), TRAP - импульсный и потенциальный. Приоритеты входов расположены в последовательности, указанной на рис. 1.24 (TRAP - высший приоритет). Для управления прерываниями процессор имеет две дополнительные команды чтения RIM и установки SIM маски прерываний (табл. 1.12). Эти же команды используются для управления передачей информации через последовательные порты ввода SID и вывода SOD, входящие в состав микропроцессора. Форматы слов состояния и управления прерываниями и последовательным вводом/выводом показаны на рис. 1.26. Разряды 3...0 используются для чтения/установки масок прерываний. Маска общего разрешения прерываний IF по входам INT, RST автоматически сбрасывается после приема запросов прерывания и устанавливается/сбрасывается по командам EI, DI соответственно. Индивидуальные маски по входам RST 7.5, RST 6.5, RST 5.5 устанавливаются командой SIM при MSE = 1. Разряды 7...4 команды RIM используются для чтения состояния входов последовательного ввода SID и прерываний RST 7.5, RST 6.5, RST 5.5. Разряд 4 команды SIM - для сброса запроса прерывания по входу RST 7.5 (после того он опять способен принимать запросы прерывания). Разряды 6, 7 команды SIM используются для управления выводом данных через последовательный выход SOD. Изменение состояния порта SOD возможно при SOE = 1.
На МП 8085А реализуют процессоры с полусовмещенной системной шиной, раздельной однопользовательской или многопользовательской шинами. Структура процессора с совмещенной системной шиной показана на рис. 1.27. Системная шина небуферизована и ориентирована на работу с БИС ЗУ/интерфейсов ВУ МПК MCS-85: 8155/8156 и 8355/8755А. Нагрузочная способность шин - вентиль ТТЛ, а временные диаграммы их работы указаны на рис. 1.25. Для адресации ВУ можно использовать адресную шину А15...А8, т. к. на нее выставляется адрес ВУ в течение всего цикла выполнения команд ввода/вывода. Это позволяет адресовать БИС интерфейсов и контроллеров МПК КР580 без разделения шин.
Структура процессора с раздельной небуферизованной шиной показана на рис. 1.28. Для выделения адреса с шины AD7...AD0 используется буферный регистр адреса (БРА) на ИС КР580ИР82. Системная шина состоит из 16-разрядной адресной шины А15...А0 и 8-разряадой шины данных D7...D0. Для управления ЗУ/ВУ используется четыре линии IO/М, RD, неWR, неINTA с разделением доступа к ЗУ или ВУ сигналами на линии IO/М.
Структура процессора с однопользовательской раздельной системной шиной, совместимой с системной шиной процессора на БИС КР580, показана на рис. 1.29. Буферный регистр адреса выполнен на ИС КР580ИР82, а формирователь шины данных на ИС КР580ВА86, что обеспечивает ее нагрузочную способность 30 мА. Управляющие сигналы формирует ИС мультиплексора с трехстабильными выходами К555КП11.
Таблица 1.12 - Команды чтения и установки маски прерываний МП типа 8085А
Мнемокод | Алгоритм | Формат | Число тактов |
7……0 | |||
RIM | A ← IM | ||
SIM | IM ← A |
Рисунок 1.26 - Форматы слова состояния прерываний / последовательного входа (а) и слова управления прерываниями / последовательным выходом (б) МП 8085А
Рисунок 1.27 - Структура процессора на БИС 8085А с совмещенной небуферизованной системной шиной
Рисунок 1.28 - Структура процессора на БИС 8085А с раздельной небуфезированной системной шиной
Рисунок 1.29 - Структура процессора на БИС 8085А с однопользовательской системной шиной, совместимой с шиной процессора на БИС КР580
Рисунок 1.30 - Структура процессора на БИС 8085А с многопользовательской системной и однопользовательской локальной шинами
Процессор на БИС 8085А с многопользовательской системной шиной, как правило, содержит локальную шину для подключения локальных ЗУ/ВУ, реализуемых на соответствующих БИС МПК, MCS-85. Структура процессора показана на рис. 1.30, а состав его шин - на рис. 1.31. Интерфейс системной шины реализован как и в схеме процессора на ИС KP580. Для формирования сигналов управления чтением/записью и управления доступом к шине используется контроллер шины КР580ВГ18. Системная шина аналогична многопользовательской системной шине процессора на БИС КР580, что обеспечивает их аппаратную совместимость. Локальная шина - однопользовательская, совмещенная, небуферизованная, совместимая с ИС ЗУ/ИВУ МПК MCS-85.
Рисунок 1.31 - Состав шин процессора на БИС 8085А
2 МИКРОКРНТРОЛЛЕР МК51
2.1. Структурная схема МК51
Основу структурной схемы МК51 (рис. 2.2) образует внутренняя двунаправленная 8-битная шина, которая связывает между собой все основные узлы и устройства: резидентную память, АЛУ, блок регистров специальных функций, устройство управления и порты ввода/вывода.
Рассмотрим основные элементы структуры и особенности организации вычислительного процесса в МК51.
2.1.1. Арифметическо-логическое устройство
8-битное АЛУ может выполнять арифметические операции сложения вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, а также операции циклического сдвига, сброса, инвертирования и т.п. В АЛУ имеются программно недоступные регистры Т1 и Т2, предназначенные для временного хранения операндов, схема десятичной коррекции и схема формирования признаков.
Простейшая операция сложения используется в АЛУ для инкрементирования содержимого регистров, продвижения регистра-указателя данных и автоматического вычисления следующего адреса РПП. Простейшая операция вычитания используется в АЛУ для декрементирования регистров и сравнения переменных.
Рисунок 2.1 - Цоколевка корпуса МК51 и наименование выводов
Простейшие операции автоматически образуют "тандемы" для выполнения в АЛУ таких операций, как, например, инкрементирование 16-битных регистровых пар. В АЛУ реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи управления по результату сравнения в АЛУ трижды инкрементируется СК, дважды производится чтение из РПД, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются в АЛУ всего лишь за 2 мкс. Важной особенностью АЛУ является его способность оперировать не только байтами, но и битами. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Эта способность АЛУ оперировать битами столь важна, что во многих описаниях МК51 говорится о наличии в нем "булевского процессора". Для управления объектами часто применяются алгоритмы, содержащие операции над входными и выходными булевскими переменными (истина/ложь), реализация которых средствами обычных микропроцессоров сопряжена с определенными трудностями.
Таким образом, АЛУ может оперировать четырьмя типами информационных объектов: булевскими (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования "операция/ режим адресации" базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.
Рисунок 2.2 - Структурная схема МК51
2.1.2. Резидентная память
Память программ и память данных, размещенные на кристалле МК51, физически и логически разделены, имеют различные механизмы адресации, работают под управлением различных сигналов и выполняют различные функции.
Память программ (ПЗУ или СППЗУ) имеет емкость 4 Кбайта и предназначена для хранения команд, констант, управляющих слов инициализации, таблиц перекодировки входных и выходных переменных и т.п. РПП имеет 16-битную шину адреса, через которую обеспечивается доступ из счетчика команд или из регистра-указателя данных. Последний выполняет функции базового регистра при косвенных переходах по программе или используется в командах, оперирующих с таблицами.
Память данных (ОЗУ) предназначена для хранения переменных в процессе выполнения прикладной программы, адресуется одним байтом и имеет емкость 128 байт. Кроме того, к адресному пространству РПД примыкают адреса регистров специальных функций (РСФ), которые перечислены в табл. 2.1.
Память программ, так же как и память данных, может быть расширена до 64 Кбайт путем подключения внешних БИС.
Аккумулятор и ССП. Аккумулятор является источником операнда и местом фиксации результата при выполнении арифметических, логических операций и ряда операций передачи данных. Кроме того, только с использованием аккумулятора могут быть выполнены операции сдвигов, проверка на нуль, формирование флага паритета и т.п.
Таблица 2.1 - Блок регистров специальных функций
Символ | Наименование | Адрес | |
* | АСС | Аккумулятор | 0Е0Н |
* | В | Регистр-расширитель аккумулятора | 0F0H |
* | PSW | Слово состояния программы | 0D0H |
SP | Регистр-указатель стека | 81Н | |
DPTR | Регистр-указатель данных (DPH) | 83Н | |
(DPL) | 82Н | ||
* | РО | Порт 0 | 80Н |
* | Р1 | Порт 1 | 90Н |
* | Р2 | Порт 2 | 0А0Н |
* | РЗ | ПортЗ | 0В0Н |
* | IP | Регистр приоритетов | 0В8Н |
* | IE | Регистр маски прерываний | 0А8Н |
TMOD | Регистр режима таймера/счетчика | ||
* | TCON | Регистр управления/статуса таймера | 88Н |
THO | Таймер 0 (старший байт) | 8СН | |
TLO | Таймер 0 (младший байт) | 8АН | |
TH1 | Таймер 1 (старший байт) | 8DH | |
TL1 | Таймер 1 (младший байт) | 8ВН | |
SCON | Регистр управления приемопередатчиком | 98Н | |
SBUF | Буфер приемопередатчика | 99Н | |
PCON | Регистр управления мощностью | 87Н |
Примечание. регистры имена которых отмечены знаком (*), допускают адресацию отдельных бит.
Таблица 2.2 - Формат слова состояния программы (ССП)
Символ | Позиция | Имя и назначение |
С | PSW.7 | Флаг переноса. Устанавливается и сбрасывается аппаратурными средствами или программой при выполнении арифметических и логических операций |
АС | PSW.6 | Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заеме в бите 3 |
F0 | PSW.5 | Флаг 0. Может быть установлен, сброшен или проверен программой как флаг, специфицируемый пользователем |
RS1 RS0 | PSW.4 PSW.3 | Выбор банка регистров. Устанавливается и сбрасывается программой для выбора рабочего банка регистров (см. примечание) |
OV | PSW.2 | Флаг переполнения. Устанавливается и сбрасывается аппаратурно при выполнении арифметических операций |
- | PSW.1 | Не используется |
Р | PSW.0 | Флаг паритета. Устанавливается и сбрасывается аппаратурно в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе, т.е. выполняет контроль по четности |
Примечание. Выбор рабочего банка регистров
RS1 | RS0 | Банк | Границы адресов |
00Н-07Н 08H-0FH 10Н-17Н 18Н -1FH |
При выполнении многих команд в АЛУ формируется ряд признаков операции (флагов), которые фиксируются в регистре ССП. В табл. 2.2 приводится перечень флагов ССП, даются их символические имена и описываются условия их формирования.
Наиболее "активным" флагом ССП является флаг переноса, который принимает участие и модифицируется в процессе выполнения множества операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (С) выполняет функции "булевого аккумулятора" в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. АЛУ не управляет флагами селекции банка регистров (RS0, RS1), и их значение полностью определяется прикладной программой и используется для выбора одного из четырех регистровых банков.
Широкое распространение получило представление о том, что в микропроцессорах, архитектура которых опирается на аккумулятор, большинство команд работают с ним, используя адресацию "по умолчанию" (неявную). В МК51 дело обстоит иначе. Хотя процессор в МК51 имеет в своей основе аккумулятор, однако он может выполнять множество команд и без участия аккумулятора. Например, данные могут быть переданы из любой ячейки РПД в любой регистр, любой регистр может быть загружен непосредственным операндом и т.д. Многие логические операции могут быть выполнены без участия аккумулятора. Кроме того, переменные могут быть инкрементированы, декрементированы и проверены (test) без использования аккумулятора. Флаги и управляющие биты могут быть проверены и изменены аналогично.