Главная страница
Навигация по странице:

  • Практическая часть. Пример программы к практической работе.

  • Адрес Индикатор

  • Адрес Символ Код

  • Варианты заданий к практической работе. 127Практическая работа №24. Работа на учебной микро-ЭВМ. Цель работы

  • Практическая работа №25. Работа на учебной микро-ЭВМ (проектирование и формализация требований). Цель работы

  • Варианты заданий к практической работе. 130Контрольные вопросы.

  • Практическая работа №26. Тестирование и отладка микропроцессорных систем. Цель работы

  • Постановка задачи и варианты ее решения

  • Методические указания для практических занятий по дисциплине мдк. 02. 01


    Скачать 7.37 Mb.
    НазваниеМетодические указания для практических занятий по дисциплине мдк. 02. 01
    Дата09.09.2022
    Размер7.37 Mb.
    Формат файлаpdf
    Имя файлаMetod_Mikroprocessornye-sistemy_PZ_09.02.01_2020.pdf
    ТипМетодические указания
    #669073
    страница17 из 43
    1   ...   13   14   15   16   17   18   19   20   ...   43
    Варианты заданий к практической работе.

    124
    Практическая работа №23. Работа на учебной микро-ЭВМ (системное
    проектирование).
    Цель работы: написать на языке ассемблера микропроцессора КР580ВМ80А программу, осуществляющую вывод на 1 и 2 индикаторы (крайние левые) УОУ "Электроника-580" заданной бесконечной последовательности шестнадцатеричных цифр. Вывод значений должен выполняться с заданной периодичностью. Оттранслировать программу в машинные коды и выполнить ее отладку.
    Практическая часть.
    Пример программы к практической работе.
    Цель работы состоит в создании программы по управлению аппаратными средствами, в данном случае - собственными аппаратными средствами отладочного устройства. Программа должна с определенной периодичностью менять на индикаторах УОУ заданную последовательность символов (шестнадцатеричных цифр), подчиняющуюся той или иной закономерности.
    Принцип формирования изображения какого-либо символа на семисегментном индикаторе состоит в том, что каждому сегменту индикатора соответствует определенный разряд посылаемого на этот индикатор двоичного кода. Если сегмент нужно зажечь, то в этот разряд записывается "1", в противном случае - "0" Соответствие между сегментами индикатора и разрядами двоичного кода, а также пример получения кода цифры "3" проиллюстрированы на следующем рисунке:
    Для того, чтобы информация появилась на нужном индикаторе, необходимо ее записать в буфер индикации. Буфер индикации представляет собой область ОЗУ учебно-отладочного устройства, из которой записанные там коды передаются на соответствующие индикаторы.
    Адреса ячеек буфера индикации и их соответствие конкретным индикаторам на передней панели
    УОУ приведены в таблице 11.
    Таблица 11. Буфер индикации
    Адрес
    Индикатор
    83F8H
    1-й индикатор (левый)
    83F9H
    2-й индикатор
    83FAH
    3-й индикатор
    83FBH
    4-й индикатор
    83FCH
    5-й индикатор
    83FDH
    6-й индикатор
    83FEH
    7-й индикатор
    83FFH
    8-й индикатор (правый)

    125
    Необходимые для работы индикаторов семисегментные коды шестнадцатеричных символов в принципе могут быть получены путем аппаратной дешифрации соответствующих четырехбитных значений от 0H до FH. В УОУ используется программный способ получения кодов, при котором в ПЗУ по адресам 02B3H - 02C2H помещена таблица семисегментных кодов всех символов (табл. 12), и адрес ячейки с нужным кодом может быть вычислен путем сложения соответствующего значения с базовым адресом таблицы. Например, адрес, по которому хранится семисегментный код цифры "3", равен 02B3H + 3H = 02B6H.
    Таблица 12. Семисегментные коды символов
    Требуемая временная задержка может быть обеспечена за счет выполнения необходимого числа раз некоторого программного цикла. В простейшем случае в цикл включаются лишь команды отсчета числа этих циклов. Для определения времени выполнения цикла подсчитывается количество машинных тактов, за которое выполняются команды цикла. Время выполнения одного машинного такта на УОУ "Электроника - 580" в режиме "прогон" составляет
    0,5 мкс (тактовая частота 2 МГц). Зная время выполнения одного цикла и величину необходимой задержки, легко определить необходимое количество циклов повторения. Число машинных тактов, которое включает в себя каждая команда микропроцессора КР580ВМ80А приведено в описании его системы команд.
    Рассмотрим пример подпрограммы временной задержки TIMER, перед обращением к которой (по команде CALL TIMER) необходимо загрузить число циклов задержки в регистровую пару ВС.
    TIMER: DCX B ; число машинных тактов равно 5
    MOV A,B ; 5
    ORA C; 4
    JNZTIMER; 10
    RET
    В каждом из циклов содержимое регистровой пары BC уменьшается на единицу. Выход из программы осуществляется тогда, когда значение в регистровой паре станет равным нулю. Так как при выполнении команды DCX B признаки не устанавливаются, то для проверки обнуления регистровой пары используется операция ИЛИ между содержимым обоих регистров. Результат этой операции равен нулю только в том случае, когда содержимое каждого из регистров B и C
    Адрес
    Символ
    Код
    02B3 0
    3F
    02B4 1
    06 02B5 2
    5B
    02B6 3
    4F
    02B7 4
    66 02B8 5
    6D
    02B9 6
    7D
    02BA
    7 07 02BB
    8 7F
    02BC
    9 6F
    02BD
    A
    77 02BE
    B
    5D
    02BF
    C
    39 02С0
    D
    5E
    02С1
    E
    79 02С2
    F
    71

    126
    равно нулю. Четыре команды цикла выполняются за 24 такта или за 12 мкс. Таким образом, при коде временной задержки FFFFH, что соответствует 65535 циклам, будет получена задержка 12 *
    65535 мкс = 786,42 мс (около 0,79 с). Для получения задержки, например, 0,35 с необходимо разделить это значение на длительность одного цикла: 0,35 с / 12 мкс = 29167 = 71EFH.
    Рассмотрим далее в качестве примера программу, реализующую вывод на индикацию (на индикаторы 1 и 2) последовательности символов: 0_, _F, 1_, _E, 2_, _D, ... , E_, _1, F_, _0, 0_, _F,
    1_, _E, ...
    Логика данной последовательности состоит в том, что оба индикатора работают поочередно, на первом цифры сменяются в порядке возрастания от 0 до F, а на втором - в порядке убывания от F до 0. Для реализации последовательности в общем случае необходимо организовать цикл с соответствующим изменением переменных цикла и вычислением необходимых адресов таблицы семисегментных кодов для вывода их содержимого на индикаторы. Однако для упрощения программы можно непосредственно оперировать адресами таблицы семисегментных кодов, изменяя один от 02B3H до 03C2H, а другой от 03C2H до 02B3H.
    В качестве первого указателя таблицы семисегментных кодов будем использовать регистровую пару HL, а в качестве второго - регистровую пару DE.
    Текст программы на языке ассемблера, реализующей заданную последовательность изменения символов с периодом 0,35 с (с использованием вышеописанной подпрограммы
    TIMER), приведен ниже.
    В приведенной программе для получения нулевого кода в аккумуляторе с целью гашения индикатора в первый раз используется команда XRA A (операция ИСКЛЮЧАЮЩЕЕ ИЛИ, когда оба операнда берутся из аккумулятора). Во второй раз используется тот факт, что при выходе из подпрограммы TIMER аккумулятор обязательно обнулен. В конце программы проверяется содержимое регистра E на равенство B2H, что является признаком выхода второго указателя
    (регистровой пары DE) за пределы таблицы семисегментных кодов (содержимое регистра D всегда равно 02H).
    Основную программу длиной 44 байта и подпрограмму TIMER длиной 7 байт можно разместить в памяти в произвольном порядке - одну вслед за другой, общая длина кода программы получится равной 51 байт. Например, при расположении программы с адреса 8200H последний байт ее попадет по адресу 8232H.
    Варианты заданий к практической работе.

    127
    Практическая работа №24. Работа на учебной микро-ЭВМ.
    Цель работы: преобразовать программы, созданные в процессе выполнения практических работ №22 и №23 в единую программу, совмещающую функции ранее разработанных программ, а именно:
    - реализующую вычисления по заданному арифметическому выражению, причем исходные данные Х и Y, а также результат вычислений Z должны выводиться в шестнадцатеричной форме соответственно на 3-4, 5-6 и 7-8 индикаторы УОУ "Электрони ка-580";
    - осуществляющую вывод на 1-2 индикаторы УОУ "Электроника-580" заданной последовательности шестнадцатеричных цифр (с заданной периодичностью).

    128
    Практическая часть.
    Пример программы к практической работе.
    Структура программы, совмещающей функции двух ранее разработанных программ с выводом значений X, Y и Z на индикацию, представлена на следующем рисунке:
    Для реализации однотипных действий по выводу байта данных на индикацию здесь предусмотрено использование подпрограммы DIGIT, текст которой на языке ассемблера приведен ниже. Подпрограмма имеет два входа – DIGIT1 для вывода в виде шестнадцатеричного символа старшей тетрады байта, помещенного в аккумулятор, и DIGIT2 – для вывода младшей тетрады байта.
    Соответствующий значению тетрады адрес таблицы семисегментных кодов формируется в регистровой паре HL. Адрес нужной ячейки буфера индикации перед обращением к подпрограмме должен быть помещен в регистровую пару BC. Длина подпрограммы – 14 байт.
    Например, для вывода с помощью подпрограммы DIGIT на индикаторы 3 и 4 значения X, считываемого из ячейки памяти 8300H, может быть использован следующий фрагмент программы.
    Аналогичным образом могут быть выведены на индикацию значения Y и Z. Общая длина программы к лабораторной работе № 3 получится при этом около 130 - 140 байт (28 байт – пример программы 1, 51 байт – пример программы 2, 14 байт – подпрограмма DIGIT плюс дополнительные команды по выводу X, Y и Z на индикацию).

    129
    Практическая работа №25. Работа на учебной микро-ЭВМ (проектирование и
    формализация требований).
    Цель работы: составить и отладить программу, выполняющую действия в соответствии с заданным вариантом.
    Практическая часть.
    Ниже в качестве примера приведена подпрограмма умножения двух однобайтных целых чисел без знака MUL88. Она реализует алгоритм умножения “младшими разрядами вперед со сдвигом частичной суммы”. Множимое помещается в регистр D, множитель в регистр С, произведение – двухбайтное число - образуется в регистрах В и С. При выполнении умножения последовательно анализируются биты множителя, начиная с младшего, помещаемые по команде
    RAR (циклический сдвиг вправо через перенос) в разряд переноса CY. Если очередной бит множителя ненулевой, то множимое добавляется к старшему байту частичной суммы, находящемуся в регистре B. Далее выполняется сдвиг этого байта вправо (вторая команда RAR), при этом его младший бит вытесняется в разряд переноса CY. При сдвиге в следующем цикле содержимого регистра C значение CY заносится в его старший бит, а в CY помещается очередной бит множителя. Таким образом в регистре C множитель постепенно вытесняется младшим байтом частичной суммы, которая после выполнения восьми циклов дает результат умножения.
    Длина описанной программы - 19 байт.
    Варианты заданий к практической работе.

    130
    Контрольные вопросы.
    1. Почему в системах управления в настоящее время применяются преимущественно цифровые методы обработки сигналов?
    2. Какова должна быть минимальная длина командного слова микропроцессора для реализации 2500 различных команд?
    3. Сколько машинных слов необходимо для представления в 8-битном микропроцессоре чисел в диапазоне от 1 до 1000000 (в формате с фиксированной запятой).
    4. Сколько двоичных разрядов (без учета знака) содержит:
    5. а) сумма двух целых n-битных чисел;
    6. б) разность двух целых n-битных чисел;
    7. в) произведение двух целых n-битных чисел?
    8. Перечислить основные виды периферийных устройств микро-ЭВМ.
    9. Сколько страниц прямо адресуемой памяти имеет микропроцессор с 20-битной шиной адреса при длине страницы памяти 4096 машинных слова?
    10. По каким основным параметрам и качествам классифицируются ми-
    11. кропроцессоры?
    12. Какова должна быть разрядность регистра страницы памяти при использовании 16-битного микропроцессора с 16-разрядной шиной адреса и требуемом объеме памяти 1Мбайт?
    13. Что входит в понятие архитектуры микропроцессора и микро-ЭВМ?
    14. Как функционирует и для чего используется стековая память?

    131 15. Опишите порядок выполнения команды микропроцессором.
    16. Каковы основные различия между управляющими и персональными микро-ЭВМ?
    17. Какова требуемая длина двоично-десятичного кода для представления чисел в диапазоне от 1 до 3000?
    18. Какие основные операции выполняют арифметико-логические устройства микропроцессоров?
    19. Определить значения признаков CY (перенос), AC (полуперенос), S (знак), Z (нуль) и P
    (четность) в микропроцессоре КР580ВМ80А после выполнения команды ADD B, если до ее выполнения A = 9BH, B = 36H.
    20. Перечислить основные виды внутренних регистров микропроцессоров.
    21. В какие ячейки памяти будет произведена запись информации и чему будет равно их содержимое, а также содержимое указателя стека SP после выполнения в микропроцессоре
    КР580ВМ80А команды PUSH B, если до ее выполнения B = 8AH, C = 15H, SP = 2304H?
    22. Перечислите основные параметры БИС ЗУ, которые влияют на их выбор при организации блока памяти.
    23. Какие машинные циклы реализуются в микропроцессоре КР580ВМ80А при выполнении команды SHLD ADR и какова длительность этой команды?
    Практическая работа №26. Тестирование и отладка микропроцессорных систем.
    Цель работы: изучение аппаратных и программных средств микроконтроллера, ориентированных на обработку битовой информации; получение навыков работы с пакетом программных средств PK51–Eval, предназначенных для разработки и отладки программ микроконтроллера; ознакомление с принципами реализации микропроцессорной системы на основе универсального лабораторного стенда (УЛС); получение навыков работы с управляющей программой MCS51 для отладки микропроцессорной системы в составе УЛС.
    Теоретическая часть.
    Важной отличительной чертой архитектуры микроконтроллеров семейства MCS-51 является мощная поддержка обработки одноразрядных данных. Тогда как поддержка простых типов данных при существующей тенденции к увеличению длины слова может, с первого взгляда, показаться шагом назад, это качество делает MCS-51 особенно удобными там, где наиболее оправданно применение однокристальных микроконтроллеров, т.е. в системах управления.
    Алгоритмы работы последних по своей сути предполагают наличие входных булевых переменных, преобразуемых в выходные битовые сигналы. Такую обработку сложно проводить с помощью БИС универсальных микропроцессоров или однокристальных микроконтроллеров, не имеющих соответствующих программно-аппаратных средств. В микроконтроллерах семейства
    MCS-51 такая поддержка обеспечивается как на аппаратном, так и на программном уровнях.
    Аппаратная поддержка включает в себя:
    - АЛУ, допускающее обработку битовой информации;
    - специальный битовый аккумулятор, входящий в состав АЛУ;
    - память данных с побитовой адресацией;
    - возможность адресации отдельных бит некоторых специальных регистров;
    - индивидуальную поразрядную настройку линий портов ввода-вывода на ввод или вывод информации.
    Система команд микроконтроллера позволяет активно манипулировать одноразрядными данными. Отдельные программно-доступные биты могут быть установлены, сброшены или проинвертированы, могут пересылаться и использоваться в логических вычислениях. Важной особенностью системы команд MCS-51, чрезвычайно эффективной в алгоритмах управления, является возможность в одной команде проанализировать состояние какой-либо битовой переменной (например, отдельной линии порта ввода-вывода) и выполнить переход в зависимости от результата этого анализа.

    132
    Все эти свойства в целом позволяют говорить об отдельном булевом процессоре, встроенном в состав микроконтроллеров семейства MCS-51.
    Для выполнения практической работы необходимо ознакомиться с архитектурой микроконтроллера (однокристальной микроЭВМ) МК-51 (MCS-51) и изучить его систему команд.
    Практикум выполняется на современной версии микроконтроллера (МК PCF80C552 семейства MCS-51), которая входит в состав микропроцессорной системы, реализованной на
    УЛС.
    Постановка задачи и варианты ее решения
    В практической работе задание предполагает разработку микропроцессорной системы на базе МК семейства MCS-51, ориентированного на обработку битовой информации.
    МК получает от внешнего устройства считывания и согласования уровней показания трёх битовых датчиков, обрабатывает их в соответствии с заданной логической функцией и формирует управляющее воздействие, являющееся значением вычисленной логической функции. Значения входных переменных и соответствующее им значение функции записываются также во внутреннюю память данных МК.
    В данной микропроцессорной системе работа МК и внешнего устройства никак не синхронизирована, каждое их них работает по своей программе. Для получения верного результата они (в этом частном случае) работают в режиме handshaking – синхронизируют свою работу при помощи двух осведомительных сигналов – «Разрешение» и «Подтверждение». МК может считывать значения входных логических переменных только поле того, как внешнее устройство установит их истинные значения. При этом внешнее устройство задает активный уровень сигнала «Разрешение». Когда МК дождётся установки этого уровня, он считывает значения логических переменных и оповещает об этом внешнее устройство установкой активного уровня сигнала «Подтверждение». Внешнее устройство после этого изменяет значение сигнала
    «Разрешение» – устанавливает пассивный уровень – и может готовиться к приёму результата. МК может выдать на выходе своего порта результат, но внешнее устройство может не заметить факт выдачи результата – новое значение может быть равно предыдущему. Единственная возможность у МК сообщить об этом – изменить уровень сигнала «Подтверждение».
    В общем случае у МК для выполнения задачи обмена с внешними устройствами можно использовать любые порты. Выберем для примера порт Р1, который имеется у всех микроконтроллеров семейства MCS-51.
    Каждый из сигналов от датчиков поступает на МК по определенной входной линии: X – по
    P1.0, Y – по P1.1, Z – по P1.2. Сигнал разрешения чтения показаний датчиков поступает по линии
    P1.3, а сигнал подтверждения приема МК информации выдается по линии P1.6. Результат выводится по линии P1.7.
    После завершения цикла работы управление передается на обработку очередных показаний, считываемых с датчиков.
    Структурная схема микропроцессорного устройства приведена на рис. 26.1.
    Микроконтроллер представлен на рисунке лишь своим портом Р1, распределение линий которого существенно для данной работы.
    Рис. 26.1. Структурная схема микропроцессорной системы обработки битовой информации

    133
    Индивидуальные варианты заданий на выполнение практической работы различаются видом логической функции, вычисляемой МК по показаниям от датчиков, а также уровнями сигналов, которыми обмениваются микроконтроллер и внешнее устройство.
    Для подготовки к выполнению собственно практической работы необходимо:
    - изучить пример подготовки работы;
    - составить в среде разработки μVision программу на языке Ассемблер МК с учетом реализации микропроцессорного устройства на универсальном лабораторном стенде;
    - составить таблицу истинности логической функции, реализуемой МК.
    1   ...   13   14   15   16   17   18   19   20   ...   43


    написать администратору сайта