Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratorny_praktikum_chast_4_A5_dorabotanny.docx
Скачиваний:
122
Добавлен:
13.02.2016
Размер:
4.75 Mб
Скачать

Содержание отчета

Отчет должен содержать:

  1. Наименование и цель лабораторной работы.

  2. Условия, схемы алгоритмов и листинги программ к заданиям № 19.1 и 19.2

  3. Ответы на контрольные вопросы.

Контрольные вопросы

  1. Какую дополнительную функцию имеет линия порта RA2. Поясните, как она отключается при настройке этой линии на ввод?

  2. Поясните, как настраивается линия порта RA2 МК dsPIC33F на ввод, а линия порта RB15 – на вывод?

  3. Укажите команду на языке программирования С, которая настраивает линию порта RB13 на вывод.

Требования к знаниям и умениям учащихся

В результате выполнения лабораторной работы учащиеся должны знать:

  • структуру, особенности работы и программирование на языке С параллельных портов ввода/вывода в МК dsPIC33F;

  • схему подключения входных и выходных дискретных сигналов к МК dsPIC33FJ32MC204 стенда НТЦ-31.000.

Должны уметь:

  • составлять программы ввода/вывода дискретных сигналов на языке программирования С по заданному алгоритму;

  • создавать проекты для прошивки МК dsPIC33FJ32MC204 в интегрированной среде MPLAB IDE 8;

  • выполнять компиляцию исходного кода программ прошивки МК учебного стенда НТЦ-31.000;

  • выполнять программирование МК учебного стенда НТЦ-31.000, а также проверку и отладку прошивки.

Методические указания

1 Краткие теоретические сведения

Практически ни один проект с МК не обходится без операций ввода/вывода через параллельные порты. МК семейства dsPIC33F предоставляют разработчику широкие возможности по работе с дискретными сигналами благодаря наличию достаточного количества портов ввода/вывода и некоторым функциям, расширяющим функциональность самих портов.

Порты ввода/вывода общего назначения — это простейшие периферийные устройства, с помощью которых МК может получать цифровые данные и управлять другими устройствами (рисунок 19.16).

Рисунок 19.16 – Структура линии порта, объединенной с выводами периферийных функций

Дополнительную гибкость при работе с портами ввода/вывода обеспечивает и то, что их можно настроить для выполнения альтернативных функций.

Все выводы МК (кроме выводов питания Vdd, Vss, AVdd, AVss, VCap и вывода сброса MCLR) могут использоваться как периферийными модулями, так и параллельными портами ввода/вывода. Все вводные линии портов имеют триггер Шмидта по входу для исключения влияния электромагнитных помех и шумов.

Линии ввода/вывода МК разделены на три порта: RA, RB, RC. Подавляющее большинство линий ввода/вывода всех портов имеют дополнительные функции и могут использоваться различными периферийными модулями МК.

Мультиплексор Output Multiplexer (рисунок 19.16) выбирает, каким образом функционирует линия порта (в качестве части периферийного модуля, либо в качестве линии параллельного порта ввода/вывода). Таким образом, перед использованием таких линии в качестве линий порта ввода/вывода необходимо предварительно отключить соответствующие периферийные устройства. Например, при использовании порта RA2 как линии ввода, необходимо отключить дополнительную функцию порта RA2 (выход тактирующего сигнала внутреннего генератора) следующей директивой:

_FOSC(OSCIOFNC_ON & POSCMD_NONE)

Для работы с портами каждый из них имеет 3 специальных регистра:

  • TRISx – регистр направления данных – задает каким образом используется линия порта (как вход либо как выход). При установке соответствующего бита в 1 линия порта будет сконфигурирована как вход;

  • LATx – регистр выводов порта – установка соответствующего бита данного регистра в 1 позволяет установить высокий уровень сигнала на выходе линии порта, при установке соответствующего бита в 0 – низкий уровень сигнала;

  • PORTx – регистр состояния порта – чтение соответствующего бита из данного регистра позволяет получить состояние сигнала (высокий либо низкий уровень) на входе линии порта.

Примечание – действительные названия регистров получаются подстановкой названия порта вместо символа х. Соответственно, регистры порта А называются TRISA, LATA, PORTA, порта В - TRISB, LATB, PORTB, порта C -TRISC, LATC, PORTC.

Для того, чтобы установка бита регистра LATx приводила к соответствующему изменению состояния линии вывода порта, необходимо чтобы эта линия была предварительно сконфигурирована как выход установкой требуемого бита в регистре TRISx. Аналогично, чтобы чтение бита регистра PORTx отображало действительное состояние линии ввода порта, необходимо чтобы эта линия была предварительно сконфигурирована как вход установкой требуемого бита в регистре TRISx.

Таким образом, настройка линии 2 порта RA на вход, а линии 15 порта RB на вывод осуществляется следующим образом:

TRISAbits.TRISA2 = 1;

TRISBbits.TRISB15 = 0;