Разработка схемы и алгоритма работы портативного двухканального термометра для измерения температуры в диапазоне -50…,+150 оС, страница 4

8.  Снятие информации с каналов термометра происходит последовательно, с использованием базового таймера. Значение интервала времени, по истечении которого необходимо начать опрос следующего канала термометра, можно установить программно, например, значение интервала можно установить равным 2 секунды:

                                            Обработчик прерываний от таймера:

            RTC_LSB - секунды

         BT_INT

                1) mov.b                    #0,RTC_LSB

                2) inc.b            RTC_LSB

                3) cmp.b          #2,RTC_LSB

                4) jnz                     2)

                5)   Опрос первого канала

                6) mov.b                    #0,RTC_LSB

                7) inc.b            RTC_LSB

                8) cmp.b          #2,RTC_LSB

                9) jnz                        7)

                10)  Опрос второго канала канала

          reti 

Таким образом базовый таймер каждые две секунды формирует прерывание и начинается снятие информации с канала А1 микроконтроллера. Перед этим в биты регистра ACTL  ACTL.2-.5 АЦП заносятся значения, соответствующие преобразованию в код напряжения, снятого с канала А1:

Кроме того, в биты регистра ACTL  ACTL.6-.8 АЦП заносятся значения, соответствующие тому, что генератор тока подключается к каналу микроконтроллера А0:

Далее необходимо установить бит ACTL.0 – старт на преобразование.

Затем по истечении двух секунд будет осуществлен переход к каналу А4 микроконтроллера и снятие с него информации, а следовательно необходимо произвести настройки аналогичные описанным выше, для канала MSP430 А4. Генератор тока в этом случае должен быть подключен к каналу А3 микроконтроллера.

Таким образом, при переходе для снятия информации от одного канала MSP430 к другому, необходимо производить перенастройки АЦП.

9.  Далее напряжение с каналов MSP430 А1 или А4 из аналоговой формы преобразуется в цифровой код с помощью встроенного в микроконтроллер АЦП. Т.к. N=14 – разрядность АЦП, поддиапазон напряжения, преобразуемого в код, выбирается автоматически.

10.   После выполнения АЦП - преобразования приходит прерывание от АЦП, говорящее о том, что преобразование аналогового сигнала в код закончено.  Значение напряжения, полученное с одного из каналов микроконтроллера, записывается в регистр ADAT. Флаг прерывания устанавливается в 1. Прерывание от АЦП служит сигналом того, что готовый код уже находится в регистре ADAT. Результат АЦП – преобразования хранится в регистре ADAT до тех пор, пока не инициируется следующее преобразование путем установки бита SOC (Start-of-Conversion) в регистре ACTL.

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

Сопротивление терморезисторов зависит от температуры следующим образом:

                                     R(t)=α * t2+β* t + γ (1)

α – коэффициент, который имеет достаточно маленькое значение.

β- значение на которое меняется сопротивление терморезистора с увеличением температуры (примерно 0,4 Ом на 1ºС).

γ – сопротивление терморезисторов  Pt100 при 0ºС (100 Ом).

С учетом этого, полученное после АЦП - преобразования значение напряжения, которое находится в регистре ADAT, необходимо умножить на q – степень квантования. q – показывает, на сколько должно измениться входное напряжение, чтобы код изменился на единицу.  В данном случае q=0.0025В. Умножив значение напряжение из регистра ADAT на 0.0025, а затем умножив результат на значение тока I=6.25мА, формируемого внутренним генератором тока MSP430, мы получим значение сопротивления  R. Используя это значение, можно решить уравнение (1) и получить значение температуры.

                                                                      (2)

                             – значение дискриминанта

Корень уравнения (2) будет являться значением температуры термодатчика.  Это значение с учетом знака температуры заносится в  один из регистров общего назначения микроконтроллера, а затем выводится на LCD, но перед выводом значение преобразуется в двоично-десятичный код.

5). Спецификация.

Наименование                   Обозначение                 Тип                     Номинал

Резистор                                  Rext                           C2-29                   160 Ом

                                                 ZQ1                             Кварц                  32768

Микроконтроллер                MSP430P325PG

Жидкокристаллический       Т18077

индикатор