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

  • Пример подготовки к выполнению практической работы

  • Рекомендации по разработке и отладке программы на программно-логической модели

  • Вывод порта Альтернативная функция

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

  • Практическая часть. Порядок выполнения практической работы

  • Практическая часть Порядок отладки микропроцессорной системы на стенде

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


    Скачать 7.37 Mb.
    НазваниеМетодические указания для практических занятий по дисциплине мдк. 02. 01
    Дата09.09.2022
    Размер7.37 Mb.
    Формат файлаpdf
    Имя файлаMetod_Mikroprocessornye-sistemy_PZ_09.02.01_2020.pdf
    ТипМетодические указания
    #669073
    страница18 из 43
    1   ...   14   15   16   17   18   19   20   21   ...   43
    Практическая часть.
    Порядок выполнения практической работы:
    - отладить программу на всех наборах логических переменных с использованием программного симулятора/отладчика dScope;
    - продемонстрировать работу отлаженной программы преподавателю;
    - создать в системе Xilinx проект, обеспечивающий подключение источников и приемников битовых сигналов к контактам порта МК.
    Пример подготовки к выполнению практической работы
    Рассмотрим вариант задания, в котором МК вычисляет простую логическую функцию F=
    Z&Y&X. Разрешающий сигнал достоверности входных данных имеет высокий уровень.
    Микроконтроллер должен вырабатывать сигнал подтверждения приёма информации также высокого уровня. В программе должна быть реализована запись вычисленного значения функции вместе с переменными во внутреннюю память данных, начиная с ячейки, адрес которой находится в регистре R0.
    Разработаем требуемую программу. Её текст с необходимыми комментариями приведен ниже. При написании программы учитывается, что пользовательская программа, загруженная в эмулятор ПЗУ МК, будет отображаться в памяти программ, начиная с адреса 8000h.
    Программа
    ORG 8000h
    Эта макрокоманда Ассемблера указывает, что команда, расположенная после неё в тексте, будет записана в памяти программ, начиная с адреса 8000h.
    BEGIN: MOV P1,#00111111b
    Этой командой задаётся начальное значение порта Р1: в разряды Р1.0-Р1.3 записываются
    «1» потому, что эти разряды порта предназначены для приёма входных сигналов и в соответствующих разрядах выходного «регистра-защелки» этого порта должны быть «1» – настройка на ввод. Линии Р1.4 и Р1.5 микроконтроллера не используются и они остаются в состоянии «1» («1» – это исходное состояние «регистров-защёлок» портов МК при подаче сигнала сброса). Р1.6 = 0 – для данного варианта задания это пассивное значение сигнала
    «Подтверждение». Р1.7 = 0 – исходное значение выходного сигнала результата (оно в начальный момент произвольное и может быть и равно «1»). m
    metka:
    JNB P1.3, $ ; ожидание сигнала разрешения
    MOV C,P1.2 ; С=Z
    ANL C,P1.1 ; C=Z&Y
    ANL C,P1.0 ; C=Z&Y&X
    SETB P1.6 ; выдача сигнала подтверждения конца ввода переменных
    JB P1.3,$ ; ожидание снятия сигнала разрешения
    MOV P1.7,C ; выдача результата
    ANL A, #0Fh; в аккумуляторе выделяются значения входных переменных
    RLC A ; циклический сдвиг аккумулятора влево через С, при этом значение С записывается в младший разряд А

    134
    MOV @R0, A ; запись цифры в массив по адресу, находящемуся в регистре R0
    INC R0
    CLR P1.6 ; сброс сигнала подтверждения
    AJMP metka ; переход к вычислению нового значения функции
    END
    Примечание. В дальнейшем с учетом реализации микропроцессорного устройства на УЛС, программа будет модифицироваться.
    Для подготовки к отладке программы составим таблицу истинности заданной функции
    (табл.26.1). Порядок переменных в столбцах таблицы может быть любым, но желательно, чтобы расположение повторяло расположение переменных на входах МК (ZYX).
    Таблица 26.1
    Таблица истинности
    P1.2=Z
    P1.1=Y
    P1.0=X
    P1.7=F (X,Y,Z)
    0 0
    0 1
    0 0
    1 0
    0 1
    0 1
    0 1
    1 0
    1 0
    0 1
    1 0
    1 1
    1 1
    0 1
    1 1
    1 0
    Рекомендации по разработке и отладке программы на программно-логической модели
    Программа реализации задания может быть оформлена в текстовом виде или непосредственно создана (написана) в среде KeilPK51 –Eval. В состав этого пакета входят интегрированная среда разработки μVision и программный симулятор-отладчик dScope. Среда разработки программы для микроконтроллера μVision вызывается кликом на пиктограмме (рис.
    26.2) на рабочем столе.
    Рис. 26.2. Пиктограмма среды разработки μVision
    Далее обратим внимание только на отдельные этапы, касающиеся данной практической работы.
    На начальном этапе создаётся новый проект, для чего необходимо в меню-вкладке Project выбрать New Project (рис.26.3).

    135
    Рис. 26.3. Вкладка Project, создание нового проекта
    После этого откроется меню создания нового проекта (рис. 26.4).
    Рис. 26.4. Меню создания проекта Create New Project
    В поле «Имя файла» вместо знака «*» нужно указать название проекта, не превышающее восьми символов, например LAB1 (но рекомендуется указать не более семи первых букв фамилии и цифру 1 на конце).
    Проект должен располагаться в папке С:\С51EVAL\BIN.
    Диск С – не сетевой, поэтому при выполнении работы в лаборатории при смене компьютера составленный проект придётся заново восстанавливать.
    После заполнения всех полей и нажатия кнопки «ОК», откроется меню настройки проекта.
    На начальном этапе нет необходимости менять значения установок данного меню. Для закрытия следует нажать «Cancel». Далее во вкладке «File» нужно открыть новый файл «New», в результате появится окно, в котором записывается текст программы (рис. 26.5).
    Рис. 26.5. Пример формирования программного кода

    136
    Созданному файлу необходимо присвоить имя, при этом имена ранее созданного проекта и файла должны совпадать. После выбора вкладки «File» и далее «Save As» в окне «Сохранить как» для указания типа файла нужно выбрать «Assembly Source (*.a51)». Далее с оставшимися полями проводим действия, как и при создании проекта.
    Файл должен быть расположен в той же папке, где расположен проект, а именно в папке
    С:\С51EVAL\BIN.
    Для завершения формирования проекта необходимо в меню настройки проекта добавить созданный файл. Для этого во вкладке «Project» выбираем «Edit Project» (рис. 26.6).
    Рис. 26.6. Вкладка «Project», настройка проекта
    Далее в меню настройки проекта нажимаем «Add» и находим созданный файл. Выбранный файл отображается в поле «Source Files». Для сохранения настроек нажимаем «Save».
    На следующем этапе целесообразно проверить синтаксис написанной программы, для этого во вкладке «Project» выбираем «Compile File».
    В случае успешной компиляции система выдаёт сообщение об этом. В случае ошибки система выдаёт сообщение о неудачной компиляции и подсвечивает место ошибки в программном коде. Также система даёт краткую расшифровку ошибки (рис. 26.7).
    На рисунке показан вариант, когда в программе вместо Р1.2 ошибочно использовано обозначение Р4.2 Использование символических имен портов удобно при написании программ, но в имеющемся в настоящее время программном обеспечении поддерживаются только символические имена портов, имеющихся в базовой конфигурации МК (порты Р0-Р3).
    Проверку синтаксиса рекомендуется проводить не только в конце, но и после ввода отдельных фрагментов текста программы.
    До исправления ошибки дальнейшие действия не выполняются.
    Рис. 26.7. Сообщение об ошибке компиляции программы
    В случае успешной компиляции во вкладке «Project» нужно выбрать «Build Project», в результате чего должно быть получено сообщение системы об успешном создании файла *.hex (в данном случае LAB1.hex).

    137
    Далее отладка программы происходит в симуляторе dScope, предназначенном для отладки пользовательских программ на моделях различных микроконтроллеров. Окно симулятора вызывается нажатием на пиктограмму «Debug» (крайняя справа).
    Пользовательский интерфейс симулятора изображен на рис. 26.8.
    Окно отладки (debug window) отображает код загруженной программы с указанием адреса ячейки памяти, где расположено первое слово команды. В правой части формы находится панель, нажатие на кнопки которой приводит к вызову соответствующей функции отладки. Отметим только функции, необходимые для отладки программы в лабораторной работе:
    Go – выполнение программы, начиная с текущего адреса счётчика команд;
    GoTilCurs – выполнение программы, начиная с текущего адреса счётчика команд.
    Выполнение заканчивается при достижении команды, содержащейся в строке, на которую указывает курсор;
    StepInto – выполнение следующей команды (если встречается команда вызова функции, то происходит вход в тело функции);
    Stop – прекращение выполнения программы.
    Рис. 26.8. Пользовательский интерфейс симулятора dScope
    Окно памяти (Memory) может отображать как память программ, так и память данных МК.
    Переключение режимов осуществляется путём выполнения специальных команд. Для ввода команд предусмотрено специальное окно (Command).
    Окно регистров (Regs) отображает содержимое аккумулятора (А), вспомогательного регистра (В), восьми регистров общего назначения R7-R0. Последние относятся к тому банку регистров, номер которого задан в разрядах 4 и 3 слова состояния процессора (PSW). На экране в регистре слова состояния в этих разрядах цифра справа от буквыRкак раз и означает номер используемого в данный момент банка регистров. При выполнении битовых операций важно контролировать состояние битового аккумулятора С, который является ничем иным как разрядом переноса в слове состояния (PSW.7). При нулевом состоянии этого разряда отображается символ
    «-», при единичном – символ «С».
    В окне отображаются также состояния некоторых регистров специальных функций, выводятся значение счётчика команд, число выполненных циклов и общее время выполнения программы.

    138
    Для обращения к периферийным устройствам МК в процессе отладки необходимо настроить dScope на работу с микроконтроллерами данного вида. Для этого в основном окне симулятора необходимо выбрать драйвер 80552.dll для установления соответствия микроконтроллеру, используемому в УЛС, после чего на верхней панели основного окна появляется дополнительное меню Peripherals.
    Для отладки программы необходимо в меню «File» выбрать «Loadobjectfile». В поле «Типы файлов» необходимо выбрать «Hex file (*.hex)», указав диск и папку, содержащую файл
    (С:\С51EVAL\BIN), в поле «Имя файла» необходимо выбрать файл из списка (в нашем примере –
    LAB1.HEX).
    Обратим внимание на то, что код программы будет в отладчике располагаться с адреса
    8000h, а в окне данные начинаются с адреса 0000h. Для того чтобы перейти на первую команду программы, достаточно один раз кликнуть левой кнопкой мыши на бегунок в правой части окна.
    Потом необходимо нажать кнопку GoTilCurs. Таким образом, сразу выполняются все команды, расположенные в памяти программ с адреса 0000h по 7FFFh. По умолчанию в начальный момент вся эта область заполнена командами NOP. Далее можно работать по шагам с помощью команды
    StepInto.
    Пояснения. При отладке программы на программно-логической модели в окне отладки символические имена портов Р3-Р0 сохраняются, а номера разрядов портов отображаются иначе.
    В состав МК PCF80C552 входят шесть 8-разрядных портов ввода-вывода (Р5-Р0). Каждый разряд всех портов, кроме Р5, для возможности организации двунаправленного обмена в своем составе имеет защёлку, входной буфер и выходной драйвер. Табл.26.2.иллюстрирует назначение разрядов порта P1 (используемого в рассматриваемой программе) микроконтроллера с учетом их альтернативных функций.
    Таблица 26.2
    Назначение разрядов порта р1
    Вывод порта
    Альтернативная функция
    Р1.0
    Р1.1
    Р1.2
    Р1.3
    Р1.4
    Р1.5
    Р1.6
    Р1.7
    CT0I С-вход регистра-защелки 0
    CT1I С-вход регистра-защелки 1
    CT2I С-вход регистра защелки 2
    CT3I С-вход регистра-защелки 3
    T2 Вход таймера Т2
    RT2 Сброс таймера Т2
    SCL Линия синхронизации I2C
    SDA Линия данных I2C
    Именно в соответствии с приведённой таблицей в коде программы, загруженной в симулятор dScope, обозначения P1.i заменены на соответствующие CTiI и обозначения (0х90.i). К обозначению порта Р1 добавляется адрес этого порта – (0х90) (рис. 26.9).

    139
    Рис. 26.9. Окно отладки программы, запись в аккумулятор
    Выполняя программу по шагам, не только можно, но и нужно отслеживать изменение регистров и памяти. Так, результатом выполнения команды MOV A, P1, расположенной по адресу 8006H, является запись кода 00111111b(или 3Fh), находящегося в регистре P1, в регистр аккумулятора (см. рис. 1.9). Выполненные команды отмечаются знаком «+» в левой части строки.
    Красным цветом выделяется следующая по порядку выполнения команда.
    Ход выполнения программы в МК зависит от значений сигналов от внешнего устройства.
    Для имитации изменения состояний сигналов от периферийного устройства на внешних контактах порта МК нужно во вкладке меню «Peripherals» выбрать «I/O-Ports», затем «Port1».
    В исходном состоянии (до начала выполнения программы) в регистре порта P1 находятся одни «1», что соответствует настройке «по умолчанию» всех разрядов порта на ввод (рис. 26.10).
    После выполнения первой команды, расположенной по адресу 8000H, в окне Р1 отображается записанное в него значение 00111111, а после команды выдачи сигнала подтверждения ввода по адресу 800ЕH отображается код 01111111 (рис. 26.11).
    Рис. 26.10. Исходное состояние порта Р1
    Рис. 26.11. Загрузка кода в порт Р1
    На рис. 26.12 показано окно кода программы в ситуации, когда после исполнения команды, расположенной по адресу 8010Н, микроконтроллер ждёт снятия сигнала разрешения, т.е. установки нулевого значения на контакте Р1.3.
    Для изменения содержимого порта можно либо левой кнопкой мыши установить в нижней строке нужное (в данном случае нулевое) значение на соответствующем контакте порта, либо в окошке «Pins:» записать новое значение (рис. 26.13).
    Рис. 26.12. Окно кода программы, ожидание снятия сигнала разрешения
    Рис. 26.13. Установка кода «0» на контакте 3 порта Р1

    140
    Следует помнить о том, что задавать внешние сигналы для имитации работы внешнего устройства, подающего сигналы на порт, в верхней строке нельзя – значения регистра порта изменяются программой.
    Теперь о том, как составить программу для того, чтобы её можно было выполнять на МК в составе УЛС.
    Несколько усложним задание. Значения результатов вычисления функции от трёх переменных должны засылаться во внутреннюю память данных, начиная с адреса, находящегося в регистре R0 (илиR1). Эти регистры имеются во всех четырёх банках данных. Номер банка определяется значением битов 4 и 3 (S1 иS0) в слове состояния PSW. Программа должна выполняться на МК, входящим в состав УЛС. Внешнее устройство имитируется элементами, расположенными в ПЛИС и на стенде. Задать входные сигналы на стенде можно на регистрах 1-3
    (12 сигналов), а для индикации имеется 16 светодиодов на индикаторах A, B, C, D, E и F.
    Подключение этих элементов к некоторой схеме на ПЛИС выполняется с помощью макроэлементов, входящих в библиотеку Maket. Но в составе стенда имеется уже законченная микропроцессорная система с подключенными к микроконтроллеру различными устройствами.
    Из портов для связи с ПЛИС и через неё с регистрами и индикаторами стенда может использоваться только порт Р4.
    Для порта Р4 можно сохранить выбранное ранее распределение разрядов для порта Р1.
    Данные вычислений должны записываться в память по адресу, находящемуся в регистре R0 (или
    R1) заданного банка регистров. Номер банка, с которым нужно будет работать, будет задаваться на входах Р4.5, Р4.4 (рис. 26.14).
    Рис. 26.14. Распределение разрядов порта Р4 между входными и выходными сигналами
    Чтобы видеть результат выполнения программы – запись в то или иное место памяти в зависимости от того, с каким банком работает программа, нужно в регистры R0 (или R1), относящиеся к разным банкам, записать разные начальные значения. Однако симулятор dScope не позволяет редактировать содержимое внутренней памяти данных. Потому необходимо в начале программы добавить команды начальной загрузки ячеек памяти, которые являются одновременно и регистрами R0 разных банков. РегистрR0 бан- ка 0 – это ячейка памяти с адресом 00h, регистрR0 банка 1 – ячейка с адресом 08h, регистрR0 банка 2 – 10h, регистрR0 банка 3 – 18h.
    В имеющемся в настоящее время программном обеспечении поддерживаются только символические имена портов, имеющихся в базовой конфигурации МК (порты Р0-Р3). Для обращения к порту Р4 необходимо использовать его адрес, а именно 0C0h. При этом адрес отдельного контакта этого порта, например первого, будет иметь вид 0C0h.1. С учётом сказанного программа будет выглядеть следующим образом (рис. 25.15).

    141
    Рис. 26.15. Текст программы
    В приведённом тексте программы нет комментариев, но и без этого нетрудно понять, каким образом номер банка регистров с входных контактов порта Р4 передаётся в слово состояния. Возможен и иной вариант организации пересылки. Для банка 0 начальное содержимое регистра R0 следует задавать не 3d, а, например, 60d. Это вызвано тем, что ячейки памяти данных, начиная с адреса 08h, отводятся по стек.
    Именно в таком виде и должна быть оформлена программа при подготовке к практической работе.
    Программу следует сначала отладить на модели. При отладке необходимо будет отслеживать содержимое памяти. При демонстрации отлаженной программы следует показать преподавателю результаты выполнения каждой команды по показаниям состояний различных регистров, показать запись в последовательные ячейки памяти при выбранном банке регистров.
    Практическая работа №27. Тестирование и отладка микропроцессорных систем при
    разработке.
    Цель работы: ознакомление с принципами реализации микропроцессорной системы на основе универсального лабораторного стенда (УЛС); получение навыков работы с управляющей программой MCS51 для отладки микропроцессорной системы в составе УЛС.
    Практическая часть.
    Порядок выполнения практической работы:
    - загрузить проект в ПЛИС универсального лабораторного стенда;
    - загрузить программу в память микропроцессорной системы (МПС) стенда;
    - отладить работу спроектированного микропроцессорного устройства на УЛС с использованием управляющей программы MCS51;
    - продемонстрировать работу отлаженной программы преподавателю;
    - ответить на вопросы преподавателя.
    Практическая часть
    Порядок отладки микропроцессорной системы на стенде
    Для отладки программы и проверки работы реального МК в составе УЛС следует создать в системе Xilinx проект соединения регистров и индикаторов на стенде с контактами порта Р4 через контакты ПЛИС.

    142
    Выходы порта Р4 соединяются с контактами ПЛИС, причем с теми же контактами, через которые могут выводиться сигналы на индикаторы А и В (табл. 27.1).
    Таблица 27.1
    Соотношение контактов порта р4 и контактов плис
    Контакты порта Р4
    Контакты
    ПЛИС
    Индикаторы стенда
    0
    P14
    A0 1
    P9
    A1 2
    P6
    A2 3
    P3
    A3 4
    P39
    B0 5
    P36
    B1 6
    P27
    B2 7
    P24
    B3
    Для создания проекта кроме элементов из библиотеки Maket на схеме должны быть размещены обозначения выходных контактов ПЛИС – OPAD (для МК – это контакты порта Р4, по которым поступают входные сигналы), входных контактов ПЛИС – IPAD (для МК – это контакты порта Р4, на которые поступают выходные сигналы). Этим контактам присвоены соответствующие имена. Между контактами, источниками и приемниками сигналов на ПЛИС располагаются соответствующие буферные элементы – IBUF и OBUF. Эти элементы всегда используются для вывода из ПЛИС или ввода в ПЛИС однонаправленного сигнала (Pad– контактная площадка, которая подсоединена к контакту корпуса ПЛИС – Pin).
    Если какой-то сигнал (контакт порта Р4) является для ПЛИС выходным (для МК – входным), то подключение выполняется следующим образом.
    Из библиотеки элементов извлекается элемент OPAD необходимой разрядности. Этому контакту присваивается имя, номер контакта и тип (рис.27.1):
    Reference – своё имя (возможно наименование сигнала или номер контакта порта Р4, например Р4_4);
    Name – выбрать LOC;
    Description – P39 (для контакта, связанного с контактом Р4.4).
    Рис. 27.1. Окно редактирования элемента OPAD

    143
    Следует помнить, что состояние источника сигнала при этом одновременно будет отображаться на соответствующем светодиоде индикатора А или В.
    Для случая, когда какой-то сигнал (контакт порта Р4) является для ПЛИС входным (для
    МК – выходным), из библиотеки элементов извлекается элемент IPAD и производятся действия, аналогичные как и для элемента OPAD.
    Схема внешнего устройства – источника и приемника сигналов – показана на рис. 27.2.
    Рис. 27.2. Схема источника и приемника сигналов – проект, загружаемый в ПЛИС
    Сигнал, соответствующий выходной функции, и сигнал подтверждения подключены к индикатору С. Этого можно было бы и не делать, так как состояние сигнала на контакте Р4.7 отображается на светодиоде В3, а состояние сигнала на контакте Р4.6 – на светодиоде В2.
    Проект должен быть сохранён на сетевом диске U компьютера.
    Для отладки программы на УЛС необходимо соблюдать строгую последовательность действий.
    1. Выполнить размещение проекта Xilinx на кристалле (Impleventation).
    2. Загрузить проект в УЛС.
    Тумблер СТ на лицевой панели УЛС должен находиться в положении ВЫКЛ. Монитор- отладчик УЛС должен быть в исходном состоянии, для этого необходимо нажать на кнопку
    RESET на лицевой панели УЛС.
    Генератор импульсов ГОИ1 на стенде должен быть включен в непрерывном режиме. Для созданного проекта на ПЛИС в этом нет необходимости, но от этого генератора работает и МК, для которого необходим именно этот режим.
    3. Загрузить пользовательскую программу в УЛС.
    На рабочем столе Windows дважды щёлкнуть мышью на пиктограмме системы:
    Откроется главное окно управляющей программы – MCS51 (рис. 27.3).

    144
    Рис. 27.3. Главное окно управляющей программы
    По умолчанию при входе в систему открываются функциональные окна: программное окно (Program Window), окно памяти данных (Data Memory Window). Последнее в данной работе не требуется.
    Открытие пользовательской программы доступно во вкладке меню «File», а также на панели быстрого доступа и с помощью «горячей клавиши».
    Открытие программы и её отображение в программном окне осуществляется по файлу листинга – *.lst, однако код программы, загружаемый в МК, формируется из Hex-файла, в связи с чем необходимо проверить наличие Hex-файла в директории файла листинга!
    Код выбранной программы отображается в программном окне (рис. 27.4).
    Рис. 27.4. Программное окно с загруженным кодом пользовательской программы
    Отладка и выполнение программы, загруженной в МК стенда с помощью управляющей программы MCS51, могут выполняться в трёх режимах: «Основной», «Останов в КТ» и
    «Трассировка». Основной режим используется в тех случаях, когда необходимо наблюдать только конечный результат работы программы и в этом случае программа должна непрерывно выполняться (быть зацикленной). Этот режим и необходим при выполнении лабораторной работы.
    После открытия программы пользователю становятся доступны кнопки Load и Load+Go.
    При выполнении функции Load код, представленный в программном окне, загружается в эмулятор постоянного запоминающего устройства (ПЗУ), по результатам загрузки выдаются системные сообщения, становится доступной кнопка Go, при выборе которой происходит запуск на исполнение пользовательской программы, предварительно загруженной в эмулятор ПЗУ.
    При выполнении функции Load+Go выполняется загрузка и автоматический запуск пользовательской программы.
    Касаясь рассматриваемого примера, программный код которого представлен на рис. 27.4, обратим внимание на присутствие в коде ожидания сигнала разрешения и его снятия. В основном режиме выполнение программы будет приостановлено до момента выдачи сигнала разрешения (в нашем примере на регистре УЛС). После получения сигнала разрешения выполнение программы автоматически продолжается.

    145
    При отладке микропроцессорной системы и демонстрации её работы преподавателю необходимо показать, что после задания набора переменных на регистре УЛС и последующего изменения уровней сигнала разрешения – активный/пассивный – на индикаторе отображаются правильные изменения сигнала подтверждения и верное значение логической функции. Так как содержимое внутренней памяти данных МК при работе на стенде недоступно, то работа с различными банками регистров на УЛС не проверяется.
    1   ...   14   15   16   17   18   19   20   21   ...   43


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