Микропроцессорная техника в системах управления

Тип работы:
Курсовая
Предмет:
Коммуникации, связь, цифровые приборы и радиоэлектроника


Узнать стоимость

Детальная информация о работе

Выдержка из работы

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

Федеральное государственное автономное образовательное

учреждение высшего профессионального образования

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

ИНСТИТУТ РАДИОТЕХНИЧЕСКИХ СИСТЕМ УПРАВЛЕНИЯ

КАФЕДРА СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ

Пояснительная записка к курсовой работе

«Зарубежные системы управления качеством»

по курсу:

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

Выполнил:

студент группы РТбо 4−8

Беззубов В. Г.

Проверил:

Югай В. Я.

Таганрог 2014 г.

Оглавление

Введение

Постановка задачи

Принципиальная схема устройства

Алгоритм программной реализации и текст программы

Заключение

Список литературы

Введение

Микроконтроллеры в современном мире на много чаще встречаются в жизни, чем это кажется.

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

Применение микроконтроллеров разниться от задачи устройства и его сложности. Например, для простого отсчета времени (секундомер, часы) можно применить самый просто микроконтроллер серии Tiny ATtiny2313.

Современная микроэлектронная элементная база позволяет при невысоких затратах на аппаратные средства использовать разнообразные алгоритмы цифровой обработки данных, а их преимущества общеизвестны. Вес и роль аналоговых средств существенно снизилась в силу недостаточной точности, стабильности, функциональной гибкости и технологичности. Основная область применения аналоговых устройств — предварительная подготовка сигналов для преобразования в цифровой формат.

В данном курсовой проекте будет рассмотрена светомузыкальная установка на примере микроконтроллера ATmega8.

Постановка задачи

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

Предусмотреть, чтобы схема была универсальной, т. е. чтобы МК мог управлять не только светодиодами, но и лампами накаливания.

Т.к. в схеме присутствует высоковольтная часть необходимо предусмотреть гальваническую развязку.

Рис. 1 — Цветомузыкальная установка без корпуса

Рис. 2 — Цветомузыкальная установка в корпусе

Переднюю панель устройства оборудовать индикаторами (светодиодами), для того чтобы видеть копию сигнала, который подается на высоковольтную часть. Простая индикация позволит легче обнаруживать ошибки. Например: Если лампы не горят, а панель индикации работает нормально, то из этого следует, что проблему стоит искать в высоковольтной части.

цифровой микроконтроллер звуковой сигнал

Принципиальная схема устройства

Принципиальная схема разделена на две части. 1 часть — обработка и управление выходными сигналами. 2 часть — высоковольтная схема с лампами накаливания.

Рис. 3 — Принципиальная схема

Рис. 4 — Часть высоковольтной части

Рис. 5. — Разводка принципиальной схема (обработка и управление выходными сигналами)

Рис. 6 — Разводка принципиальной схема (высоковольтная часть)

Алгоритм программной реализации и текст программы

1. Подача (приём) звукового сигнала.

2. Обработка звукового сигнала.

3. Вывод заданного уровня сигнала в зависимости от поданного сигнала.

Код программы написан на языке Си, занимает в памяти 5кб.

МК ATmega8 имеет 8 КБ программной памяти, 1 КБ SRAM, 512 байт EEPROM, и богатый набор периферийных устройств, из-за чего он с лихвой покрывает требования к устройству. Выбор М К сделан умышленно, чтобы иметь возможность совершенствовать устройство и наращивать его функциональные возможности.

При необходимости код может быть перенесён на другие МК семейства ATmega.

Текст программы

#include < string. h>

#include < avr/io. h>

#include < avr/pgmspace. h>

#include < avr/interrupt. h>

#include «ffft. h»

#include «mydefs. h»

int16_t capture[FFT_N];

complex_t bfly_buff[FFT_N];

uint16_t spektrum[FFT_N/2];

uint16_t pwm_setting[6];

uint8_t counter[6];

volatile uint8_t peak[6];

const uint16_t pwmtable10[64] PROGMEM = { 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 21, 23, 26, 29, 32, 36, 40, 44, 49, 55, 61, 68, 76, 85, 94, 105, 117, 131, 146, 162, 181, 202, 225, 250, 279, 311, 346, 386, 430, 479, 534, 595, 663, 739, 824, 918, 1023 };

/* Таймер 1 */

ISR (TIMER1_COMPA_vect) {

static uint16_t pwm_cnt = 0;

uint8_t tmp = 0;

OCR1A += (uint16_t) T_PWM;

if (pwm_setting[0] > pwm_cnt) tmp |= LED1;

if (pwm_setting[1] > pwm_cnt) tmp |= LED2;

if (pwm_setting[2] > pwm_cnt) tmp |= LED3;

if (pwm_setting[3] > pwm_cnt) tmp |= LED4;

if (pwm_setting[4] > pwm_cnt) tmp |= LED5;

if (pwm_setting[5] > pwm_cnt) tmp |= LED6;

LED_PORT = tmp;

if (pwm_cnt == (PWM_STEPS — 1))

pwm_cnt = 0;

else

pwm_cnt++;

if ((pwm_cnt == 512) || (pwm_cnt == 0)) {

if (counter[0] == 0)

if (peak[0]) peak[0]--;

if (counter[1] == 0)

if (peak[1]) peak[1]--;

if (counter[2] == 0)

if (peak[2]) peak[2]--;

if (counter[3] == 0)

if (peak[3]) peak[3]--;

if (counter[4] == 0)

if (peak[4]) peak[4]--;

if (counter[5] == 0)

if (peak[5]) peak[5]--;

}

}

/* Захват сигнала */

void capture_wave (int16_t *buffer, uint16_t count) _BV (ADFR) while (--count);

ADCSRA = 0;

}

int main (void) {

uint16_t s;

LED_DIR |= (LED1 | LED2 | LED3 | LED4 | LED5 | LED6);

LED_PORT &= ~(LED1 | LED2 | LED3 | LED4 | LED5 | LED6);

TCCR1B = (1 < < CS10);

TIMSK |= (1 < < OCIE1A);

sei ();

for (; ;) {

capture_wave (capture, FFT_N);

fft_input (capture, bfly_buff);

fft_execute (bfly_buff);

fft_output (bfly_buff, spektrum);

memset (capture, 0, 12);

for (uint8_t n = 0; n < FFT_N / 2; n++) {

s = spektrum[n];

if (n == 0) {

if (s <= SCORE_MAX) capture[0] = s;

else capture[0] = SCORE_MAX;

}

if ((n >= 1) & & (n <= 3)) {

if ((capture[1] + s) <= SCORE_MAX) capture[1] += s;

else capture[1] = SCORE_MAX;

}

if ((n >= 4) & & (n <= 11)) {

if ((capture[2] + s) <= SCORE_MAX) capture[2] += s;

else capture[2] = SCORE_MAX;

}

if ((n >= 12) & & (n <= 21)) {

if ((capture[3] + s) <= SCORE_MAX) capture[3] += s;

else capture[3] = SCORE_MAX;

}

if ((n >= 22) & & (n <= 34)) {

if ((capture[4] + s) <= SCORE_MAX) capture[4] += s;

else capture[4] = SCORE_MAX;

}

if ((n >= 35) & & (n <= 63)) {

if ((capture[5] + s) <= SCORE_MAX) capture[5] += s;

else capture[5] = SCORE_MAX;

}

}

for (uint8_t y = 0; y < 6; y++) {

if (capture[y] > THRESHOLD) capture[y] -= THRESHOLD;

else capture[y] = 0;

capture[y] /= 256;

if (capture[y] > 63) capture[y] = 63;

if (counter[y]) counter[y]--;

if (capture[y] >= peak[y]) {

peak[y] = capture[y];

counter[y] = 3;

}

cli ();

pwm_setting[y] = pgm_read_word (& pwmtable10[peak[y]]);

sei ();

}

}

}

Заключение

При длительном действии устройства наблюдается легкий нагрев элементов высоковольтной части. Добавлены радиаторы к корпусу и прикреплен вентилятор.

В данной курсовой работе мы познакомились с микроконтроллерами семейства AVR, изучили их общую структуру.

Семейство микроконтроллеров AVR поддержано полноценным, профессиональным и доступным набором средств поддержки разработок — как аппаратных, так и программных. AVR обеспечивается также квалифицированной технической поддержкой специалистов корпорации Atmel.

В процессе выполнения курсовой работы был рассмотрен практический пример подключения микроконтроллера (на примере схемы цветомузыкальной установки).

Список литературы

1. Иванов Ю. И., Югай В. Я. Микропроцессорная техника в системах управления. Часть II: Учебное пособие. — Таганрог: Изд-во ТТИ ЮФУ, 2009.

2. Ю. И. Иванов, В. Я. Югай. Микропроцессорные устройства систем управления: Методическое руководство к лабораторным работам. — Таганрог: Изд-во ТРТУ, 2004.

3. Евстифеев А. В. Микроконтроллеры AVR семейства Tiny и Mega фирмы ATMEL. 2-е издание. М.: Додэка-XXI, 2005

4. Прокопенко В. С. Программирование микроконтроллеров atmel на языке си. 2012 г.

ПоказатьСвернуть
Заполнить форму текущей работой