void main(void)
{
uchar m;
sys_init();
Init_DS18B20();
while(presence)
{
beep();
delayms(100);
Init_DS18B20();
}
WriteOneChar(0xCC);
WriteOneChar(0x44);
display[6] = 0x0a;
Temperature_conver();
for(m=0; m<60; m ++)
temp_play();
while (1)
{
Read_Temperature();
Temperature_conver();
for(m=0; m<60; m ++)
{
temp_play();
scankey();
temp_compare();
}
}
}
void Read_Temperature(void)
{
Init_DS18B20();
if(presence)
{
beep();
delayms(100);
}
else
{
WriteOneChar(0xCC);
WriteOneChar(0xBE);
temp_data[0] = ReadOneChar();
temp_data[1] = ReadOneChar();
temp_alarm[0] = ReadOneChar();
temp_alarm[1] = ReadOneChar();
temp_comp=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0x44);
}
}
void Temperature_conver()
{
bit minus = 0;
uchar temp;
display[0]=0x0b;
display[1]=0x0c;
if (temp_data[1] > 127)
{
temp_data[0] = (~temp_data[0]) + 1;
if ((~temp_data[0]) >= 0xff)
temp_data[1] = (~temp_data[1]) + 1;
else
temp_data[1] = ~temp_data[1];
minus = 1;
}
temp = temp_data[0] &0x0f;
display[2] = (temp*10) / 16;
temp = temp_comp;
display[5] = temp / 100;
display[4] = (temp % 100) / 10;
display[3] = temp % 10;
if (!display[5])
{
display[5] = 0x0a;
if (!display[4])
display[4] = 0x0a;
}
if (minus)
{
display[5] = 0x0d;
}
}
uj5u.com熱心網友回復:
把 main 移到 最后 !轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/115855.html
標籤:單片機/工控
上一篇:大神們幫我看看為什么有個燈不亮
