Реализация в пакете AVRStudio
Курсовая работа, 07 Июня 2013, автор: пользователь скрыл имя
Краткое описание
Тиристор не проводит ток в отрицательную полуволну питающего напряжения (изображена пунктиром на рис. 1, б). Но и в положительную полуволну тиристор открывает цепь тока только после того, как на управляющий электрод будет подан импульс управления. В этот момент тиристор открывается и в цепи появляется ток. Сопротивление тиристора резко уменьшается, и все напряжение питания оказывается приложенным к нагрузке.
Содержание
1 Задание………………………………………………………………………………………....2
2 Реализация в пакете LabVIAW……………………………………………………………….3
3 Параметры настройки контроллера………………………………………………………….7
3.1 АЦП…………………………………………………………………………………………..7
3.2 Аналоговый компаратор……………………………………………….……………….…...7
3.3 Таймеры счетчики…………………………………………………………………………...8
4 Реализация в пакете AVRStudio……………………………………………………………....9
4.1 Параметры схемы……………………………………………………………………………9
4.2 Код программы……………………………………………………………………………..10
4.2 Принцип работы программы………………………………………………………………12
4.4 Схема включения контроллера…………………………………………………………….13
5 Заключение…………………………………………………………………………………….14
Вложенные файлы: 1 файл
Курсовая1.doc
— 382.00 Кб (Скачать файл)
Оглавление
Оглавление ………………………………………………………………………………
1 Задание……………………………………………………………
2 Реализация в пакете LabVIAW……………………………………………………………
3 Параметры настройки контроллера…………………………………………………
3.1 АЦП………………………………………………………………………
3.2 Аналоговый компаратор……………………………………………….…
3.3 Таймеры счетчики…………………………………………………………
4 Реализация в пакете AVRStudio………………………………………………………
4.1 Параметры схемы…………………………………………………………………
4.2 Код программы………………………………………………………
4.2 Принцип работы программы………………………………………………………
4.4 Схема включения контроллера…………………………………………………
5 Заключение……………………………………………………
1 Задание
Написать программу управления однофазным однополупериодным выпрямителем в средах LabVIAW и AVRstudio.
На рис.1, а показан однофазный однополупериодный управляемый выпрямитель.
Рис.1(однофазный однополупериодный управляемый выпрямитель а-схема, б-график выходного напряжения)
Тиристор не проводит ток в отрицательную полуволну питающего напряжения (изображена пунктиром на рис. 1, б). Но и в положительную полуволну тиристор открывает цепь тока только после того, как на управляющий электрод будет подан импульс управления. В этот момент тиристор открывается и в цепи появляется ток. Сопротивление тиристора резко уменьшается, и все напряжение питания оказывается приложенным к нагрузке.
После этого тиристор теряет управление и закрывается только после того, как анодное напряжение снизится до нуля и ток через теристор станет равным нулю. В отрицательную полуволну тиристор не работает. В следующий положительный полупериод опять необходимо подать управляющий импульс, который открывает тиристор.
Величина выходного напряжения выпрямителя в зависимости от угла регулирования:
3 Параметры настройки контроллера
3.1 Ацп
МК ATmega8 номер вывода подключенного к входу АЦП задается с помощью регистра ADMUX – регистр мультиплексора АЦП. Давайте посмотрим какие биты за что отвечают в этом регистре.
Биты 7:6 – REFS1:REFS0. Биты выбора опорного напряжения
REFS1:REFS0
- AREF
- Avcc, с внешним конденсатором на AREF
10 Резерв
11 Внутренний 2.56В источник, с внешним конденсатором на AREF
Бит 5 – ADLAR. Выравнивание по левому краю в регистровой паре.
Биты 3:0 – MUX3:MUX0 – Биты выбора аналогового канала.
MUX3:0
- ADC0
- ADC1
0010 ADC2
0011 ADC3
0100 ADC4
0101 ADC5
0110 ADC6
0111 ADC7
ADCSR – регистр контроля и состояния АЦП. В МК Atmega8 он называется ADCSRA.
Бит 7 – ADEN. Разрешение АЦП.
Бит 6 – ADSC. Запуск преобразования (в режиме однократного преобразования)
Бит 5 – ADFR. Выбор режима работы АЦП
Бит 4 – ADIF. Флаг прерывания от АЦП. Бит устанавливается, когда преобразование закончено.
Бит 3 – ADIE. Разрешение прерывания от АЦП
Биты 2:1 – ADPS2:ADPS0. Тактовая частота АЦП
ADPS2:ADPS0
- СК/2
- СК/2
010 СК/4
011 СК/8
100 СК/16
101 СК/32
110 СК/64
111 СК/128
3.2Аналоговы компаратор
ACSR
Бит 7 - ACD: бит выключения компаратора.
Бит 6 - ACBG: выбор опорного напряжения аналогового компаратора.
Бит 5 - ACO: выход компаратора.
Бит 4 - ACI: флаг прерывания компаратора.
Бит 3 - ACIE: разрешение прерывания от компаратора.
Бит 2 - ACIC: подключение выхода компаратора к схеме захвата Таймера/Счетчика1. Бит 1:0 - ACIS1:ACIS0: настройка условий срабатывания прерываний от компаратора.
00 Прерывание по изменению на выходе
01 Зарезервировано
10 Прерывание по спаду
11 Прерывание
по фронту
3.3 Таймеры счетчики
TCCRnA - регистр управления A
Биты 7:6 - COMnA 1:0: контролируют поведение выхода OCnA
Биты 5:4 - COMnB 1:0: контролируют поведение выхода OCnB
00 Выключен
01 Переключение уровня на противоположный
10 Переключение в «0»
11 Переключение в «1»
Биты 3:2 - FOCnA, FOCnB: принудительное изменение состояния выходов OCnA и OCnB.
Биты 1:0 - WGMn1, WGMn0:настройка ТСn для работы в качестве широтно-импульсного модулятора
TCCRnB - регистр управления В
Бит 7 - ICNCn: подавление дребезга на входе ICPn.
Бит 6 - ICESn: выбор фронта срабатывания прерывания по захвату..
Бит 5 - не используется
Биты 4:3 - WGMn 3:2: настройка ШИМ.
Биты 2:0 - CSn 2:0: выбор тактирования ТСn
000 Нет источника (таймер выключен)
001 CLK
010 CLK/8
011 CLK/64
110 Внешний источник тактирования. По спаду.
TIMSK - регистр маски прерываний таймеров/счетчиков
Бит 7 - OCIE2: прерывание по совпадению ТС2
Бит 6 - TOIE2: прерывание по переполнению ТС2
Бит 5 - TICIE1: прерывание по захвату ТС1
Бит 4 - OCIE1A: прерывание по совпадению A ТС1
Бит 3 - OCIE1B: прерывание по совпадению В ТС1
Бит 2 - TOIE1: прерывание по переполнению ТС1
Бит 1 - не используется
Бит 0 - TOIE0: прерывание по переполнению ТС0
TIFR - регистр флагов прерываний таймеров/счетчиков
Рис 2(Общий вид программы, схема)
Рис. 3 (Общий вид программы, интерфейс)
На (рис.2) показана схема программы выполняющая генирацию синусоидального сигнала, вычисление угла регулирования в зависимости от величины заданного выходного напряжения. Вывод входного,выходного и среднего выходного напряжения и пусковых импульсов тиристора. Так же организованна обратная связь по напряжению.
В подпрограмме «Генерация sin» (рис. 4) используя матиматическую функцию «sin» для вычисления Uвх с шагом 1 электрический градус но заданному параметру Um. с помощью функции «tan» генерируется шум ограниченный по аплитуде ±10В.
Рис. 4 (Генерирование входного сигнала)
В подпрограмма «Компаратор»
реализуется гистерезисный
Рис. 5(Компаратор)
Подпрограмма «Регулирование угла управления» (рис. 6) расчитывает теоритическое значение угла регулирования альфа по формуле: . Cравнивает значение Uвых заданного с Uвых и при равенстве значений выводит теоритически расчитанный угол альфа, а при неравенстве выводит значение .
Рис. 6 (Расчет угла регулирования)
Uсред - среднее значение выходного напряжения. Вычисляется с помощью стандартной функции интегрирования.
В подпрограмме «Генерация импульсов» (рис. 7) формируется конечное число импульсов и выходной сигнал в зависимости от угла регулирования. Отсчет угла регулирывания ведется по принципу: увеличение значения счетчика I на единицу равно увиличению времени на один электрический градус. Из выше сказанного следует, для того что бы отложить α надо запомнить значение счетчика I в момент срабатывания компаратора и вычитая это значение из текущего, а затем сравнивать с α. Что и реализованно в подпрограмме. Ширина импульса и период импульса задается в электрических градусах. Для подачи импульсов строится счетчик который в каждый такт цикла главной программы прибавляет единицу к предыдущему значению. Начинается счет с угла α и обнуляется при достижении значением счетчика величины периода импульса, а возвращает логическую единицу только при значениях счетчика меньшем ширины импульса. Счетчик обнуляется при отключении компаратора.
Для отсчета количества импульсов так же используется счетчик который запускается с момента времени α и возвращает логическую единицу до значения 3*Период импульса. Счетчик обнуляется при отключении компаратора.
Формируется конечное число
импульсов с помощью
Рис.7 (Генерация импульсов)
Результат выполнения программы показан на рис.8. Выходное напряжение незначительно откланяется от заданного при переходе через 0, дребезг отсутствует, что достигается благодаря гистерезисному компаратору. Три импульса управления высокой частоты уменьшают габариты согласующего устройства.
Рис.8 (результат выполнения программы)
4.1. Параметры схемы.
Для написания программы зададим входные и выходные параметры Um=310B, Uвых=70В. Расчитаем значение α по формуле α=65°. Выбираем микроконтроллер, в котором должно быть: ацп, аналоговый компоратор, прерывание таймера по совпадению значений регистров и шим. По этим параметрам выбираем контроллер Atmega8a.
Параметры схемы включения контроллера:
Uacd0=1,4 В
ΔUain1=0...2.44 B
Uain1(переключение компаратора)=1.22 В
4.2. Код программы.
- .include "m8def.inc" ;
- .def temp =r16 ;
- .def ygl =r17 ;
- .def tp =r18 ;
- .def uvx =r19 ;
- .def prom =r20 ;
- .def imp =r21 ;
- .DEVICE Atmega8 ;
- .cseg ; Начало программного сегмента
- .org 0x000 ;
- rjmp init ;переход на метку(часть инициализации)
- ;таблица векторов прерываний
- ;rjmp RESET ;
- rjmp INT_0 ;
- rjmp INT_1 ;
- .org 0x003 ;
- rjmp TIMER2_COMP ;
- rjmp TIMER2_OVF ;
- rjmp TIMER1_CAPT ;
- rjmp TIMER1_COMPA ;
- rjmp TIMER1_COMPB ;
- rjmp TIMER1_OVF ;
- .org 0x009 ;
- rjmp TIMER0_OVF ;
- rjmp SPI_STC ;
- rjmp USART_RXC ;
- rjmp USART_UDRE ;
- rjmp USART_TXC ;
- .org 0x00e ;
- rjmp ADC_CC ;
- rjmp EE_RDY ;
- .org 0x010 ;
- rjmp ANA_COMP ;
- rjmp TWI ;
- rjmp SPM_RDY ;
- RESET : reti
- INT_0 : reti
- INT_1 : reti
- ;TIMER2_COMP : reti
- TIMER2_OVF : reti
- TIMER1_CAPT : reti
- TIMER1_COMPA : reti
- TIMER1_COMPB : reti
- TIMER1_OVF : reti
- ;TIMER0_OVF : reti
- SPI_STC : reti
- USART_RXC : reti
- USART_UDRE : reti
- USART_TXC : reti
- EE_RDY : reti
- TWI : reti
- SPM_RDY : reti
- ;ANA_COMP : reti
- init: ;
- ldi tp,low(RAMEND) ;
- out SPL,tp ;
- ldi tp,high(RAMEND) ;
- out SPH,tp
- ;
- clr tp ;
- out ddrc,tp ;
- ser tp ;
- out ddrb,tp ;
- ldi tp,0b00111111 ;
- out ddrd,tp ;