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

Автор работы: Пользователь скрыл имя, 06 Ноября 2013 в 20:33, курсовая работа

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

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

Вложенные файлы: 1 файл

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

— 400.00 Кб (Скачать файл)

Московский Институт Стали и Сплавов

(технологический университет)

Курсовая работа

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Студента факультета ПМП

Гр. ТЭМ-99-1

 

 

Преподаватель:

Проф.Краснопольский А.Е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Москва 2002 г.

Задание.

 

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

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

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

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

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

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

 


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

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

 

  1. Выбрать термопару, рассчитать усилитель и нарисовать принципиальную схему регулятора температуры.
  2. Написать программу для микроконтроллера регулятора температуры.
  3. Дать описание блок-схемы регулятора, описание принципиальной схемы, применяемых микросхем. Дать подробное описание структурной схемы программы и текста программы.

 

 

 

 

 

 

 

 

 

 

 

 

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


 


 



 

 



 




 

 

 

 

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

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






 


 

 

 

 






 380B




 

 



    

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


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


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





                          AT mega 603


                              




                      Atmel corporation





       


        


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, инициализацию двух таймеров.

 

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

 

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

 

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

 


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

 

С учетом максимальной температуры  выбираем термопару ТПП ПП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

 

 

 

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

  • «Курс лекций по электронике за 6 семестр» Краснопольский А.Е.
  • Electronics Workbench 512
  • Math Lab 6.0

 


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