П З (1230299), страница 3

Файл №1230299 П З (Разработка цифрового частотомера) 3 страницаП З (1230299) страница 32020-10-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

Семейство микроконтроллеров PIC18 имеет два уровня прерываний: низкоприоритетное и высокоприоритетное. Вектор низкоприоритетного прерывания располагается в памяти программ по адресу 0х000018, а вектор высокоприоритетного – 0х000008. Когда одновременно возникает два прерывания, в первую очередь обслуживается то, приоритет которого выше. В случае если оба прерывания имеют равный приоритет, то они будут обслуживаться по очереди. Если в момент обслуживания низкоприоритетного прерывания возникает высокоприоритетное – в этом случае высокоприоритетное прерывание прервет обработку низкоприоритетного. Каждому прерыванию соответствует свой флаг (оповещение), который необходимо сбрасывать программно после выполнения подпрограммы обработки прерывания, поскольку в противном случае прерывание сразу же повторится. Также каждое прерывание можно разрешить или запретить при помощи регистров управления.

В PIC18F452 для управления прерываниями используется десять регистров:

- RCON – специальный функциональный регистр, содержащий бит включения приоритетной системы прерываний и флаги прерываний;

- INTCON/INTCON2/INTCON3 – специальные функциональные регистры, содержащие биты разрешения прерываний, флаги прерываний и биты приоритета прерываний;

- PIE1/PIE2 – специальные функциональные регистры, содержащие индивидуальные биты разрешения периферийных прерываний;

- PIR1/PIR2 – специальные функциональные регистры, содержащие индивидуальные флаги периферийных прерываний;

- IPR1/IPR2 – специальные функциональные регистры, содержащие индивидуальные биты приоритета периферийных прерываний.

2.6 Таймеры/счетчики

Основное применение таймера/счетчика – подсчет числа внешних событий и измерение времени. Используемый микроконтроллер содержит 4 таймера/счетчика TMR0, TMR1, TMR2, TMR3. Для реализации прерывания по переполнению таймера, используется таймер/счетчик TMR0. Особенностями данного таймера являются возможность работы в 8-разрядном и 16-разрядном режимах, а так же программируемый предделитель, способный делить частоту, входящего в него сигнала на 256. Работая в 16-ти разрядном режиме, таймер имеет два регистра хранения чисел – TMR0H и TMR0L. Таймер можно использовать двумя способами. Первый способ – это работа по переполнению, то есть 8-разрядный таймер досчитает от 0 до 255 и прекратит свою работу, а 16-разрядный – от 0 до 65535, не использовав функции предделителя. Второй способ – изначально посчитать по формуле 2.1 исходное значение, которое должно быть загружено в регистр TMR0H и TMR0L в двоичном виде, до момента переполнения таймера.

, (2.1)

где – время до момента переполнения, мкс;

K – коэффициент деления частоты, предделитель;

– тактовая частота кварцевого резонатора, МГц;

B –количество чисел, которые вмещает таймер.

2.7 Семисегментные индикаторы

Семисегментные индикаторы, применяемые преимущественно для отображения числовой информации, получили широкое распространение, поскольку являются очень удобными и простыми в использовании. Индикатор представляет собой несколько объединенных в одном корпусе одиночных светодиодов, соединенных, как правило, вместе либо анодом (общий анод), либо катодом (общий катод). На рисунке 2.3 а приведено общепринятое обозначение сегментов светодиодного индикатора.

В программе Proteus 7.5 SP3 имеется целый ряд семисегментных индикаторов. В качестве примера на рисунке 2.3 б приведен индикатор с общим анодом 7SEG-COM-AN и его электрическая схема.

Рисунок 2.3 – Семисегментный индикатор: а – обозначение сегментов;

б – внешний вид в программе Proteus 7.5; в – электрическая схема

2.8 Динамическая индикация

На практике отображение информации при помощи одной единственной цифры используется редко, в большинстве случаев возникает необходимость использовать индикаторы, состоящие из нескольких цифр. При этом зажигание каждой цифры индикатора осуществляется с помощью динамического управления, предполагающего быстрый вывод чисел на все разряды индикатора по очереди. Если этот процесс выполнить с правильной скоростью, то в силу инерционности человеческого зрения будет казаться, что все цифры разрядов индикатора светятся одновременно. На рисунке 2.4 приведена временная диаграмма, поясняющая принцип метода динамической индикации на примере четырехзначного индикатора. Как видим, в момент времени, когда на разряд 1 подается высокий уровень напряжения, все другие разряды (2–4) обесточены. После того как на первом разряде закончился переходной процесс и установилась логическая единица, на каналы управления сегментами индикатора подается код числа, которое необходимо зажечь. Продолжительность импульса управления разрядами должна находиться в диапазоне от 5 до 15 мс. Выключение числа происходит в обратном порядке: сначала отключается код числа с каналов управления сегментами, затем на разряде 1 устанавливается низкое значение напряжения. Остальные разряды числа (2–4) включаются аналогичным образом.

Рисунок 2.4 – Временная диаграмма управления разрядами четырехзначного индикатора

Основные преимущества метода динамической индикации заключаются в снижении потребляемой мощности и сокращении количества используемых портов ввода/вывода микроконтроллера.

Рисунок 2.5 – Электрическая схема индикатора 7SEG-MPX4-CA

В данном дипломном проекте используется четырехзначный семисегментный индикатор 7SEG-MPX4-CA. В названии индикатора последние два символа обозначают тип соединения светодиодов: CA – общий анод (Common Anode), CC – общий катод (Common Cathode). На рисунке 2.5 приведена электрическая схема индикатора 7SEG-MPX4-CA. На рисунке 2.4 видно, что аноды диодов каждой цифры индикатора подключаются к шине питания через свой транзистор (VT1-VT4), а однотипные сегменты всех четырех цифр объединяются на одном из выводов (A-G, DP – точка).

3 РАЗРАБОТКА АЛГОРИТМА ИЗМЕРЕНИЯ ЧАСТОТЫ

3.1 Алгоритм основной функции

Алгоритм представляет собой блок схему, у которой обязательно есть начало и конец.

Для начала работы нужно подключить стандартные библиотеки. Это библиотека полного функционала микроконтроллера и библиотека функции задержек.

Затем настроить динамическое управления, для управления разрядами тысяч, сотен, десятков и единиц.

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

Затем нужно ввести переменные для подсчета входящих импульсов и самой частоты электрического тока.

Следом вводим массив для вывода цифр на экран. Каждая цифра семисегметного индикатора – это набор из семи 0 и 1.

Затем следует настроить подпрограмму прерываний, то есть определить прерывание высокого уровня, дать понять микроконтроллеру куда следует переходить, если поднялся флаг прерывания, а так же куда вернуться после выполнения прерывания.

После следует настроить порты ввода и вывода сигналов, некоторые ножки нужно настроить на ввод информации в микроконтроллер, а некоторые на вывод.

Следом настраиваем прерывание по таймеру 0, для подсчета импульсов, поступающих в микроконтроллер в течении 1 секунды, а затем таймеру 1, который через каждые 5 мс переключает разряд динамической индикации. После разрешаем глобальное прерывание и на этом алгоритм зацикливается.

Рисунок 3.1 – Алгоритм основной функции

3.2 Алгоритмы прерывания

Алгоритмы прерывания тесно связаны друг с другом, поэтому используются переходы с алгоритма на алгоритм.

Алгоритм подсчета входного сигнала по ножке RB0 представлен на рисунке 3.2. Если на ножку RB0 пришел сигнал, то флаг прерывания сбрасывается (программно) и значение counter становится больше на единицу. Значение counter будет расти до того момента, пока не произойдет прерывание по таймеру 0.

В таймер 0 записано значение, при котором только спустя ровно 1 секунду произойдет прерывание, после чего флаг прерывания по таймеру 0 обнуляется и в него вновь записывается число, которое заставляет его через секунду прерваться.

Следом мы обнуляем переменные thousand, hundred, ten и one. Если значение counter меньше тысячи, то переходим ниже на два блока. Если переменная counter приобрела значение больше 1000, то от этого значения вычитаем тысячу и переменную thousand увеличиваем на единицу. Затем проверяем не стало ли значение переменной counter меньше, либо равно тысячи, если равно или больше, то операции, описанные выше, повторяем, до того момента, пока значение не станет меньше тысячи.

Когда значение counter становится меньше тысячи, проверяем больше ли оно сотни, если меньше, то переходим на два блока ниже, если нет, то вычитаем из значения counter число 100, при этом увеличивая переменную hundred на единицу. Это происходит до тех пор, пока значение counter не станет меньше 100.

Далее проверяем, чтобы значение counter было больше десяти, если условие не выполняется, то нужно перейти на два блока ниже, а если выполняется, то вычитаем из значения counter число 10, при этом увеличивая значение переменной ten на единицу. Это происходит до тех пор, пока значение counter не станет менее 10.

Когда это произошло, нужно проверить больше ли значение counter единицы или нет, если нет, то значение counter обнуляем и переходим к выводу на экран частоты. Если больше единицы, то считаем так же, как описывалось выше. Алгоритм прерывания по таймеру 0, который отвечает за подсчета разрядов динамической индикации, представлен на рисунке 3.3.

Для вывода на экран используется таймер 1. Если сработал флаг прерывания по переполнению таймера 1, то флаг сбрасывается, в таймер записывается число, равно 5 мс, а затем по очереди выводятся на экран разряды thousand, hundred, ten, one. Алгоритм прерывания по таймеру 1, который отвечает за вывод на динамический индикатор, представлен на рисунке 3.4.

Рисунок 3.2 – Алгоритм прерывания по таймеру 0

Рисунок 3.3 – Алгоритм подсчета входного сигнала по порту RB0

Рисунок 3.4 – Алгоритм прерывания по таймеру 1

4 РАЗРАБОТКА ПРОГРАММЫ РАБОТЫ ЧАСТОТОМЕРА

4.1 Введение в систему разработки MPLAB IDE

MPLAB – это интегрированная среда разработки, позволяющая осуществлять написание программ на языках ассемблера и С, а также производить тестирование и имитацию программного кода с использованием инструментальных средств отладки. MPLAB включает в себя ряд отдельных компонентов:

- текстовый редактор – обеспечивает возможность ввода текста и позволяет распознавать основные элементы языка программирования, обозначая команды, метки, комментарии разными цветами, что делает программный код более наглядным и читаемым;

- менеджер проекта – группирует все файлы, относящиеся к одному проекту вместе, а также обеспечивает их обновление и корректное взаимодействие друг с другом;

- компоновщик – объединяет файлы проекта воедино, присваивая каждому фрагменту правильные адреса памяти, обеспечивая при этом корректные переходы и обращения от одного файла к другому;

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

Тип файла
Документ
Размер
1,89 Mb
Высшее учебное заведение

Список файлов ВКР

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