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

  • Задание для самостоятельного выполнения 1. Создайте новый проект. Процессор - dsPIC33FJ256GP710. 2. Подключите необходимые библиотеки. ; удваиваем

  • W4, [W7++] ; делаем аналогичное удвоение второго считанного символа sl W3, 8, W4 ior 4 W 3 W 4

  • Практическая работа №51. Установка периферийных устройств. Цель работы

  • Практическая работа №52. Установка периферийных устройств (использование МК). Цель работы

  • Теоретические сведения.

  • Ваpианты заданий на практическую pаботу.

  • Практическая работа №53. Интерфейсы встраиваемых микропроцессорныхсистем (Intel 8080). Цель работы

  • Основные теоретические положения

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


    Скачать 7.37 Mb.
    НазваниеМетодические указания для практических занятий по дисциплине мдк. 02. 01
    Дата09.09.2022
    Размер7.37 Mb.
    Формат файлаpdf
    Имя файлаMetod_Mikroprocessornye-sistemy_PZ_09.02.01_2020.pdf
    ТипМетодические указания
    #669073
    страница31 из 43
    1   ...   27   28   29   30   31   32   33   34   ...   43
    Most Significant Character
    Hex
    0
    1
    2
    3
    4
    5
    6
    7
    0
    NUL
    DLE
    Space 0
    P
    '
    P
    1
    SOH
    DC1
    !
    1
    A
    Q
    a
    q
    2
    STX
    DC2
    II
    2
    В
    R
    b
    г
    3
    ETX
    DC3
    #
    С
    3
    с
    s
    4
    EOT
    DC4
    $
    4
    D
    T
    d
    :
    5
    ENG
    NAK
    %
    5
    E u
    e
    u
    Least
    6
    AC К
    SYN
    &
    6
    F
    V
    f
    V
    Significant 7
    Bell
    ETB
    i
    7
    G
    w g
    w
    Character
    f!
    BS
    CAN t a
    H
    X
    h
    X
    9
    HT
    EM
    >
    &
    I
    Y
    i
    'J
    A
    LF
    SJB
    *
    -
    J
    z
    j
    z
    В
    VT
    ESC
    +
    F
    К
    [ к
    {
    С
    FF
    FS
    i
    <
    L
    \
    i
    I
    D
    CR
    GS
    =
    M
    ]
    m
    }
    E
    SO
    4S
    >
    N
    Л
    n
    -
    F
    SI
    JS
    I
    0
    _
    0
    DEL
    Рисунок 9 - Таблица ASCII символов

    259
    .include "p33FJ 256GP710.i nc"
    .equ ms g_out, 0x800
    ;начальный адрес новой строки
    .text ms g_i n:
    .as cii
    "C ogito ergo sum!" ; исходная ст рок а
    .global
    __res et
    __res et:
    ; определяем номер страницы, в которой лежит ; исходная строка mov
    #tblpage(msg_in), W0
    ; помещаем номер страницы в регистр -указатель ; на текущую строку mov
    W0, PSVP AG
    ; определяем смещение местоположения исходной строки ; от начала страницы и получаем эффективный адрес ; начала исходной строки, помещаем его в W6 mov
    #tbloffs et(m s g_i n),
    W6
    ; помещаем адрес начала новой строки в W7 mov
    #ms g_out , W7
    ; задаем параметры цикла (за один цикл обрабатывается ; по 2 символа) do
    #7, end
    ; считываем 2 байта в регистры W2 и W3 tblrdl.b [W6++], W2 tblrdl.b
    [W6++], W3 ; сдвигаем влево на 8 бит содержимое W2 и помещаем в
    W4 sl
    W2, #8, W4 ее прочитать/записать, необходимо воспользоваться специальными командами: TBLRDL,
    TBLRDH, TBLWTL, TBLWTH - первые из них предназначены для чтения младшего слова и старшего слова, две последние для записи соответственно. Для корректной работы данных инструкций сначала необходимо записать старшую часть адреса в регистр PSVPAG, и младшую часть адреса строки в любой рабочий регистр (как показано в примере). Для чтения/записи слова (16 бит) используют синтаксис , для чтения/записи байта (8 бит) используют синтаксис . Команды в примере: SL, IOR, MOV - выполняют требуемое задание, т.е. удваивают символ и записывают в новую строку.
    Задание для самостоятельного выполнения
    1.
    Создайте новый проект. Процессор - dsPIC33FJ256GP710.
    2.
    Подключите необходимые библиотеки.
    ; удваиваем
    первый считанный символ
    ior
    4
    W
    2
    W
    4
    W
    ; помещаем удвоенный символ в новую строку
    mov
    W4, [W7++]
    ; делаем аналогичное удвоение второго считанного символа
    sl
    W3, #8, W4
    ior
    4
    W
    3
    W
    4
    W
    mov
    W4, [W7++]
    end: nop
    nop
    .end
    Строка msg_in располагается в памяти программ. Для того чтобы

    260 3.
    Подключите отладчик (симулятор), встроенный в среду MPLAB IDE.
    4.
    Запустите программу из примера и проверьте в пошаговом режиме ее выполнение.
    5.
    Осуществите вызов окна File Register в меню View и проверьте содержимое области памяти, начиная с ячейки с адресом 0800.
    6.
    Разработайте схему алгоритма и программу, выполняющую преобразование введённой строки по алгоритму указанному в таблице в соответствии с номером варианта
    7.
    Откройте окно Watch и внесите в него все регистры, которые используются в коде. Для наглядности в окне Watch необходимо с помощью щелчка правой кнопки мышки в шапке таблицы сделать видимым столбец Char.
    8.
    В пошаговом режиме отладьте код, контролируя изменение регистров в окне Watch. После отладки программы, покажите код и результаты работы программы преподавателю.
    9.
    Подготовьте отчет в соответствие с требованиями на стр. 21.
    Контрольные вопросы

    Варианта
    Задание
    1
    Первый символ копируется один раз, второй - дублируется, третий - утраивается, четвёртый - копируется четыре раза, пятый - копируется пять раз, шестой - один раз, седьмой - два раза и т.д.
    2
    Все символы «пробел» удаляются из исходной строки, остальные символы - копируются.
    3
    Первый символ копируется четыре раза, второй - три раза, третий - два раза, четвёртый - один раз, пятый - четыре раза, шестой - три раза, седьмой - два раза и т.д.
    4
    Все символы с нечётными индексами копируются три раза, остальные - копируются один раз.
    5
    Все символы цифр от нуля до девяти утраиваются, остальные - копируются один раз.
    6
    Каждый третий символ строки удваивается, остальные - копируются один раз.
    7
    Все символы цифр от трех до восьми копируются два раза, остальные - копируются один раз.
    8
    Все символы с чётными индексами удаляются из строки, остальные - копируются один раз.
    9
    Все символы цифр от нуля до девяти удаляются из строки, остальные - копируются один раз.
    10
    Все прописные буквы латинского алфавита заменяются строчными буквами.
    Остальные символы копируются.
    11
    Каждый четвёртый символ строки копируется четыре раза, остальные - копируются один раз.
    12
    Все символы заглавных букв латинского алфавита утраиваются.

    261 1.
    Назовите способы адресации, используемые в командах вашей программы.
    2.
    Назовите назначение каждой команды в коде вашей программы.
    3.
    Назовите основные инструкции сравнения.
    4.
    Назовите основные инструкции условного и безусловного переходов.
    5.
    Почему в примере цикл копирования повторяется 8 раз?
    6.
    Для чего служит регистр PSVPAG?
    7.
    Какие инструкции смещения используются в примере?
    Практическая работа №51. Установка периферийных устройств.
    Цель работы: ознакомиться с началами программирования периферийных USB устройств с использованием библиотеки libusb 1.0.
    Теоретическая часть
    USB – промышленный стандарт, определяющий интерфейс между компьютерами и подключаемыми к ним периферийными устройствами. В частности, он определяет механические параметры кабелей и разъемов, электрические параметры и протоколы передачи данных. Стандарт USB ввел единообразие в работе с широким спектром периферийных устройств. До его появления использовалось множество разных интерфейсов для подключения периферийных устройств (последовательный порт RS232C для модема, мыши, параллельный порт для принтера и дисководов IOMEGA ZIP, PS/2 для мыши и клавиатуры, специализированные интерфейсы для подключения сканеров и т. д.).
    Программирование взаимодействия с USB устройствами достаточно трудоемко. Для его упрощения была построена libusb – многоплатформенная библиотека для работы с USB устройствами из прикладной программы. Библиотека позволяет получать список подключенных к компьютеру устройств, определять их параметры, задавать режим их работы и обмениваться данными с устройствами. Существует несколько классов USB устройств, например, устройства пользовательского интерфейса, устройства внешней памяти и коммуникационные устройства. С устройствами всех этих классов можно работать, используя интерфейс библиотеки libusb, но детали протокола взаимодействия у них существенно отличаются. Функции libusb, которые используются в практической работе:

    262
    Работа может выполняться как на сервере, так и на своем ПК под ОС Windows или
    GNU Linux. В последнем случае нужно самостоятельно установить libusb.
    Рассмотрим последовательность действий, выполняемых простейшей программой, осуществляющей пересылку данных между компьютером и устройством пользовательского интерфейса (вариант для ОС Linux).
    1. Инициализации библиотеки (вызов функции libusb_init).
    2. Открытие устройства по заданным идентификатором производителя и модели ( вызов функции libusb_open_device_with_pid_vid). Первый параметр установить в NULL.
    3. Отключение драйвера устройства (libusb_detach_kernel_driver). Второй параметр установить в 0.
    4. Выбор текущей конфигурации (вызов функции libusb_set_configuration). Номер конфигурации — 0.
    5. Открытие интерфейса (вызов функции libusb_claim_interface). Номер интерфейса —
    0.
    6. Одна или несколько пересылок данных (функция libusb_control_transfer). В минимальном варианте нужно использовать следующий код:
    7. Закрытие интерфейса (вызов функции libusb_release_interface).
    8. Закрытие дескриптора устройства (libusd_close).
    9. Деинициализация библиотеки (libusb_exit). Передаваемый параметр установить в
    NULL.
    Практическая часть.
    1. Реализовать программу, получающую список всех подключенных к машине USB устройств на сервере portal.sscc.ru или на собственном компьютере, на языках ANSI C или
    C++ с использованием libusb. Для каждого найденного устройства напечатать его класс, идентификатор производителя и идентификатор изделия.
    2. Изучить состав и характеристики обнаруженных с помощью реализованной программ USB устройств.
    3. Написать программу, производящую пересылку типа HID_GET_IDLE от устройства пользовательского интерфейса к компьютеру.
    Контрольные вопросы.

    263 1. Какие задачи решает libusb?
    2. На какие группы можно разбить функции libusb?
    3. Какая последовательность действий производится программой, получающей состав и конфигурацию USB устройств с помощью libusb?
    Практическая работа №52. Установка периферийных устройств (использование
    МК).
    Цель работы: изучение организации и основных приемов работы с видеопамятью ПК в текстовом режиме.
    Теоретические сведения.
    В видеосистемах ПК для отображения информации на экране монитора используются два режима: текстовый и графический. В текстовом режиме на экран выводятся только символы, а в графическом можно строить любые сложные изображения в виде рисунков, чертежей и т. п. В текстовом режиме используется матричный метод формирования изображения. Суть метода заключается в том, что изображение на экране монитора строится из отдельных фрагментов выводимых символов (букв, цифр, математических знаков, графических элементов и др.).
    Каждый фрагмент представляется в виде матрицы, имеющей вид прямоугольника стандартных размеров и состоящей из определенного числа битов. Например, на рис. 2.1 показана матрица
    8х8 для формирования на экране буквы “H”. Матрицы символов хранятся в знакогенераторе
    (памяти типа ПЗУ) видеоадаптера. Каждый бит (0 или 1) подается в схему управления лучом электронно-лучевой трубки монитора, который формирует на экране точечное изображение.
    Единичное значение бита указывает на то, что соответствующая точка относится к изображаемому символу. Нулевое значение бита определяет точку фона символа на экране. В текстовом режиме экран дисплея делится на отдельные знакоместа, в каждое из которых может быть помещен символ. Экран разбивается на 25 строк по 80 знакомест в каждой строке, чем обеспечивается вывод одновременно до 2000 символов.
    В процессе работы по заданной программе коды символьных изображений, выдаваемых на экран монитора, записываются в специальную область оперативной памяти, которая называется видеопамятью. При работе в текстовом режиме для каждого символа в памяти следует хранить его код и указание, как его изображать (цвет изображаемого символа, цвет фона, яркость изображения). Поэтому каждому символу соответствуют два байта: в первом из них записывается, что следует изобразить (код символа), во втором - как это изобразить (код атрибута символа). Для каждого символа в цветном режиме работы видеоадаптера доступно 16 основных цветов и 8 цветов фона, а также возможность мерцания символа. Формат байта, содержащего атрибут изображаемого символа, представлен на рис. 2.2. Отдельные биты атрибута образуют 4 группы: биты B0-B2 - цвет символа; бит B3 - яркость; биты B4-B6 - цвет фона; бит B7 - мерцание. Установка бита яркости в "1" делает цвет символа более светлым. С

    264
    помощью битов B3-B0 можно получить 16 цветов символа. Если бит мерцания B7 установлен в "1", символ начинает мерцать с частотой приблизительно 4 раза в секунду.
    Организация видеопамяти В текстовом режиме в видеопамяти может храниться до 4 видеостраниц или экранов с номерами от 0 до 3. Переключение видеостраниц (т.е. вывод их содержимого на экран) осуществляется средствами BIOS. Большинство программ, в то числе и
    DOS, работают с 0 видеостраницей. В каждой видеостранице помещается равно один экран в 25 строк по 80 символов в каждой, причем каждый символ отображается двумя байтами - байтом с кодом символа и байтом с атрибутом символа. Порядок размещения этих кодов показан на рис.
    2.3. Обозначим: адрес первой ячейки - SEGM:0000H, где SEGM-двухбайтовое значение сегмента видеопамяти; С0 и А0 -соответственно код символа в строке 0 и атрибут символа в строке 0 и т.д. Для формирования текстового изображения на экране из видеопамяти последовательно считывается информация, начиная с адреса SEGM:0000H. Считывание осуществляется непрерывно и циклически. Этот процесс называется сканированием памяти. По коду символа из знакогенератора выбирается соответствующая матрица для формирования изображения символа на экране. Первый символ (символ с номером С0 в строке 0) появляется в левом верхнем углу экрана с атрибутом А0. Следующие 2 байта видеопамяти изображают следующий символ справа от14 него и т. д. Значение смещения (SM) ячейки видеопамяти для любого символа, размещаемого в произвольной позиции (NS-строка, NK-колонка) на экране определяется по формуле:

    265
    Для видеосистем ПК разработан ряд стандартных видеорежимов. При работе в оболочке
    Far manadger видеосистема по умолчанию устанавливается в текстовый цветной режим № 3 с количеством цветов равным 16 и количеством знакомест 80 х 25. Это режим работы видеоадаптера CGA, для которого видеопамять имеет емкость 16 Кбайт и начинается с адреса
    В800:0000. Обычно в программах, работающих напрямую с видеопамятью, регистр DS либо ES микропроцессора загружается значением сегмента видеопамяти, а остальная часть программы работает со смещениями в видеопамяти.
    Практическая часть.
    В этой практической работе необходимо написать программу, которая бы прямым доступом в видеопамять реализовала бы эффект "бегущей буквы" по экрану, например, движение буквы по верхней строке экрана. Алгоритм этой программы может быть, к примеру, следующий:
    1. Инициализация ES, DI, CX.
    2. Заполнение 0 страницы видеопамяти одинаковыми символами (например, кодом буквы "А" - 128 (80h) и одинаковыми атрибутами, причем такими, что бы цвет символа в них совпадал бы с цветом фона, т.е. символ был невидимым.
    3. У символа на строке 0 и колонке 0 меняем атрибут на любой видимый, делаем задержку, после нее изменяем атрибут у следующего символа в строке и возвращаем старое значение атрибута предыдущему символу, т.е. гасим его. Эти действия продолжаем до 79 колонки 0-й строки.
    4. Выход из программы. Таким образом, просто "зажигая" и "гася" записанные в видеопамять байты символов, мы получаем эффект бегущей по экрану буквы.
    Ваpианты заданий на практическую pаботу.
    Ваpиант 1. Движение символа по периметру экрана, начиная с позиции (0,0) слева напpаво.
    Ваpиант 2. Движение символа по периметру экрана, начиная с позиции (0,0) сверху вниз.
    Ваpиант 3. Движение символа по периметру экрана, начиная с позиции (24,79) справо налево.
    Ваpиант 4. Движение символа по периметру экрана, начиная с позиции (24,0) слева напpаво.16
    Ваpиант 5. Движение символа по периметру прямоугольника с позициями вершин (0,40),
    (24,40), (24,79), (0,79).
    Ваpиант 6. Движение символа по периметру прямоугольника с позициями вершин (10,0),
    (24,0), (24,50), (10,50).
    Ваpиант 7. Движение символа по периметру прямоугольника с позициями вершин (0,30),
    (15,30), (15,79), (0,79).
    Ваpиант 8. Движение символа по периметру прямоугольника с позициями вершин (0,0),
    (0,40), (20,40), (20,0). Во время отладки программы необходимо поэкспериментировать с цветом символа и цветом фона
    Практическая работа №53. Интерфейсы встраиваемых микропроцессорныхсистем
    (Intel 8080).
    Цель
    работы: изучение элементов микропроцессорной техники и основ программирования на языке Ассемблера микропроцессора КР580ВМ80А (Intel 8080 или NTE
    8080A фирмы NEC Micro).
    Основные теоретические положения
    В различных областях техники находят применение электрические сигналы разнообразной, изменяющейся в процессе работы формы. Формирование таких сигналов с помощью аналоговых и цифровых микросхем с жесткой логикой весьма сложно, так как определен- ная форма сигнала требует в этом случае соответствующего схемного решения. От этого недостатка свободны генераторы, построенные на основе микропроцессорных систем, обладающих высокой гибкостью и универсальностью.

    266
    Генератор на основе микропроцессорной системы должен состоять из цифровой и аналоговой части. Цифровая часть системы генерирует цифровые коды, а аналоговая – преобразует коды в сигнал требуемой формы. Получение периодического сигнала в цифровой форме сводится к вычислению его значений в нескольких точках периода Т. На рисунке показан пример формирования периодического сигнала.Период сигнала разбивается на интервалы t.
    Для каждого интервала вычисляется цифровой код, соответствующий мгновенному зна- чению сигнала. Для повышения быстродействия системы, полученные коды целесообразно предварительно записать в память микропроцессорной системы в виде таблицы. При этом работа микропроцессорной системы сводится к поиску соответствующих кодов в таблице и выдачи их на вход преобразователя цифрового сигнала в аналоговый. Такой генератор работает по принципу кусочно-ступенчатой аппроксимации заданного сигнала.
    1   ...   27   28   29   30   31   32   33   34   ...   43


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