вход Вход Регистрация



Память программ и память данных, размещенные на кристалле МК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 Регистр режима таймера/счетчика 8911
* 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 Банк

Границы адресов

0

 

0

1

1

0

 

1

0

1

0

 

1

2

3

00Н-07Н

 

08H-0FH

10Н-17Н

18Н -1FH

 

 

При выполнении многих команд в АЛУ формируется ряд признаков операции (флагов), которые фиксируются в регистре ССП. В табл. 2.2 приводится перечень флагов ССП, даются их символические имена и описываются условия их формирования.

Наиболее "активным" флагом ССП является флаг переноса, который принимает участие и модифицируется в процессе выполнения множества операций, включая сложение, вычитание и сдвиги. Кроме того, флаг пере­носа (С) выполняет функции "булевого аккумулятора" в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует ариф­метическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. АЛУ не управляет флагами селекции банка регистров (RS0, RS1), и их значение полностью определяется прикладной программой и ис­пользуется для выбора одного из четырех регистровых банков.

Широкое распространение получило представление о том, что в микро­процессорах, архитектура которых опирается на аккумулятор, большинство команд работают с ним, используя адресацию "по умолчанию" (неявную). В МК51 дело обстоит иначе. Хотя процессор в МК51 имеет в своей основе аккумулятор, однако он может выполнять множество команд и без участия аккумулятора. Например, данные могут быть переданы из любой ячейки РПД в любой регистр, любой регистр может быть загружен непосредственным операндом и т.д. Многие логические операции могут быть выполнены без участия аккумулятора. Кроме того, переменные могут быть инкрементированы, декрементированы и проверены (test) без использования аккумулятора. Флаги и управляющие биты могут быть проверены и изменены аналогично.

Регистры-указатели. 8-битный указатель стека (РУС) может адресо­вать любую область РПД. Его содержимое инкрементируется прежде, чем данные будут запомнены в стеке в ходе выполнения команд PUSH и CALL. Содержимое РУС декрементируется после выполнения команд POP и RET. Подобный способ адресации элементов стека называют прединкрементным/постдекрементным. В процессе инициализации МК51 после сигнала СВР в РУС автоматически загружается код 07Н. Это значит, что если прикладная программа не переопределяет стек, то первый элемент данных в стеке будет располагаться в ячейке РПД с адре­сом 08Н.

Двухбайтный регистр-указатель данных (РУД) обычно используется для фиксации 16-битного адреса в операциях с обращением к внешней памяти. Командами МК51 регистр-указатель данных может быть исполь­зован или как 16-битный регистр, или как два независимых 8-битных регистра (DPH и DPL).

Таймер/счетчик. В составе средств МК51 имеются регистровые пары с символическими именами TH0, TL0 и ТН1, ТL1, на основе которых функционируют два независимых программно-управляемых 16-битных таймера/счетчика событий.

Буфер последовательного порта. Регистр с символическим именем SBUF представляет собой два независимых регистра - буфер приемни­ка и буфер передатчика. Загрузка байта в SBUF немедленно вызывает начало процесса передачи через последовательный порт. Когда байт считывается из SBUF, это значит, что его источником является прием­ник последовательного порта.

Регистры специальных функций. Регистры с символическими имена­ми IP, IE, TMOD, TCON, SCON и PCON используются для фиксации и программного изменения управляющих бит и бит состояния схемы прерывания, таймера/счетчика, приемопередатчика последовательного порта и для управления мощностью электропитания МК51.

 

© 2018
  • Сайт "Литературка"
  • мы собираем различную техническую, образовательную, научную литратуру