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
индикатор
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.