Смекни!
smekni.com

Система охранной сигнализации промышленного объекта на базе разнотипных датчиков (стр. 8 из 18)

Память данных (ОЗУ).

Объем расположенной на кристалле памяти данных—128 байт. Объем внешней памяти данных может достигать 64 Кбайт. Первые 32 байта организованы в четыре банка регистров общего назначения, обозначаемых соответственно банк 0 — банк 3. Каждый из них состоит из восьми регистров R0 — R7. В любой момент программе доступен только один банк регистров, номер которого содержится в третьем и четвертом битах слова состояния программы PSW (см. ниже).

Оставшееся адресное пространство может конфигурироваться разработчиком по своему усмотрению: в нем располагаются стек, системные и пользовательские области данных. Обращение к ячейкам памяти данных возможно двумя способами. Первый способ — прямая адресация ячейки памяти. В этом случае адрес ячейки является операндом соответствующей команды. Второй способ — косвенная адресация с помощью регистров R0 или R1: перед выполнением соответствующей команды в один из них должен быть занесен адрес ячейки, к которой необходимо обратиться.

Для обращения к внешней памяти данных используется только косвенная адресация с помощью регистров R0 и R1 или с помощью 16-разрядного регистра-указателя DPTR. Он относится к группе регистров специальных функций, и с его помощью можно адресовать все 64 Кбайта внешней памяти.

Часть памяти данных представляет собой так называемую битовую область, в ней имеется возможность при помощи специальных битовых команд адресовываться к каждому разряду ячеек памяти. Адрес прямо адресуемых битов может быть записан либо в виде (Адрес Байта ).(Разряд), например выражение 21.3 означает третий разряд ячейки памяти с адресом 21H, либо в виде абсолютного битового адреса. Соответствие этих двух способов адресации можно определить по таблице.

Таблица 1 – Адреса битовых областей памяти микроконтроллера 8051

Адрес
байта
Адреса битов по разрядам
D7 D6 D5 D4 D3 D2 D1 D0
2FH 7F 7E 7D 7C 7B 7A 79 78
2EH 77 76 75 74 73 72 71 70
2DH 6F 6E 6D 6C 6B 6A 69 68
2CH 67 66 65 64 63 62 61 60
2BH 5F 5E 5D 5C 5B 5A 59 58
2AH 57 56 55 54 53 52 51 50
29H 4F 4E 4D 4C 4B 4A 49 48
28H 47 46 45 44 43 42 41 40
27H 3F 3E 3D 3C 3B 3A 39 38
26H 37 36 35 34 33 32 31 30
25H 2F 2E 2D 2C 2B 2A 29 28
24H 27 26 25 24 23 22 21 20
23H 1F 1E 1D 1C 1B 1A 19 18
22H 17 16 15 14 13 12 11 10
21H 0F 0E 0D 0C 0B 0A 09 08
20H 07 06 05 04 03 02 01 00

Примечание. Адрес прямо адресуемых битов может быть записан либо в виде выражения (Адрес Байта ).(Разряд), например выражение 21.3 означает адрес третьего разряда ячейки памяти с адресом 21H, либо в виде абсолютного битового адреса, который для данного бита равен (см. таблицу) 0B.

Таблица 2 – Карта адресуемых битов в блоке регистров специальных функций.

Адрес
байта
Адреса битов по разрядам Имя
регистра
Adr D7 D6 D5 D4 D3 D2 D1 D0 Name
F0H F7 F6 F5 F4 F3 F2 F1 F0 B
... . . . ...
E0H E7 E6 E5 E4 E3 E2 E1 E0 ACC
... . . . ...
D0H D7 D6 D5 D4 D3 D2 D1 D0 PSW
... . . . ...
B8H - - - BC BB BA B9 B8 IP
... . . . ...
B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
... . . . ...
A8H AF - - AC AB AA A9 A8 IE
... . . . ...
A0H A7 A6 A5 A4 A3 A2 A1 A0 P2
... . . . ...
98H 9F 9E 9D 9C 9B 9A 99 98 SCON
... . . . ...
90H 97 96 95 94 93 92 91 90 P1
... . . . ...
88H 8F 8E 8D 8C 8B 8A 89 88 TCON
... . . . ...
80H 87 86 85 84 83 82 81 80 P0

Примечание. Адрес прямо адресуемых битов может быть записан либо в виде выражения (Название Регистра). (Разряд), например выражение SCON.3 означает адрес третьего разряда регистра SCON, либо в виде абсолютного битового адреса, который для данного бита равен (см. таблицу) 9B. Кроме того, некоторые биты управляющих регистров имеют собственные названия, так например данный бит имеет название TB8

Регистры специальных функций.

К адресному пространству памяти данных примыкает адресное пространство регистров специальных функций SFR (SpecialFunctionRegister).

Таблица 3 – Размещение регистров специальных функций в пространстве SFR

Адрес Символ Наименование
0E0H *АСС Аккумулятор (Accumulator)
0F0H Регистр расширитель аккумулятора (MultiplicationRegister)
0D0H *PSW Слово состояния программы (ProgramStatusWord)
080Н *P0 Порт 0 (SFR P0)
090H *Р1 Порт 1 (SFR P1)
0A0H *P2 Порт 2 (SFR P2)
0B0H *P3 Порт 3 (SFR РЗ)
081H SP Регистр указатель стека (StackPointer)
083H DPH Старший байт регистра указателя данных DPTR (DataPointerHigh)
082H DPL Младший байт регистра указателя данных DPTR (DataPointerLow)
08CH TH0 Старший байт таймера 0 ()
08AH TL0 Младший байт таймера 0 ()
08DH TH1 Старший байт таймера 1 ()
08BH TL1 Младший байт таймера 1 ()
089H TMOD Регистррежимовтаймеровсчетчиков (Timer/Counter Mode Control Register)
088H *TCON Региструправлениястатусатаймеров (Timer/Counter Control Register)
0B8H *IP Регистрприоритетов (Interrupt Priority Control Register)
0A8H *IE Регистрмаскипрерывания (Interrupt Enable Register)
087H PCON Регистр управления мощностью (PowerControlRegister)
098H *SCON Региструправленияприемопередатчиком (Serial Port Control Register)
099H SBUF Буферприемопередатчика (Serial Data Buffer)

Примечание. Регистры, символ которых отмечен знаком (*), допускают адресацию своих отдельных бит при использовании команд из группы команд операций над битами.

Адреса, по которым расположены эти регистры, приведены в таблице.

Отметим, что регистры занимают только часть 128-байтового адресного пространства. Те ячейки памяти с адресами 80H-0FFH, которые не заняты регистрами, физически отсутствуют, на кристаллах микроконтроллеров семейства 8051 при обращении к ним можно прочитать лишь код команды возврата.

Регистры специальных функций управляют работой блоков, входящих в микроконтроллер.

– Регистры-защелки SFR параллельных портов P0...P3 - служат для ввода-вывода информации.

– Две регистровые пары с именами TH0, TL0 и TH1, TL1 представляют собой регистры, двух программно-управляемых 16-битных таймеров-счетчиков.

– Режимы таймеров-счетчиков задаются с использованием регистра TMOD, а управление ими осуществляется с помощью регистра TCON.

– Для управления режимами энергопотребления микро-ЭВМ используется регистр PCON.

– Регистры IP и IE управляют работой системы прерываний микро-ЭВМ,

– Регистры SBUF и SCON — работой приемопередатчика последовательного порта.

– Регистр-указатель стека SP в микро-ЭВМ рассматриваемого семейства — восьми битный. Он может адресовать любую область внутренней памяти данных. В отличие от микропроцессора КР580ВМ80, у микро-ЭВМ семейства 8051 стек «растет вверх», т.е. перед выполнением команды PUSH или CALL содержимое SP инкрементируется, после чего производится запись информации в стек. Соответственно при извлечении информации из стека регистр SP декрементируется после извлечения информации. В процессе инициализации микро-ЭВМ после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н.

– Регистр-указатель данных DPTR чаще всего используют для фиксации 16-битного адреса в операциях обращения к внешней памяти программ и данных. С точки зрения программиста он может выступать как в виде одного 16-битного регистра, так и в виде двух независимых регистров DPL и DPH

– Аккумулятор (АСС) является источником операнда и местом фиксации результата при выполнении арифметических, логических операций и ряда операций передачи данных. Кроме того, только с использованием аккумулятора могут быть выполнены операции сдвигов, проверка на нуль, формирование флага паритета и т.п. В распоряжении пользователя имеются 8 регистров общего назначения R0–R7 одного из четырёх возможных банков. При выполнении многих команд в АЛУ формируется ряд признаков операции (флагов), которые фиксируются в регистре PSW.