
- •24 Содержание
- •1. Введение
- •2. Содержание лекционного курса
- •3. Список рекомендуемой литературы
- •4. Компьютерные обучающие программы
- •5. Упражнения по решению задач
- •5.1. Назначение выводов, программная модель мк51
- •5.2. Типы и форматы команд мк51
- •5.3. Примеры выполнения команд мк51
- •5.4. Примеры программ обработки данных
- •Отладка прикладных программ для микроконтроллера мк51 ( Лабораторная работа )
- •7. Варианты заданий для контрольной работы №1
5. Упражнения по решению задач
Прочитайте раздел 16 учебного пособия. Познакомьтесь с обозначением и функциональным назначением выводов микроконтроллера МК51, его программной моделью. Познакомьтесь с символическим обозначением регистров специальных функций и их битов, с типами команд и путями передачи данных, методами адресации байтов и битов. Изучите мнемонику команд и операндов, функциональное назначение команд передачи данных, выполнения арифметических и логических операций, операций с битами, команд передачи управления. Познакомьтесь с основами программирования режима работы таймеров/счетчиков, последовательного порта, системы прерываний. Перед выполнением контрольных и лабораторных работ внимательно изучите приводимые ниже примеры решения задач по курсу.
5.1. Назначение выводов, программная модель мк51
Задача 1. Какие выводы микроконтроллера используются при выборке очередного байта из внешней памяти программ?
Ответ. Младший байт адреса передается через линии порта Р0 и запоминается во внешнем регистре по сигналу, формируемому на выводе ALE (см. рис. 16.7 учебного пособия). Старший байт адреса передается через линии порта Р2. Читается очередной байт команды через линии порта Р0 по сигналу, формируемому на выводе PME.
Задача 2. Какие выводы микроконтроллера задействованы при выполнении команды MOVX @R0,A?
Ответ. При выполнении этой команды содержимое аккумулятора записывается в ячейку внешней памяти данных объемом не более 256 байт, косвенно адресуемую содержимым регистра R0. Адрес ячейки защелкивается во внешнем регистре с линий порта Р0 по сигналу, формируемому на выводе ALE. Запись осуществляется через линии порта Р0 по сигналу WR, формируемому на шестом выводе порта Р3.
Задача 3. Какие выводы микроконтроллера задействованы при работе с внутренней памятью программ?
Ответ. Такой режим устанавливается подачей высокого уровня напряжения на вывод VPP. Порты Р0 и Р2 остаются свободными для других применений, так как адреса и данные передаются по внутренней магистрали микроконтроллера (см. рис.16.8 учебного пособия).
Задача 4. Какой из битов PSW программно доступен только по чтению?
Ответ. Это может быть только бит паритета Р. Его значение жестко определяется содержимым аккумулятора. В 9-разрядном слове, состоящем из восьми разрядов аккумулятора и бита Р, всегда содержится четное число единичных битов. При обнулении аккумулятора флаг Р примет нулевое значение.
Задача 5. Можно ли использовать порт Р3 для реализации альтернативных функций после выполнения команды MOV P3,#0?
Ответ. Нет, нельзя. Альтернативная функция любой из линий порта Р3 реализуется только в том случае, если в соответствующем этой линии триггере-защелке содержится 1. После выполнения данной команды во все триггеры порта будут записаны нули, выходные ключи порта будут открыты и на всех линиях Р3 будут уровни логического 0.
Задача 6. Содержимое каких регистров МК51 изменится, если сразу после сброса будет выполнена команда LCALL BEGIN?
Ответ. Трехбайтовая команда LCALL вызывает подпрограмму BEGIN. При сбросе в указатель стека SP загружается число 7. По команде LCALL к содержимому счетчика команд РС прибавляется 3 для получения адреса следующей команды и после этого полученный 16-битовый результат (в нашем случае 0003Н) помещается в стек (03Н - в восьмую, а 00Н - в девятую ячейку резидентной памяти данных). Содержимое указателя стека увеличивается на 2. Затем старший и младший байты счетчика команд загружаются соответственно вторым и третьим байтом команды LCALL, т.е. начальным адресом подпрограммы BEGIN.
Задача 7. Определите прямой адрес пятого бита аккумулятора.
Решение. Прямой адрес младшего бита регистра, допускающего адресацию отдельных бит, совпадает с прямым адресом самого регистра. Добавляя число 5 к прямому адресу АСС, равному 0Е0Н, получим прямой адрес бита АСС.5, равный 0Е5Н. Прямая побитовая адресация используется для обращения к отдельно адресуемым 128 битам, расположенным в ячейках резидентной памяти данных с адресами 20Н-2FH, и к отдельно адресуемым битам регистров специального назначения.
Задача 8. Можно ли использовать команды работы с битами при обращении к младшему биту регистра PCON, имеющему символическое обозначение IDL (бит холостого хода)?
Ответ. Нельзя, так как регистр PCON не допускает адресацию отдельных бит. Такую адресацию допускают только 11 регистров специальных функций из 21.
Задача 9. Какие регистры используются в качестве указателей данных при косвенно-регистровой адресации?
Ответ. При обращении к ячейкам внутреннего ОЗУ данных для этой цели используются регистры R0, R1 выбранного банка регистров. Они же используются для выборки ячейки из блока в 256 байт внешней памяти данных. При обращении к любой ячейке адресного пространства внешней памяти данных объемом до 64 Кбайт используется 16-разрядный регистр DPTR. Любой байт из таблицы памяти программ может быть выбран по адресу, определяемому суммой содержимого DPTR или РС и содержимого А.
Задача 10. Какие методы адресации можно использовать при обращении к ячейке резидентной памяти данных с адресом 18Н?
Ответ. Кроме прямой байтовой адресации (как, например, в команде MOV 18H,#100), можно использовать косвенно-регистровую (MOV @R1,#100 если содержимое регистра-указателя R1 равно 18Н) или регистровую (MOV R0,#100 если выбран банк РОН3 установкой в 1 битов RS0 и RS1 слова состояния программы PSW).