iTunes Gift Card RU-регион. 1000 рублей
iTunes Gift Card RU-регион. 1000 рублей


Разблокировка Мегафон TP-DS1
Разблокировка Мегафон TP-DS1


iTunes Gift Card (РОССИЯ) - 700 руб
iTunes Gift Card (РОССИЯ) - 700 руб


В начало

Лекция. Система команд МК-51

 

ПЛАН ЛЕКЦИИ

1. Типы команд

2. Расширение памяти программ и данных

3. Отладка и настройка микроконтроллерных систем

 

1 Типы команд

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

- арифметические инструкции;

- логические инструкции;

- инструкции передачи данных во внутренней памяти данных;

- инструкции передачи данных, использующие внешнюю память данных;

- инструкции передачи данных, использующие память программ;

- булевы инструкции;

- инструкции безусловных переходов;

- инструкции условных переходов;

В командах реализуются следующие режимы адресации:

- Dir - прямая (регистры специальных функций или память данных);

- Ind - косвенная (допустима только относительно регистров R0 и R1; в символической записи обозначается @R0 или @R1 соответственно) ;

- Reg - регистровая;

- Imm - непосредственная (в символической записи начинается с #);

- byte - прямоадресуемый байт;

- bit - прямоадресуемый бит (в регистрах специальных функций или битовой памяти);

- битовый аккумулятор - бит переноса в PSW.

В командах, допускающих прямую, но не регистровую адресацию, может указываться регистр общего назначения, однако при трансляции команды его номер будет в этом случае представлен не трех, а 8-разрядным кодом, соответствующим прямому адресу этого регистра в памяти данных. Некоторые Ассемблеры, в том числе используемый в данном лабораторном практикуме, требуют для таких команд указывать в явном виде номер регистра как прямой адрес ячейки памяти данных.

В инструкции MUL AB производится перемножение содержимого аккумулятора и регистра B. Старшие разряды произведения помещаются в аккумулятор, а младшие - в регистр B.

В инструкции DIV AB содержимое аккумулятора делится на содержимое регистра B. Частное помещается в аккумулятор, а остаток - в регистр B. Операнды рассматриваются как целые числа без знака:

- & -конъюнкция;

- v - дизъюнкция;

- E -"ИСКЛЮЧАЮЩЕЕ-ИЛИ";

- ^ - логическое"НЕ";

- ЦСЛ - циклический сдвиг влево;

- ЦСП - циклический сдвиг вправо;

- В операциях сдвига через бит С участвует 9-ти разрядный регистр (8-ми разрядный аккумулятор и бит переноса С) ;

- <=> - обмен местами операндов;

- в инструкции xchd a,@ri осуществляется обмен только младших тетрад операндов;

-     для безусловных переходов adr показывает, что в команде кодируется абсолютный адрес памяти программ, по которому осуществляется переход;

-     для условных переходов rel показывает, что в команде кодируется относительный адрес памяти программ, по которому осуществляется переход при выполнении указанного условия;

- во всех командах перехода при записи программы на ассемблере адрес перехода может быть задан меткой.

Некоторые Ассемблеры для инструкции вызова подпрограммы и инструкции безусловного перехода требуют от программиста явного указания длины генерируемого адреса перехода, то есть записи в программе инструкций ACALL, LCALL, AJMP, LJMP, SJMP и не воспринимают инструкции CALL, JMP. Другие Ассемблеры самостоятельно генерируют инструкции, имеющие необходимую длину поля адреса в зависимости от месторасположения адреса перехода и поэтому допускают использование лишь инструкций CALL.

 

2 Расширение памяти программ и данных

Однокристальные микроЭВМ имеют гарвардскую архитектуру, одной из отличительных черт которой является наличие физически и логически отделенных друг от друга памяти программ и памяти данных. Память данных, в свою очередь, включает в себя блок регистров общего назначения, область стека, область прямо адресуемых битов ("битовая память"), блок специальных регистров и собственно память данных, организованную в виде традиционного ОЗУ. Различные модификации микроЭВМ семейства МК51 отличаются объемом и распределением памяти между внешними и внутренними блоками.

Память данных. Память данных МК - 51, расположенная на кристалле (внутренняя память данных), имеет объем 256 байт. Она может быть расширена до 64К байт за счет подключения блоков внешней памяти данных. Внутренняя память данных состоит из двух областей: 128 байт оперативной памяти (ОЗУ) с адресами 00h-7Fh и области регистров специальных функций, занимающей адреса 80h-FFh. Помимо возможности использования ОЗУ в качестве массива оперативной памяти, отдельные её области имеют самостоятельное значение. Часть ОЗУ используется в качестве регистров общего назначения, часть имеет прямо адресуемый доступ к отдельным битам, образуя так называемую битовую память. В ОЗУ располагается также и область стека. Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров общего назначения в каждом (БАНК0 - БАНК3). Определение рабочего в данный момент банка, то есть банка регистров, к которому обращается программа при использовании имен R0-R7, осуществляется установкой битов RS0, RS1 в регистре слова состояния PSW. Начальное состояние (RS0=RS1=0) этих разрядов после прохождения сигнала RESET определяет БАНК0 в качестве рабочего. Наличие нескольких банков регистров сокращает длину команд, а также уменьшает время, необходимое для сохранения и восстановления регистров при работе с подпрограммами и обработчиками прерываний, что характерно для задач, решаемых однокристальными микроЭВМ.

Область ОЗУ данных с адресами 20h-2Fh образует область ячеек, к которым возможна побитная адресация. Система команд МК51 содержит значительное количество инструкций, позволяющих работать с отдельными битами, используя при этом прямую адресацию. Область в 128 бит, составляющая рассматриваемую область внутреннего ОЗУ данных и имеющая адреса 00h-7Fh, предназначена для работы с такими инструкциями. Таким образом, к ячейке с адресом, например, 21h можно обратиться как к байту, используя её прямой адрес 21h, а можно обратиться к её отдельным битам в командах, работающих с битовой информацией. При этом младший бит этого байта имеет адрес 08h, а старший - 0Fh.

Область регистров специальных функций содержит защелки портов, регистры таймеров/счетчиков, регистры управления и т.п. Эти регистры допускают только прямую адресацию. Регистры, адрес которых кратен 8-ми, то есть заканчивается на 000b, допускают как байтовую, так и побитовую адресацию. Положение области стека во внутреннем ОЗУ не фиксировано, а определяется значением указателя стека SP. Начальное значение SP после системного сброса- 07h. SP указывает на верхнюю занятую ячейку стека. При обращении к стеку на запись сначала значение SP увеличивается на 1, а затем производится запись во внутреннюю память программ по адресу, хранящемуся в SP. Считывание из стека производится по адресу, хранящемуся в SP, после чего значение SP уменьшается на 1. Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации. Внутреннее ОЗУ, содержащее регистры специальных функций, адресуется с использованием только прямой адресации. К внешней памяти данных можно обращаться только с использованием специальных команд MOVX, которые осуществляют запись и считывание из неё информации и не влияют на внутреннюю память данных МК.

Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00h-0Fh и внешняя память данных с адресами 0000h-FFFFh.

Память программ. В зависимости от модификации, различные типы БИС МК51 имеют разное распределение внутренней и внешней памяти программ, оставляя неизменным общий её объем в 64К байт. Память программ адресуется при помощи 16-разрядной адресной шины с использованием счетчика команд (PC) или инструкций, которые вырабатывают 16-разрядные адреса. Она имеет байтовую организацию и доступна только по чтению.

Обращение к внутренней или внешней памяти программ происходит автоматически с использованием аппаратных средств микроЭВМ. При этом, в зависимости от состояния управляющего входа DEMA , вся память трактуется либо как только внешняя (при DEMA=0), либо как внутренняя, занимающая младшие адреса адресного пространства, и внешняя, занимающая адреса от старшего адреса внутренней памяти до максимально допустимого FFFFh (при DEMA=1). С точки зрения программиста имеется только один массив памяти объемом 64К байт.

 

3 Отладка и настройка микроконтроллерных систем

Отладка аппаратных средств. На этапе автономной отладки аппаратных средств основными орудиями разработчика являются традиционные измерительные приборы - генераторы, осциллографы, мультиметры, пробники, а также специализированные приборы - логические анализаторы, осциллографы смешанных сигналов, генераторы тестовых последовательностей и сигналов заданной формы, которые обладают широкими возможностями контроля состояния различных узлов системы в заданные моменты времени.

Отладка программного обеспечения.

Схемный эмулятор ICE (In-Circuit Emulator) представляет собой программно-аппаратный комплекс, который в процессе отладки замещает в реализуемой системе микропроцессор или микроконтроллер. В результате такой замены функционирование отлаживаемой системы становится наблюдаемым и контролируемым. Разработчик получает возможность визуально контролировать работу системы на экране персонального компьютера и управлять ее работой путем установки определенных управляющих сигналов, модификации содержимого регистров и памяти. Благодаря наличию таких возможностей схемный эмулятор является наиболее универсальным и эффективным отладочным средством, используемым на этапе комплексной отладки системы.

Схемный эмулятор позволяет вводить в систему тестовую или рабочую программу и контролировать ее выполнение, обеспечивая остановы в контрольных точках. Условиями останова могут быть различные комбинации значений адреса, данных и управляющих сигналов, поступающих на выводы эмулирующего микропроцессора или микроконтроллера. Эти комбинации задаются пользователем с клавиатуры управляющего компьютера. После останова пользователь может получить на экране полную информацию о текущем состоянии любых регистров и ячеек памяти системы. С помощью памяти трассы можно просмотреть состояния системной шины для определенного количества предыдущих циклов выполнения программы. Дизассемблер дает возможность анализировать выполнение программы в соответствии с ее исходным текстом на языке Ассемблера.

Схемные эмуляторы, реализующие большую часть вышеперечисленных функций, называют отладочными комплексами или системами развития (development system).

Схемные симуляторы (In-Circuit Simulator). Для проектирования и отладки систем на базе ряда микроконтроллеров семейства 68НС705, 68НС908 компания Motorola предлагает серии недорогих схемных симуляторов M68ICS05, M68ICS08.

В комплект поставляемых схемных симуляторов входят аппаратные средства - плата симулятора/программатора с необходимой комплектацией, комплект программного обеспечения и технической документации. Программное обеспечение представляет собой многооконную интегрированную среду разработки, функционирующую в среде Windows. Интегрированная среда включает редактор текста, кросс-транслятор с языка Ассемблера и отладчик, управляющий платой внутрисхемного симулятора.

Плата схемного симулятора подключается к персональному компьютеру через последовательный интерфейс типа RS-232 (скорость обмена 19,2 или 115,2 Кбит/с). Плата содержит микроконтроллер, который включается в отлаживаемую систему вместо ее микроконтроллера, симулируя его работу. Соединение с системой производится через кабель с вилкой, соответствующей типу корпуса микроконтроллера, на который рассчитан данный схемный симулятор.

Схемные симуляторы M68ICS05 обеспечивают выполнение всех этапов разработки и отладки прикладных задач на основе микроконтроллеров 68НС705:

-       ввод программы на языке Ассемблера и ее трансляцию в двоичный код;

-       выполнение программы по шагам;

-       выполнение программы в режиме псевдопрогона (на пониженной частоте);

-       останов выполнения программы в контрольных точках;

-       останов выполнения программы по состоянию регистров микроконтрол-лера;

-       отображение на экране дисплея и модификация всех программно-доступных ресурсов микроконтроллера (в момент останова);

-       подключение в исследуемую систему вместо целевого микроконтрол-лера;

-       программирование внутренней памяти микроконтроллера.

 

Вывод:

Приведен краткий анализ состава команд микроконтроллера МК – 51, рассмотрены вопросы расширения адресного пространства. Показаны аппаратные и программные средства отладки микропроцессорных систем.