Мне для положительных температур и надо. Тогда часть кода будет выглядеть так? TERMO_Convert:
OWrite DQ, 1, [$CC,$44] ' Послать датчику DS18B20 команду старта измерения температуры
Repeat ' Начать внутренний цикл
DelayMS 25 ' Ждать окончания преобразования пока не придет бит,
ORead DQ, 4, [C] ' сигнализирующий об окончании преобразования
Until C > 0 ' Выйти из цикла если от DS18B20 поступил бит конца преобразования.
OWrite DQ, 1, [$CC,$BE] ' Послать команду чтения из ОЗУ датчика DS18B20 значения температуры
ORead DQ, 2, [R_Temp.LowByte, R_Temp.HighByte] ' Прочитать значение температуры и записать полученные два байта данных в переменную R_Temp типа Dword, младщий байт в R_Temp.LowByte и старший байт в R_Temp.HighByte
Temp = R_Temp
TempС = Temp /16
'Процедура перетворення температури
'******************************************************************************************************
TempC = Temp_read >> 4
Float1 = Temp_read.LowByte & $0F
Float0 = LookUpL Float1, [0,1,1,2,2,3,4,4,5,6,6,7,7,8,9,9]
TemperC = (TempC * 10) + Float0
vyvod: 'Потом выводим на дисплей.
DigitDisp = TemperC Dig 0 'Третя цифра
GoSub LOOK
CifraX = Cifra
DigitDisp = TemperC Dig 1 ' Друга цифра
GoSub LOOK
CifraX = Cifra
DigitDisp = TemperC Dig 2 'Перша цифра
GoSub LOOK
CifraX = Cifra
Return
LOOK:
Cifra = LookUpL s,[%0000,%0001,%0010,%0011,%0100,%0101,%0110,%0111,%1000,%1001]
Cifra << 2
PORTC=Cifra
Return
Нужна ли конструкция Temp = R_Temp ?
И для чего CifraX = Cifra ?