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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于DS18B20的測溫系統

[復制鏈接]
跳轉到指定樓層
樓主
這是一個簡易的基于DS18B20和AT89C2051單片機的測溫系統,參考程序如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char    //???
sbit DQ=P3^7;         //??DS18B20 ? I/O
uchar x=0;          //???
signed char m;         //???????
uchar n;           //???????
uint z;
uint c;
uchar code  LEDData[]={0x3F,0x06,0x5b,0x4F,0x66,0x6D,0x7D,0x07,
   0x7F,0x6F};
//*****?????*****{0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,//
   //0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B};//
void Delay_DS18B20(int num)
{
while(num--) ;
}
/*****???DS18B20*****/
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1;          //DQ??
Delay_DS18B20(8);   //????
DQ = 0;             //????DQ??
Delay_DS18B20(80);  //????,??480us
DQ = 1;          //????
Delay_DS18B20(14);
x = DQ;            //?????,??x=0??????,x=1??????
Delay_DS18B20(20);
}
/*****?????*****/
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_DS18B20(4);
   }
   return(dat);
}
/*****?????*****/
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
   for (i=8; i>0; i--)
   {
     DQ = 0;
     DQ = dat&0x01;
     Delay_DS18B20(5);
     DQ = 1;
     dat>>=1;
   }
}
/*****????*****/
unsigned int ReadTemperature(void)
{
unsigned char a=0;
   unsigned char b=0;
   unsigned int t=0;
   float tt=0;
   Init_DS18B20();
   WriteOneChar(0xCC);  //??????????
   WriteOneChar(0x44);  //??????
   Init_DS18B20();
   WriteOneChar(0xCC);  //??????????
   WriteOneChar(0xBE);  //???????
   a=ReadOneChar();     //??8?
   b=ReadOneChar();  //??8?
   t=b;     //?8????t
   t<<=8;        //t????8?
   t=t|a;        //?t?a???,????16???
   tt=t*0.0625;   //?t??0.0625???????
          //(???????12???,??????0.0625)
   t= tt*10+0.5;        //??10?(???????????)???????
   return(t);       //?????
}
/*****?????*****/
void Delay(uint num)
{
while( --num );
}   
/*****????*****/
void check_wendu(void)
{
uint a,b;
c=ReadTemperature();    //?????
a=c/100;         //????????
b=c/10-a*10;       //????????
m=c/10;          //???????
if(m<=0)        //??????0,?????0
{
  m=0;
}
n=c-a*100-b*10;
      //???????
}
/*****???????????*****/
void Disp_init(void)   
{
P1 = ~0x80;         //??-
P3 = 0xFB;
Delay(200);
P3 = 0xDF;
Delay(200);   
P3 = 0xEF;
Delay(200);
P3 = 0xF7;
Delay(200);
P3 = 0xFF;          //????
}
/*****???????*****/
void Disp_Temperature(void)   
{
P1 = 0x98;          //??c
P3 = 0x7F;
Delay(1000);
P3=0xff;    //????
P1=LEDData[n];      //?????
P3 = 0xdf;
Delay(1000);
P3=0xff;      //????
P1 =LEDData[m%10]+0x80;    //????
P3 = 0xef;
Delay(1000);
P3=0xff;      //????
P1 =LEDData[m/10];    //????
P3 = 0xf7;
Delay(1000);
P3 = 0xff;            //????
}
/*****???*****/
void main(void)
{
check_wendu();
  check_wendu();
  for(z=0;z<300;z++)
  {
    Disp_init();        
   }
   while(1)
   {
    check_wendu();
  Disp_Temperature();
  }
}


123.png (76.95 KB, 下載次數: 29)

123.png

圖片1.png (29.68 KB, 下載次數: 34)

仿真圖

仿真圖

基于DS18B20的測溫系統.rar

253.94 KB, 下載次數: 18, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕国产在线 | 日韩午夜电影在线观看 | 欧洲一区二区三区 | 亚洲黄色av网站 | 成人免费视频久久 | 欧美一区二区在线 | 人人干人人玩 | 一区二区三区精品在线 | 天堂av中文在线 | 亚洲国产成人在线观看 | 欧美福利网站 | 久久九九色 | 日韩电影中文字幕 | 色男人的天堂 | 国产91成人 | 精品日韩欧美一区二区 | 日韩一区二区在线看 | 欧美专区在线视频 | 日本网站免费在线观看 | av在线二区 | 日日想夜夜操 | 欧美在线一区二区三区 | 成人在线h| 91精品91久久久 | 欧美在线a | 国产资源在线视频 | 成人在线国产 | 国产一区二区三区四区五区加勒比 | 天天看天天爽 | 成人a免费 | 男人天堂手机在线视频 | 亚洲精品国产综合区久久久久久久 | 亚洲精品久久久久久宅男 | 亚洲不卡在线观看 | 久久综合狠狠综合久久综合88 | 欧美99久久精品乱码影视 | 亚洲 欧美 日韩 在线 | 欧美午夜视频 | 欧美日韩不卡合集视频 | 久久久久国产精品一区三寸 | 日本久久精品 |