Курсовая работа: Разработка измерителя температуры жидкости
char Value;
#asm("cli");
DDRD |= 0x20; //output 5
PORTD &= ~0x20;
TimeDelay_us(5);
DDRD &= ~0x20; //input
PORTD |= 0x20;
TimeDelay_us(10);
Value = PIND & 0x20; //read bit
TimeDelay_us(55);
DDRD |= 0x20; //output 5
PORTD |= 0x20;
TimeDelay_us(5);
#asm("sei");
return Value;
}
//==
char DS1620ReadByte(void)
{
char loop, result=0, CurrentBit;
for (loop = 0; loop < 8; loop++)
{
result >>= 1; // shift the result right to get it ready for the next bit
CurrentBit = DS1620ReadBit();
if (CurrentBit != 0) // if result is one, then set MS bit
{
result |= 0x80;
}
}