欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2856|回復: 2
收起左側(cè)

5.C(9): error C129: missing ';' before 'DS18B20_DATA'大佬們 這個怎么修改

[復制鏈接]
ID:754173 發(fā)表于 2020-6-1 17:16 | 顯示全部樓層 |閱讀模式
YUAN.png #include <reg51.h>#include <intrins.h>
//****************************頭文件聲明***************************
typedef unsigned char uint8;
typedef unsigned int uint16;
//****************************I/O口線聲明****************************
#define SEG_CODE_PORT P0                                //數(shù)碼管段選
#define BIT_CODE_PORT P2                                //數(shù)碼管位選
Sbit DS18B20_DATA=P3^7;                                 //18B20數(shù)據(jù)口
sbit BUZZ=P1^0;                                         //蜂鳴器定義
sbit key1=P3^2;                                         // 按鍵定義      
sbit key2=P3^4;
//************************常量數(shù)組(段碼表)聲明*********************
uint8 code SegCodeTable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//****************************全局變量聲明***************************
int t=0x0248;                                            //定義報警溫度
int Temperature;                                        //
int a= 0x0180;                                           //報警溫度
//****************************函數(shù)原型聲明**************************
void DS18B20Init();
void DS18B20BitWrite(bit Bit);
bit DS18B20BitRead();
void DS18B20ByteWrite(uint8 Byte);
uint8 DS18B20ByteRead();
void GetTemperature();
void DispTemperature();
void Delay(uint16 ms);
void AlarmCheck()
{
uint8 i;
if(Temperature>a ) //溫度大于a蜂鳴器報警
{
for(i=0;i<50;i++)
{
BUZZ=~BUZZ ;
Delay(1); //延時50ms
}
}
}
void key()
{
         uint8 key1,key2;
          Delay (5);
          if( key1 ==0);
                        {Delay(5);}    //消抖
         if(key1==0)
         {t=t+0x0008;}         //溫度加0.5
        while(!key1);
                                Delay(5);
          if (key2==0)
        {
                        Delay(5);}        //消抖
                if (key2==0)
                {t=t-0x0008;}       //溫度減0.5
        while (!kkey2)£»
}
       
//******************************主函數(shù)***************************
void main()
{
while(1)
{
GetTemperature() ;  
DispTemperature() ;
        key();
AlarmCheck();       
}
}
//*************************DS18B20初始化函數(shù)*******************
void DS18B20Init()
{
uint16 i;
while(1)
{
DS18B20_DATA=0;
i=640;
while(--i); //延時800US
DS18B20_DATA=1;
i=56;
while(--i); //延時70us
if(DS18B20_DATA==1) continue; //無響應則重發(fā)復位脈沖
i=224;
while(--i); //??280us
if(DS18B20_DATA==1) break; //復位成功}
i=160;
while(--i);//??200us
}
//***********************DS18B20位寫函數(shù)************************
void DS18B20BitWrite(bit Bit)
{
uint16 i;
DS18B20_DATA=0;
i=4;
while(--i); //延時5us
DS18B20_DATA=Bit; //發(fā)送一位數(shù)到DS18B20
i=48;
while(--i); //延時60us
DS18B20_DATA=1;
}
//**********************DS18B20位讀操作函數(shù)*************************
bit DS18B20BitRead()
{
bit temp;
uint16 i;
DS18B20_DATA=0;
i=4;
while(--i); //延時5us
DS18B20_DATA=1;
i=4;
while(--i); //延時5us
temp=DS18B20_DATA; //讀來自DS18B20的一位數(shù)
i=48;
while(--i); //延時60us
return temp;
}
//**********************DS18B20字節(jié)寫操作函數(shù)************************
void DS18B20ByteWrite(uint8 Byte)
{
uint8 i;
for(i=0;i<8;i++) //一共發(fā)送8位
{
if(Byte&0x01==1  ) //發(fā)送最低為
DS18B20BitWrite(1); //發(fā)1
else
DS18B20BitWrite(0); //發(fā)0

Byte>>=1;    //字節(jié)移位
}
}
//**********************DS18B20字節(jié)讀操作函數(shù)************************
uint8 DS18B20ByteRead()
{
uint8 i,temp=0;
for(i=0;i<8;i++) //一共讀8位
{
temp>>=1; //字節(jié)變量右移
if(DS18B20BitRead()==1) //讀取1位數(shù)據(jù)并存入臨時變量temp中
temp|=0x80; //temp最高位置1
}
return temp; //返回讀到的8位數(shù)}
//*****************************溫度采集函數(shù)**************************
void GetTemperature()
{
uint8 Buff[2],i;
DS18B20Init(); //DS18B20初始化
DS18B20ByteWrite(0xCC); //跳過ROM匹配(因為只有一個DS18B20)
DS18B20ByteWrite(0x44) ;//啟動溫度轉(zhuǎn)換
for(i=0;i<250;i++)
DispTemperature(); //等待750ms,期間不斷刷新LED顯示
DS18B20Init(); //DS18B20初始化
DS18B20ByteWrite(0xCC); //跳過ROM匹配
DS18B20ByteWrite(0xbe);  // 準備讀轉(zhuǎn)換結(jié)果
Buff[0]=DS18B20ByteRead(); //讀溫度值低字節(jié)
Buff[1]=DS18B20ByteRead(); //讀溫度值的高字節(jié)
Temperature= (Buff[1]<<8)+Buff[0];    //拼成16位溫度值
}
//*****************************溫度顯示函數(shù)************************
void DispTemperature()
{
uint8 temp1,temp2;
key();
        temp1=(t>>4)/10; //顯示十位
if(temp1==0)
SEG_CODE_PORT=0xFF ; //十位為0則隱去
else
SEG_CODE_PORT=SegCodeTable[temp1];
BIT_CODE_PORT=0xF0;                                   //選擇顯示位置
Delay(1);
BIT_CODE_PORT=0xFF;

SEG_CODE_PORT=SegCodeTable[(t>>4)%10]&0x7F; //Ï顯示個位
BIT_CODE_PORT=0xF1;                              //選擇顯示位置
Delay(1);
BIT_CODE_PORT=0xFF;
SEG_CODE_PORT=SegCodeTable[(t&0x0F)*10/16]; //顯示十分位
BIT_CODE_PORT=0xF2; //選擇顯示位置
Delay(1);
BIT_CODE_PORT=0xFF;
temp2=(Temperature>>4)/10; //顯示十位
if(temp2==0)
SEG_CODE_PORT= 0xFF;//十位為0則隱去
else
SEG_CODE_PORT=SegCodeTable[temp2];
BIT_CODE_PORT=0xF5; //選擇顯示位置
Delay(1);
BIT_CODE_PORT=0xFF;
SEG_CODE_PORT=SegCodeTable[(Temperature>>4)%10]&0x7F; //Ï顯示個位
BIT_CODE_PORT=0xF6; //選擇顯示位置
Delay(1);
BIT_CODE_PORT=0xFF;
SEG_CODE_PORT=SegCodeTable[(Temperature&0x0F)*10/16]; //顯示十分位
BIT_CODE_PORT=0xF7; //選擇顯示位置
Delay(1);
BIT_CODE_PORT=0xFF;
}
//*****************************軟件延時函數(shù)************************
void Delay(uint16 ms)
{
uint16 i;
do{
i=790;
while(--i); //延時1ms(STC12C5A60S2,11.0592MHz,代碼5級優(yōu)化)
} while(--ms);
}


回復

使用道具 舉報

ID:452950 發(fā)表于 2020-6-1 20:46 | 顯示全部樓層
Sbit DS18B20_DATA=P3^7;
開頭小寫
sbit DS18B20_DATA=P3^7;
回復

使用道具 舉報

ID:731294 發(fā)表于 2020-6-1 21:35 | 顯示全部樓層
缺少分號,你給他加上不就行了。雙擊錯誤命令行查看錯誤位置,然后在錯誤位置修改
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表