Помощь в написании студенческих работ
Антистрессовый сервис

Разработка модуля генератора специальных функций

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Широтно-импульсная модуляция (по своей сути — преобразование напряжение-время) может использоваться как промежуточный этап при переходе от аналоговых к цифровым величинам. Длительность временного промежутка легко измерить, подсчитав число импульсов напряжения стабильной опорной частоты, которое прошло за этот промежуток. Сделать это можно с помощью счетчика, на счетный вход которого поступают… Читать ещё >

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

— 1 ;

Курсовой проект По дисциплине «Микроконтроллеры»

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

Студент: Мингалимов Р.Ш.

Задание Преобразователь параллельного 8-разрядного двоичного кода в длительность импульса. Двоичный код подается на линии параллельного порта МК. Сигнал начала преобразования: положительный фронт дискретного сигнала. ШИМ-сигнал на выходе МК формируется сразу после появления сигнала преобразования и остается без изменений до появления следующего импульса сигнала преобразования. Для вычисления длительности импульса ШИМ сигнала используется значение двоичного входного кода на момент появления сигнала преобразования. При включении питания до прихода первого сигнала преобразования ШИМ сигнал должен на выходе МК отсутствовать (лог. 0). Диапазон значений входного двоичного сигнала: 0×00 — 0хFF. Коэффициент заполнения ШИМ-сигнала: 10% - 90%. Частота ШИМ-сигнала 10 000Гц Разработать принципиальную схему и программное обеспечение модуля генератора специальных функций: треугольный сигнал. Для генерации сигналов используется внутренний ШИМ микроконтроллера. Частота сигнала задается через последовательный интерфейс RS-232. Полоса частот входного треугольного сигнала: 10Гц — 1000Гц. Выходной сигнал — последовательность ШИМ-сигнала.

Протокол обмена данными. Пример запроса к разрабатываемому устройству: «:F<�пробел>100», где `100' - частота сигнала, Гц. Пример ответа: «ОК». Данные передаются в символьном виде (ASCII). Скорость обмена данными 9600 бит/с.

преобразование схема программный контроллер

Введение

Микроконтроллер (MCU) — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ и ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи. Использование одной микросхемы, вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров.

Разрабатываемый преобразователь представляет собой цифро-аналоговый преобразователь с широтно-импульсной модуляцией. Это простейший тип ЦАП. Стабильный источник тока или напряжения периодически включается на время, пропорциональное преобразуемому цифровому коду, далее полученная импульсная последовательность фильтруется аналоговым фильтром низких частот. Такой способ часто используется для управления скоростью электромоторов, а также становится популярным в Hi-Fi аудиотехнике.

1. Структурная схема Рис. 1. Структурная схема преобразователя Рис. 2. Временные диаграммы В основе метода формирования сигнала с широтно-импульсной модуляцией (ШИМ-сигнала) используется та же идея, что и в АЦП развертывающего типа: на положительный вход устройства сравнения подается преобразуемый постоянный сигнал, на отрицательный вход — линейно изменяющийся во времени сигнал (рисунок 1). Сравнивающее устройство выдает сигнал логического нуля, если опорный линейно изменяющийся сигнал больше преобразуемого, и наоборот.

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

Широтно-импульсная модуляция (по своей сути — преобразование напряжение-время) может использоваться как промежуточный этап при переходе от аналоговых к цифровым величинам. Длительность временного промежутка легко измерить, подсчитав число импульсов напряжения стабильной опорной частоты, которое прошло за этот промежуток. Сделать это можно с помощью счетчика, на счетный вход которого поступают импульсы опорной частоты, а на вход разрешения счета — измеряемый импульс. При этом на выходе счетчика сразу получается цифровой код N, пропорциональный измеряемому напряжению.

Элементная база:

Резисторы:

Обозн.

Наименование

Количество

R1

С2−29В-0,125Вт-10кОм0,1%

R2

С2−29В-0,125Вт-10кОм0,1%

Конденсаторы:

Обозн.

Наименование

Количество

C1

К50−35 100 мкФ x 10 В (20%)

C2

К10−17А-М47 20пФ x 50 В, (10%)

C3

К10−17А-М47 20пФ x 50 В, (10%)

C4

К50−35 10 мкФ x 10 В (20%)

С5

К53−1А-0.1 мкФ x 10 В (20%)

С6

К53−1А-0.1 мкФ x 10 В (20%)

С7

К50−35 100 мкФ x 10 В (20%)

Кварцевый генератор:

Обозн.

Наименование

Примечание

Количество

Z1

C-MAC IQXO-22C BU

4 МГц; 5В; TTL/КМОП

Индуктивности:

Обозн.

Наименование

Количество

L1

EC24−100K, 10 мкГн, 10%

Микроконтроллеры:

Обозн.

Наименование

Примечание

Количество

DD1

AT90S2313

max рабочее напряжение 6.6В;

пост. ток через вывод порта 40 мА;

пост. ток между VCC и GND 200 мА

Мультиплексоры:

Обозн.

Наименование

Количество

MS

MC74HC4051A

3. Принципиальная схема Рис. 3. Принципиальная схема преобразователя

4. Программное обеспечение Программное обеспечение для устройства написанное и отлажено среде AVR Studio.

Рис. 4. Блок-схема программного обеспечения

Пояснения к работе программного обеспечения В программе обрабатывается только одно прерывание — прерывание по совпадению таймера/счетчика 1

Обработка сброса:

Устанавливаем необходимые регистры:

— указатель стека

— инициализируем порты B и D

— очищаем все необходимые временные регистры

— разрешаем прерывание по совпадению таймера/счетчика 1

— считываем данные с порта B

— записываем эти данные в регистр сравнения таймера/счетчика 1

— регистр управления таймером/счетчиком 1 A (устанавливаем режим работы таймера — 8-ми разрядный ШИМ)

— регистр управления таймером/счетчиком 1 B (настраиваем коэффициент деления системной частоты)

— устанавливаем сигнал на выходе PD6 порта D

Ждем прерывание (выполняется программа).

Программа представляет собой простой бесконечный цикл.

Выполняем прерывание.

Обработка прерывания по совпадению таймера/счетчика 1:

— устанавливаем или сбрасываем (в зависимости от ситуации) сигнал на выходе PD6

— вычитаем из временного регистра, в котором содержится период ШИМ-сигнала, длительность прошедшего ШИМ-импульса (значение, снятое с порта B)

— получившееся значение записываем в регистр совпадения таймера/счетчика 1

— сбрасываем таймер/счетчик 1

— возвращаемся в программу При новом совпадении регистра значения с регистром совпадения таймера/счетчика 1 программа вновь уходит на прерывание.

Листинг ПО:

.INCLUDE «2313def.inc»

;Определение сегмента кода

.CSEG

.ORG0x0000

;Таблица векторов прерываний

rjmpReset

rjmpINT0_interrupt

rjmpINT1_interrupt

rjmpT1CAPT_interrupt

rjmpT1COMP_interrupt

rjmpT1OVF_interrupt

rjmpT0OVF_interrupt

rjmpUART_RX_interrupt

rjmpUART_UDRE_interrupt

rjmpUART_TX_interrupt

rjmpANCOMP_interrupt

Reset:;Прерывание по сбросу микроконтроллера

;Инициализация периферии МК

;Очистка необходимых временных регистров

clrr16

clrr17

clrr18

clrr25

clrr28

clrr29

clrr30

clrr31

;Настройка указателя стека

ldir16, 0x7F

outSPL, r16

;Инициализация порта B

ldi r31, 0×00

out DDRB, r31

;Инициализация порта D

ldi r31, 0×40

out DDRD, r31

;Разрешение прерывания от функции выходного сравнения для таймера/счетчика 1

ldir17, 0×40

outTIMSK, r17

;Инициализация регистра выходного сравнения значением, снятым с порта B

in r31, PORTB

subr31, 0x0C

ldi r25, 0

outOCR1AH, r25

out OCR1AL, r31

;Включение таймера/счетчика 1

;Установка работы таймера в режиме 8-ми разрядного ШИМ

ldir18, 0×01

out TCCR1A, r17

;Выбор делителя системной частоты 1

ldir17, 0×01

outTCCR1B, r17

;Включение входа PD5

sbi PORTD, 6

;Глобальное разрешение прерываний

sei

;Программа

cycle:

rjmp cycle ;Бесконечный цикл

;Обработчики прерываний

T1COMP_interrupt:;прерывание по совпадению таймера/счетчика 1

in r30, PORTD;Проверка, включен ли

sbrc r30, 6;выход PD6

cbi PORTD, 6;Если да, то сбрасываем

com r30

sbrc r30, 6

sbi PORTD, 6;Если нет, то устанавливаем

ldir17, 0xFF;Запоминаем период ШИМ-сигнала

ldi r18, 29

adc r17, r18

ldi r18, 1

in r28, PORTB;Считываем новые данные с порта B

subr28, 0x0C

sbc r17, r28

mov r28, r17

out OCR1AL, r28;Заносим в регистр сравнения

;новое значение длины импульса

ldi r31, 0×00;Сбрасываем счетчик Т/С 1

out TCNT1L, r31

reti ;Возврат из прерывания

T1OVF_interrupt:

reti

T0OVF_interrupt:

reti

UART_RX_interrupt:

reti

UART_UDRE_interrupt:

reti

UART_TX_interrupt:

reti

ANCOMP_interrupt:

reti

INT0_interrupt:

reti

INT1_interrupt:

reti

T1CAPT_interrupt:

reti

Заключение

В данном проекте была разработана схема устройства для преобразования параллельного 8-ми разрядного кода в длительность ШИМ-сигнала. Все элементы в схеме подобраны правильно, поэтому данное устройство удовлетворяет поставленным требованиям. Программное обеспечение написано с помощью команд контроллера AT90S2313. Программное обеспечение проверенно и отлажено в среде AVR Studio 4.0.

1. Хоровиц П., Хилл У., Искусство схемотехники: Пер. с англ. — Изд. 6-е. — М.: Мир, 2003 — 704 с.

2. Конспекты лекций по дисциплинам «Схемотехника» и «Микроконтроллеры».

3. Баранов В. Н., Применение микроконтроллеров AVR: схемы, алгоритмы, программы — М.: издательский дом «Додэка-XXI», 2004 — 288 с.

4. Квеглис С. В., Микроконтроллеры AVR: Метод. пособие. — Новосибирск: Изд-во НГТУ, 2003.

5. www.analog.com

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