сб лаб работ по ПРсСУ (539893), страница 2
Текст из файла (страница 2)
Целью настоящей работы является ознакомление с принципами программирования нелинейных алгоритмов и изучение команд сравнения, условных и безусловных переходов, подпрограмм на программируемом микроконтроллере МКП-1, изучение структуры памяти и физического адресного пространства микроконтроллера МКП-1, экспериментальная проверка работы логических программ.
Теоретическая часть.
Теоретическая часть конспекта должна содержать: описание распределения адресного пространства микроконтроллера МКП-1, понятия о зонах и страницах памяти, их объёме, сведения об основных регистрах, расположенных в служебном ОЗУ, подробные сведения о регистре указателя стека (УС), его назначении и использовании.
Так же должны быть кратко описаны команды, изучаемые в лабораторной работе, их форматы и назначение.
Дать определение циклам, определить их разновидности. Опишите структуру программ, использующих подпрограммы.
Подготовка к выполнению лабораторной работы.
Выяснить вариант задания по таблице №2-2, приготовить конспект, начертить алгоритмы программ согласно заданиям и таблицы для оформления результатов проведения эксперимента. Изучить структуру памяти микроконтроллера МКП-1, дать классификацию командам изменения хода выполнения программы, исходя из варианта задания определить, какие из этих команд и как будут использованы для решения поставленных задач.
Составить программы согласно приведенным заданиям, и записать с комментариями в приготовленные таблицы предполагаемую последовательность действий.
Задание №1.
Осуществить переход на заданный адрес Addr1 зоны памяти №Y. Приготовить микроконтроллер к вводу программы, первая команда которой должна располагаться в зоне памяти №Y, начиная с адреса Addr1. При выполнении задания заполните таблицу №1-1. Запишите с дисплея полученные результаты.
Пояснения к выполнению задания.
Команды переходов в другую зону памяти используются, когда:
-
необходимо вести программу с заданного определенного адреса в определенную зону памяти,
-
программа очень большая и для своего размещения требует более одной зоны памяти.
Во втором случае команды перехода должны располагаться непосредственно в самой программе. Это случай написания достаточно больших программ.
В первом случае необходимо подготовить систему для ввода программы с заданной ячейки памяти в другой зоне. Это может быть выполнено двумя способами:
-
занесением последовательности команд изменения базового адреса и безусловного перехода в память микроконтроллера, а затем исполнения этой последовательности в пошаговом режиме, начиная с первой введенной команды.
-
выполнением в ручном режиме последовательности из двух команд: сначала изменить базовый адрес, а затем выполнить команду безусловного перехода.
Выберите сами тот способ, которым воспользуетесь Вы, или попробуйте выполнить задание обоими способами. В любом случае, сначала необходимо изменить базовый адрес программы, а затем выполнить команду условного или безусловного перехода, в поле операнда которой содержится адрес команды измененной зоны памяти.
Полученные результаты запишите.
Задание №2.
Напишите программу выполнения команд в бесконечном цикле по блок-схеме, приведенной на рисунке 2-1. Составленную программу внесите в таблицу №2-1. Введите программу в микроконтроллер и запустите её на исполнение. Зафиксируйте результаты работы программы и сделайте выводы.
ПРОГРАММА Таблица №2-1.
Адрес | Команда | Описание команды, выполняемые действия |
Оформить результаты работы программы по форме таблицы №1-1.
Пояснения к выполнению задания.
В целом команды, которые необходимо использовать для составления данной программы, уже рассматривались. Однако в данной программе используется зацикливание нескольких команд, для чего следует применить команду перехода, предварительно вычислив адрес команды, на которую будет происходить зацикливание.
Программу следует запустить на исполнение и убедиться, что зацикливание происходит правильно, при этом следует при каждом проходе цикла заносить в таблицу данные с дисплея микроконтроллера.
Задание №3.
Напишите программу, реализующую циклы типа «до» и типа «пока» по алгоритму, заданному преподавателем или по блок-схеме, приведенной на рисунке 2-2. Составленную программу внесите в таблицу №2-1. Введите программу в микроконтроллер и запустите её на исполнение. Зафиксируйте результаты работы программы и сделайте выводы. Результаты работы программы оформите аналогично, как и в предыдущих заданиях, по форме таблицы №1-1.
Пояснения к выполнению задания.
В данном задании составляется программа с двумя циклами с ограниченным количеством итераций. Итерацией называется однократное выполнение серии команд, составляющей тело цикла.
Разберитесь в том, какие действия описывает алгоритм, представленный на рисунке 2-2. Как видно, в программе имеется команда «установка бита условия». Поскольку эта команда ещё не рассматривалась, то при выполнении лабораторной работы вместо этой команды поставьте команду «нет операции». Рассмотрите работу алгоритма программы при отсутствии команду «установка бита условия», определите, каковы должны быть результаты выполнения этой программы. Составьте программу по данному алгоритму и внесите её в таблицу №2-1. Введите программу в микроконтроллер и зафиксируйте результаты её работы, сравните полученные результаты с теми, которые вы предполагали получить.
Как уже указывалось выше, в учебных целях команда «установка бита условия» должна быть заменена Вами на команду «нет операции». Команды, устанавливающие регистр БУ будут изучены в дальнейшем.
Разберитесь, как изменится работа данной программы, если в ней будет присутствовать команда «установка бита условия». Команда «установка бита условия» должна проверять состояние определенного оборудования (например, положение робота) и в зависимости от этого состояния эта команда записывает в регистр БУ значение «0» или значение «1».
Дайте заключение, каковы будут результаты работы этой программы, в случае, если в ней будет присутствовать команда установки БУ.
Задание №4.
Самостоятельно придумайте пример программы с использованием подпрограмм. Составьте программу и внесите её в таблицу №2-1. Составьте алгоритм своей программы и начертите его. Объясните принцип действия составленной Вами программы. Напишите, какие результаты работы должна давать составленная Вами программа.
Пояснения к выполнению задания.
Действия, которые будет выполнять придуманная Вами программа, принципиального значения не имеют. Следует лишь выделить одну или несколько команд, которые должны быть оформлены в виде подпрограммы.
При написании основной программы (из которой будет производиться обращение к подпрограмме), не забудьте поставить последней командой команду СТОП.
Подпрограммы целесообразно размещать после основного тела программы. Для обращения к подпрограмме и возврата из неё используйте команды ПП и ВОЗВРАТ.
Содержание отчета.
Отчет по данной лабораторной работе должен содержать:
-
Оформленный и подписанный студентом конспект, содержащий теоретическую часть, номер варианта и задание.
-
Заполненную таблицу №1-1 задания №1, пояснение к выбранному способу решения задачи, результаты произведенных действий, записанные с дисплея микроконтроллера, и выводы.
-
Блок-схему программы выполнения команд в бесконечном цикле (рисунок 2-1), составленную программу, оформленную в таблице №2-1, результаты работы программы, оформленные в таблице №1-1 (несколько итераций) и выводы.
-
Блок-схему программы, реализующей циклы типа «до» и типа «пока» (рисунок 2-2), составленную программу, оформленную в таблице №2-1, результаты работы программы, оформленные в таблице №1-1, выводы, а так же заключение, каковы будут результаты работы этой программы, в случае, если в ней будет присутствовать команда установки БУ.
-
Самостоятельно придуманную программу с использованием подпрограмм, оформленную в таблице №2-1, составленный и начерченный алгоритм этой программы, комментарии, объясняющие принцип действия составленной Вами программы и результаты её работы.
Контрольные вопросы.
-
Чему равняется физический объем страницы памяти? Зоны памяти?
-
Сколько страниц памяти в одной зоне памяти?
-
Какие типы команд переходов имеются в системе команд микроконтроллера МКП-1?
-
В чем отличие команд условных и безусловных переходов?
-
Какие типы команд условных переходов имеются в системе команд МKП-1?
-
Перечислите команды управления счетчиками.
-
Каков объем зоны памяти микроконтроллера?
-
Можно ли с помощью одной команды перехода передать управление команде, расположенной в другой зоне памяти?
-
Какие существуют виды циклов?
-
Какими командами и как можно организовать подпрограммы?
-
Для чего необходимы подпрограммы?
-
Какой объем физической памяти микроконтроллера занимает одна команда?
-
В зависимости от чего и как изменяется значение бита условия?
-
Каково назначение бита условия для системы команд микроконтроллера?
-
Что отражают регистры БА и СК?
-
Что такое страница памяти?
-
Что такое исполнительная программа?
-
Что такое управляющая программа?
-
Для чего необходимо служебное ОЗУ, какую информацию оно содержит?
-
Какие имеются команды сравнения значения в счетчике с некоторым числом и в чём их различие?
-
В каких случаях бит условия принимает исходное состояние?
-
Как прервать выполнение программы бесконечного цикла?
-
Для каких команд работы со счетчиками не требуется предварительная активизация счетчика?
Варианты заданий Таблица №2-2.
N вар | Адрес Addr1 | Зона памяти №Y | Номер счетчика N1 | Номер счетчика N2 | K1 | K2 | K3 | T1, сек |
1 | 30 | 1 | A | 0 | 1 | F | B | 1,5 |
2 | F1 | 2 | B | 1 | 2 | E | A | 2,2 |
3 | E2 | 3 | C | 2 | 3 | C | 8 | 3,1 |
4 | 27 | 1 | D | 3 | D | F | 8 | 4,4 |
5 | B4 | 2 | E | 4 | B | E | A | 5,5 |
6 | 35 | 3 | F | 5 | 9 | F | A | 1,0 |
7 | 25 | 1 | 0 | 6 | B | E | 9 | 2,0 |
8 | 70 | 2 | 1 | A | 8 | B | 8 | 3,0 |
9 | 88 | 3 | 2 | B | 9 | C | 7 | 4,0 |
10 | BB | 1 | 3 | C | A | D | 8 | 1,6 |
11 | 0E | 2 | 4 | D | B | E | 9 | 1,7 |
12 | BC | 3 | 5 | E | C | F | A | 2,6 |
13 | CD | 1 | 6 | F | 1 | D | 4 | 2,7 |
14 | FA | 2 | 7 | 1 | 2 | C | 9 | 3,1 |
15 | AE | 3 | 8 | 2 | 3 | F | A | 3,3 |
16 | F0 | 1 | 9 | 3 | 4 | E | B | 4,1 |
17 | 44 | 2 | A | D | 5 | 9 | 1 | 4,3 |
18 | 31 | 3 | B | E | 8 | C | 7 | 5,8 |
19 | 9D | 1 | C | F | 6 | D | A | 5,7 |
20 | 2F | 2 | D | 9 | 7 | B | 5 | 4,7 |
21 | A3 | 3 | E | A | 9 | A | 6 | 6,1 |
22 | 06 | 1 | F | 1 | A | E | 8 | 6,2 |
23 | 2C | 2 | 0 | 2 | B | F | 9 | 3,9 |
24 | C4 | 3 | 1 | E | C | F | A | 4,9 |
25 | D3 | 1 | 2 | F | 4 | D | 9 | 5,2 |
26 | EE | 2 | 3 | 0 | 5 | B | 7 | 0,8 |
27 | 55 | 3 | 4 | 1 | 6 | A | 6 | 0,2 |
28 | 77 | 1 | 5 | 7 | 7 | A | 5 | 6,3 |
29 | 48 | 2 | 6 | 8 | 4 | 8 | 3 | 6,6 |
30 | F6 | 3 | 7 | B | 5 | A | 8 | 7,0 |
31 | A0 | 1 | 8 | C | 9 | C | 8 | 7,5 |
Лабораторная работа №3.
«Работа с регистрами однобитной памяти».