久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 18B20檢測溫度,自己編了一個程序,編譯時有錯,不知道如何改,求各位大神的指導 [打印本頁]

作者: 我是你的summer    時間: 2016-10-30 10:50
標題: 18B20檢測溫度,自己編了一個程序,編譯時有錯,不知道如何改,求各位大神的指導
#include<reg51.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
sbit temp_oper=P3^0;
sbit temp_up=P3^1;
sbit temp_down=P3^2;
sbit temp_sure=P3^3;
sbit beep=P2^5;
sbit DQ=P1^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
uchar buf[4];
void delayms(uint xms)
{uint i,j;
for(i=0;i=xms;i++)
  {for(j==0;j==110;j++);
   }
}

   void delay(uint t)
{
  for (;t>0;t--);
}

void display()
{
   uchar i,j;
   j=0x07;
   for(i=0;i<4;i++)
    {P0=table[buf];
         P2=j;
         j=j>>1;
  }
}
void key()
{
uchar flag_key,temp;
flag_key=0        ;
temp=0        ;
if(temp_oper==0)
  {
   delayms(10);
   if(temp_oper==0)
   flag_key=1;
   }
while(flag_key)
{                  
  if(temp_up==0)
  {
   delayms(10);
   if(temp_up==0)
    temp++;
  }          
   if(temp_down==0)
  {
   delayms(10);
   if(temp_down==0)
    temp--;
  }
   if(temp_sure==0)
  {
   delayms(10);
   if(temp_sure==0)
    flag_key=0;
  }
}
}  

void BEEP(uchar temp,temprature)
{
   if(temprature>=temp)
   {beep=1;
        while(1);
        }
  else
    beep=0;
}

  void ds18b20rst()
  {
   uchar x=0;
    DQ=1;
        delay(4)//從高拉倒低
    DQ=0;                                       
    delay(50);           //550 us
    DQ=1;                                       
    delay(6);
        }            //66 us
  void ds18b20wr(uchar wdata)
  {
   uchar i=0;
   for(i=8;i>0;i--)
   {
    DQ=0;
        DQ=wdata&0x01;
        delay(5);
        DQ=1;
        wdata>>=1;
        }
  }

  uchar ds18b20rd()
{
  uchar i=0;
  uchar dat=0;
  for(i=8;i>0;i--)
  {
   DQ=0;
   dat>>=1;
   DQ=1;
   if(DQ)
   dat|=0x80;
   delay(5);
   }
  return(dat);
}

  read_temp()
{
uchar a,b,symbol,temprature;
ds18b20rst();
ds18b20wr(0xcc);
ds18b20wr(0x44);
ds18b20rst();
ds18b20wr(0xcc);
ds18b20wr(0xbe);
a=ds18b20rd();
b=ds18b20rd();
temprature=b;
temprature<<=8;
temprature=temprature|a;
if(temprature<0x0fff)
  symbol=0;
else
{
  temprature=~temprature+1;
  symbol=1;
  }
  temprature=temprature*(0.625);
  return(temprature);
}
void main()
{
uchar temp,temprature;
uchar buf[4];
  buf[0]=temp%10;
  buf[1]=temp/10;
  buf[2]=temprature%10;
  buf[3]=temprature/10;
P0=0 ;
P2=0 ;
read_temp();
ds18b20wr(0xcc);            
ds18b20wr(0x44);
  while(1)
{
key();
read_temp();     
display();
  BEEP();
  }
}
顯示設計1.C(86): error C141: syntax error near 'DQ'
不知如何改正,求幫忙
作者: gujp312365    時間: 2016-10-30 11:56
void delayms(uint xms) {uint i,j; for(i=0;i<=xms;i++)   {for(j==0;j==110;j++);    } }
作者: gujp312365    時間: 2016-10-30 11:58
一大堆問題:你所有的函數聲明也給我放前面,另外這個單總線的東西,對時間要求嚴格。必須注意你的時序正確
作者: 劉海龍    時間: 2016-10-30 12:19
提示顯示的是
  1. void ds18b20rst()
  2.   {
  3.    uchar x=0;
  4.     DQ=1;
  5.         delay(4)//這句后面少了個分號
復制代碼

作者: 劉海龍    時間: 2016-10-30 12:27
本帖最后由 劉海龍 于 2016-10-30 12:28 編輯
  1. 里面的P0=table[buf];是不是應該寫成P0=table[buf[i]];
復制代碼
  1. void display()
  2. {
  3.    uchar i,j;
  4.    j=0x07;
  5.    for(i=0;i<4;i++)
  6.     {
  7.         P0=table[buf];
  8.          P2=j;
  9.          j=j>>1;
  10.   }
  11. }
復制代碼






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品网址 | 国产成人福利在线 | 在线免费看黄 | 四虎在线播放 | 亚洲不卡av在线 | 日韩精品a在线观看图片 | 美女视频一区二区 | 中文字幕一区在线观看视频 | 午夜tv免费观看 | 中文字幕亚洲欧美 | 国产精品99久久久久久动医院 | 中文字幕精品一区二区三区精品 | 亚洲免费在线观看 | 欧美精品一区三区 | 99精品免费在线观看 | 国产免费又黄又爽又刺激蜜月al | 91色在线 | 日本精品999| 九九热免费视频在线观看 | 国产精品久久久久久久岛一牛影视 | 91成人在线视频 | 一级毛片视频免费观看 | 97超碰免费| 91精品国产乱码久久久久久久 | 粉嫩一区二区三区性色av | 精品久久久999 | 福利精品| 日韩国产中文字幕 | 国产精品呻吟久久av凹凸 | 一区二区三区视频在线观看 | 一区二区三区日韩精品 | 看一级毛片视频 | 国产免费视频在线 | 天天色天天色 | 天天插天天射天天干 | 成年人在线电影 | 欧美日韩国产一区二区三区 | 精品国产一区二区三区观看不卡 | 亚洲性视频 | 国产视频中文字幕 | 久久高清|