Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка пргр МП.docx
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
16 Мб
Скачать
☆

Приложение б. Комплекс лабораторных работ для учебного лабораторного стенда sdk-1.1 б.1 Лабораторная работа № 1 «Дискретные порты ввода-вывода»

Б.1.1 Задание

Разработать и реализовать драйверы светодиодных индикаторов и DIPпереключателей контроллера SDK-1.1. Написать тестовую программу с использованием разработанных драйверов по алгоритму, соответствующему варианту задания.

Б.1.2 Порты ввода-вывода

Каждый процессор для встраиваемых применений имеет некоторое количество внешних линий ввода-вывода, подключенных к внешним выводам микросхемы и называемых внешними портами. Одиночные (одноразрядные, состоящие из одной линии) порты ввода-вывода объединяются в группы обычно по 4, 8 или 16 линий, которые называются параллельными портами. Через порты процессорное ядро взаимодействует с различными внешними устройствами: считывает значения входных сигналов и устанавливает значения выходных сигналов. Во встраиваемых системах в качестве внешних устройств чаще всего рассматриваются датчики, исполнительные устройства, устройства ввода-вывода данных оператором, устройства внешней памяти.

По типу сигнала различают порты: дискретные (цифровые), аналоговые и перестраиваемые.

Дискретные (цифровые) порты используются для ввода-вывода дискретных значений логического «0» или «1». В большинстве современных процессоров для встраиваемых применений поддерживается как независимое управление каждой линией параллельного порта, так и групповое управление всеми разрядами.

Аналоговый порт ввода-вывода предназначен для работы с аналоговым (непрерывным) сигналом. В отличие от дискретного сигнала, принимающего всего два значения, напряжение аналогового сигнала может иметь любое значение (в определенных пределах) и меняться во времени. Пример аналогового сигнала – синусоида. Такую форму, например, имеет электрическое напряжение в сети 220 В 50 Гц.

Перестраиваемые порты ввода-вывода настраиваются на аналоговый или цифровой режим работы.

Б.1.3 Описание работы В контроллере SDK-1.1 изучение дискретных портов ввода-вывода будет проводиться на примере работы с набором светодиодных индикаторов и DIP1переключателей (см. рис. 125). Данные устройства вывода и ввода, соответственно, подключены к расширителю портов ввода-вывода, который в стенде SDK-1.1 выполнен на базе ПЛИС (программируемая логическая интегральная схема). Для программиста расширитель портов представлен в виде нескольких однобайтовых регистров, находящихся в начале восьмой страницы внешней памяти данных.

По умолчанию линии 0-7 дискретного параллельного порта ПЛИС притянуты к логической «1» (через резисторы на +5В). Для их принудительного «обнуления» в схему введен набор DIP-переключателей (на рис. 126 обозначение «SW3-2»), замыкающих соответствующие линии через резисторы 100 Ом на корпус. Для того чтобы принудительно «обнулить» соответствующую линию, необходимо установить соответствующий DIPпереключатель в положение «ON».

Рис. 125. Расположение программируемых в лабораторной работе светодиодных индикаторов и DIPпереключателей контроллера SDK-1.1

Для удобства, двоичный (шестнадцатеричный) код, задаваемый набором

DIP-переключателей, выставляется следующим образом: первый переключатель соответствует младшему (0-му) разряду двоичного кода; восьмой переключатель соответствует старшему (7-му) разряду. При этом единичный разряд в коде – это соответствующий DIP-переключатель в положении «ON», нулевой разряд – это соответствующий DIP-переключатель в положении «OFF».

б)

а )

Рис. 126. Обозначение DIP-переключателей (а) и светодиодных индикаторов (б) на принципиальной электрической схеме контроллера SDK-1.1

П ри установке DIP-переключателя в положение «ON» напряжение не сразу устанавливается на уровне 0В, а «скачет» в течение некоторого времени (1-10 мс), пока цепь надежно не замкнется. После того, как DIP-переключатель будет установлен в положение «OFF», напряжение также «скачет», пока не установится на уровне +5В. Такого рода переходные процессы называются дребезгом. Таким образом, при изменении положения DIP-переключателя («ON» «OFF») возникает эффект дребезга, отрицательное влияние которого в данной работе никак не устраняется.

Подробнее эта проблема будет исследоваться в лабораторной работе № 4 «Клавиатура».

Б.1.4 Требования к выполнению работы

  1. Все программы должны быть написаны на языке Си.

  2. Разрабатываемые драйверы устройств должны быть выполнены в виде отдельных программных модулей (файлов), содержащих функции по работе с заданным одним устройством. Например, в этой лабораторной работе драйвер светодиодных индикаторов должен содержать функцию установки состояния светодиодов, а драйвер DIP-переключателей – функцию чтения их состояния. В главном программном модуле должна решаться предлагаемая вариантом задания прикладная задача с использованием разработанных драйверов.

  3. В тестовой программе для осуществления анимации запрещается использовать «покадровое» формирование картинки. Для реализации алгоритма анимации должны быть использованы логические, арифметические и бинарные операции, а также операции сдвигов.

  4. Для задержек в программе следует использовать пустые циклы (тысячи – десятки тысяч итераций, в зависимости от длительности задержки).

  5. В варианте задания представлен лишь фрагмент анимации, при этом все анимации являются циклическими. По приведенному фрагменту требуется определить алгоритм анимации и реализовать его.

  6. Текст программы должен соответствовать правилам оформления программ на языке Си, приведенным в приложении (Приложение Г. Требования к оформлению программ на языке Си, [95]).

Б.1.5 Содержание отчета

  1. Титульный лист.

  2. Задание.

  3. Блок-схема программы.

  4. Исходный текст программы с комментариями.

  5. Основные результаты.

Б.1.6 Литература

Литература к лабораторной работе: [45], [48], [49], [50], [51], [57], [75], [88], [93], [3], [8], [9], [11], [17], [22].

Б.1.7 Варианты заданий Во всех вариантах задания единичный разряд в шестнадцатеричном коде – это соответствующий DIP-переключатель в положении «ON», нулевой разряд – это соответствующий DIP-переключатель в положении «OFF».

В варианте задания представлен лишь фрагмент анимации, при этом все анимации являются циклическими. По приведенному фрагменту требуется определить алгоритм анимации и реализовать его.

  1. В случае установки на DIP-переключателях кода 0x11 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIPпереключателях.

  1. В случае установки на DIP-переключателях кода 0x22 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться первая анимация, в случае установки кода 0xDD (шестнадцатеричное значение) – вторая анимация. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-

  1. В случае установки на DIP-переключателях кода 0x33 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться первая анимация, в случае установки кода 0xCC (шестнадцатеричное значение) – вторая анимация. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIP-переключателях.

  1. В случае установки на DIP-переключателях кода 0x44 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-переключателях.

  1. В случае установки на DIP-переключателях кода 0x55 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIPпереключателях.

  1. В случае установки на DIP-переключателях кода 0x66 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-переключателях.

  1. В случае установки на DIP-переключателях кода 0x77 (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIPпереключателях.

  1. В случае установки на DIP-переключателях кода 0xAA (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-переключателях.

  1. В случае установки на DIP-переключателях кода 0xBB (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться первая анимация, в случае установки кода 0x44 (шестнадцатеричное значение) – вторая анимация. Во всех остальных случаях светодиодные индикаторы отражают значение, выставленное на DIP-переключателях.

  1. В случае установки на DIP-переключателях кода 0xCC (шестнадцатеричное значение) на светодиодные индикаторы должна выводиться анимация, показанная ниже. Во всех остальных случаях светодиодные индикаторы отражают инвертированное значение, выставленное на DIP-переключателях.