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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用DS18B20制作數字溫度計

  [復制鏈接]
跳轉到指定樓層
樓主
    春夏之交,氣溫多變,值此季節,制作了一個數字溫度計,感知冷暖,尊重自然。

制作出來的實物圖如下:


    一、設計思路:
   1. 采用AT89S52+DS18B20+三位共陽數碼管構架。本案例最終生成的HEX文件只有3.2K,單片機用AT89S52有些浪費了,但芯片是以前學習時留下來的,而且P0口有斷腳,發揮余熱吧。有強迫癥的朋友可以選用STC15W204S+74HC595。
   2. 數碼管上下倒置,目的是為了能顯示溫度單位,數碼管代碼需另外取碼(推薦),或是在焊接時重新分布腳位也可。
    二、電路構成:
    1. 單片機最小系統:AT89S52、40P雙列插座、晶振(12MHz)、30pF貼片電容(2個)、10K電阻、10uF電解電容。
    2. 溫度采集電路:DS18B20(數字溫度傳感器、4.7K貼片電阻。
    3. 數碼管顯示電路:F4301BH(三位共陽)、100歐電阻8個(段限流電阻,實際焊接為91歐)、SS8550三極管3個+10K電阻3個(位驅動)。
    4. 供電電路:DC5V電源座、100uF濾波電容。
    三、編程與仿真:
    此過程略……
    四、電路焊接:
    電路較簡單,萬能板就可以。一些小元件焊接在40P座里面或是在底層。底層的導線有些雜亂,最后用上了硅膠槍,感覺還行。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


附程序(不全):
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit w1=P2^5;
sbit w2=P2^6;
sbit w3=P2^7;
sbit DQ=P3^4;

bit TempFlag;
uint Temp;
uchar code tab[]={0xc0,0xcf,0xa4,0x86,0x8b,0x92,0x90,0xc7,0x80,0x82};  //代碼表,已重新取碼

void Delayms(uint xms);   
void Delayus(uint xus);
void GetTemp(void);
void InitT0(void);
void Init_DS18B20(void);
uchar Read_DS18B20(void);
void Write_DS18B20(uchar Dat);

void display()
{
   P1=0x33;
   w3=0;
   Delayms(2);
   w3=1;
         
   P1=tab[Temp%10];
   w2=0;
   Delayms(2);
   w2=1;
                  
   P1=tab[Temp/10];
   w1=0;
   Delayms(2);
   w1=1;
}

void main()                 //主函數
{
    InitT0();
    while(1)
    {
       GetTemp();     //讀取溫度
       display();
    }
}

void Init_DS18B20(void)           //初始化DS18B20函數
{
  DQ=1;
  Delayus(4);
  DQ=0;
  Delayus(100);
  DQ=1;
  Delayus(40);
}

uchar Read_DS18B20(void)       //讀DS18B20函數
{
  uchar i=0,Dat=0;
  for(i=0;i<8;i++)
    {
        DQ=1;
        DQ=0;
        Dat>>=1;
        DQ=1;
        if(DQ)
        Dat|=0x80;
        DQ=1;
        Delayus(25);
    }
  return(Dat);
}

void Write_DS18B20(uchar Dat)   //寫DS18B20函數
{
  uchar i=0;
  for(i=0;i<8;i++)
   {
      DQ=1;
      Dat>>=1;
      DQ=0;
      DQ=CY;
      Delayus(25);
      DQ=1;
    }
}

void GetTemp(void)           //取溫度函數
{
  uchar a=0,b=0;
  Init_DS18B20();
  Write_DS18B20(0xcc);
  Write_DS18B20(0x44);
  Init_DS18B20();
  Write_DS18B20(0xcc);
  Write_DS18B20(0xbe);
  a=Read_DS18B20();
  b=Read_DS18B20();
  Temp=b;
  Temp<<=8;
  Temp=Temp|a;
  if(b>=8)
   {
     Temp=~Temp+1;
      TempFlag=1;
   }
  else
    TempFlag=0;
    Temp=Temp*0.0625;
}

全部程序51hei下載地址:
18B20.rar (868 Bytes, 下載次數: 138)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:89286 發表于 2020-3-27 20:34 | 只看該作者
thanks for sharing
回復

使用道具 舉報

板凳
ID:283883 發表于 2020-3-28 07:40 | 只看該作者
文件里只有代碼,沒有仿真啊
回復

使用道具 舉報

地板
ID:299519 發表于 2020-3-31 12:30 | 只看該作者
不錯,通過驗證。。
回復

使用道具 舉報

5#
ID:382454 發表于 2020-4-25 14:41 | 只看該作者
不錯的作品
回復

使用道具 舉報

6#
ID:65226 發表于 2020-4-26 07:34 來自手機 | 只看該作者
挺好的,[贊][贊][贊]
回復

使用道具 舉報

7#
ID:85508 發表于 2023-2-28 21:52 | 只看該作者
下載學習了
回復

使用道具 舉報

8#
ID:364937 發表于 2023-3-1 10:39 | 只看該作者
作品不錯
回復

使用道具 舉報

9#
ID:138997 發表于 2023-3-15 09:24 | 只看該作者
下來仿制看能不能成功
回復

使用道具 舉報

10#
ID:673647 發表于 2023-3-23 12:13 | 只看該作者
應該4位數碼管就好了,留一位小數
回復

使用道具 舉報

11#
ID:1072015 發表于 2023-4-16 10:42 | 只看該作者
你好,這個文章很棒
回復

使用道具 舉報

12#
ID:894868 發表于 2023-4-19 16:54 | 只看該作者
支持你一個··有想法復制一個實物··
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91九色在线观看 | 91不卡在线 | 亚洲一区二区免费视频 | 欧美h版| 久久久精品综合 | 一区二区三区视频在线观看 | 成人精品一区 | 日韩成人久久 | 亚洲欧美一区二区三区1000 | 午夜精品视频 | 天天干天天操 | 欧美性a视频 | 九色在线 | 澳门永久av免费网站 | 日韩久久网 | 国产高清精品一区 | 秋霞av国产精品一区 | 日韩欧美国产精品一区二区 | 国产乱码精品一区二区三区五月婷 | 国产香蕉视频在线播放 | 涩爱av一区二区三区 | 色狠狠桃花综合 | 国产精品国产精品 | 不卡在线一区 | 精品一二三区 | 黑人巨大精品欧美一区二区免费 | 日本福利片 | jizz在线免费观看 | 国产欧美一区二区三区久久手机版 | 成人在线免费网站 | 中文字幕免费中文 | 超碰av免费 | 成人国产精品免费观看 | 精品久久久久久久 | 在线观看亚洲一区二区 | 精品96久久久久久中文字幕无 | 亚洲国产精品成人久久久 | 嫩草视频免费 | 国产一区不卡在线观看 | 成人一区在线观看 | 日韩伦理一区二区 |