Главная » Просмотр файлов » ВКР Шавро В.В.

ВКР Шавро В.В. (1228554), страница 4

Файл №1228554 ВКР Шавро В.В. (Разработка измерителя мощности потребителя) 4 страницаВКР Шавро В.В. (1228554) страница 42020-10-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Объявляем библиотеку, содержащую описание и объявление всех специальных функциональных регистров микроконтроллера PIC18F452:

- #include <p18f452.h>;

- #include <delays.h> – библиотека, включающая в себя функции временных задержек;

- #include <math.h> – библиотека для простых вычислительных операций;

- #define LCD_Data PORTD – порту D присвоено имя LED;

- #define LCD_Set_E PORTCbits.RC1 = 1 – разрешена передача данных;

- #define LCD_Reset_E PORTCbits.RC1 = 0 – запрещена передача данных;

- #define LCD_Set_RS PORTCbits.RC0 = 1 – включить передача данных;

- #define LCD_Reset_RS PORTCbits.RC0 = 0 – включить передачу команд;

- #pragma config OSC = HS – режим генератора XT;

- #pragma config OSCS = OFF – запрещено переключение источника тактового// сигнала;

- #pragma config PWRT = ON – разрешена работа таймера включения питания;

- #pragma config BOR = OFF – запрещен сброс МК по снижению напряжения// питания;

- #pragma config WDT = OFF – сторожевой таймер отключен;

- #pragma config STVR = ON – разрешен сброс МК при переполнении стека;

- #pragma config LVP = OFF – низковольтное программирование запрещено.

4.3 Объявление переменных

- unsigned char mg_TMR0L = 0 – объявление переменной mg_TMR0L;

- unsigned char mg_TMR0H = 0 – объявление переменной mg_TMR0H;

- char rash = 0 – объявление переменной rash;

- unsigned int timer = 0 – объявление переменной timer;

- float timer_point = 0.00 – объявление переменной timer_point;

- float km = 0.00 – объявление переменной km;

- unsigned char ed = 0 – объявление переменной ed;

- unsigned char des = 0 – объявление переменной des;

- unsigned char sot = 0 – объявление переменной sot;

- char as = 0 – переменная позиции в первой строке дисплея;

- unsigned char stroca1[17] = {'K','.','M','o','s','h','n','o','s','t','i','=','0','.','0','0'} – массив, содержащий текст «Koef. Moshnosti = » – для первой строки дисплея прототипы функций;

- unsigned char number[10] = {'0','1','2','3','4','5','6','7','8','9'}

4.4 Запись данных на LSD

- void Write_LCD (unsigned char data) – функция записи данных на LCD;

- void Add_LCD (unsigned char add) – функция записи адреса символов, отображаемых на LCD;

- void Write_LCD (unsigned char data) – функция записи данных на LCD;

- LCD_Data = data – в порт D помещены данные;

- Delay1TCY() – временная задержка 1 мкс;

- LCD_Set_E – разрешена передача данных;

- Delay10TCYx(5) – временная задержка 10 мкс;

- LCD_Reset_E – запрещена передача данных;

- Delay1KTCYx(5) – временная задержка 1 мс;

- LCD_Data = 0 – очистка порта D.

4.5 Запись символов адреса, отображаемых на LSD

- void Add_LCD (unsigned char add) – функция записи адреса символов, отображаемых на LCD;

- LCD_Reset_RS – включить передачу команд;

- LCD_Data = 0x80 + add – в порт D помещен адрес символа;

- Delay1TCY() – временная задержка 1 мкс;

- LCD_Set_E – разрешена передача данных;

- Delay10TCYx(5) – временная задержка 10 мкс;

- LCD_Reset_E – запрещена передача данных;

- Delay1KTCYx(5) – временная задержка 1 мс;

- LCD_Data = 0 – очистка порта D;

- LCD_Set_RS – включить передачу данных.

4.6 Определение прерывания высокого уровня

- void prervo (void) – прототип функции прерывания;

- #pragma interrupt prervo – функция prervo определяется как;

- #pragma code high_vector = 0x08 – программа обслуживания прерывания;

- void high_vector (void) – с высоким приоритетом по адресу 0х08;

- _asm GOTO prervo _endasm – перейти к программе обслуживания прерывания;

- #pragma code – Вернуться в программный код, выполняемый до прерывания.

Следующий шаг – настройка прерываний по внутреннему сигналу модуля TMR0 и по внешнему сингалу портов RB0 и RB1:

- if (INTCONbits.TMR0IF = 1) – условие появления флага прерывания по TMR0;

- INTCONbits.TMR0IF = 0 – обнуление флага прерывания по таймеру;

- TMR0H = 0 – обнуление старшего байта;

- TMR0L = 0 – обнуление младшего байта;

- T0CONbits.TMR0ON = 0 – выключение TMR0;

- INTCONbits.INT0IF = 0 – обнуление флага прерывания по входу RB0;

- INTCON3bits.INT1IF = 0 – обнуление флага прерывания по входу RB1;

Вывод массива данных на первую строку дисплея:

- Add_LCD (0x0C);

- Write_LCD (*(number + 0));

- Add_LCD (0x0E);

- Write_LCD (*(number + 0));

- Add_LCD (0x0F);

- Write_LCD (*(number + 0))/

Настройка прерываний по внешнему сигналу потов RB0 и RB1:

- if (INTCONbits.INT0IF =1) – условие появления сигнала, напряжения (порт RB0);

- INTCONbits.INT0IF = 0 – обнуление флага прерывания;

- TMR0H = 0 – обнуление старшего байта;

- TMR0L = 0 – обнуление младшего байта;

- T0CONbits.TMR0ON = 1 – включение TMR0;

- if (INTCON3bits.INT1IF == 1) – условие появления сигнала, напряжения (порт RB1);

- INTCON3bits.INT1IF = 0 – обнуление флага прерывания;

- mg_TMR0L = TMR0L – запись значения TMR0L в // mg_TMR0L;

- mg_TMR0H = TMR0H – запись значения TMR0H в // mg_TMR0H;

- rash = 1 – разрешение на проведение расчета;

- T0CONbits.TMR0ON = 0 – выключение TMR0.

4.7 Начало главной программы

Настройка портов микроконтроллера:

- void main(void);

- TRISA = 0b00000011;

- PORTA = 0b00000000;

- TRISB = 0b00000011;

- PORTB = 0b00000000;

- TRISC = 0b00000000;

- TRISD = 0b00000000;

- PORTC = PORTD = 0b00000000;

Настройка разрешения прерываний, выбора активного фронта сигналов прерывания и глобального прерывания:

- INTCONbits.INT0IE = 1 – разрешение прерывания порта RB0;

- INTCON3bits.INT1IE = 1 – разрешение прерывания порта RB1;

- INTCON2bits.INTEDG0 = 1 – выбор активного фронта сигнала, прерывания (по фронту) RB0;

- INTCON2bits.INTEDG1 = 1 – выбор активного фронта сигнала, прерывания (по фронту) RB1;

- INTCONbits.TMR0IE = 1 – разрешение прерывания по TMR0;

- T0CON = 0b00001000 – настройка TMR0;

- TMR0H = 0 – обнуление старшего байта;

- TMR0L = 0 – обнуление младшего байта;

- INTCONbits.PEIE = 1 – разрешение периферийных прерываний;

- INTCONbits.GIE = 1 – разрешение глобального прерывания.

4.8 Инициализация LSD экрана

- Delay1KTCYx(100) – временная задержка 20 мс;

- LCD_Data = 0 – очистка порта D;

- LCD_Reset_RS – включить передачу команд;

- Write_LCD (0b00111000) – функциональные настройки: 8-битная разрядность интерфейса, страницы знакогенератора отключены;

- Write_LCD (0b00001100) – контроль включение выключение дисплея дисплея: дисплей включен, курсора нет, ничего не мигает;

- Write_LCD (0b00000001) – очистка дисплея;

- Write_LCD (0b00000110) – установка способа записи: курсор: сдвигается

вправо, сдвиг дисплея запрещен;

- Write_LCD (0b10000000) – установка DDRAM адреса (0h);

- LCD_Set_RS – включить передачу данных;

- for (as = 0; as <= 15; as++) Write_LCD (*(stroca1 + as)) – вывод текста из;

- Add_LCD (0x42) – массива stroca1 на первую строку дисплея.

4.9 Расчетная часть

- while(1);

- if (rash == 1);

- timer = mg_TMR0H;

- timer = timer << 8;

- timer |= mg_TMR0L;

- timer_point = timer / 5000.00;

- timer_point = timer_point * 0.314;

- km = cos (timer_point);

- for (ed = 0; km >= 1; ed ++) km = km - 1;

- for (des = 0; km >= 0.1; des ++) km = km - 0.1;

- for (sot = 0; km >= 0.01; sot ++) km = km - 0.01;

- rash = 0;

- km = 0;

- Add_LCD (0x0C);

- Write_LCD (*(number + ed));

- Add_LCD (0x0E);

- Write_LCD (*(number + des));

- Add_LCD (0x0F);

- Write_LCD (*(number + sot)).

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

5 МОДЕЛИРОВАНИЕ РАБОТЫ ИЗМЕРИТЕЛЯ МОЩНОСТИ В ПРОГРАММЕ PROTEUS

5.1 Введение в систему Proteus 8.0

Цель данного раздела – изучить интерфейс программы Proteus 8.0 для моделирования схемы измерителя мощности.

Программный пакет Proteus фирмы Labcenter Electronics позволяет производить моделирование принципиальных схем, используя обширную библиотеку моделей электронных компонентов, включая следующие устройства: микроконтроллеры, логические элементы, триггеры, счетчики, светодиоды, ЖК индикаторы, температурные датчики, кнопки, переключатели и т.д. Кроме того, пакет содержит целый набор виртуальных измерительных приборов: осциллограф, логический анализатор, вольтметр, амперметр, спектроанализатор и др. Система Proteus состоит из двух модулей:

- ISIS – программа синтеза и моделирования непосредственно электронных схем;

- ARES – программа разработки печатных плат. Далее рассмотрим более детально модуль ISIS.[8]

5.2. Интерфейс системы схемотехнического моделирования Proteus 8.0

При запуске Proteus 8.0 на мониторе появляется рабочее пространство, разделенное на несколько областей (рис. 5.1). Большую часть занимает окно редактирования 1 (рис. 5.1), в котором проектируется принципиальная схема устройства.

Вверху расположены пункты меню 2, предоставляющие пользователю полный набор возможных действий, имеющихся в Proteus 8.0. Под ним находятся кнопки верхней панели инструментов 3, позволяющие выполнять часто используемые команды. Слева расположена панель инструментов 4, с помощью которых проектируется принципиальная схема устройства. В левом верхнем углу рабочего пространства располагается окно предварительного просмотра 5, позволяющее оперативно перемещаться по схеме проекта. Под ним расположено информационное окно 6, в которое выводятся данные различного рода, в зависимости от того, какая из кнопок нажата на левой панели инструментов 4. В нижнем левом углу находятся четыре кнопки управления процессом моделирования 7:

Рисунок 5.1 – Главное окно системы схемотехнического моделирования Proteus 8.0

- «Воспроизвести» – старт процесса моделирования;

- «Шаг» – пошаговое выполнения программы микроконтроллера;

- «Пауза» – пауза процесса моделирования;

- «Стоп» – остановка процесса моделирования.

5.3 Измеритель коэффициента мощности в программе Proteus 8.0

Для моделирования измерителя коэффициента мощности в программе Proteus 8.0 необходимы следующие элементы схемы:

- микроконтроллер (МК) PIC18F452, рисунок 5.2;

- источник постоянного напряжения, резистор, конденсатор, кварцевый резонатор, рисунок 5.3;

- источники сигналов, рисунок 5.4;

- осциллограф, рисунок 5.5;

- алфавитно жидкокристаллический дисплей (ЖКД), рисунок 5.6;

Рисунок 5.2 – Микроконтроллер (МК) PIC18F452

Рисунок 5.3 – Элементы схемы: С1 - конденсатор; Х1 - кварцевый резонатор; R1 - резистор; V1 - источник постоянного напряжения

Рисунок 5.4 – Источники сигналов: (B) - синусоидальный сигнал напряжения; (SYNC) - синхроимпульс

Рисунок 5.5 – Осциллограф

Алфавитно-цифровые жидкокристаллические дисплеи (ЖКД) предназначены для отображения большого объема информации при низком энергопотреблении. Широкое распространение получили конструкции жидкокристаллических дисплеев, базирующихся на формате семисегментных и точечных матриц. Как правило, алфавитно-цифровые ЖКД состоят из внутреннего контроллера управления и ЖК панели. В схеме моделирования измерителя коэффициента мощности используется алфавитно-цифровой ЖКД LM016L, позволяющий отображать 2 строки по 16 символов, отображающихся в матрице 5/8 точек (рисунок 5.6).

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

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

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

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