Реферат: Контроллеры
Простейшие операции автоматически образуют "тандемы" для выполнения в АЛУ таких операций, как, например, инкрементирование 16-битных регистровых пар. В АЛУ реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи правления по результату сравнения в АЛУ трижды инкрементируется СК, дважды производится чтение из РПД, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются в АЛУ всего лишь за 2 мкс.
Важной особенностью АЛУ является его способность оперировать не только байтами, но и битами. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Эта способность АЛУ, оперировать битами, столь важна, что во многих описаниях Intel87C51FB говорится о наличии в нем "булевского процессора". Для управления объектами часто применяются алгоритмы, содержащие операции над входными и выходными булевскими переменными (истина/ложь), реализация которых средствами обычных микропроцессоров сопряжена с определенными трудностями.
Таким образом, АЛУ может оперировать четырьмя типами информационных объектов: булевскими (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования "операция/ режим адресации" базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.
Резидентная память
Память программ и память данных, размещенные на кристалле физически и логически разделены, имеют различные механизмы адресации, работают под управлением различных сигналов и выполняют разные функции.
Память программ (ПЗУ или СППЗУ) имеет емкость 64 Кбайта и предназначена для хранения команд, констант, управляющих слов инициализации, таблиц перекодировки входных и выходных сменных и т.п. РПП имеет 16-битную шину адреса, через которую обеспечивается доступ из счетчика команд или из регистра-указателя данных. Последний выполняет функции базового регистра при косвенных переходах по программе или используется в командах, оперирующих с таблицами.
Память данных (ОЗУ) предназначена для хранения переменных в процессе выполнения прикладной программы, адресуется одним байтом и имеет емкость 128 байт. Кроме того, к адресному пространству РПД примыкают адреса регистров специальных функций (РСФ), которые перечислены в табл. 3.1.
Память программ, так же как и память данных, может быть расширена путем подключения внешних БИС.
Аккумулятор и ССП. Аккумулятор является источником операнда и местом фиксации результата при выполнении арифметических, логических операций и ряда операций передачи данных. Кроме того, только с использованием аккумулятора могут быть выполнены операции сдвигов, проверка на нуль, формирование флага паритета и т.п.
Таблица 3.1.
Символ | Наименование | Адрес |
* ACC | Аккумулятор | 0E0H |
* B | Регистр-расширитель аккумулятора | 0F0H |
* PSW | Слово состояния программы | 0D0H |
SP | Регистр-указатель стека | 81H |
DPTR |
Регистр-указатель данных (DPH) (DPL) | 83H |
82H | ||
* P0 | Порт 0 | 80H |
* P1 | Порт 1 | 90H |
* P2 | Порт 2 | 0A0H |
* P3 | Порт 3 | 0B0H |
* IP | Регистр приоритетов | 0B8H |
* IE | Регистр маски прерываний | 0A8H |
TMOD | Регистр режима таймера/счетчика | 89H |
* TCON | Регистр управления/статус таймера | 88H |
TH0 | Таймер 0 (старший байт) | 8CH |
TL0 | Таймер 0 (младший байт) | 8AH |
TH1 | Таймер 1 (старший байт) | 8DH |
TL1 | Таймер 1 (младший байт) | 8BH |
* SCON | Регистр управления приемопередатчиком | 98H |
SBUF | Буфер приемопередатчика | 99H |
PCON | Регистр управления мощностью | 87H |
Примечание. Регистры, имена которых отмечены знаком (* ), допускают адресацию отдельных бит. |
При выполнении многих команд в АЛУ формируется ряд признаков операции (флагов), которые фиксируются в регистре ССП. В табл. 3.2. приводится перечень флагов ССП, даются их символические имена и описываются условия их формирования.
Таблица 3.2.
Символ | Позиция | Имя и назначение | |||
C | PSW.7 | Флаг переноса. Устанавливается и сбрасывается аппаратурными средствами или программой при выполнении арифметических и логических операций | |||
AC | PSW.6 | Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заем в бите 3 | |||
F0 | PSW.5 | Флаг 0. Может быть установлен, сброшен или проверен программой как флаг, специфицируемый пользователем | |||
RS1 RS0 |
PSW.4 PSW.3 | Выбор банка регистров. Устанавливается и сбрасывается программой для выбора рабочего банка регистров (см. примечание) | |||
OV | PSW.2 | Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций | |||
_ | PSW.1 | Не используется | |||
P | PSW.0 | Флаг паритета. Устанавливается и сбрасывается аппаратуры в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе, т.е. выполняет контроль по четности | |||
Примечание. | RS1 | RS0 | Банк | Границы адресов | |
0 | 0 | 0 | 00H-07H | ||
0 | 1 | 1 | 08H-0FH | ||
1 | 0 | 2 | 10H-17H | ||
1 | 1 | 3 | 18H-1FH |
Наиболее "активным" флагом ССП является флаг переноса, которые принимает участие и модифицируется в процессе выполнения множеств операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (C) выполняет функции "булевого аккумулятора" в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. АЛУ не управляет флагами селекции банка регистров (RS0, RS1), и их значение полностью определяется прикладной программой и используется для выбора одного из четырех регистровых банков.
Широкое распространение получило представление о том, что в микропроцессорах, архитектура которых опирается на аккумулятор, большинство команд работают с ним, используя адресацию "по умолчанию" (неявную). В Intel87C51FB дело обстоит иначе. Хотя процессор имеет в своей основе аккумулятор, однако, он может выполнять множество команд и без участия аккумулятора. Например, данные могут быть переданы из любой ячейки РПД в любой регистр, любой регистр может быть загружен непосредственным операндом и т.д. Многие логические операции могут быть выполнены без участия аккумулятора. Кроме того, переменные могут быть инкрементированы, декрементированы и проверены (test) без использования аккумулятора. Флаги и управляющие биты могут быть проверены и изменены аналогично.
Регистры-указатели.
8-битный указатель стека (РУС) может адресовать любую область РПД. Его содержимое инкрементируется прежде, чем данные будут запомнены в стеке в ходе выполнения команд PUSH и CALL. Содержимое РУС декрементируется после выполнения команд POP и RET. Подобный способ адресации элементов стека называют прединкрементным/постдекрементным. В процессе инициализации Intel87C51FB после сигнала СБР в РУС автоматически загружается код 07H. Это значит, что если прикладная программа не переопределяет стек, то первый элемент данных в стеке будет располагаться в ячейке РПД с адресом 08Н.
Двухбайтный регистр-указатель данных (РУД) обычно используется для фиксации 16-битного адреса в операциях с обращением к внешней памяти. Командами МК51 регистр-указатель данных может быть использован или как 16-битный регистр, или как два независимых 8-битных регистра (DPH и DPL).
Таймер/счетчик.
В составе средств Intel87C51FB имеются регистровые пары с символическими именами ТНО, TLO и THI, TLI, на основе которых функционируют два независимых программно-управляемых 16-битных таймера/счетчика событий.
Буфер последовательного порта. Регистр с символическим именем SBUF представляет собой два независимых регистра - буфер приемника и буфер передатчика. Загрузка байта в SBUF немедленно вызывает начало процесса передачи через последовательный порт. Когда байт считывается из SBUF, это значит, что его источником является приемник последовательного порта.
Регистры специальных функций. Регистры с символическими именами IP, IE, TMOD, TCON, SCON и PCON используются для фиксации и программного изменения управляющих бит и бит состояния схемы прерывания, таймера/счетчика, приемопередатчика последовательного порта и для управления мощностью электропитания Intel87C51FB.
Все четыре порта предназначены для ввода или вывода информации побайтно. Каждый порт содержит управляемые регистр-защелку, входной буфер и выходной драйвер. Все выводы порта 3 могут быть использованы для реализации альтернативных функций, перечисленных в табл. 3.3.. Альтернативные функции могут быть задействованы путем записи 1 в соответствующие биты регистра-защелки (Р3.0-Р3.7) порта 3.
Таблица 3.3.
Символ | Позиция | Имя и назначение |
¬ RD | P3.7 | Чтение. Активный сигнал низкого уровня формируется аппаратурно при обращении к ВПД |
¬ WR | P3.6 | Запись. Активный сигнал низкого уровня формируется аппаратурно при обращении к ВПД |
T1 | P3.5 | Вход таймера/счетчика 1 или тест-вход |
T0 | P3.4 | Вход таймера/счетчика 0 или тест-вход |
¬ INT1 | P3.3 | Вход запроса прерывания 1. Воспринимается сигнал низкого уро
К-во Просмотров: 2137
Бесплатно скачать Реферат: Контроллеры
|