Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
360.doc
Скачиваний:
8
Добавлен:
30.04.2022
Размер:
2.84 Mб
Скачать

Предварительное задание

Изучите сведения о таймерах МК и их регистрах. В случае надобности используйте файлы учебных материалов и лекции.

Изучите рабочее задание и подготовьтесь к его выполнению.

Рабочее задание

  1. Откройте АВ, загрузите ваш проект LR5_3 и сохраните его как LR6_1.

  2. В другом окне снова откройте АВ и загрузите пример Frequency Counter.alp. Изучите настройку таймера Т1 и его исполь­зование в этом примере.

  3. Переработайте свой алгоритм, используя таймер вместо цикла «Пауза» по аналогии с приведенным примером и пользуясь «Указаниями…», приведенными в следующем разделе. Операции смещения единицы на выводах порта включите в подпрограмму обработки прерываний от таймера. Учтите, что основная программа должна сохранять вид цикла. Останов установите на выходе из прерывания от таймера и выполните симуляцию. Перезапишите алгоритм как LR6_1.

  4. Прочитайте следующее задание и продумайте этапы его реализации. Оператор через порт C загружает в ячейки ОЗУ контроллера с адресами 20Н...27Н (считая от начала ОЗУ) управляющие коды, которые затем необходимо передавать на объект управления через порт B микроконтроллера в соответствии с состоянием битов маски. Маска передачи управляющих кодов загружается в МК с линий порта A и интерпретируется так: "1" в бите PA.0 соответствует необходимости передачи в порт B управляющего кода из ячейки 20Н и удержания его в течение 400 микросекунд, "1" в бите PA.1 - из ячейки 21Н и т.д. В случае, если РА.х = 0, делается переход к следующему разряду без задержки. Коды выдаются последовательно, начиная с младшего адреса.

Графически это задание проиллюстрировано на рис. 6.3.

  1. С оставьте алгоритм для выполнения этого задания, придерживаясь принципа модульности (организуйте основной модуль, включая инициализацию, модуль ввода управляющих кодов, модуль ввода маски, модуль вывода кодов). Не используйте кириллицу в названии подпрограмм. Сначала изобразите только основной модуль с сеттерами, макрокомандами инициализации и именами подпрограмм. Сами подпрограммы изобразите в виде «заглушек», содержащих только NOP и Ret. Для удобства отладки и исследования охватите модули ввода маски и вывода кодов циклом. Выберите тип МК (AT90S4434).

  2. Сохраните проект как LR6_2. Выполните симуляцию, установив в цикле точку наблюдения (брейкпойнт).

  3. При дальнейшей разработке алгоритма пользуйтесь «Указаниями…», приведенными в следующем разделе. Постепенно разрабатывайте алгоритмы модулей и проверяйте их симуляцией. Сохраняйте стадии разработки под новыми именами (для отчета).

  4. Выберите и продумайте режим отсчета заданного временного интервала, реализуйте его в виде подпрограммы с соответствующими настройками таймера.

  5. Выполните симуляцию проекта в целом. Разместив контрольные точки во всех модулях, убедитесь в правильной отработке задания. Сохраните алгоритм.

  6. Составьте отчет по перечисленным выше пунктам, включая скриншоты алгоритмов и экранов эмуляции. Выделите в пунктах отчета полученные навыки составления алгоритмов и навыки пользования программой, запишите отчет в файл под именем LR6 в той же папке, что и алгоритмы.

  7. Покажите результаты преподавателю, ответьте на его вопросы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]