Главная » Просмотр файлов » А.П.Евдокимов, Л.Л.Владимиров Программирование микроконтроллера К1986ВЕ92QI компании Миландр

А.П.Евдокимов, Л.Л.Владимиров Программирование микроконтроллера К1986ВЕ92QI компании Миландр (1186478), страница 4

Файл №1186478 А.П.Евдокимов, Л.Л.Владимиров Программирование микроконтроллера К1986ВЕ92QI компании Миландр (А.П.Евдокимов, Л.Л.Владимиров Программирование микроконтроллера К1986ВЕ92QI компании Миландр) 4 страницаА.П.Евдокимов, Л.Л.Владимиров Программирование микроконтроллера К1986ВЕ92QI компании Миландр (1186478) страница 42020-08-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Подключите отладочную плату к компьютеру.2. Подайте питание на плату.3. Запустите среду программирования Keil μVision.4. Занесите программу в микроконтроллер с помощью программатора. Удостоверьтесь в правильности работы устройства.5. По заданию преподавателя измените длительность задержки ивновь проделайте пункт 3.КОНТРОЛЬНЫЕ ВОПРОСЫ1. Что представляет собой порт микроконтроллера и каково егоназначение?2. Сколько портов в микроконтроллере К1986ВЕ92QI и чем ониотличаются друг от друга?3.

Как настраиваются режимы работы портов?4. Поясните логику работы программы, приведенной в даннойлабораторной работе.31ЛАБОРАТОРНАЯ РАБОТА 4.ПРЕРЫВАНИЕ ОТ КНОПКИЦЕЛЬ РАБОТЫУметь организовать прерывание при возникновении внешнегособытия.ТЕОРЕТИЧЕСКАЯ ЧАСТЬПрерывание – это изменение естественного хода выполненияпрограммы под воздействием внешней причины (события прерывания).

Таким событием в микроконтроллере может быть, в частности,нажатие кнопки. При возникновении события прерывания в определенном регистре специального назначения один из битов устанавливается в логическую единицу (появляется так называемый флаг), амикроконтроллер переходит к исполнению команды, записанной пофиксированному адресу, который называется вектором прерывания.При этом начинается выполнение отдельной программы, по завершении которой осуществляется очистка флага, а затем – возврат к основной программе. Под отдельной программой понимается совокупностькоманд, которую должен выполнить микроконтроллер в результатевнешнего события (в данном случае – нажатия кнопки).Опишем процедуру прерывания, назвав ее, например, INTERRUPT.Сначала сбросим флаг внешнего прерывания, чтобы прерываниене было заблокировано:NVIC_ClearPendingIRQ(EXT_INT2_IRQn);Теперь разрешим прерывания «в принципе» (глобальное разрешение):__enable_irq();а затем уже разрешим конкретный вид прерываний, в нашем случае –внешнее прерывание (EXT_INT2):NVIC_EnableIRQ(EXT_INT2_IRQn);Главное, ради чего осуществляется прерывание – это обработкапрерываний, т.е.

выполнение определенной программы, ради которойи было организовано прерывание. Обработка прерывания осуществля32ется процедурой void EXT_INT2_IRQHandler(void). В рамкахпроцедуры сначала выполняется набор необходимых команд, а завершается процесс сбросом флага внешнего прерывания:NVIC_ClearPendingIRQ(EXT_INT2_IRQn);Рассмотрим программу, суть которой сводится к следующему.При подаче питания на отладочную плату светодиод VD3 будет мигать с низкой частотой, при нажатии на кнопку, предварительно подключенную к плате, частота мигания возрастет, при следующем нажатии – еще увеличится, затем – опять, а вот при четвертом нажатии накнопку всё вернется в исходное состояние, и светодиод будет мигатьмедленно.// Изменение частоты миганий светодиода VD3// на отладочной плате по прерыванию от внешней кнопки// Подключение заголовочных файлов необходимых библиотек#include <MDR32F9Qx_port.h>#include <MDR32F9Qx_rst_clk.h>// Объявление переменныхint j;int i;int T;// Определение первой функции задержки#define DELAY1(D) for (j = D; j > 0; j--)// Определение второй функции задержки#define DELAY2(T) for (i = T; i > 0; i--)// Процедура инициализации портовvoid PortsInit(){// Включение тактирования портов B и CRST_CLK_PCLKcmd(RST_CLK_PCLK_PORTB |RST_CLK_PCLK_PORTC,ENABLE);// Указание типа структуры и имени структурыPORT_InitTypeDef Nastroyka_C;// Работа в режиме порта ввода-выводаNastroyka_C.PORT_FUNC = PORT_FUNC_PORT// Цифровой режимNastroyka_C.PORT_MODE = PORT_MODE_DIGITAL;// Низкая скорость переключения (пологий фронт)Nastroyka_C.PORT_SPEED = PORT_SPEED_SLOW;// Конфигурация линии порта как выходаNastroyka_C.PORT_OE = PORT_OE_OUT;33// Объявление номера линии порта, которая// настраивается данной структуройNastroyka_C.PORT_Pin = PORT_Pin_0;// Инициализация порта C объявленной структуройPORT_Init(MDR_PORTC, &Nastroyka_C);// Указание типа структуры и имени структурыPORT_InitTypeDef Nastroyka_B;// Работа в альтернативном режиме порта EXT_INT2Nastroyka_B.PORT_FUNC = PORT_FUNC_ALTER;// Цифровой режимNastroyka_B.PORT_MODE = PORT_MODE_DIGITAL;// Низкая скорость переключения (пологий фронт)Nastroyka_B.PORT_SPEED = PORT_SPEED_SLOW;// Конфигурация линии порта как входаNastroyka_B.PORT_OE = PORT_OE_IN;// Объявление номера линии порта, которая// настраивается данной структуройNastroyka_B.PORT_Pin = PORT_Pin_10;//Инициализация порта C объявленной структуройPORT_Init(MDR_PORTB, &Nastroyka_B);}// Процедура инициализации внешнего прерыванияvoid INTERRUPT(){// Очистка флага внешнего прерывания EXT_INT2NVIC_ClearPendingIRQ(EXT_INT2_IRQn);// Глобальное разрешение прерываний__enable_irq();// Разрешения внешнего прерывания EXT_INT2NVIC_EnableIRQ(EXT_INT2_IRQn);}// Процедура обработки внешнего прерывания EXT_INT2void EXT_INT2_IRQHandler(void){// Уменьшение времени задержки,// т.е.

увеличение частоты мигания светодиодаT = T - 50000;// Если задержка равна нулю,// то возвращение в исходное состояниеif (T == 0) T = 200000;// Задержка, в течение которой прекращается дребезг контактовDELAY1(100000);// Если сигнал внешнего прерывания завершен,34// очистить флаг внешнего прерывания EXT_INT2if (PORT_ReadInputDataBit(MDR_PORTB, PORT_Pin_10) == 0){NVIC_ClearPendingIRQ(EXT_INT2_IRQn);}}// Объявление главной функцииint main(){// Вызов процедуры инициализации портовPortsInit();// Вызов процедуры инициализации внешнего прерыванияINTERRUPT();// Задание начального значения второй функции задержки,// определяющей время свечения светодиода и паузыT = 200000;// Главный циклwhile (1){// Установка единицы на линии PC0 порта СPORT_SetBits(MDR_PORTC, PORT_Pin_0);DELAY2(T); // Задержка// Сброс единицы на линии PC0 порта СPORT_ResetBits(MDR_PORTC, PORT_Pin_0);// Сброс единицы на 0 линии порта СDELAY2(T); // Задержка}}Итак, главная программа начинается с вызова процедурнастройки портов и инициализации внешнего прерывания.

Затем переменной T задается значение равное 200000, и начинается главныйцикл. Устанавливается логическая единица на линии 0 порта С; загорается светодиод VD3; затем задержка, определяемая переменной T;сброс линии 0 порта С (логический ноль на линии); вновь задержка, и– бесконечный цикл.При внешнем прерывании (нажатие кнопки) значение переменной T уменьшается на 50000. Если при этом переменная T станет равной нулю, то она вновь принимает исходное значение, если нет – топроизойдет небольшая задержка, за время которой успеют прекратиться импульсы, которые всегда возникают при замыкании/размыкании механических контактов, и осуществится опрос линии 10 порта B с целью определить, отпущена ли кнопка:35if (PORT_ReadInputDataBit(MDR_PORTB, PORT_Pin_10) == 0)Если кнопка отпущена (на линии 10 порта B логический ноль), тоосуществится выход из прерывания со сбросом флага, если нет – топродолжается опрос линии 10 порта B.

При этом в главном цикле значение T будет другим, изменится значение функции DELAY2(T), а значит, и время свечения и паузы светодиода.ПРАКТИЧЕСКАЯ ЧАСТЬ1. Подключите дополнительную кнопку SB к разъему XP13 отладочной платы в соответствии с рисунком 4.12. Подключите отладочную плату к компьютеру.3. Подайте питание на плату.4. Запустите среду программирования Keil μVision.5. Занесите программу в микроконтроллер с помощью программатора. Нажимая на кнопку SB, наблюдайте за изменением частотымигания светодиода VD3.

Удостоверьтесь в правильности работыустройства.6. По заданию преподавателя измените начальную частоту мигания светодиода, количество ступеней при переключении частоты.Рисунок 4.1 – Подключение кнопки к отладочному стендуКОНТРОЛЬНЫЕ ВОПРОСЫ1. Что называют прерыванием в микропроцессорной технике?Под воздействием каких причин оно происходит?2. Что такое «вектор прерывания»?3.

Как осуществляется обработка прерывания?4. Поясните логику работы программы, приведенной в даннойлабораторной работе.36ЛАБОРАТОРНАЯ РАБОТА 5.ПРЕРЫВАНИЕ ОТ ТАЙМЕРАЦЕЛЬ РАБОТЫИзучить характеристики таймера микроконтроллера. Уметь использовать таймер для задания интервалов времени и организациипрерываний.ТЕОРЕТИЧЕСКАЯ ЧАСТЬВ состав микроконтроллера К1986ВЕ92QI входят 3 таймера общего назначения (на рисунке 1.1 обозначены как «3 х 16 Timer» –найдите их). Таймер представляет собой 16-разрядный счетчик, у которого есть три режима счета: прямой, обратный и двунаправленный(сначала прямой счет до определенного значения, а затем обратный).Для изменения частоты счета у каждого таймера имеется 16разрядный предделитель с переменным коэффициентом деления, который также представляет собой счетчик.

На основе таймеров построены четырехканальные блоки, обеспечивающие режимы «Захват»,«Сравнение» и «ШИМ».Режим «Захват» позволяет по внешнему сигналу останавливатьсчет, и может быть использован, например, когда необходимо измерить интервал времени между двумя событиями.В режиме «Сравнение» микроконтроллер выдает сигнал, когдасостояние таймера совпадает с заранее записанным числом, т.е. работает как таймер в обыденном понимании, например, как таймер в мобильном телефоне.Режим «ШИМ» – это режим широтно-импульсной модуляции:микроконтроллер выдает прямоугольные импульсы неизменной частоты, неизменной амплитуды, но переменной длительности.

Характеристики

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6430
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее