Главная » Просмотр файлов » Антиплагиат полный Деревенко П.А.

Антиплагиат полный Деревенко П.А. (1230293), страница 5

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

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

Приобъявлении проекта создаются файлы типа «.mcp» и «.mcw». Если исходныйтекст будет успешно скомпонован, то будут сгенерированы файлы с41расширением «.lst», «.cof» и «.hex», а в случае возникновения ошибки – «.err».Таблица 4.1 – Основные файловые расширения, используемые в MPLABРасширениефайлаФункция.c Исходный файл на языке C.err Файл ошибок.hex Файл машинной программы в шестнадцатеричном формате.cod Файл отладки и обозначений.lib Библиотечный файл.lst Файл, показывающий первоначальный исходный код.o Объектный файл, содержащий перемещаемый код.mcp Файл проектной информации.mcw Файл информации о рабочем пространстве.cofФайл, с конечным модулем, представляющий отладочнуюинформацию4.2 КомментарииКомментарии начинаются с комбинации «/*» и заканчиваются «*/».

В такойформе они могут выходить за пределы одной строки, могут предшествовать илиследовать за инструкциями и объявлениями.Альтернативный формат комментариев – двойной «слэш» (//) передкомментарием. Тогда такой комментарий продолжается только до конца даннойстроки и не требует никакого завершающего символа.4.3 ОбъявленияОбъявления используются во многих местах для создания программныхэлементов, например, такие как переменные или функции и указания ихсвойств. Важно, что все переменные и функции в С должны быть объявлены дотого, как они будут использоваться.

Задаваемые характеристики включают тип42элемента данных (например, с фиксированной точкой)4.4 Подключение библиотекДиректива #include включает в текст программы содержимое указаннойбиблиотеки#include <p18f452.h> /*Объявление библиотеки, содержащей весьфункционал микроконтроллера*/#include <delays.h> /*Объявление библиотеки задержек*/4.5 Настройка порта C для вывода на экранДиректива #define служит для замены часто использующихся констант,ключевых слов, операторов или выражений некоторыми идентификаторами.# 35 define LED PORTC //Порту С присвоено имя LED#define Set_Enumber PORTBbits.RB3 = 1 //Вкл. разряд единиц#define Reset_Enumber PORTBbits.RB3 = 0 //Выкл.

разряд единиц#define Set_Dnumber PORTBbits.RB4 = 1 //Вкл. разряд десятков#define Reset_Dnumber PORTBbits.RB4 = 0 //Выкл. разряд десятков#define Set_Snumber PORTBbits.RB5 = 1 //Вкл. разряд сотен#define Reset_Snumber PORTBbits.RB5 = 0 //Выкл.

разряд сотен#define Set_Tnumber PORTBbits.RB6 = 1 //Вкл. разряд тысяч#define Reset_Tnumber PORTBbits.RB6 = 0 //Выкл. разряд тысяч4.6 Настройка параметров микроконтроллераДиректива #pragma необходима для реализации директив, предоставляющихкомпилятору различные инструкции.#pragma config OSC = XT /* Режим генератора XT*/#pragma config OSCS = OFF /* Запрещено переключение источникатактового сигнала*/#pragma config PWRT = ON /* Разрешена работа таймера включенияпитания*/43#pragma config BOR = OFF /* Запрещен сброс МК по снижению напряженияпитания*/#pragma config WDT = OFF /* Сторожевой таймер отключен*/#pragma config STVR = ON /* Разрешен сброс МК при переполнении стека*/#pragma config LVP = OFF /* Низковольтное программирование запрещено*/4.7 Ввод переменных для подсчета частоты и вывода на динамическуюиндикацию результатаВ языке C различают понятия "тип данных" и "модификатор типа".Модификатор – это число с запятой, а тип данных – это целое число.

Целоечисло со знаком будет иметь как положительные, так и отрицательные значения,а целое без знака – только положительные значения. В языке Си можновыделить пять базовых типов, которые задаются следующими ключевымисловами:- char – символьный;- int – целый;- float – вещественный;- double – вещественный двойной точности;- void – не имеющий значения. 35Модификатор типа unsigned указывает, что переменная может приниматьнеотрицательные значения.unsigned int counter = 0; /*Ввод переменной для счета входящих вмикроконтроллер сигналов*/unsigned char thousand = 0; /*Ввод переменной для вывода на экран разрядатысяч*/unsigned char hundred = 0; /*Ввод переменной для вывода на экран разрядасотен*/unsigned char ten = 0; /*Ввод переменной для вывода на экран разрядадесятков*/unsigned char one = 0; /*Ввод переменной для вывода на экран разряда44едениц*/char led_on = 0;unsigned char dig[10] ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; /*Ввод массива, длявывода цифр на динамическую индикацию*/4.8 Настройка прерывания высокого уровняКлючевое слово void, при использовании в качестве типа возвращаемогозначения для метода, указывает, что метод не возвращает значение.Ключевое слово _asm означает, что мы перешли на язык ассемблера.Оператор GOTO – это оператор перехода к какой-либо строчке программы,который работает только в ассемблере.void prervo (void);#pragma interrupt prervo#pragma code high_vector = 0x08void high_vector (void){_asm GOTO prervo _endasm}#pragma code4.9 Функция обработки прерыванияДля начала необходимо разрешить прерывания по таймеру 1, за это отвечаетрегистр PIR1.Прерывание по таймеру 1 нужно посчитать по формуле 2.1.

Полученноезначение должно быть загружено в регистр TMR1H и TMR1L в двоичном виде,до момента переполнения таймера.В нашем случае таймер должен досчитать до 5 мс, то есть 5000 мкс, таймерработает в 16-разрядном режиме, то есть B равно 65536, кварцевый резонаторвыдает частоту в 4 МГц, а предделитель настроен на деление на 4. Данная45зависимость будет выглядеть следующим образомПолученный результат нужно перевести в двоичную систему счисления,чтобы определить какие значения требуется в и : 6428610 = 11111011 0001 11102. Следовательно, в требуется загрузить число 111110112, а в – 0001 11102.Чтобы таймер работал нужным нам образом, его нужно настроить.Регистром управления данного таймера является T1CON, приведенный вприложении 2.Операторы switch и case помогают управлять сложными условнымиоперациями и операциями ветвления.

Оператор switch передает управление воператор внутри своего тела. Управление передается оператору, значениевыражения case константное-выражение которого соответствует значениювыражения switch (выражение). Оператор switch может содержать любое числоэкземпляров case, однако никакие две константы варианта в одном оператореswitch не могут иметь одинаковые значения.

Выполнение тела оператораначинается с выбранного оператора и продолжается до конца тела оператораили пока управление не будет передано за пределами тела оператора с помощьюоператора break.void prervo (void) //Функция прерывания{if (PIR1bits.TMR1IF == 1) //Флаг прерывания по переполнению TMR1{PIR1bits.TMR1IF = 0; //Сброс флага переполнения TMR1TMR1H = 0b11111011; //Запись числа в TMR1HTMR1L = 0b00011110; //Запись числа в TMR1Lswitch (led_on) //Переключение разрядов динамической46индикации{case 0: //Разряд тысяч{led_on++; //Увеличение переменной led_on на 1Reset_Enumber;LED = *(dig+thousand); /*Вывод в порт С цифры измассива*/Set_Tnumber; break;}case 1: //Разряд сотен{Reset_Tnumber;led_on++; //Увеличение переменной led_on на 1LED = *(dig+hundred); /*Вывод в порт С цифры измассива*/Set_Snumber; break;}case 2: //Разряд десятков{Reset_Snumber;led_on++; //Увеличение переменной led_on на 1LED = *(dig+ten); /*Вывод в порт С цифры из массива*/Set_Dnumber; break;}case 3: //Разряд единиц{Reset_Dnumber;led_on = 0; //Увеличение переменной led_on на 1LED = *(dig+one);/*Вывод в порт С цифры из массива*/47Set_Enumber; break;}}}Для работы с таймером 0 необходимо его правильно настроить с помощьюрегистра управления режимом прерываний INTCON, приведенным вприложении 1.В данном случае таймер 0 должен досчитать до 1 секунды, то есть 1000000мкс, таймер работает в 16-разрядном режиме, то есть B равно 65536, кварцевыйрезонатор выдает частоту в 4 МГц, а предделитель настроен на деление на 256.Данная зависимость будет выглядеть следующим образомПолученный результат нужно перевести в двоичную систему счисления,чтобы определить какие значения требуется в TMR0H и TMR0L: 6153610 = 11110000 0110 00002.

Следовательно, в TMR0H требуется загрузить число 1111 00002,а в TMR0L – 1011 11102.Чтобы таймер работал нужным нам образом, его нужно настроить.Регистром управления данного таймера является T0CON, приведенный вприложении 2.if (INTCONbits.TMR0IF == 1) //Флаг прерывания по переполнениюTMR0{INTCONbits.TMR0IF = 0; /*сброс флага прерывания попереполнению TMR0*/TMR0H = 0b11110000; //Запись числа в TMR0HTMR0L = 0b01100000; //Запись числа в TMR0H48thousand = hundred = ten = one = 0; //Сброс переменных в 0/*подсчет количества разрядов динамической индикации*/for (; counter >= 1000; counter = counter - 1000) thousand++;for (; counter >= 100; counter = counter - 100) hundred++;for (; counter >= 10; counter = counter - 10) ten++;for (; counter >= 1; counter--) one++;counter = 0; //Сброс counter в 0}Для подсчета количества импульсов, поступающих в микроконтроллер втечении секунды, используем прерывание по порту B, то есть, когда поступаетимпульс на ножку порта B, происходит прерывание и значение переменнойcounter увеличивается на 1.if (INTCONbits.INT0IF == 1) /*Флаг прерывания по изменениюсигнала на ножке RB0*/{INTCONbits.INT0IF = 0; /*Сброс флага прерывания по изменениюсигнала на ножке RB0*/counter++; //Увеличение переменной counter на 1}}4.10 Главная функцияГлавная функция нужна только для настройки определенных параметров,таких как настройка портов ввода/вывода, разрешение различных прерываний, атак же настройка таймеров.void main (void) //Основная функция{TRISB = 0b00000001; //Настройка первого бита порта B на вводинформацииPORTB = 0b00000000; //Обнуление значений порта B49TRISC = 0b00000000; //Настройка порта C на вывод информацииPORTC = 0b00000000; //Обнуление значений порта CINTCONbits.PEIE = 1; //Разрешение периферийных прерыванийINTCONbits.INT0IE = 1; //Разрешение внешнего прерыванийINTCON2bits.INTEDG0 = 1; //Прерывание по фронту входящего сигналаINTCONbits.

TMR0IE = 1; /*Разрешение прерывания по переполнениюTMR0*/ 33PIE1bits. TMR1IE = 1; //Разрешение прерывания по переполнениюTMR1/* 33 Запись в TMR0 числа равного 1 секунде*/TMR0H = 0b11110000;TMR0L = 0b01100000;T0CON = 0b10000111; // коэф. деления 256T1CON = 0b00110001; // коэф. деления 8/*Запись в TMR1 числа равного 5 миллисекундам*/TMR1H = 0b11111011;TMR1L = 0b00011110;INTCONbits.GIE = 1; //Разрешение глобальных прерыванийwhile (1) //Бесконечный цикл{}}50515 МОДЕЛИРОВАНИЕ РАБОТЫ ЧАСТОТОМЕРА В ПРОГРАММЕPROTEUS5.1 Введение в систему Proteus 8.0Программный пакет Proteus позволяет производить моделированиепринципиальных схем, используя обширную библиотеку моделей электронныхкомпонентов, включая 29 следующие устройства: микроконтроллеры, логическиеэлементы, триггеры, счетчики, светодиоды, ЖК индикаторы, температурныедатчики, кнопки, переключатели и т.д.

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

Тип файла
PDF-файл
Размер
436,14 Kb
Высшее учебное заведение

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

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