Цифровой термометр на базе MSP430


 


MOV.B

MOV.B

MOV.B

BIS

MOV.B

CLR.B


#B16+TPDMAX-1,&TPD ;один 16-битный счётчик, выбор выходов заряда

#TPDMAX-1,&TPE

; Разрешить выходы

заряда #PRESET,&TPCNT2; Загрузить время

заряда #CPUOFF,SR ; Режим пониженного

потребления @SP,&TPE ; Разрешить только

текущий датчик &TPCNT2


: Запретить все прерывания, чтобы обеспечить непрерыв-: ную работу таймера и разряд конденсатора

Запрет прерываний Очистить младший байт таймера Переключить все датчики в «О»
&TPCNT1 @SP,&TPD

DINT CLR.B

BIC.B

MOV.B #(TPSSEL0*3)+ENA+ENB,&TPCTL

TPCNT1 CLK=MCLK, разрешить вход CIN

EINT ; Разрешить прерыва-

ния, общий старт

BIS #CPUOFF,SR ; Режим пониженного

потребления

********************************

*********************

EN=0:Завершение преобразования: 2X8 бит результата

в MSTACK

Включить следующий датчик : если больше нет,

завершение *****************************************************

MOV.B &TPCNT1,MSTACK(R8)

; Сохранить результат в стеке

MOV.B &TPCNT2,MSTACK+1(R8)

; Сохранить старший байт результата

L$301

INCD RRA.B JNC INCD
R8 @SP MEASLOP SP

Инкремент адреса Следующий выход TPD.X Если С=1 - заверше­ние

Убрать старший TPD из стека