编译时出现DS18B20.H(3): error C129: missing ';' before 'DS_init'错误求解
#ifndef DS18B20_H
#define DS18B20_H
uchar DS_init()
{
uchar state;
DQ=1;
delay_1us(8);
DQ=0;
delay_1us(80);
DQ=1;
delay_1us(8);;
state=DQ;
delay(100);
return state;
}
void DS_write_byte(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
if((dat&0x01)==0)
{
DQ=0;
delay_1us(5);
DQ=1;
}
else
{
DQ=0;
delay_1us(1);
DQ=1;
delay_1us(4);
}
dat>>=1;
}
}
uchar DS_read_byte()
{
uchar i,dat=0;
for(i=0;i<8;i++)
{
DQ=0;
dat>>=1;
DQ=1;
if(DQ==1)
dat=0x80;
else
dat=0x00;
delay_1us(30);
DQ=1;
}
return dat;
}
void DS_read_temperature()
{
if(DS_init()==1)
DS_OK=0;
else
{
DS_init();
DS_write_byte(0xcc);
DS_write_byte(0x44);
DS_init();
DS_write_byte(0xcc);
DS_write_byte(0xbe);
temp_value[1]=DS_read_byte();
temp_value[0]=DS_read_byte();
DS_OK=1;
}
}
void set_alarm_HL()
{
DS_init();
DS_write_byte(0xcc);
DS_write_byte(0x4e);
DS_write_byte(0x7f);
DS_init();
DS_write_byte(0xcc);
DS_write_byte(0x48);
}
void display_temperature()
{
uchar flag=0;
if((temp_value[0]&0xf8)==0xf8)
{
flag=1;
temp_value[0]=temp_value[0];temp_value[1]+1;
temp_value[1]=
if(temp_value[1]==0x00)
temp_value[0];
}
display_digit[3]=df_tab[temp_value[1]&0x0f];
current=((temp_value[0]&0x07)<<4)|((temp_value[1]&0xf0)>>4);
sign_temp=flag?-current:current;
display_digit[0]=current/100;
display_digit[1]=current%100/10;
display_digit[2]=current%10;
buffer_line2[8]=display_digit[0]+'0';
buffer_line2[9]=display_digit[1]+'0';
buffer_line2[10]=display_digit[2]+'0';
buffer_line2[11]='.';
buffer_line2[12]=display_digit[3]+'0';
if(display_digit[0]==0)
buffer_line2[8]=' ';
if(display_digit[0]==0&&display_digit[1]==0)
buffer_line2[9]=' ';
if(flag==1)
{
if(buffer_line2[9]==' ')
buffer_line2[9]='-';
else
{
if(buffer_line2[8]==' ')
buffer_line2[8]='-';
else
buffer_line2[7]='-';
}
}
LCD_display(0x00,buffer_line1);
LCD_display(0x40,buffer_line2);
LCD_write_cmd(0x80+0x4d);
LCD_write_data(0x00);
LCD_write_cmd(0x80+0x4e);
LCD_write_data('C');
}
#endif