Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
58
Добавлен:
07.08.2013
Размер:
456.74 Кб
Скачать

4 Разработка схемы блока питания

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

Согласно техническому заданию блок измерения должен питаться непосредственно от сети переменного тока, поэтому в схему питания обязательно должны входить понижающий трансформатор, двухполупериодный диодный выпрямитель и стабилизаторы, формирующие постоянные уровни выходного напряжения +/-5 В. Выберем трансформатор ТПГ-2– 2х6В. С выхода трансформатора напряжение поступает на диодный мост, представляющий собой сборку W04M (1.5A, 400В). Данное схемотехническое решение эффективно, т.к. в каждом полупериоде входного сигнала используется обе половины вторичной обмотки трансформатора. Выбираем емкость накопительного электролитического конденсатора таким, чтобы его сопротивление на передаваемой частоте было мало. Данному требованию удовлетворяет емкость номиналом 100 мкФ (конденсаторы С1 и С2), в качестве которой выберем К50-35-16В-100 мкФ.

В качестве преобразователей выберем ИМС фирмы Fairchild LM7805 для получения напряжения в +5 В и LM7905 для получения напряжения в −5В. Оба преобразователя имеют диапазон входных напряжений до +/-35В, могут обеспечить выходной ток до 100 мА, что с запасом отвечает нашим требованиям. Внешние навесные элементы выбраны с учетом рекомендаций самого производителя микросхем. Поэтому выберем С3 К10-17б-0,33 мкФ, С4 К10-17-0,33 мкФ, С5 К10-17б-0,1 мкФ, С6 К10-17б -0,1 мкФ.

5 Алгоритм работы программы

6 Алгоритм подпрограммы

7 Код программы

.include"m8def.inc"

.def Temp=R16

.def Temp2=R17

.def SPressTemp=R20

.def DPressTemp=R21

.def MesEnd=R22

.cseg

.org 0

rjmp RESET ; Reset Handler

rjmp EXT_INT0 ; IRQ0 Handler

rjmp EXT_INT1 ; IRQ1 Handler

rjmp TIM2_COMP ; Timer2 Compare Handler

rjmp TIM2_OVF ; Timer2 Overflow Handler

rjmp TIM1_CAPT ; Timer1 Capture Handler

rjmp TIM1_COMPA ; Timer1 CompareA Handler

rjmp TIM1_COMPB ; Timer1 CompareB Handler

rjmp TIM1_OVF ; Timer1 Overflow Handler

rjmp TIM0_OVF ; Timer0 Overflow Handler

rjmp SPI_STC ; SPI Transfer Complete Handler

rjmp USART_RXC ; USART RX Complete Handler

rjmp USART_TXC ; USART TX Complete Handler

rjmp ADC1 ; ADC Conversion Complete Handler

rjmp EE_RDY ; EEPROM Ready Handler

rjmp ANA_COMP ; Analog Comparator Handler

rjmp TWSI ; Two-wire Serial Interface Handler

rjmp SPM_RDY ; Store Program Memory Ready Handler

;RESET:

EXT_INT0: ; IRQ0 Handler

EXT_INT1: ; IRQ1 Handler

TIM2_COMP: ; Timer2 Compare Handler

TIM2_OVF: ; Timer2 Overflow Handler

TIM1_CAPT: ; Timer1 Capture Handler

TIM1_COMPA: ; Timer1 CompareA Handler

TIM1_COMPB: ; Timer1 CompareB Handler

TIM1_OVF: ; Timer1 Overflow Handler

;TIM0_OVF: ; Timer0 Overflow Handler

SPI_STC: ; SPI Transfer Complete Handler

USART_RXC: ; USART RX Complete Handler

USART_TXC: ; USART TX Complete Handler

ADC1: ; ADC Conversion Complete Handler

EE_RDY: ; EEPROM Ready Handler

;ANA_COMP: ; Analog Comparator Handler

TWSI: ; Two-wire Serial Interface Handler

SPM_RDY:

reti

RESET:

sei

ldi TEMP, high(RAMEND);

out SPH, TEMP ; Set stack pointer to top of RAM

ldi TEMP, low(RAMEND)

out SPL, TEMP

ldiTemp, 0b00000001

out TIMSK, Temp ;разрешить прерывание по переполнению первого таймера

ldi Temp, 0b10000100 ; разрешение работы АЦП

out ADCSRA, Temp

ldi Temp, 0b00100000

out ADMUX, Temp

ldi Stemp, 40

ldi Temp, 0b00001011 ;настройка портов

out DDRС, Temp

Begin:

ldi Time1, 0

m1:

ldi Time, 8

mov Time1L, Time2L

mov Time1H, Time2H

mov Time2L, Time3L

mov Time2H, Time3H

a1:

sbi ADCSRA, 6

rcall WaitM

in Temp, ADCH

add Temp3L, Temp

sbic SREG, 0

inc Temp3H

dec Time

breq b1

rjmp a1

b1:

cpi Temp3H, 0

breq m1

cp Temp2H, Temp1H

brlom1 ; если меньше

cpTemp2L,Temp1L

brlo m1

cp Temp2H, Temp3H

brlo m1

cpTemp2L,Temp3L

brlom1

cpi Time1, 0 ; если больше 0 то переход

brsh Comp

mov Temp2H0, Temp2H

mov Temp2L0, Temp2L

inc Time1

rjmp m1

Comp:

cpi Time1, 1

brsh End

inc Time1

cp Temp2H, Temp2H0

brlo End1

cp Temp2L, Temp2L0

brlo End1

rjmp End2

End1:

ldi TTemp, 0b01010101

rjmp m1

End2:

ldi TTemp, 0b10101010

rjmp m1

End:

ROL TTemp

Sbrc TTemp, 0 ; пропустить если бит нет

rjmp outsign

rjmp m1

outsign:

sbi PortC, 4

ldi Temp, 0

out TCNT0, Temp

ldi Temp, 0b00000111

out TCCR0, Temp

rjmp Begin

TIM0_OVF: ; обработка прерывания переполнения таймера0

cbi PortC, 4 ; выключить звуковой сигнал

ldi Temp, 0 ; выключить Таймер0

out TCCR0, Temp

reti ; выход из прерывания

Соседние файлы в папке КУРСАЧ КОНЮХОВ