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

標題: 基于DS18B20的測溫系統 [打印本頁]

作者: 丁榮全001    時間: 2019-6-19 17:34
標題: 基于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






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产一区二区在线免费观看 | 日韩在线 | 成人午夜精品 | 超碰免费观看 | 欧美日韩专区 | 高清av电影 | 成人精品一区二区三区中文字幕 | 国产一区中文字幕 | 在线日韩av电影 | 91日日| 男女免费观看在线爽爽爽视频 | 国产精品视频网 | a国产一区二区免费入口 | 亚洲精品无 | 日日干日日射 | 欧美在线视频一区二区 | 日本在线综合 | 在线毛片网 | 欧美在线一区视频 | 欧美日韩亚洲国产 | 亚洲一区二区三区高清 | 日韩电影免费在线观看中文字幕 | 特黄一级 | av一级久久 | 亚洲一区二区三区免费在线观看 | 亚洲综合一区二区三区 | 中文字幕99 | 欧美激情国产精品 | 一区二区三区在线 | 日本天堂一区二区 | 欧美成人一区二区三区 | 日本免费小视频 | 成人亚洲精品久久久久软件 | 国产精品国产a | 日韩和的一区二区 | 亚洲精品乱码久久久久久按摩观 | av片网| 涩色视频在线观看 | 特黄色一级毛片 | 成人久久久 | 久久成人一区 |