找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3169|回復(fù): 0
收起左側(cè)

DS18B20數(shù)字溫度計單片機(jī)程序+Proteus仿真

[復(fù)制鏈接]
ID:435149 發(fā)表于 2020-6-6 15:28 | 顯示全部樓層 |閱讀模式
#include "ds18b20.h"

/*****延時子程序*****/
void Delay(uint i)
{  
while( i-- );
}

//DS18B20初始化
void Init_DS18B20(void)
{  
  unsigned char x=0;   
  DQ=1;   
        Delay(8);    //稍做延時
  DQ=0;         //單片機(jī)將DQ拉低  
        Delay(80);   //精確延時,大于480us
  DQ=1;         //拉高總線
  Delay(14);
  x=DQ;           //稍做延時后,如果x=0則初始化成功,x=1則初始化失敗  
  Delay(20);
}  

/*****讀一個字節(jié)*****/
unsigned char ReadOneChar(void)
{   
        unsigned char i=0;
        unsigned char dat=0;
        for (i=8;i>0;i--)  
        {     
                DQ=0;     // 給脈沖信號   
                dat>>=1;   
                DQ=1;     // 給脈沖信號
                if(DQ)     
                        dat|=0x80;  
                Delay(4);
        }   
return(dat);
}  

/*****寫一個字節(jié)*****/
void WriteOneChar(unsigned char dat)
{   
        unsigned char i=0;
  for (i=8; i>0; i--)
        {
                DQ=0;   
                DQ=dat&0x01;  
                Delay(5);     
                DQ=1;     
                dat>>=1;
  }
}  

//發(fā)送溫度轉(zhuǎn)換命令
void Tmpchange(void)
{  
  Init_DS18B20();
  WriteOneChar(0xCC);  //跳過讀序號列號的操作  
  WriteOneChar(0x44);  //啟動溫度轉(zhuǎn)換
}

//讀取溫度值
uint ReadTemperature(void)
{   
        unsigned char a=0;
  unsigned char b=0;
  unsigned int t=0;  
  float tt=0;  
  Tmpchange();
  Init_DS18B20();  
  WriteOneChar(0xCC);  //跳過讀序號列號的操作
  WriteOneChar(0xBE);  //讀取溫度寄存器  
  a=ReadOneChar();     //讀低8位
  b=ReadOneChar();    //讀高8位
  t=b;   
        t<<=8;   
        t=t|a;                                            //高8位左移與低8位相或得到溫度值
        tt=t*0.0625;                    //溫度在寄存器中為12位 分辨率位0.0625°C
        t= tt*100+0.5;     //放大10倍輸出并四舍五入
  return t;
}     


KE3~I2U(GGYUFGP$O`ME[UJ.png

ds18b20數(shù)字溫度計.rar

148.36 KB, 下載次數(shù): 93, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表