|
有一個(gè)錯(cuò)誤:FGCCGCG.C(60): error C129: missing ';' before 'useconds'(紅色部分)
之前有一個(gè)錯(cuò)誤是我未定義“useconds”,于是我在上面加了 “unchar useconds;”
求大神解答疑惑,謝謝!
#include <REG52.H>
#define uchar unsigned char
#define unit unsigned int
sbit DQ = P1^0;
sbit RS = P1^7;
sbit RW = P1^6;
sbit EN = P1^5;
union {
uchar c[2];
unit x;
} temp;
uchar flag;
unit cc,cc2;
float cc1;
uchar buff1[13] = {"temperature:"};
uchar buff2[6] = {"+00.0"};
//檢查忙函數(shù)
void fbusy()
{
P2 = 0xff;
RS = 0;
RW = 1;
EN = 1;
EN = 0;
while((P2 & 0x80))
{
EN = 0;
EN = 1 ;
}
}
//寫命令函數(shù)
void wc51r(uchar j)
{
fbusy();
EN = 0;
RS = 0;
RW = 0;
EN = 1;
P2 = j;
EN = 0;
}
//寫數(shù)據(jù)函數(shù)
void wc51ddr(char j)
{
fbusy();
EN = 0;
RS = 1;
RW = 0;
EN = 1;
P2 = j;
EN = 0;
}
void init()
{
wc51r(0x01);
wc51r(0x38);
wc51r(0x0c);
wc51r(0x06);
}
unchar useconds;
void delay(uint useconds)
{
for(; useconds>0; usecond--);
}
uchar ow_reset(void)
{
uchar presence;
DQ = 0;
delay(50);
DQ = 1;
delay(3);
presence = DQ;
delay(25);
return(presence);
}
uchar read_byte(void)
{
uchar i;
uchar value = 0;
for (i=8; i>0; i--)
{
value >>= 1;
DQ = 0;
DQ = 1;
delay(1);
if(DQ) value |=0x80;
delay(6);
}
return(value);
}
void write_byte(uchar val)
{
uchar i;
for (i=8; i>1; i--)
{
DQ = 0 ;
DQ = val&0x01;
delay(5);
DQ=1;
val = val/2;
}
delay(5);
}
void Read_Temperature(void)
{
ow_reset();
write_byte(0xCC);
write_byte(0xBE);
temp.c[1] = read_byte();
temp.c[0] = read_byte();
ow_reset();
write_byte(0xCC);
write_byte(0x44);
return;
}
void main()
{
uchar k;
delay(10);
EA = 0;
flag = 0;
init();
wc51r(0x80);
for (k=0; k<13; k++)
{wc51ddr(buff1[k]);}
while(1)
{
delay(10000);
Read_Temperature();
cc = temp.c[0]*256.0 + temp.c[1];
if (temp.c [0] > 0xf8) {flag=1; cc=~cc+1;}
else flag=0;
cc1 = cc*0.0625;
cc2 = cc1*100;
buff2[1] = cc2/1000 + 0x30;
if (buff2[1] == 0x30)
buff2[1] = 0x20;
buff2[2] = cc2/100 - (cc2/1000)*10 + 0x30;
buff2[4] = cc2/10 - (cc2/1000)*10 + 0x30;
if (flag==1)
buff2[0] = '-';
else
buff2[0] = '+';
wc51r(0xc5);
for (k=0; k<6; k++)
{ wc51ddr (buff2[k]);}
}
}
|
|