Разработка принципиальной схемы и алгоритма функционирования прибора для измерения температуры, страница 2

Переключение мультиплексоров с одного терморезистора на другой должно происходить одновременно. Так как напряжение, снимаемое с каждого из резисторов R1-R4 определяется как UA4-UA5, то неодновременное переключение мультиплексоров может привести к неточности измерения.

Управляющие входы мультиплексора подключены через выводы цифровых портов ввода/вывода P0.2-P0.4. Регистр POOUT – 8-миразрядный и предназначен для вывода информации на внешний выход. Устанавливая определенный код в POOUT – транслируем его на PO.0-PO.7. Первоначально в регистре POOUT содержится код: 00100000, который и передается на выводы PO.0-PO.7. Таким образом, после каждого АЦ преобразования в регистр POOUT заносится определенный код, который транслируется на соответствующие выводы. 3 вывода подключены к мультиплексорам и таким образом осуществляется управление переключением каналов через мультиплексоры.

Изначально выводы портов настроены так:

PO.0

PO.1

PO.2

PO.3

PO.4

PO.5

PO.6

PO.7

0

0

1

0

0

0

0

0

чтобы снимать напряжение с R1.

Переключение мультиплексоров происходит по прерыванию от АЦП.

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

Эта процедура содержит следующее:

1)  происходит переключение источника генератора тока с А0 на А1;

В регистр POOUT заносим код: 00101000

выводы цифровых портов перестраиваются:   

PO.0

PO.1

PO.2

PO.3

PO.4

PO.5

PO.6

PO.7

0

0

1

0

1

0

0

0

таким образом, происходит переключение мультиплексора на R2.

Это маскируемое прерывание,

Механизм обработки маскируемого прерывания при условии:

§  Программный счетчик, который указывает на следующую команду, заносится в стек (SP);

§  Статусный регистр заносится в стек по текущему указателю стека;

§  Сбрасывается флаг запроса прерываний от АЦП;

§  Запрещаются все прерывания установкой GIE в «0». Флаги N, C, Z – сбрасываются в «0». Биты CPUOFF, OSCOFF, SCG1 сбрасываются в «0».

§  Содержимое вектора прерывания, соответствующего данному событию записывается в программный счетчик (РС).

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

Код на выходе АЦП это еще не напряжение, которое было измерено на R, это количество ступенек поместившихся в диапазон входного напряжения. Чтобы получить значение напряжения умножим этот код на значение ступеньки, то есть ∆U.

Это значение записывается в регистр ADAT, и там хранится до того момента, пока не произошло следующего преобразования. Значение напряжения из регистра ADAT делится на значение тока (генератора тока), с целью получить сопротивление. Далее для получения температуры необходимо решить следующее уравнение:


где:   α – квадратичный коэффициент <<1;

         β - ∆R, определенное для каждого типа терморезистора (в данном случае 0.4 Ом/◦С);

         γ – значение сопротивления при t=0◦С.

Решая уравнение найдем:


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

После того, как произошло измерение напряжения на R2 и его соответствующее преобразование, АЦП вызывает прерывание, по которому происходит:

1.  изменение источника генератора тока:

2.  В регистр POOUT заносим код: 00110000

выводы цифровых портов перестраиваются:   

PO.0

PO.1

PO.2

PO.3

PO.4

PO.5

PO.6

PO.7

0

0

1

1

0

0

0

0

3.  выполняется процедура обработки маскируемого прерывания описанная выше;

После того, как произошло измерение напряжения на R3 и его соответствующее преобразование, АЦП вызывает прерывание, по которому происходит:

4.  изменение источника генератора тока:

5.  В регистр POOUT заносим код:00111000

выводы цифровых портов перестраиваются:   

PO.0

PO.1

PO.2

PO.3

PO.4

PO.5

PO.6

PO.7

0

0

1

1

1

0

0

0

6.  выполняется процедура обработки маскируемого прерывания описанная выше;

таким образом, происходит последовательное измерение напряжений с терморезисторов R1-R4.

После завершения этого цикла происходит безусловный переход на начало, то есть:

PO.0

PO.1

PO.2

PO.3

PO.4

PO.5

PO.6

PO.7

0

0

1

0

0

0

0

0

По условию задан диапазон значений температуры  0º…150ºС. При таком изменении температур сопротивление терморезисторов будет изменяться в пределах 60 Ом, что вызывает изменение напряжения на 0.276В, что вполне приемлемо.

В данной работе разработан 4-канальный измеритель температуры. Измерения производится постоянно до выключения питания MSP430.

СПЕЦИФИКАЦИЯ

Позиционное обозначение

Наименование

Количество

ZQ1

Rext   

DD1

DA1,DA2     

HL1             

PK-169 32768

C2-29C

160 Ом

MSP430P325

ADG604

LCD

T18077

1

1

1

2

1