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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8142|回復(fù): 4
收起左側(cè)

簡(jiǎn)易溫度計(jì)元件清單 實(shí)物制作 原理圖與單片機(jī)程序

[復(fù)制鏈接]
ID:226066 發(fā)表于 2017-8-9 13:12 | 顯示全部樓層 |閱讀模式
基于51單片機(jī)做的簡(jiǎn)易溫度計(jì)的實(shí)物圖如下:
0.png 0.png
簡(jiǎn)易溫度計(jì)元件清單

萬(wàn)用板7*9
3pin圓孔母座
2.2K電阻*4
stc89C51單片機(jī)
40腳IC座
DS18B20溫度傳感器   
10K電阻*2
10uF電容   
小按鍵
12MHz晶振   
30pF瓷片電容*2
9012三極管*4
四位一體共陽(yáng)數(shù)碼管0.56
DC電源插座
USB電源線
自鎖開(kāi)關(guān)   
導(dǎo)線
焊錫

全部資料下載地址:
原理圖.doc (49.5 KB, 下載次數(shù): 83)
元件清單.docx (12.38 KB, 下載次數(shù): 45)

單片機(jī)源程序:
  1. #include<reg52.h>
  2. #define ui unsigned int
  3. #define uc unsigned char    //宏定義
  4. sbit DQ =P3^7;        //定義DS18B20總線I/O
  5. bit bdata fuhao;
  6. uc qian,bai,shi,ge;
  7. uc code led[]  = {0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7};
  8. uc code led_dian[] = {0x7f,0x64,0xbd,0xf5,0xe6,0xf3,0xfb,0x67,0xff,0xf7};
  9. //=========================================DS18B20=========================================//
  10. /*****延時(shí)子程序*****/
  11. void Delay(int num)
  12. {
  13. while(num--) ;
  14. }
  15. /*****初始化DS18B20*****/
  16. void Init_DS18B20()
  17. {
  18. DQ = 1;         //DQ復(fù)位
  19. Delay(8);    //稍做延時(shí)
  20. DQ = 0;         //單片機(jī)將DQ拉低
  21. Delay(80);   //精確延時(shí),大于480us
  22. DQ = 1;         //拉高總線
  23. Delay(40);
  24. }
  25. /*****讀一個(gè)字節(jié)*****/
  26. uc ReadOneChar()
  27. {
  28. uc i=0;
  29. uc dat = 0;
  30. for (i=8;i>0;i--)
  31. {
  32.   DQ = 0;     // 給脈沖信號(hào)
  33.   dat>>=1;
  34.   DQ = 1;     // 給脈沖信號(hào)
  35.   if(DQ)
  36.   dat|=0x80;
  37.   Delay(4);
  38. }
  39. return(dat);
  40. }
  41. /*****寫(xiě)一個(gè)字節(jié)*****/
  42. void WriteOneChar(uc dat)
  43. {
  44. uc i=0;
  45. for (i=8; i>0; i--)
  46. {
  47.   DQ = 0;
  48.   DQ = dat&0x01;
  49.   Delay(5);
  50.   DQ = 1;
  51.   dat>>=1;
  52. }
  53. }
  54. /*****讀取溫度*****/
  55. ui ReadTemperature()
  56. {
  57.   ui a=0,b=0,t=0;
  58.   float tt=0;
  59.   Init_DS18B20();
  60.   WriteOneChar(0xCC);  //跳過(guò)讀序號(hào)列號(hào)的操作
  61.   WriteOneChar(0x44);  //啟動(dòng)溫度轉(zhuǎn)換
  62.   Init_DS18B20();
  63.   WriteOneChar(0xCC);  //跳過(guò)讀序號(hào)列號(hào)的操作
  64.   WriteOneChar(0xBE);  //讀取溫度寄存器
  65.   a=ReadOneChar();     //讀低8位
  66.   b=ReadOneChar();    //讀高8位
  67.   t=b;
  68.   t<<=8;
  69.   t=t|a;
  70.   if(t&0xf800)
  71.   {
  72. t=~t+1;
  73. fuhao=1;
  74.   }
  75.   else
  76.   fuhao=0;
  77.   tt=t*0.0625;
  78.   t=tt*10+0.5;     //放大10倍輸出并四舍五入
  79.   return(t);
  80. }
  81. /*****讀取溫度*****/
  82. void check_wendu()
  83. {
  84. ui f;
  85. f=ReadTemperature();     //獲取溫度值并減去DS18B20的溫漂誤差
  86. qian=f/1000;
  87. bai=(f%1000)/100;           //計(jì)算得到十位數(shù)字
  88. shi=((f%1000)%100)/10;         //計(jì)算得到個(gè)位數(shù)字
  89. ge=((f%1000)%100)%10;            //計(jì)算得到小數(shù)位
  90. }
  91. /*****顯示開(kāi)機(jī)初始化等待畫(huà)面*****/
  92. void Disp_init()
  93. {
  94. P0 = 0x7f;      //顯示----
  95. P2 = 0x7f;
  96. Delay(100);
  97. P2 = 0xdf;
  98. Delay(100);   
  99. P2 = 0xf7;
  100. Delay(100);
  101. P2 = 0xfd;
  102. Delay(100);
  103. P2 = 0xff;         //關(guān)閉顯示
  104. }
  105. /*****顯示溫度子程序*****/
  106. void Disp_Temperature()     //顯示溫度
  107. {
  108. if(qian==0)
  109. {
  110.   if(fuhao==1)
  111.   P0=0x7f;      //1011 1111
  112.   else
  113.   P0=0xff;
  114.   P2=0xfd;
  115.   Delay(10);
  116.   P2 = 0xff;
  117. }
  118. else if(qian!=0)
  119. {
  120.   P0 =~led[qian];
  121.   P2 = 0xfd;
  122.   Delay(10);
  123.   P2 = 0xff;
  124. }
  125. if((bai==0)&&(qian==0))
  126. {
  127.   P0=0xff;    //
  128.   P2=0xf7;
  129.   Delay(10);
  130.   P2=0xff;
  131. }
  132. else if((bai==0)&&(qian!=0))
  133. {
  134.   P0=~led[bai];
  135.   P2=0xf7;
  136.   Delay(10);
  137.   P2=0xff;
  138. }
  139. else if(bai!=0)
  140. {
  141.   P0=~led[bai];    //
  142.   P2=0xf7;
  143.   Delay(10);
  144.   P2=0xff;
  145. }
  146. P0=~led_dian[shi];    //
  147. P2=0xdf;
  148. Delay(10);
  149. P2=0xff;
  150. P0=~led[ge];    //顯示符號(hào)
  151. P2=0x7f;
  152. Delay(10);
  153. P2=0xff;         //關(guān)閉顯示
  154. }
  155. /*****主函數(shù)*****/
  156. void main()
  157. {
  158. uc z;
  159. for(z=0;z<100;z++)
  160. {
  161.   Disp_init();
  162.   check_wendu();
  163. }
  164. while(1)
  165. {
  166.   check_wendu();
  167.   for(z=0;z<10;z++)
  168.   Disp_Temperature();
  169. }
  170. }
復(fù)制代碼



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:297248 發(fā)表于 2018-4-2 08:17 | 顯示全部樓層
我點(diǎn)擊下載,鏈接進(jìn)不去怎么辦啊
回復(fù)

使用道具 舉報(bào)

ID:286719 發(fā)表于 2018-4-12 20:55 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:286719 發(fā)表于 2018-4-12 21:19 | 顯示全部樓層
PCB的就更好了
回復(fù)

使用道具 舉報(bào)

ID:415195 發(fā)表于 2018-10-25 15:15 | 顯示全部樓層
666666666666
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久乱弄 | 久久久久久国产精品 | 免费小视频在线观看 | 亚洲一区二区在线视频 | 国产一二三区免费视频 | 香蕉一区| 精品国产一区二区三区性色av | 国产一区 日韩 | 四虎成人免费电影 | 在线免费观看视频你懂的 | 欧美性久久久 | 91极品欧美视频 | 国产成人在线一区二区 | 欧美二区在线 | 亚洲国产精品一区二区第一页 | 少妇一级淫片免费放播放 | 狠狠干在线 | 亚洲精品视频在线看 | 亚洲一区国产精品 | 亚洲精品乱码久久久久久9色 | 国产黑丝av| 在线视频久久 | 国产一区二区自拍 | 自拍偷拍中文字幕 | 精品一区二区三区四区视频 | 一级毛片免费完整视频 | 日韩视频在线观看中文字幕 | 少妇无套高潮一二三区 | 亚洲国产免费 | 日韩精品视频在线 | 成人在线免费看 | 国产成人精品久久久 | 中文字幕不卡视频在线观看 | 天天射天天干 | 免费激情网站 | 日韩中文字幕一区二区三区 | 精品日韩在线 | 91电影| 亚洲综合色视频在线观看 | 国产精品99久久久久久www | 欧美日韩专区 |