Название реферата: Двухконтурный микропроцессорный регулятор температуры
Раздел: Радиоэлектроника
Скачано с сайта: www.newreferat.com
Дата размещения: 21.09.2011

Двухконтурный микропроцессорный регулятор температуры

Задание.

1. Разработать принципиальную схему микроконтроллера для регулирования температуры технологического процесса.

-микроконтроллер: ATmega603

-использовать вход АЦП: DF4

-использовать выход: DA0

-величина опорного напряжения: 5.82 В

-вариант кривой регулирования: 7

-длительность процесса: 3180 сек.

-максимальная температура: 1085 0С.

2. Выбрать термопару, рассчитать усилитель и нарисовать принципиальную схему регулятора температуры.

3. Написать программу для микроконтроллера регулятора температуры.

4. Дать описание блок-схемы регулятора, описание принципиальной схемы, применяемых микросхем. Дать подробное описание структурной схемы программы и текста программы.

Принципиальная схема процесса регулирования.

Процесс регулирования является циклическим и выглядит следующим образом:

Температура в объекте регулирования (печи) измеряется с помощью термопары. Термопара преобразует температуру в напряжение, которое подается на усилитель. Выходной сигнал с усилителя подается на АЦП. Микроконтроллер Atmel ATmega 603

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

Важнейшим достоинством системы является то, что вмешательства человека не требуется.

Электронная схема регулятора.

U1

380B

48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33

49 32 Внешний вид

контроллера.

ATmega 603

Atmelcorporation

64 17

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Описание выводов контроллера.

Краткое описание

1

REN

2-9

port E

10-17

port B

18-19

TOSC1,2 - выход на внешний генератор частоты

20

RESET

21

VCC

22

GND

23-24

XTAL1,2 - выход на кварц 4 МГц

25-32

port D

33

WR – запись

34

RD –чтение

35-42

port C - работает только на вывод данных

43

ALE

44-51

port A

52

VCC

53

GND

54-61

port F – вход АЦП, работает только на прием данных

62

AREF

63

AGND

64

AVCC

Используется архитектура с закрытой шиной (гарвардская архитектура).

Блок-схема микроконтроллера ATmega603

Блок-схема программы.

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

Работа на участке включает в себя запуск таймеров и проверку на окончание интервалов. В зависимости от результата осуществляется переход на подпрограмму регулирования либо переход на следующий участок.

Подпрограмма регулирования включает в себя запуск и проверку АЦП, его опрос, сравнение полученного результата с уставкой и в зависимости от результата сравнения производит либо запуск нагревателя, либо его остановку.

Масштабирование кривой регулирования, выбор термопары и расчет входного усилителя.

427D 1ABH  

853D 355H

640D 280H  

Масштабирование проводим с учетом запаса (во избежание выхода из строя АЦП).

С учетом максимальной температуры выбираем термопару ТПП ПП68

Рабочий интервал 0-1200 0С, максимальная температура 1600 0С.

График зависимости ТЭДС от температуры выглядит следующим образом.

Ктерм=0.0098

Усилитель сигнала с термопары: 140УД17А, Uсм<0.1 мВ

Dt1уставки = 454/(1085-543)=0,8 c или 8 импульсов таймера.(8H)

Dt2уставки = (3180-1362)/(814-543) = 6.7 с или 67 импульсов таймера.(43H)

Dt1интервал=454 с или 4540 импульсов таймера (11BCH)

Dt2интервал=908 с или 9080 импульсов таймера (2378H)

Dt3интервал=1818 с или 18180 импульсов таймера (4704H)

Uвх.макс=Ктерм∙Кз∙Тмах= 12.8 мВ

Кус = Uоп/(Ктерм∙Кз∙Тмах) =455

R2=1 кОм, R1=R2*(Кус-1) =454 кОм

С1=0.1 мкФ подбор конденсатора производился с помощью Electronics Workbench 512

Подбор мощности печи и периода АЦП.

Мощность печи: 20 кВт

Период АЦП: 0.09

Предварительные установки.

Вход АЦП – DF4

Выход на усилитель – DA0

Прерывания таймера каждые 0,1 с.

Назначение регистров:

-R16, R17 – хранение уставки.

-R18, R19 – счетчик окончания интервала.

-R20 – счетчик интервала изменения уставки.

-R15 - счетчик для хранения 0 (флаг переполнения).

-R5, R22 – рабочие регистры.

-R23,R24 – регистры для хранения числа, прочитанного с АЦП.

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

 

ORG

$0000

Установка нулевого адреса для программы, директива компилятору

 

JMP

NACH

Переход к метке NACH

 

ORG

$0018

Установка адреса 0018H для программы

 

DEC

R20

R20 = R20 – 1 – декремент

 

DEC

R18

Уменьшение на единицу R18

 

SBC

R19,R15

R19 <- R19 – R15 – C

В итоге – уменьшение на единицу счетчика на регистрах R19, R18 («длинного счетчика»)

 

RETI

   
 

ORG

$0050

Установка начального адреса для программы

=== начало работы программы ===

NACH:

BCLR

7

Запрещение всех прерываний (уст. 0 в 7 разряд регистра статуса SREG -- $3F)

 

LDI

R22,$7F

Установка адреса стека $7FFF.

SPH – регистр старшего байта адреса ($3E)

SPL – регистр младшего байта адреса ($3D)

Далее в программе работа со стеком идет автоматически

 

OUT

SPH,R22

 

LDI

R22,$FF

 

OUT

SPL,R22

       
 

LDI

R22,0b00000000

Обнуление регистра управления MCUCR - $35. Обнуление бита 7 этого регистра устанавливает основной режим работы порта А.

 

OUT

MCUCR,R22

 

LDI

R22,0b00000001

Программирование: DA0 – выход, остальные – входы. (DDA - $1A)

 

OUT

DDA,R22

 

LDI

R22,$00

Отключение нагрузочных резисторов от входов и обнуление выхода (PORTA - $1B)

 

OUT

PORTA,R22

 

LDI

R22,0b00000100

Установка входа DF4 для работы АЦП. (ADMUX - $07)

 

OUT

ADMUX,R22

 

LDI

R22,0b10000101

Установка АЦП: разрешение работы, незапуск, однократный режим, обнуление флага, прерывание запрещено, коэффициент деления частоты 32. Частота АЦП fацп = fo/32 = 4000000/32 = 125000 Гц. Время преобразования tпр = 14/125000 = 112*10-6 c = 112 мкс. (ADCSR - $06)

 

OUT

ADCSR,R22

 

LDI

R22,0b00010000

Разрешение прерывания по режиму А таймера 1, и запрещение остальных прерываний.

 

OUT

TIMSK,R22

 

CLR

R22

Очистка R22

 

OUT

TIFR,R22

Обнуление всех флагов и всех таймеров. (TIFR - $36)

 

OUT

TCCR1A,R22

Блокировка режима ШИМ. (TCCR1A - $2F)

 

LDI

R22,0b00001101

Установка циклического режима и деления частоты на 1024. fтайм = 4000000/1024 = 3906 Гц. (TCCR1B - $2E)

 

OUT

TCCR1B,R22

 

LDI

R22,$87

Запись числа k = $0187 в регистры сравнения OCR1AH, OCR1AL ($2B, $2A). K = 3906/10 ~ 391 = $0187. Здесь частота прерываний таймера fпр. тайм = 10. Dtпр. тайм = 0,1 секунды.

 

OUT

OCR1AL,R22

 

LDI

R22,$01

 

OUT

OCR1AH,R22

 

CLR

R15

Очистка регистра

 

NOP

 

Резервные ячейки памяти

 

NOP

 
 

NOP

   

INT1:

LDI

R20,$55;

Занесение начального значения уставки в регистры R17 (старший) , R16 (младший).

LDI

R17,$03;

LDI

R18,$BC;

Занесение длительности 1го интервала t1 (числа 11BCH) в регистры R19, R18 (Интервал 454 с).

LDI

R19,$11;

M0:

LDI

R20,$8;

Интервал Dtуставки1=0,8с (8H)

BSET

7;

Разрешение глобального прерывания (запуск счета импульсов установки длительности интервалов).

M1:

CALL

REG;

Вызов подпрограммы REG

OR

R20,R20;

Проверка R20 на нуль

BRNE

M1;

Если не нуль, то переход на метку М1

DEC

R16,$01;

Уменьшение уставки на 1

ADC

R17,R15;

CLR

R5;

Очистка регистра

OR

R5,R18;

Проверка на нуль регистров R18, R19 (счетчик окончания интервала).

OR

R5,R19;

BRNE

M0;

Если не нуль, переход на метку М10

JMP

INT2;

Переход на метку INT2 – к работе на втором интервале

NOP

 

NOP

 

NOP

 

INT2:

BCLR

7;

Запрещение всех прерываний (остановка работы счетчиков).

LDI

R16,$AB;

Занесение уставки 0280H в регистры (температура постоянного участка)

LDI

R17,$01;

LDI

R18,$78;

Занесение длительности 2го интервала (числа 2378Н) в регистры счетчика окончания интервала (интервал 908 с)

LDI

R19,$23;

BSET

7;

Разрешение прерываний. Запуск счетчика.

M2:

CALL

REG;

Вызов подпрограммы

CLR

R5;

Проверка на нуль

OR

R5,R18;

OR

R5,R19;

BRNE

M2;

Если не нуль, переход к метке М2

JMP

INT3;

Переход на метку INT3 – к работе на третьем интервале

NOP

 

NOP

 

NOP

 

INT3:

LDI

R16,$AB;

Занесение начального значения уставки в регистры R17 (старший) , R16 (младший).

LDI

R17,$01;

LDI

R18,$04;

Занесение длительности 3го интервала t3 (числа 4704Н) в регистры R19, R18 (Интервал 1818 с).

LDI

R19,$47;

M3:

LDI

R20,$43;

Интервал Dtуставки2=6.7с (43H)

BSET

7;

Разрешение глобального прерывания (запуск счета импульсов установки длительности интервалов).

M4:

CALL

REG;

Вызов подпрограммы REG

OR

R20,R20;

Проверка R20 на нуль

BRNE

M4;

Если не нуль, то переход на метку М4

INC

R16,$01;

Увеличение уставки на 1

ADC

R17,R15;

CLR

R5;

Очистка регистра

OR

R5,R18;

Проверка на нуль регистров R18, R19 (счетчик окончания интервала).

OR

R5,R19;

BRNE

M3;

Если не нуль, переход на метку М3

 

NOP

 

NOP

 

IN

R22,PINA;

Чтение порта А (PINA -$19)

ANI

R22,0b11111110;

Вывод нуля по выходу DA0 (PORTA - $18)

OUT

PORTA,R22;

BCLR

7;

Запрещение прерываний.

SLEEP

Выключение до сброса

NOP

 

NOP

 

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

REG:

IN

R22,ADCSR

Чтение регистра управления и состояния АЦП

 

ORI

R22,0b01000000

Запуск АЦП

 

OUT

ADCSR,R22

 

NGOT:

IN

R22,ADCSR

Чтение регистра управления и состояния АЦП

Маскирование (выделение флага готовности)

 

ANI

R22,0b00001000

 

BREQ

NGOT

Если нет готовности – переход к метке NGOT

 

IN

R23,ADCL

Чтение АЦП (ADCH - $05, ADCL - $04)

 

IN

R24,ADCH

 
 

ANI

R24,0b00000011

Маскирование неиспользуемых разрядов

Сравнение старших битов

 

CR

R17,R24

 

BRNQ

RM0

Если равны

 

BRCS

RM1

Если измеренная температура больше уставки

 

RJMP

RM2

Если измеренная температура меньше уставки

RM0:

CR

R16,R23

Сравнение младших байтов

 

BRCS

RM1

Если измеренная температура больше уставки

RM2:

IN

R22,PINA

Включение нагревателя

 

ORI

R22,0b00000001

 
 

OUT

PORTA,R22

Возврат из подпрограммы

Выключение нагревателя

 

RET

 

RM1:

IN

R22,PINA

 

ANI

R22,0b11111110

 
 

OUT

PORTA,R22

Возврат из подпрограммы

 

RET

 

Использованная литература и программное обеспечение: