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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

好熱呀,沒有溫度計可不行,自己做個溫度計18B20+2051單片機+數碼管(小兒科)

  [復制鏈接]
跳轉到指定樓層
樓主
ID:72705 發表于 2015-1-24 14:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 huxiao 于 2015-1-24 14:39 編輯

西安這鬼天氣,這幾天真的好熱呀,估計也在30多度
這幾天也沒什么事情干,做個溫度計吧,好壞不說知道有多熱。
很簡單得,18B20+AT89C2051+數碼管
用洞洞板好了,電路不復雜。
這個是我每次用洞洞板前必須要做的工作,用cad先把走線布一下,這樣焊起來就方便多了。
焊接完得正面是這個樣子得:

顯示數字的用前面三個數碼管,最后一個反過來用,可以顯示攝氏度符號。
背面的鍍錫走線是這個垃圾效果:

上電測試溫度顯示:


最后把程序給大家,線路看著程序走,數碼管是共陽的。
  1. #include<reg51.h>
  2. #define leddata P1
  3. sbit led0=P3^7;
  4. sbit led1=P3^0;
  5. sbit led2=P3^1;
  6. sbit DQ=P3^5;
  7. typedef unsigned char byte;
  8. byte i;
  9. unsigned char code tab2[]={0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9};//小數部分顯示數據
  10. unsigned char code tab1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};//LED段碼表,根據自己硬件修改
  11.                            // 0,   1,   2,   3,   4,   5,    6,   7, 8,   9, off
  12. void delays(unsigned char k)
  13. {
  14. unsigned char i,j;
  15. for(i=0;i<k;i++)
  16. for(j=0;j<50;j++);
  17. }
  18. //*********** 18B20驅動 **************************
  19. void delay(unsigned char i)
  20. {
  21. while(--i);
  22. }
  23. //復位
  24. byte ow_reset(void)
  25. {
  26. byte presence;
  27. DQ=0;        //拉低總線
  28. delay(250);    // 保持 480us
  29. delay(250);
  30. DQ = 1;       // 釋放總線
  31. delay(30);     // 等待回復
  32. presence = DQ; // 讀取信號
  33. delay(250);    // 等待結束信號
  34. return(presence); // 返回   0:正常 1:不存在
  35. }   
  36. //從 1-wire 總線上讀取一個字節
  37. byte read_byte(void)
  38. {
  39. byte i;
  40. byte value = 0;
  41. for (i=8;i>0;i--)
  42. {
  43.     value>>=1;
  44.     DQ = 0;
  45.     DQ = 1;
  46.     delay(2);
  47.     if(DQ)value|=0x80;
  48.     delay(6);
  49. }
  50. return(value);
  51. }
  52. //向 1-WIRE 總線上寫一個字節
  53. void write_byte(char val)
  54. {
  55. byte i;
  56. for (i=8; i>0; i--) // 一次寫一位
  57. { DQ=1;
  58.     DQ=0;
  59.     DQ = val&0x01;
  60.     delay(30);
  61.     DQ = 1;
  62.     val=val/2;
  63. }
  64. delay(70);
  65. }

  66. unsigned int Read_Temperature(void)
  67. {  
  68. union
  69. {
  70. unsigned char c[2];
  71. unsigned int x;
  72. }temp;
  73. temp.x=0x0000;
  74. i=ow_reset();
  75. if(!i)
  76. {
  77. write_byte(0xCC);    //Skip ROM
  78. write_byte(0xBE);    //Read Scratch Pad
  79. temp.c[1]=read_byte(); //Start read data
  80. temp.c[0]=read_byte(); //read two byte data from device
  81. ow_reset();        //reset
  82. write_byte(0xCC);    //Skip ROM
  83. write_byte(0x44);    //Start Conversion
  84. }
  85. return temp.x;
  86. }
  87. //***************************
  88. void main(void)
  89. {   unsigned int j;
  90. unsigned char p,q,n0,n1,n2;
  91. while(1)
  92. {
  93. j=Read_Temperature();
  94. q=(unsigned char)(j&0x000f);
  95. p=(unsigned char)(j>>4)-2;
  96. n0=p/10;
  97. n1=p%10;
  98. n2=tab2[q];
  99. led0=0;leddata=tab1[n0];delays(30);led0=1;
  100. led1=0;leddata=tab1[n1]&0x7f;delays(30);led1=1;
  101. led2=0;leddata=tab1[n2];delays(20);led2=1;
  102. }
  103. }
復制代碼

超級簡單吧,所以這個小兒科,給初學者一個參考,高手就不要給我拍磚了,不然我要被打死了。

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

使用道具 舉報

沙發
ID:19701 發表于 2015-1-24 22:29 | 只看該作者
不錯,支持分享精神。51hei有你更精彩!!
回復

使用道具 舉報

板凳
ID:72073 發表于 2015-1-26 10:51 | 只看該作者
寫得不錯。
回復

使用道具 舉報

地板
ID:82175 發表于 2015-6-6 10:34 | 只看該作者
make an effort
回復

使用道具 舉報

5#
ID:70614 發表于 2015-6-9 21:16 | 只看該作者
謝謝分享制作的真好
回復

使用道具 舉報

6#
ID:83846 發表于 2015-6-26 18:07 | 只看該作者
18B20+AT89C2051+數碼管 51hei有你更精彩!!
回復

使用道具 舉報

7#
ID:88176 發表于 2015-8-11 21:57 | 只看該作者
排線不錯
回復

使用道具 舉報

8#
ID:44267 發表于 2015-9-7 13:47 | 只看該作者
有打算做一個,好資料,謝謝
回復

使用道具 舉報

9#
ID:44267 發表于 2015-9-7 13:47 | 只看該作者
51hei有你更精彩!!
回復

使用道具 舉報

10#
ID:19947 發表于 2015-9-9 14:28 | 只看該作者
樓主,超過18b20的測溫上限和下限怎么處理!
回復

使用道具 舉報

11#
ID:19947 發表于 2015-9-9 14:30 | 只看該作者
程序里只能顯示0-99左右,零下無法實現呀。
回復

使用道具 舉報

12#
ID:44889 發表于 2015-10-13 16:51 | 只看該作者
學習了,思路很清晰
回復

使用道具 舉報

13#
ID:36525 發表于 2015-10-13 23:02 | 只看該作者
我也做了一個,那天發個圖上來
回復

使用道具 舉報

14#
ID:113650 發表于 2016-4-12 09:02 | 只看該作者
有沒有原理圖  大神  求原理圖
回復

使用道具 舉報

15#
ID:104472 發表于 2016-4-12 10:45 | 只看該作者
pcb的背面做的很漂亮,就是有點費錫
回復

使用道具 舉報

16#
ID:113703 發表于 2016-4-12 12:41 | 只看該作者
不錯,樓主辛苦了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲黄色网址视频 | 99精品久久久 | 国产成人免费网站 | 爱爱综合网 | 久久精品色欧美aⅴ一区二区 | 福利视频网站 | 婷婷成人在线 | 成人精品一区二区 | 欧美亚洲国产一区二区三区 | 精品人伦一区二区三区蜜桃网站 | 久草视频在| 欧美精品欧美精品系列 | 亚洲91精品| 午夜久久久| 日本欧美在线视频 | 亚洲 欧美 另类 综合 偷拍 | 中文一区 | 成人欧美一区二区三区黑人孕妇 | 亚洲精品第一国产综合野 | 国产免费福利 | 久久九九网站 | 成人久久久 | 欧美一区二区久久 | 亚洲精品粉嫩美女一区 | 欧美一区二区三区在线 | 日韩久久综合网 | 9999视频| 伊人一区 | 亚洲va在线va天堂va狼色在线 | 亚洲影视在线 | 欧美一级在线视频 | 欧美激情欧美激情在线五月 | 亚洲精品久久久久国产 | 国产一级电影在线 | 一本色道精品久久一区二区三区 | 一区二区三区视频在线观看 | 一级毛片免费 | www九色 | 一区二区国产精品 | 精品欧美一区二区在线观看视频 | 91av在线不卡 |