main004.c(68): warning C206: 'write_data': missing function-prototype
main004.c(68): error C267: 'write_data': requires ANSI-style prototype
源代碼
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code disp[]="0123456789";
uchar code disp2[]="Temp: ";
uchar code disp3[]={0xdf,'C'};
uchar code diasp4[]="L: H: ";
sbit lcden=P2^1;
sbit lcds=P2^0;
sbit ds=P2^3;
sbit led=P2^5;
sbit led1=P2^4;
sbit beep=P3^5;
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P3^4;
uint temp;
bit flag=0;
float f_temp;
uint TH=300;
uint TL=200;
const tab1[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};
const tab2[]={0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=125;y>0;y--);
}
}
void write_com(unsigned char com)
{
lcds=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
delay(5);
}
void wirte_data(unsigned char data1)
{
lcds=1;
P0=data1;
delay(5);
lcden=1;
delay(5);
lcden=0;
delay(5);
}
void lcd_init()
{
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void temp_dis(uint value)
{
uchar ge,shi,bai;
bai=value/100;
shi=value%100/10;
ge=value%100%10;
write_com(0x80+7);
write_data(disp[bai]);
write_data(disp[shi]);
write('.');
write_data(disp[ge]);
}
void ds_DS18B20(void)
{
uint i;
ds=0;
i=90;
while(i>0)i--;
ds=1;
i=4;
while(i>0)i--;
}
bit ds_read_bit()
{
uint i;
bit value_bit;
ds=0;
i++;
ds=1
i+;
i++;
value_bit=da;
i=8;
while(i>0)i--;
return value_bit;
}
uchar ds_read_byte()
{
uchar i,j,value_byte;
value_byte=0;
for(i=1;i<=8;i++)
{
j=da_read_bit();
value_byte=(j<<7)|(value_byte>>1);
}
return value_byte;
}
void ds_write_byte(cchar write_byte)
{
uint i;
uchar j;
bit write_bit;
for(j=1;j<=8;j++)
{
write_bit=write_byte&0x01;
write_byte=write_byte>>1;
if(write_bit)
{
ds=0;
i++;
ds=1;
i=8;
while(i>0)i--;
}
else
{
ds=0;
i=8;
while(i>0)i--;
ds=1;
i++;
i++;
}
}
}
void temp_convert()
{
ds_init();
delay(1);
ds_write_byte(0xcc);
ds_write_byte(0x44);
}
uint temp_get()
{
uchar temp_lw,temp_high;
ds_init();
delay(1);
ds_write_byte(0xcc);
ds_write_byte(0xbe);
temp_low=ds_read_byte();
temp_high=ds_read_byte();
temp=temp_high;
temp<<=8;
temp=temp|temp_low;
f_temp=temp*0.0625;
temp=f_temp*10+0.5;
return temp;
}
void display()
{
uchar i,j,k;
write_com(0x80+2);
for(i=0;i<5;i++)
{
write_data(disp2[ i]);
}
write_data(0x80+0x0b);
for(j=0;j<2;j++)
{
write_data(disp3[j]);
}
write_com(0x80+0x40);
for(k=0;k<15;k++)
{
write_data(disp4[k]);
}
}
void warn(uint warn)
{
unsigned int i;
if(warn<TL)
{
beep=1;
delay(1);
for(i=0;i<8;i++)
{
P0=tab2[ i];
delay(60);
}
beep=0;
delay(1);
led=~led;
led1=0;
}
else if(warn>TH)
{
beep=1;
delay(1);
beep=0;
delay(1);
led=~led;
led1=1;
}
}
void timer0()interrupt 1
{
flag=~flag;
}
void int0()interrupt 0
{
if(flag==1)
TH++;
else
TL++;
}
void int1()interrupt 2
{
if(flag==1)
TH--;
else
TL--;
}
void main()
{
uchar i;
uint wendu;
TMOD=0x06;
TH0=TL0=0XFF;
IE=0X87;
IT0=1;
IT1=1;
TRO=1;
lcd_init());
dispaly();
while(1)
{
temp_convert();
wendu=temp_get();
write_com(0x80+7);
temp_dis(temp_get();
write_com(0x80+0x40+3);
temp_dis(TL);
write_com(0x80+0x40+10);
temp_dis(TH);
i=50;
while(i-->0);
warn(wendu);
}
}
|