Главная страница
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
qrcode

Программирование микроконтроллеров 1986ВЕ9x компании Миландр. Контрольные вопросы для самопроверки. Предназначено для студентов технических высших учебных заведений очной и заочной формы обучения, аспирантов, инженерно-технических работников


НазваниеКонтрольные вопросы для самопроверки. Предназначено для студентов технических высших учебных заведений очной и заочной формы обучения, аспирантов, инженерно-технических работников
АнкорПрограммирование микроконтроллеров 1986ВЕ9x компании Миландр.pdf
Дата07.06.2019
Размер3.98 Mb.
Формат файлаpdf
Имя файлаProgrammirovanie_mikrokontrollerov_1986VE9x_kompanii_Milandr.pdf
оригинальный pdf просмотр
ТипКонтрольные вопросы
#52981
страница71 из 71
КаталогОбразовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
1   ...   63   64   65   66   67   68   69   70   71


232
Продолжение таблицы П.2
Линия
Функции отладочной платы
Штыри разъемов
X26
X27
PB2
JTAG-A: JA_TCK
15

PB3
JTAG-A: JA_TDI
16

PB4
JTAG-A: JA_TRST
17

PB5
Кнопки: UP
18

PB6
Кнопки: RIGHT
19

PB7
ЖКИ: E1 20

PB8
ЖКИ: E2 21

PB9
ЖКИ: RES
22

PB10
ЖКИ: R/W
23

PC0
ЖКИ: A0; LED: 0 24

PC1
ЖКИ: E; LED: 1 25

PC2
Кнопки: SELECT
26

PD0
JTAG-B: JB_TDO
5

PD1
JTAG-B: JB_TMS
6

PD2 microSD: DAT0; JTAG-B: JB_TCK
7

PD3 microSD: CD/DAT3; JTAG-B: JB_TDI
8

PD4
JTAG-B: JB_TRST
9

PD5 microSD: CLK
10

PD6 microSD: CMD
11

PD7
Аналоговая: ADC


PE0
Аналоговая: DAC


PE1
Кнопки: DOWN

15
PE2
Аналоговая: CMP_IN


PE3
Кнопки: LEFT

16
PE6
OSC: OSC_IN32


PE7
OSC: OSC_OUT32


PF0
RS232: TX

19
PF1
RS232: RX

20
PF2
ЖКИ: DB6

21
PF3
ЖКИ: DB7

22
PF4
BOOT SELECT: MODE[0]

23
PF5
BOOT SELECT: MODE[1]

24
PF6
BOOT SELECT: MODE[2]

25

233
В таблице П.3 приведены способы вызова функций среды Keil µVision с помощью определенного сочетания клавиш.
Таблица П.3 – Горячие клавиши среды Keil µVision
Клавиши
Назначение
Сборка и отладка проекта
F7
Построить проект
Alt + F7
Открыть окно со свойствами проекта
F5
Запустить программу или продолжить выполнение после точки останова
Ctrl + F5
Запустить / остановить отладку программы
F9
Поставить / убрать точку останова
Ctrl + Shift + F9
Удалить все точки останова
F10
Выполнить оператор без захода внутрь функции
F11
Выполнить оператор с заходом внутрь функции
Ctrl + F10
Выполнить код до выхода из функции
Ctrl + F11
Выполнить код до курсора
Форматирование и редактирование кода
Tab
Увеличить отступ перед выделенным кодом
Shift + Tab
Уменьшить отступ перед выделенным кодом
Ctrl + Shift + U
Перевести выделенный код в верхний регистр
Ctrl + U
Перевести выделенный код в нижний регистр
Ctrl + L
Вырезать строку, на которой находиться курсор
Ctrl + Del
Удаление до конца слова
Ctrl + Backspace
Удаление до начала слова
Поиск текста
Ctrl + F
Открыть окно поиска
Ctrl + H
Открыть окно замены
Ctrl + F3
Поиск вниз слова, на котором стоит курсор
Ctrl + Shift + F3
Поиск вверх слова, на котором стоит курсор
Ctrl + I
Быстрый поиск, текст для поиска вводится внизу главного окна
Навигация по коду
Ctrl + G
Перейти на определённый номер строки в коде
Ctrl + Tab
Переход между открытыми вкладками
Ctrl + F2
Поставить закладку
F2
Перейти к следующей закладке
Shift + F2
Перейти к предыдущей закладке
Ctrl + Shift + F2
Убрать все закладки

234
Приложение 2
Пример оформления отчета по выполненной работе
Программирование микроконтроллеров
Отчет по лабораторной работе № 1
по теме
«Отладочная плата для микроконтроллера K1986ВЕ92QI
и среда программирования Keil µVision»
« » 20 г.
Москва, 2016
Оценка: подпись преподавателя
Выполнил: студент гр. САУ-31
Петров П.П.
Проверил: к.т.н., доцент
Иванов И.И.

235
Отчет по лабораторной работе № 1
Отладочная плата для микроконтроллера K1986ВЕ92QI
и среда программирования Keil µVision
Цель работы: знакомство с демонстрационно-отладочной платой для микроконтроллера K1986ВЕ92QI; получение навыков работы в среде Keil
µVision; получение представления о структуре проекта на языке Си.
Оборудование: отладочный комплект для микроконтроллера
K1986ВЕ92QI;программатор-отладчик MT-Link;персональный компьютер.
Программное обеспечение: операционная система Windows 7;среда программирования Keil μVision MDK-ARM 5.20;драйвер программатора
MT- Link;примеры кода программ.
Техническое задание
1)
Обеспечить частоту мигания светодиодов, расположенных на отладочной плате, равной 0,2 Гц и 3 Гц соответственно.
2)
Вывести на жидкокристаллический индикатор бегущую строку со словом «Байкал».
Теоретические сведения
Микроконтроллерпрограммируемое вычислительное устройство, обладающее набором периферийных устройств и применяемое для решения задач управления в технических системах.
Отладочная плата предназначена для ознакомления с возможностями микроконтроллера и отладки программного обеспечения для него.
Питание платы осуществляется от сети переменного тока

220 В, 50 Гц с помощью внешнего блока питания. Также возможно питание платы от
USB-интерфейса.
Для отображения буквенно-цифровой и графической информации на плате расположен жидкокристаллический индикатор размером 128х64.
Для загрузки программ, написанных с помощью персонального компьютера, во флеш-память микроконтроллера используется программатор

236
MT-Link. Программатор подключается к компьютеру с помощью USBкабеля. На плате предусмотрено два разъема для подключения программатора
(JTAG-A и JTAG-B).
Для подключения отладочной платы к компьютеру необходимо выполнить следующие действия:
1.
Соединить программатор и USB-кабель между собой.
2.
Подключить шлейф программатора к разъему
JTAG-B, расположенному на отладочной плате.
3.
Установить каждый из трех переключателей выбора режима загрузки в положение «0», что соответствует использованию интерфейса
JTAG-B при загрузке и отладке.
4.
Подключить USB-кабель программатора в свободный USB-порт компьютера. Убедиться, что светодиод программатора горит монотонно.
Если светодиод мигает, то это значит, что нет связи между компьютером и программатором ввиду отсутствия на компьютере требуемого драйвера.
5.
Установить перемычку «POWER_SEL» в положение «EXT_DC», что позволить питать плату от сети. При другом положении перемычки организуется питание со стороны USB-интерфейса.
6.
Включить блок питания в сетевую розетку и подключите шнур питания к соответствующему разъему на плате. На плате должен загореться красный светодиод «POWER 5V». Если в микроконтроллере уже содержится программа, то она начнет выполняться.
Интегрированная среда программирования Keil µVision предназначена для написания и отладки программ для микроконтроллеров семейства
ARM32 с помощью языков Си, С++ и ассемблера. В рамках нашей работы будем использовать лишь язык Си.
Программа для микроконтроллера именуется программным проектом.
Проект представляет собой достаточно сложную совокупность файлов, каталогов и настроек.
Во-первых, проект состоит из модулей. Модуль на языке Си, как правило, состоит из двух файлов: собственно модуль – файл с расширением
*.с и заголовочный файл с расширением *.h. В модуле содержатся исходные коды функций и объявления глобальных переменных,

237 а в заголовке – прототипы (предварительные описания) функций и глобальных переменных. Подключив заголовочный файл директивой
#include к другому модулю, можно задействовать в одном модуле функции и переменные другого модуля.
Во-вторых, проект состоит из совокупности различных файлов, размещенных в определенной структуре каталогов на диске. В этих каталогах находятся непосредственно все файлы проекта, а также файлы библиотек, подключенных к проекту.
В-третьих, каждый проект имеет ряд настроек: программируемое устройство, тактовая частота ядра, подключаемые библиотеки, программная оптимизация, параметры программора и многие другие.
Перед загрузкой программы в микроконтроллер проект необходимо
построить. Под построением понимается компиляция всех модулей, входящих в состав проекта, их ассемблирование и компоновку. Если в процессе построения возникнут ошибки, то сведения о них будут отображены в соответствующем окне среды. Программа не может быть загружена в микроконтроллер до тех пор, пока все ошибки не будут устранены.
Ход выполнения работы
Первая часть технического задания выполнялась на основе проекта
Lab1_1. Проект был настроен согласно методическим рекомендациям:

в качестве целевого устройства был установлен микроконтроллер
MDR32F9Q2I;

установлена стартовая тактовая частота ядра микроконтроллера равной 8 МГц;

включено использование операционной системы RTX;

задано использование первого уровня программной оптимизации;

в качестве программатора выбран J-LINK / J-TRACE Cortex со следующими параметрами:

порт программирования – SW;

рабочая частота – 1 МГц;

стирание всей области памяти перед программированием;

активированы программирование, проверка и запуск программы.

238
Далее программный проект был построен без каких-либо ошибок и предупреждений со стороны среды Keil.
При первой попытке загрузки программы в микроконтроллер произошла ошибка, связанная с отсутствием связи программатора и среды программирования. Причиной явился неправильный выбор режима загрузки микроконтроллера с помощью переключателей на отладочной плате, вызванный нарушением инструкции по подключению отладочной платы к компьютеру.
После устранения неполадки программа была успешно загружена в память микроконтроллера.
Для выполнения задания был исследован модуль проекта led.c и его заголовок led.h.
Анализ кода модуля led.c позволил установить, что мигание светодиодов осуществляется с помощью задач U_LED_Task0_Function и
U_LED_Task1_Function
. Они имеют идентичную структуру:
__task void U_LED_Task0_Function (void)
{ while(1)
{
U_LED_Toggle (U_LED_0_PIN); os_dly_wait (500);
}
}
Данная задача представляет собой бесконечный цикл while. Внутри цикла находится функция U_LED_Toggle, описываемая в этом же модуле led.c: void U_LED_Toggle (uint32_t Pins)
{ uint32_t data = PORT_ReadInputData (U_LED_PORT);
PORT_Write (U_LED_PORT, data ^= Pins);
}
Суть функции U_LED_Toggle состоит в следующем:

объявляется переменная data типа uint32_t (беззнаковая, целая,
32-битная);

239

переменной присваивается значение, считываемое с помощью библиотечной функции PORT_ReadInputData с порта U_LED_PORT;

значение переменной инвертируется и записывается в порт
U_LED_PORT с помощью библиотечной функции PORT_Write.
Таким образом, постоянно происходит смена состояния светодиода на противоположное ввиду бесконечного цикла.
Задержка смены состояния задается с помощью функции os_dly_wait
. Аргументом функции служит количество тактов ядра. При данных настройках тактирования 1 такт равен 1 миллисекунде.
Из вышеизложенного очевидно, что для получения требуемых частот мигания светодиодов следует найти соответствующие им значения задержек.
Частота – это параметр периодических сигналов. Она показывает, сколько периодов такого сигнала умещается в одной секунде, и определяется формулой (1):
?????? =
1
??????
, (1) где T – период сигнала.
Изменение управляющего сигнала светодиода можно представить графиком, изображенным на рисунке 1.
Рисунок 1 – Управляющий сигнал светодиода

240
Из рисунка 1 очевидно, что задержка смены состояния светодиода должна быть в два раза меньше периода управляющего сигнала.
Из формулы (1) находим требуемые значения периодов для заданных частот:
??????
0
=
1
??????
0
=
1 0,2 Гц
= 5 с,
??????
1
=
1
??????
1
=
1 3 Гц
≈ 0,33 с.
Тогда искомые задержки равны 2,5 и 0,16 секунд или 2500 и 160 тактов соответственно:
__task void U_LED_Task0_Function (void)
{ while(1)
{
U_LED_Toggle (U_LED_0_PIN); os_dly_wait (2500);
}
}
__task void U_LED_Task1_Function (void)
{ while(1)
{
U_LED_Toggle (U_LED_1_PIN); os_dly_wait (160);
}
}
Наиболее достоверный способ проверки правильности полученных результатов – это измерение сигнала с помощью осциллографа. Однако использование этого прибора, видимо, выходит за рамки данной работы, поэтому единственным вариантом проверки становится визуальная оценка частоты мигания. По такой оценке фактическая частота вполне соответствует
требуемой.

241
Вторая часть технического задания выполнялась на основе проекта
Lab1_2. Данный проект, как и предыдущий, был настроен согласно методическим рекомендациям.
Для выполнения задания был исследован модуль проекта lcd.c и заголовок mlt_font.h.
Все параметры бегущей строки находятся в модуле lcd.c. Вывод бегущей строки организован в виде задачи U_LCD_Task_Function:
__task void U_LCD_Task_Function (void)
{ uint32_t k = 0; const char s[] =
"\xC1\xE5\xE3\xF3\xF9\xE0\xFF \xF1\xF2\xF0\xEE\xEA\xE0"; while(1)
{ os_dly_wait (1000);
U_MLT_Scroll_String (s, 4, k++);
}
}
Бег строки осуществляется с помощью функции U_MLT_Scroll_String в бесконечном цикле while и основан на использовании таймера/счетчика.
Данная функция имеет три аргумента:

s – содержание строки;

4 – положение строки по высоте на индикаторе;

k++ – увеличение показания счетчика на единицу.
Функция os_dly_wait в цикле фактически задает скорость бега строки.
Для выполнения технического задания необходимо изменить параметр s
, определяющий содержание строки.
Латинские буквы, цифры и некоторые знаки могут записываться в содержание напрямую, однако для вывода кириллических букв нужно использовать кодировку. Такая кодировка расположена в файле mlt_font.h.
Закодированный символ представляет собой число в шестнадцатеричном формате и начинается с символов «\x». В соответствии с содержанием файла

242 mlt_font.h для вывода слова «Байкал» необходимо присвоить параметру s значение «\xC1\xE0\xE9\xEA\xE0\xEB»:
__task void U_LCD_Task_Function (void)
{ uint32_t k = 0; const char s[] = "
\xC1\xE0\xE9\xEA\xE0\xEB
"; while(1)
{ os_dly_wait (1000);
U_MLT_Scroll_String (s, 4, k++);
}
}
После загрузки программы нетрудно убедиться, что по индикатору теперь перемещается слова «Байкал».
Заключение
В ходе работы были получены базовые навыки работы с микроконтроллерами, в том числе подключение отладочной платы, запуск среды программирования, настройка, корректировка и отладка программного проекта; изучена структура программного кода для микроконтроллеров на примере двух проектов.
Единственное затруднение при работе с оборудованием было связано с неполным следованием инструкции по подключению.
Первая часть работы посвящена программному управлению частотой мигания двух светодиодов, находящихся на отладочной плате. Решением задачи стало изменение задержки при переключении состояния светодиодов на противоположное.
Вторая часть заключалась в выводе бегущей строки на жидкокристаллический индикатор. Для решения поставленной задачи потребовалось изменить аргумент функции, отвечающей за вывод строки, с использованием файла с кодировкой кириллических символов.
Результаты, полученные в ходе работы, полностью соответствуют техническому заданию.
1   ...   63   64   65   66   67   68   69   70   71

перейти в каталог файлов

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей