Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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

 

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

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

 

Рисунок 1.3


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

 

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

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

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

 


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

 

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

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

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

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

 

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

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

;ASM template file for AVR

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

.include "C:\VMLAB\include\m8515def.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)

 


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...