Материал: MPU_SU_Laboratornaya_rabota_8_Avramenok_Pshebelskaya

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

МиНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра систем автоматического управления

Лабораторная работа №8

по дисциплине

«Микропроцессорный устройства систем управления»

Вариант 9

Студента гр. 8491

Авраменок Д.А.

Пшебельская Р.С.

Преподаватель

Голик С.Е.

Санкт-Петербург

2020

Цель работы: Программирование принципов управления двигателем постоянного тока на основе генерации сигнала с широтно-импульсной модуляцией (ШИМ).

Задание: Составить программу управления ДПТ для реализации заданного режима ШИМ и графика изменения скорости вращения (максимальная скорость достигается в пике графика). Задание представлено в таблице 1.

Таблица 1.

Вариант задания

График изменения скорости вращения

Режим ШИМ

9

8-разрядная быстрая ШИМ

  1. С хема макета, относящегося к заданию:

Рис.1. Схема макета.

  1. Блок-схема алгоритма программы:

//ноги мк на выход

//неинвертированный ШИМ мк, выбор быстрого ШИМ //предделитель CS32

Да

Нет

Да

//мотор плавно разгоняется и вращается по часовой стрелке

1

4

5

1

2

3

4

5

6

Нет

Нет

//мотор плавно тормозит и вращается по часовой стрелке

//мотор с постоянной скоростью вращается против часовой стрелки

Да

Да

Нет

Нет

//мотор плавно разгоняется и вращается против часовой стрелки

//мотор плавно тормозит и вращается против часовой стрелки

Да

Да

2

3

6

  1. Текст программы на языке С:

#include <mega128a.h>

#include <delay.h>

void main(void)

{

unsigned char i,j;

DDRE |= (1<<3) | (1<<4); //ноги мк на выход

TCCR3A |= (1<<COM3A1)|(1<<COM3B1)|(1<<WGM30); //неинвертированный ШИМ мк, выбор быстрого ШИМ

//предделитель CS32

TCCR3B |= (1<<WGM32)|(1<<CS32);

while (1)

{

for (i = 20; i<=220; i+=10)

{

OCR3AL = i; //мотор плавно разгоняется и вращается по часовой стрелке

delay_ms (200);

}

for (i=220; i>=20; i-=10)

{

OCR3AL = i; //мотор плавно тормозит и вращается по часовой стрелке

delay_ms (200);

}

for (i = 20; i<=220; i+=10)

{

OCR3BL = i; //мотор плавно разгоняется и вращается против часовой стрелки

delay_ms (200);

}

for(i=203,j=0;j<40;j++)

{

OCR3BL = i; //мотор с постоянной скоростью вращается против часовой стрелки

delay_ms (200);

}

for (i = 220; i>=20; i-=10)

{

OCR3BL = i; //мотор плавно тормозит и вращается против часовой стрелки

delay_ms (200);

}

}

}

Вывод: В ходе лабораторной работы было осуществлено управление двигателем постоянного тока на основе генерации сигнала с широтно-импульсной модуляцией. Были исследованы режимы работы таймера счетчиков, структура управляющих регистров используемого таймера/счетчика, назначения битов COM1x1, COM1x0 и зависимости для формирования частоты тактирования.

Источник: https://studfile.net/preview/16437873/