РефератыИнформатика, программированиеПрПрограммно управляемый генератор линейно-нарастающего напряжения на микроконтроллере

Программно управляемый генератор линейно-нарастающего напряжения на микроконтроллере

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ


Харьковский национальный университет радиоэлектроники


Кафедра радиоэлектронных устройств


КУРСОВАЯ РАБОТА


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА


ПРОГРАММНО УПРАВЛЯЕМЫЙ ГЕНЕРАТОР ЛИНЕЙНО-НАРАСТАЮЩЕГО НАПРЯЖЕНИЯ НА МИКРОКОНТРОЛЛЕРЕ


дисциплина: Цифровые устройства


Выполнил ст. гр. 911 Иванов И.И


Проверил: Пирожков А.В.


___________________


(подпись)


“__”__________2010 г.


ХАРЬКОВ 2010


СЛОВАРЬ АББРЕВИАТУР


МК – микроконтроллер;


ПВВ - порт ввода-вывода;


П/п – подпрограмма;


ЦАП – цифро-аналоговый преобразователь;


ОУ – операционный усилитель.


СОДЕРЖАНИЕ


Введение


1. Обзор аналогичных устройств


1.1 Простейший генератор пилообразного напряжения (ГПН)
1.2 Классификация ГПН со стабилизаторами тока.
1.3 Генераторы пилообразного напряжения на операционных усилителях

2. Обоснование выбранного варианта схемного решения


3. Разработка алгоритма и программы функционирования устройства


4. Результаты эмуляции программы в пакете VMLAB


5. Анализ временных соотношений и оценка погрешностей


Выводы


Приложения


ВВЕДЕНИЕ


Генераторы линейно – изменяющегося напряжения называют иногда генераторами развёртки, хотя этот термин не отражает их гораздо более широкого применения. Из области разверток заимствованы названия двух основных частей пилообразного импульса: прямой ход (главный, почти линейный участок t п
) и обратный ход (сравнительно короткий участок t о
, форма которого обычно несущественна).


Пилообразное напряжение это такое напряжение, которое нарастает или спадает линейно в течение некоторого отрезка времени, называемого временем рабочего хода tо
достигает первоначального значения. Такое напряжение используется устройствах сравнения, для горизонтальной развёртки электронного луча в электронно-лучевой трубке в других устройствах. Возврат луча в исходное положение должен происходить, возможно, быстрее, вследствие чего спадающий участок пилообразного напряжения должен иметь большую крутизну и малую продолжительность.


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


1. ОБЗОР АНАЛОГИЧНЫХ УСТРОЙСТВ


1.1 Простейший генератор пилообразного напряжения (ГПН)

В простейшем случае, когда не требуется высокая линейность рабочего участка выходного напряжения, применяют заряд (рисунок 1.1,а) или разряд конденсатора через резистор R. После размыкания ключа Кл конденсатор заряжается по закону


u=E(1-e-
t
/
τ
), где τ=RC.


Если во время рабочего хода использовать лишь начальный участок экспоненты, т.е. при tраб
<<τ, или, другими словами, при Um
<<E, можно считать u(t) при 0≤t≤tраб
линейно изменяющимся напряжением. Учитывая, что iнач
=E/R, а iкон
=(E-Um
)/R, находим коэффициент нелинейности:


ε=Um
/E. (1.1)


Можно определить ε и по формуле


ε=Um
/E=1-e-
t
раб/
τ
≈ tраб
/τ.


Из (1.1) следует, что коэффициент нелинейности ε оказывается равным Um
/E. Обычно это соотношение называется коэффициентом использования источника питания. При этом для получения достаточно малого значения ε приходится выбирать значение E во много раз большим амплитуды Um
т.е. плохо использовать напряжение источника питания. Таким образом, простейшая схема с зарядом или разрядом конденсатора через резистор оказывается пригодной лишь при сравнительно невысокой линейности (примерно 10%).


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



Рисунок 1.1


1.2 Классификация ГПН со стабилизаторами тока

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


1) Генераторы, в которых стабилизатор тока реализован в виде отдельного структурного элемента со специальным источником напряжения Ест
.


2) Генераторы, в которых источник напряжения Ест
стабилизатора тока реализован в виде заряженного конденсатора. Необходимо отметить, что этот генератор по другому классификационному признаку часто относят к группе компенсационных устройств. Идея построения таких устройств основана на том, что стабилизация зарядного (или разрядного) тока конденсатора С может быть достигнута, если последовательно с ним включить источник, напряжение которого изменяется по тому же закону, что и на конденсаторе С, но имеет обратную полярность. Роль такого источника напряжения выполняет усилитель. В зависимости от способа включения усилителя различают схемы с положительной и отрицательной обратной связью.


3)



Рисунок 1.2


На рисунке 1.2,а показан вариант функциональной схемы компенсационного генератора с положительной обратной связью (ПОС): если коэффициент усиления усилителя К0
=+1, то повышение потенциала в точке а1
при заряде конденсатора С компенсируется точно таким же повышением потенциала в точке а2
, и зарядный ток i останется неизменным. Конечно, в практических схемах вследствие того, что коэффициент усиления К0
не остается в процессе работы постоянным и точно равным 1, а так же в результате нестабильности других параметров схем наблюдается определенное не постоянство тока i и большее или меньшее значение коэффициента нелинейности напряжения на конденсаторе и выходного напряжения uвых
. Генератор, реализующий функциональную схему на рисунке 1.2,а, называют компенсационным генератором с ПОС.


4) Генераторы, в которых роль источника напряжения стабилизатора тока выполняет источник питания схемы. Такой генератор по другому классификационному признаку относится к компенсационным генераторам с ООС (отрицательной обратной связью); функциональная схема такого генератора показана на рисунке 1.2,б.


1.3 Генераторы пилообразного напряжения на операционных усилителях

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


На рисунке 1.3,а показана схема генератора пилообразного напряжения с интегрирующей RC-цепочкой, включенной в цепь отрицательной обратной связи операционного усилителя.



Рисунок 1.3


2. ОБОСНОВАНИЕ ВЫБРАННОГО ВАРИАНТА СХЕМНОГО РЕШЕНИЯ


Схема разрабатываемого генератора приведена в приложении 2. В схеме применяется однокристальный микроконтроллер фирмы ATMEL – At90S85515. Микросхема создана на основе ядра Classic, имеет в своём составе 8-разрядный и 16-разрядный таймеры для формирования временных задержек и 4 порта для ввода и вывода информации с внешних устройств. Этот МК вполне подходит для создания генератора линейно-нарастающего напряжения. Цифровое значение амплитуды подаётся на ЦАП DD1 с порта A МК, а ЦАП преобразовывает его в аналоговую форму. Регулирование амплитуды производится переменным резистором R1, подключенным ко входу управления ЦАП. Для согласования сопротивления нагрузки с выходом устройства, применяется усилитель тока на ОУ DA1.


Для питания устройства от сети 220В используется блок питания на трансформаторе Т1, выпрямителях VD1-VD2 и стабилизаторах DA2-DA4. Он обеспечивает питание для ЦАП, МК и ОУ.


К порту D МК подключена клавиатура из 8 клавиш для установки частоты, а к по

рту B – светодиоды для её индикации.


3. РАЗРАБОТКА АЛГОРИТМА И ПРОГРАММЫ ФУНКЦИОНИРОВАНИЯ УСТРОЙСТВА


Алгоритм программы довольно прост и состоит из основной программы и п/п обработки прерывания таймера Т1 (см. приложение 3).


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


Прерывание от таймера обрабатывается соответствующей подпрограммой. Она увеличивает значение переменной Ampl на 1 и выводит его на ЦАП. После превышения значения $FF, переменная автоматически обнуляется.


Далее приводится текст программы на Ассемблере и файл проекта VMLAB.


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


;******************************************************


;ASM template file for AVR


;******************************************************


.include "C:VMLABincludem8515def.inc"


.def temp =r16


.def timel =r17


.def timeh =r18


.def Const00 =r19


.def ConstFF =r20


.def led =r21


.def Ampl =r23


reset:


rjmp start


reti ; Addr $01


reti ; Addr $02


reti ; Addr $03


rjmp Timer; Addr $04


reti ; Addr $05


reti ; Addr $06


reti ; Addr $07


reti ; Addr $08


reti ; Addr $09


reti ; Addr $0A


reti ; Addr $0B


reti ; Addr $0C


reti ; Addr $0D


reti ; Addr $0E


reti ; Addr $0F


reti ; Addr $10


start:


ldi temp,high(RAMEND)


out SPH, temp


ldi temp, low(RAMEND)


out SPL, temp


ldi Const00,$00


ldi ConstFF,$FF


ldi Ampl,0


out DDRA, ConstFF ;ЦАП


out DDRB , ConstFF ;led


out DDRD, Const00 ;sb1-sb8


out PORTD, ConstFF


out PORTA, Const00


ldi led, 0b11111110


out PORTB,led


ldi temp, 0b00100000


out MCUCR, temp


ldi temp,0b01000010


out TIMSK,temp


ldi timeh,$07


ldi timel,$A1


out OCR1AH, timeh


out OCR1AL, timel


out TCCR1A,Const00


ldi temp, 0b00001001


out TCCR1B,temp ;настройкатаймера


sei


m0:


sbis PIND,0


rjmp m1


sbis PIND,1


rjmp m2


sbis PIND,2


rjmp m3


sbis PIND,3


rjmp m4


sbis PIND,4


rjmp m5


sbis PIND,5


rjmp m6


sbis PIND,6


rjmp m7


sbis PIND,7


rjmp m8 ; опроскнопок


rjmp m0


m1: ldi led, 0b11111110


ldi timeh,$07


ldi timel,$A1


out OCR1AH, timeh


out OCR1AL, timel


out PORTB,led


rjmp m0


m2: ldi led, 0b11111101


ldi timeh,$06


ldi timel,$1A


out OCR1AH, timeh


out OCR1AL, timel


out PORTB,led


rjmp m0


m3: ldi led, 0b11111011


ldi timeh,$05


ldi timel,$16


out OCR1AH, timeh


out OCR1AL, timel


out PORTB,led


rjmp m0


m4: ldi led, 0b11110111


ldi timeh,$04


ldi timel,$5C


out OCR1AH, timeh


out OCR1AL, timel


out PORTB,led


rjmp m0


m5: ldi led, 0b11101111


ldi timeh,$03


ldi timel,$D0


out OCR1AH, timeh


out OCR1AL, timel


out PORTB,led


rjmp m0


m6: ldi led, 0b11011111


ldi timeh,$03


ldi timel,$64


out OCR1AH, timeh


out OCR1AL, timel


out PORTB,led


rjmp m0


m7: ldi led, 0b10111111


ldi timeh,$03


ldi timel,$0D


out OCR1AH, timeh


out OCR1AL, timel


out PORTB,led


rjmp m0


m8: ldi led, 0b01111111


ldi timeh,$02


ldi timel,$C6


out OCR1AH, timeh


out OCR1AL, timel


out PORTB,led


rjmp m0


Timer:inc Ampl


out PORTA,Ampl


reti ; прерывание от Т1


Файл проекта
VMLAB


; ************************************************************


; PROJECT:


; AUTHOR:


; ************************************************************


; Micro + software running


; ------------------------------------------------------------


.MICRO "AT90S8515"


.PROGRAM "my_idea.asm"


.TARGET "my_idea.hex"


.TRACE ; Activate micro trace


; Following lines are optional; if not included


; exactly these values are taken by default


; ------------------------------------------------------------


.POWER VDD=5 VSS=0 ; Power nodes


.CLOCK 4meg ; Micro clock


.STORE 1000m ; Trace (micro+signals) storage time


; Micro nodes: RESET, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, PE0-PE2, ACO, TIM1OVF


; Define here the hardware around the micro


; ------------------------------------------------------------


X1 D2A8 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 out


D1 VDD node1 ; x: Panel LEDs 1 - 8


R1 node1 PB0 1k


D2 VDD node2 ; x: Panel LEDs 1 - 8


R2 node2 PB1 1k


D3 VDD node3 ; x: Panel LEDs 1 - 8


R3 node3 PB2 1k


D4 VDD node4 ; x: Panel LEDs 1 - 8


R4 node4 PB3 1k


D5 VDD node5 ; x: Panel LEDs 1 - 8


R5 node5 PB4 1k


D6 VDD node6 ; x: Panel LEDs 1 - 8


R6 node6 PB5 1k


D7 VDD node7 ; x: Panel LEDs 1 - 8


R7 node7 PB6 1k


D8 VDD node8 ; x: Panel LEDs 1 - 8


R8 node8 PB7 1k


K1 GND PD0


K2 GND PD1


K3 GND PD2


K4 GND PD3


K5 GND PD4


K6 GND PD5


K7 GND PD6


K8 GND PD7


.PLOT V(out)


4. РЕЗУЛЬТАТЫ ЭМУЛЯЦИИ ПРОГРАММЫ В ПАКЕТЕ VMLAB



Рисунок 1 – Результат работы в режиме 1.



Рисунок 2 – Результат работы в режиме 2.



Рисунок 3 – Результат работы в режиме 3.



Рисунок 4 – Результат работы в режиме 4.



Рисунок 5 – Результат работы в режиме 5.



Рисунок 6 – Результат работы в режиме 6.



Рисунок 7 – Результат работы в режиме 7.



Рисунок 8 – Результат работы в режиме 8.


5. АНАЛИЗ ВРЕМЕННЫХ СООТНОШЕНИЙ И ОЦЕНКА ПОГРЕШНОСТЕЙ


Чтобы рассчитать константу k, которую необходимо поместить в регистр сравнения таймера Т1, разделим тактовую частоту процессора на 256, так как за 256 прерываний от таймера формируется 1 период пилообразного напряжения: 4 МГц/256=15625 Гц. Теперь, чтобы определить необходимую константу, разделим 15625 Гц на требуемую частоту сигнала. Проведём, к примеру, расчет для частоты сигнала 8 Гц:


k=15625 Гц/8 Гц=1953,125.


Чтобы поместить полученное значение в регистр сравнения, его необходимо округлить и преобразовать в шестнадцатеричную форму: k=$07A1. Так как почти все рассчитанные значения приходится округлять, это вызывает погрешности в формировании частоты. Анализируя полученные значения частот в пакете VMLAB, можно сделать вывод о том, что погрешности не превышают предел в 1%, который определён в задании.


ВЫВОДЫ


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


- возможность установки 8 фиксированных значений частоты сигнала (8, 10, 12, 14, 16, 18, 20, 22 Гц) 8-ю кнопками;


- амплитуда сигнала плавно изменяется в пределах от 0 до 15 В переменным резистором;


- индикация амплитуды осуществляется с помощью 8-ми светодиодов.


В результате эмуляции работы генератора в пакете VMLAB оценены погрешности установки частоты, которые не превышают 1%.


ПРИЛОЖЕНИЕ
1


ПЕРЕЧЕНЬ ЭЛЕМЕНТОВ


Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Программно управляемый генератор линейно-нарастающего напряжения на микроконтроллере

Слов:2029
Символов:18595
Размер:36.32 Кб.