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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2220|回復: 4
打印 上一主題 下一主題
收起左側

18B20檢測溫度,自己編了一個程序,編譯時有錯,不知道如何改,求各位大神的指導

[復制鏈接]
跳轉到指定樓層
樓主
ID:145180 發表于 2016-10-30 10:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#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'
不知如何改正,求幫忙
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:142320 發表于 2016-10-30 11:56 | 只看該作者
void delayms(uint xms) {uint i,j; for(i=0;i<=xms;i++)   {for(j==0;j==110;j++);    } }
回復

使用道具 舉報

板凳
ID:142320 發表于 2016-10-30 11:58 | 只看該作者
一大堆問題:你所有的函數聲明也給我放前面,另外這個單總線的東西,對時間要求嚴格。必須注意你的時序正確
回復

使用道具 舉報

地板
ID:123732 發表于 2016-10-30 12:19 | 只看該作者
提示顯示的是
  1. void ds18b20rst()
  2.   {
  3.    uchar x=0;
  4.     DQ=1;
  5.         delay(4)//這句后面少了個分號
復制代碼
回復

使用道具 舉報

5#
ID:123732 發表于 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. }
復制代碼

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久123| 九色91视频 | 综合色在线 | 午夜日韩视频 | 精品久久久久久红码专区 | 日本粉嫩一区二区三区视频 | 成人免费网站 | 永久网站| www.中文字幕.com | 欧美激情网站 | 欧美精品一区在线发布 | 国产美女视频黄 | 国产东北一级毛片 | 欧美一区二区免费 | 日本不卡一区二区三区在线观看 | 色婷婷综合网 | 国产精品区二区三区日本 | 国产高清一区二区 | 久久久久国产精品午夜一区 | 国产高清在线精品一区二区三区 | av在线三级 | 国产精品区二区三区日本 | 亚洲精品一区二区二区 | 婷婷久久综合 | 久久精品网 | 青青草在线视频免费观看 | 91天堂网| 国产在线精品一区二区三区 | 欧美一区二区三区视频 | 国产蜜臀 | 91精品国产91久久久久久密臀 | 中文字幕不卡在线88 | 青青草原精品99久久精品66 | 亚洲精品视频免费观看 | 欧美激情精品久久久久久变态 | 亚洲婷婷一区 | 日日噜 | 天堂av中文 | 蜜桃日韩| 伊人网站在线观看 | 毛片视频观看 |