Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Применение микроконтроллеров MCS-51 при проектировании электронных устройств. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
косвенная – к другому. Так, рис. 4.5 показывает, что Upper 128 и SFR занимают одни и те же адреса, от 80H до FFH, хотя физически это раз­ные блоки памяти.
FFH
UPPER
128
80H 7FH
LOWER
128
00H
Область доступна
только при косвенной
адресации
Область доступна
при прямой
и косвенной адресации
Область доступна
при прямой
адресации
Регистры специальных
функций (SFR) – порты,
биты состояния
и управления, регистры
таймеров, указатель стека,
аккумулятор и т. д.
FFH
SFR
80H
Рис. 4.5. Внутренняя память данных
Lower 128 байт ОЗУ присутствуют во всех моделях MCS-51 и рас-
пределяются в соответствии с картой памяти, показанной на рис. 4.6. Самые младшие 32 байта сгруппированы в четыре банка по восемь ре­гистров. С точки зрения программы это регистры с R0 по R7. Два бита в PSW (Program Status Word – слово состояния программы) определя­ют используемый в данный момент времени банк.
Это позволяет полу­чать более компактные коды программ, поскольку команды с реги­стровой адресацией короче, чем с прямой.
7FH 2FH
20H
1FH
17H
0FH
07H
11
10
01
00
18H
10H
08H
00H
Рис. 4.6. Распределение памяти по младшим адресам
Пространство с битовой
адресацией (адреса бит 0-7FH)
4 банка по 8 регистров R0-R7 Биты номера банка находятся
в слове состояния программы (PSW)
Значение указателя стека (SP)
после сброса
21
Все байты в Lower 128 могут адресоваться с помощью как прямой, так и косвенной адресации. Upper 128 доступны (рис. 4.7) только при косвенной адресации. Как уже говорилось, Upper 128 отсутствуют в некоторых младших моделях (в которых RAM равна 128 байтам).
Представление о распределении пространства в SFRs (Special Func­tion Registers) даёт рис. 4.8. Сюда входят защёлки портов, таймеры, управление периферией и т. д. Эти регистры
могут быть доступны
только при прямой адресации.
FFH
E0H
D0H
B0H
A0H
90H
80H
Upper 128
80H
FFH
Битовая адресация отсутствует Область доступна как стековое
пространство для устройства
с 256 байтами ОЗУ
Область отсутствует в 8051
Рис. 4.7. Старшие адреса памяти
: :
Асс
: :
PSW
: :
PORT 3
: :
PORT 2
: :
PORT 1
: :
PORT 0
Адреса, заканчивающиеся на 0H или 8H,
допускают побитную адресацию
Рис. 4.8. Адресное пространство регистров
специальных функций
22
Следующие 16 байт, расположенных над банками регистров, обра­зуют блок адресного пространства с битовой адресацией. Набор ко­манд MCS-51 содержит большое количество команд, манипулирую­щих одним битом, и 128 бит в этом пространстве могут быть прямо адресованы такими командами. Адреса бит имеют значения от 00H до 7FH.
Шестнадцать адресов в пространстве SFR могут адресоваться и по­битно. Побитно адресуемыми регистрами являются регистры, адреса которых заканчиваются значением 0H или 8H. Адреса бит в этом про­странстве изменяются от 80H до FFH.
23
5. СИНХРОНИЗАЦИЯ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА
Все микроконтроллеры семейства MCS-51 имеют встроенный так­товый генератор, который при желании может быть использован как источник синхронизации для ЦП. Чтобы его использовать, нужно к выводам XTAL1 и XTAL2 микроконтроллера подключить кварцевый или керамический резонатор и заземляющие емкости, как это показано на рис. 5.1. Для различных моделей используется частота синхрониза­ции от 0.5 до 33 МГц.
MSC-51
XTAL2
С1
С1
XTAL1
HMOS или CHMOS
VSS
Кристалл кварца
или керамический резонатор
Рис. 5.1. Подключение резонатора
Примеры подключения внешнего тактового генератора показаны на рис. 5.2. Следует отметить, что в устройствах, выполненных по HMOS-технологии (8051 и т. д.), внутренний генератор управляется через вывод XTAL2, в то время как для устройств с CHMOS­технологией (80C51BH и др.) – через вывод XTAL1.
Машинный цикл состоит из последовательности шести состояний
(States), нумеруемых от S1 до S6. Каждое состояние длится два
24
перио-
да тактового генератора. Так, машинный цикл занимает 12 периодов тактового генератора, или 1 мкс при частоте генератора 12 МГц.
MSC-51
Внешние тактовые
импульсы
Внешние тактовые
импульсы
XTAL2
XTAL1
VSS
XTAL2
XTAL1
VSS
MSC-51
Только
для
HMOS
NC – No Connection
HMOS
CHMOS
Внешние тактовые
импульсы
или
[NC]
MSC-51
XTAL2
Только
для
СHMOS
XTAL1
VSS
Рис. 5.2. Варианты подключения внешнего генератора
Каждое состояние делится на фазу 1 (Phase 1 – P1) и фазу 2 (Phase 2 – P2). Рисунки 5.3 и 5.4 показывают последовательность выборки/вы­полнения в состояниях и фазах для различных типов команд. Обычно в каждом машинном цикле выполняется две выборки кода, даже если вы­полняемая команда не требует этого. Если команде не требуется допол­нительный байт кода, ЦП просто игнорирует
дополнительную выборку
и программный счётчик (PC – Program Counter) не увеличивается.
Выполнение одноцикловых инструкций (рис. 5.3, а и б) начинается в состоянии S1 машинного цикла, когда код операции защёлкивается в регистре команд (Instruction Register). Вторая выборка происходит во время состояния S4 того же самого машинного цикла. Выполнение за­канчивается в конце состояния S6.
25
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1
Такты
(XTAL2
ALE
P1P2 P1P2 P1P2 P1P2 P1P2 P1P2P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2
Чтение КОП
S1 S2 S3 S4
а – однобайтная, одноцикловая команда, например INCA
Чтение КОП
Чтение
2-го байта
S1 S2 S3 S4 S5 S6
Чтение
следующего КОП
(игнорируется)
Снова чтение следующего КОП
S5 S6
Чтение следующего КОП
б – двухбайтная, одноцикловая команда, например ADDA, #data
Рис. 5.3. Временные диаграммы для одноцикловых команд
Для выполнения команды MOVX требуется два машинных цикла. Во время второго машинного цикла выборки команд не происходит. Это единственный случай, когда выборка команды пропускается. По­следовательность выборки/выполнения для команды MOVX показана на рис. 5.5.
Последовательность выборки/выполнения не зависит от того, явля­ется ли память программ внутренней или внешней. Время выполнения
26
также не зависит от того, находится ли память программ на кристалле или является внешней.
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1
Такты
(XTAL2)
ALE
P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2
Чтение КОП
следующего КОП
Чтение следующего КОП (игнорируется)
S1 S2 S3 S4 S5 S6
а – однобайтная, двухцикловая команда, например INC DPTR
Чтение КОП
(MOVX)
S1 S2 S3 S4 S5 S6
КОП (игнорируется)
S1 S2 S3 S4 S5 S6
Чтение
следующего
Снова чтение следующего КОП
Выборки
ALE нет!
S1 S2 S3 S4 S5 S6
Снова чтение
б – MOVX [1 – байт, 2 цикла]
Рис. 5.4. Временные диаграммы для двухцикловых команд
Адрес Данные
Доступ к внешней памяти
27
Один машинный цикл
Один машинный цикл
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1
Такты
P1P2 P1P2 P1P2 P1P2 P1P2 P1P2P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2
(XTAL2)
ALE
PSEN
RD
PCH OUT PCH OUT PCH OUT PCH OUT PCH OUT
P2
PCH OUT
P0
INST IN
PCL OUT
IINST IN
IPCL OUT
INST IN
PCL OUT
а
(Такты
(XTAL2)
ALE
PSEN
RD
PCH OUT PCH OUT PCH OUT
P2
P0
Один машинный цикл
Один машинный цикл
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1
P1P2 P1P2 P1P2P1P2 P1P2 P1P2P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2 P1P2
DPH OUT или P2 OUT
INST IN
PCL OUT
IINST IN
ADDA
OUT
DATA
OUT
б
Рис. 5.5. Временные диаграммы при работе с внешней
памятью команд:
а – без MOVX; б – с MOVX
INST IN
PCL OUT
PCL OUT
INST IN
INST IN
PCL OUT
PCH OUT
PCL OUT
28
На рис. 5.5 показаны временные диаграммы процессов выбор­ки/выполнения для случая использования внешней памяти программ. Видно, что строб-сигнал чтения внешней памяти программ PSEN\ ак­тивизируется дважды за машинный цикл (рис. 5.5, а).
При обращении к внешней памяти данных (рис. 5.5, б) два сигнала PSEN\ пропускаются, поскольку шины данных и адреса будут исполь­зованы
для доступа к памяти данных.
Отметим, что цикл обращения к памяти данных занимает в два раза больше времени, чем цикл обращения к памяти программ.
Когда ЦП выполняет команды из внутренней памяти программ, сигнал PSEN\ не активизируется и адреса команд не выставляются. Однако сигнал ALE вырабатывается дважды за период и может быть использован
как выходной тактирующий сигнал. Но при выполнении
команд MOVX один сигнал ALE пропускается.
29
-
ESE
EX1ETOE
х
6. СТРУКТУРА ПРЕРЫВАНИЙ
Базовая модель 8051 содержит пять источников прерываний: два внешних прерывания, два прерывания от таймера и одно прерывание от порта последовательной связи. Старшие модели могут использовать большее число источников прерываний.
Каждый из источников прерываний может быть индивидуально разрешён или запрещён с помощью установки или сброса бита в реги­стре IE (Interrupt Enable – прерывание разрешено),
SFR. Этот регистр содержит также глобальный бит разрешения EA (Enable All – разрешить все), обнуление которого приводит к запрету всех прерываний. Ниже приведён формат регистра IE: (MSB – Most Significant Bit, старший значащий разряд; LSB – Least Significant Bit, младший значащий разряд).
(MSB) (LSB)
EA
- - -
T1
Бит разрешения = 1 разрешает прерывания
Бит разрешения = 0 запрещает прерывания
Символ Позиция Функция
Если EA = 0, запрещены прерывания от всех ис-
EA
IE.7
точников. Если EA = 1, каждый источник разреша­ется или запрещается индивидуально
Зарезервировано *** Используются в более старши
E.6
IE.5
ES
ET1
EX1
ET0
EX0
IE.4 IE.3
IE.2
IE.1
IE.0
моделях Зарезервировано *** Бит разрешения последовательного порта Бит разрешения по переполнению таймера 1 Бит разрешения прерывания от внешнего источ-
ника 1 Бит разрешения по переполнению таймера 0 Бит разрешения прерывания от внешнего источ-
ника 0
расположенном в
XO
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]