TRISAbits.TRISA3 = 1; //настройка порта
//RA3 на вход
while (1)
{
LATBbits.LATB15 = PORTAbits.RA2; // установка соответствующего
// уровня сигнала на RB15
LATBbits.LATB13 = PORTAbits.RA3;
//установка соответствующего
//уровня сигнала на RB13
}
}
4 Алгоритм и листинг программы к заданию № 19. 2
Схема алгоритма для создания проекта LR19_2 представлена на рисунке
19.19.
Листинг (исходный код) программы на языке программирования С к заданию № 2 для прошивки МК:
#include <P33FJ32MC204.h>
_FOSC(OSCIOFNC_ON & POSCMD_NONE)
int main()
{
TRISBbits.TRISB15 = 0; // настройка порта
//RB15 на выход
TRISBbits.TRISB13 = 0; // настройка порта
//RB13 на выход
TRISAbits.TRISA2 = 1; // настройка порта
//RA2 на вход
TRISAbits.TRISA3 = 1; // настройка порта
//RA3 на вход
81
while (1)
{
if (PORTAbits.RA2 == PORTAbits.RA3)
{
LATBbits.LATB15 = 0;
LATBbits.LATB13 = 1;
}
else if (PORTAbits.RA2 == 1)
{
LATBbits.LATB15 = 0;
LATBbits.LATB13 = 0;
}
else if (PORTAbits.RA3 == 1)
{
LATBbits.LATB15 = 1;
LATBbits.LATB13 = 1;
}
}
}
82
Начало
Настройка линий порта
Определить
состояние
тумблеров
SA1 = SA2
VD1 = 0;
VD2 = 1;
SA1 = 1
VD1 = 0;
VD2 = 0;
SA2 = 1
VD1 = 1;
VD2 = 1;
Конец
Рисунок 19.19 – Схема алгоритма программы к заданию № 19.2
ЛАБОРАТОРНАЯ РАБОТА № 20
РЕАЛИЗАЦИЯ ВРЕМЕННЫХ ФУНКЦИЙ В МИКРОПРОЦЕССОРНЫХ СИСТЕМАХ НА БАЗЕ МИКРОКОНТРОЛЛЕРА СЕМЕЙСТВА dsPIC33F
Цель работы
1 Изучить особенности программной и аппаратной реализации временных функций в микроконтроллерах (МК) семейства dsPIC33F.
83
2 Изучить режимы работы и порядок формирования таймеров МК семейства dsPIC33F.
3 Создать проект, составить исходный код программы реализации временных функций по заданному алгоритму, откомпилировать ее в среде MPLAB IDE 8, записать в память программ МК dsPIC33FJ32MC204 учебного стенда НТЦ-31.000 и выполнить.
4 Исследовать реализацию временных функций с помощью учебного стенда НТЦ-31.000.
Подготовка к выполнению работы
1 Изучить по [1] теоретические вопросы, связанные с понятием машинного цикла, принципами функционирования таймера/счетчика и системы прерываний.
2 Изучить по [2] принципиальную электрическую схему к лабораторной работе.
3 Изучить алгоритмы и исходные коды программ на языке программирования С, приведенные в методических указаниях.
4Подготовить ответы на вопросы для самоконтроля.
5Подготовить заготовку отчета (см. содержание отчета).
Вопросы для самоконтроля
1 Укажите область применения временных функций.
2 Дайте определение машинного цикла МК.
3 В чем заключается метод программных циклов?
4 В чем заключается метод реализации временных функций с использованием таймера/счетчика.
Приборы, оборудование и документация
1 Персональный компьютер.
2 Учебный стенд НТЦ – 31.000.
3 Методические указания к лабораторной работе.
4 MPLAB IDE 8. Руководство пользователя.
Порядок выполнения работы
1 Проверка подготовки учащихся к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса и инструктаж по технике безопасности.
2 Произвести внешний осмотр учебного стенда и персонального компьютера (ПК) и убедиться визуально в отсутствии каких-либо повреждений и дефектов.
3 Подключить стенд к сети. Включить тумблер «Сеть» на задней панели стенда.
84
4 С помощью кабеля USB AM-BM через гнездо «USB» на задней панели стенда подключить стенд к USB – порту ПК.
5 Включить ПК и запустить MPLAB IDE.
6 Задание № 20.1. Создать проект LR20_1 для учебного стенда, который реализует следующее условие: мигать светодиодом VD1 с частотой 1 Гц, используя метод программных циклов. Листинг (исходный код) программы к заданию № 1 приведен в методических указаниях к данной лабораторной работе.
6.1Выполнить пункты 2.1…2.7 руководства пользователя MPLAB IDE 8. При этом в пункте 2.4 в качестве инструмента программирования «Active Toolsuite» установите «Microchip C30 Toolsuite», а в качестве языка программирования «Toolsuite Сontents» выберите язык программирования C (MPLAB С30) (рисунок 20.1), а в пункте 2.5 выбора каталога для сохранения проекта укажите
LR20_1.
6.2С помощью пункта меню «File Import» (рисунок 20.2) открыть исходный файл к заданию № 1. В каталоге файлов исходных кодов программ «Files LR17…LR20» на локальном диске D выбрать «LR20_1.hex».
Рисунок 20.1 – Выбор инструмента и языка программирования
85
Рисунок 20.2 – Выбор исходного файла к заданию № 20.1
6.3С помощью пункта меню «Programmer Select Programmer»
выбрать программатор PICkit2.
6.4Запрограммировать МК стенда НТЦ-31.000 созданной программой,
используя пункт меню «Programmer Program».
Результат программирования отобразится в окне сообщений, и в случае успешного программирования (сообщение - …PICkit2 Ready) необходимо перевести МК в рабочий режим с помощью пункта меню «Programmer Release From Reset».
6.5 После получения сообщения указанного на рисунке 20.3 МК запрограммирован.
Рисунок 20.3 – Сообщение о результатах прошивки МК программой к заданию № 20.1
86
6.6 Проверить работу светодиодного индикатора VD1.
7 Задание № 20.2. Создать проект LR20_2 для учебного стенда, который реализует следующее условие: мигать светодиодом VD1 с частотой 1 Гц, используя таймер/счетчик. Листинг (исходный код) программы к заданию №2 приведен в методических указаниях к данной лабораторной работе.
7.1Выполнить пункты 2.1…2.7 руководства пользователя MPLAB IDE 8. При этом в пункте 2.4 в качестве инструмента программирования «Active Toolsuite» установите «Microchip C30 Toolsuite», а в качестве языка программирования «Toolsuite Сontents» выберите язык программирования C (MPLAB С30) (рисунок 20.1), а в пункте 2.5 выбора каталога для сохранения проекта укажите
LR20_2.
7.2С помощью пункта меню «File Import» (рисунок 20.4) открыть исходный файл к заданию №2. В каталоге файлов исходных кодов программ «Files LR17…LR20» на локальном диске D выбрать «LR20_2.hex».
Рисунок 20.4 – Выбор исходного файла к заданию № 20.2
7.3С помощью пункта меню «Programmer Select Programmer»
выбрать программатор PICkit2.
7.4Запрограммировать МК стенда НТЦ-31.000 созданной программой,
используя пункт меню «Programmer Program».
Результат программирования отобразится в окне сообщений, и в случае успешного программирования (сообщение - …PICkit2 Ready) необходимо перевести МК в рабочий режим с помощью пункта меню «Programmer Release From Reset».
87
7.5После получения сообщения указанного на рисунке 20.3 МК запрограммирован.
7.6Проверить работу светодиодного индикатора VD1.
8 Задание № 20.3. Создать проект LR20_3 для учебного стенда НТЦ31.000, который реализует следующее условие: при включении тумблеров SA1 и SA2 одновременно мигать светодиодами VD1 и VD2 попеременно с частотой 1 Гц, используя метод программных циклов. Листинг (исходный код) программы к заданию №3 приведен в методических указаниях к данной лабораторной работе.
8.1Выполнить пункты 2.1…2.4 руководства пользователя MPLAB IDE 8. При этом в пункте 2.4 в качестве инструмента программирования установите «Microchip C30 Toolsuite» и выберите язык программирования С (рисунок 20.1).
8.2В окне выбора пути к каталогу сохранения файлов проекта выберите «Browse…». В открывшемся окне (рисунок 20.5) выберите путь: «Мой компьютер\Локальный диск D\Lan\DSPIC33\TE111\Ivanov\LR20_3\».
Примечание – Фамилию учащегося, набранную буквами английского алфавита, выбрать из списка своей учебной группы и создать папку для лабораторной работы LR20_3 и нажать кнопку «Сохранить». Окно выбора пути к каталогу будет иметь вид, показанный на рисунке 20.6. Нажмите кнопку «Далее».
Рисунок 20.5 – Окно выбора пути к каталогу сохранения файла
88
Рисунок 20.6 – Выбор каталога для сохранения проекта к заданию № 20.3
8.3 В открывшемся окне (рисунок 20.7) добавить существующие файлы в проект: «+С:\+ProgrammFiles(x86)\+Microchip\+MPLABC30\+support\ +dsPIC33F\+gld\+p33FJ32MC204.gld». Нажмите кнопку «Далее».
Рисунок 20.7 – Окно добавления существующих файлов в проект
89
8.4 В открывшемся окне суммарной информации по проекту убедитесь, что МК и средство программирования выбраны правильно и нажмите кнопку
«Готово» (рисунок 20.8).
Рисунок 20.8 – Суммарная информация по проекту
Файл появится в папке «Linker Script» инспектора проекта
(рисунок 20.9).
Рисунок 20.9 – Инспектор проекта
8.5 После создания проекта в него необходимо добавить файл с исходным кодом программы МК. Для этого необходимо воспользоваться
90
