
- •Общие сведения о микроконтроллере с8051f340
- •Процессорное ядро cip-51тм
- •Система команд
- •Команды и тактирование
- •Организацияпамяти
- •Память программ
- •Память данных
- •Регистры общего назначения
- •Ячейки памяти с битовой адресацией
- •Команда movx и память программ
- •Память данных
- •Написание и отладка программ на лабораторном стенде.
- •Основы ассемблера
- •Методика работы со стендом
- •Настройка программного обеспечения
- •Редактирование и отладка программ.
- •Задание и порядок выполнения лабораторных работ
- •4.2 Лабораторная работа 2.«Работа с внешними устройствами»
- •Лабораторная работа 3.«Работа с таймерами и системой прерываний»
- •Система прерываний
- •Регистр масок прерывания (ie)
- •Регистр приоритетов прерываний
- •4.4 Лабораторная работа 4. «Работа с клавиатурой и семисегментными индикаторами»
- •Контрольные вопросы к лабораторной работе № 4
- •Литература
Ячейки памяти с битовой адресацией
Кроме прямого (побайтного) доступа к памяти данных 16 ячеек этой памяти с адресами 0x20 - 0x2F доступны также как 128 индивидуально адресуемых бит. Каждый бит имеет битовый адрес от 0x00 до 0x7F. Бит 0 байта 0x20 имеет битовый адрес 0x00, а бит 7 байта 0x20 имеет битовый адрес 0x07. Бит 7 байта 0x2F имеет битовый адрес 0x7F. Битовый доступ можно отличить от байтового доступа по типу используемой команды (операнды исходных данных и результата в первом случае являются битами, во втором – байтами).
Ассемблер MCS-51™ допускает альтернативную запись для режима битовой адресации в форме ХХ.В, где ХХ – адрес байта, а В – позиция бита внутри этого байта. Например, команда:
MOV C, 22h.3
присваивает значение бита 0x13 (бит 3 в ячейке с адресом 0x22) флагу переноса.
Команда movx и память программ
Команда MOVX обычно используется для доступа к внешней памяти данных. В CIP-51 команда MOVX может обращаться к встроенной памяти программ, реализованной как перепрограммируемая Flash-память, используя управляющие биты в регистре PSCTL . Это позволяет ядру CIP-51 обновлять программный код и использовать область памяти программ для долговременного хранения данных. Для МК с ОЗУ, отображенным на внешнюю память данных, команда MOVX используется также для чтения/записи этой памяти с помощью регистра PSCTL, настроенного на доступ к внешней памяти данных.
Рисунок 1. Карта распределенияпамяти
ПАМЯТЬ ПРОГРАММ
0x10000
ЗАРЕЗЕРВИРОВАНО
FLASH
(возможно внутрисистемное программирование
секторами по 512 байт)
0xFC00
0x0000
Память данных
ВНУТРЕННЯЯ ПАМЯТЬ ДАННЫХ
Старшие128байтОЗУ (только косвеннаяадресация) |
Регистрыспециального назначение(только прямаяадресация) |
(Прямой икосвенный режимы адресации) |
Младшие128байтОЗУ (Прямой икосвенный режимы адресации)
|
Битовая адресация |
|
Регистры общего назначения |
0x100
0
x80
0x30
0x20
0x00
ВНЕШНЯЯ ПАМЯТЬДАННЫХ
0x10000
0x1000
0x0000
Написание и отладка программ на лабораторном стенде.
Основы ассемблера
Прежде чем пытаться что-то оттранслировать и отладить, это что-то надо иметь. В нашем случае этим чем-то является текст программы, написанной на языке ассемблер. Поэтому надо познакомиться с основными принципами программирования на языке ассемблер.
Текст программы состоит из строк, в каждой из которых может быть написана только одна команда. Строку можно условно разделить на четыре поля, которые отделяются друг от друга пробельными символами.Первое поле – поле метки. Метка должна начинаться с первой позиции и может состоят из набора латинских букв и цифр. Первым символом метки должна быть буква или символ подчеркивания. Размер метки не более 8 символов. В некоторых версиях ассемблера метка должна завершаться двоеточием, в других двоеточие не обязательно. Во втором поле пишется мнемоника команды или директива ассемблера. В некоторых версиях ассемблера директива должна начинаться с точки, в других версиях наличие точки не обязательно или недопустимо. В третьем поле указываются операнды команды. Если операндов несколько, они разделяются запятыми. Последнее четвертое поле – поле комментариев. Оно начинается с символа «точка с запятой». Данное поле может начинаться в любом месте строки.
Пример:
Label: mov R1,#0 ; запись ноля в регистр R1
jmp label
end
Последней строкой в программе должна быть директива END.
Константы в ассемблере могут быть указаны в разных системах счисления. В зависимости от конкретной реализации по умолчанию используется десятичная или шестнадцатеричная система счисления. Теперь по всем вышеописанным правилам пишем программу в любом текстовом редакторе и сохраняем его с расширением ASM. После этого можно переходить к отладке программы.