標(biāo)題: STC89C52+LCD1602+DS18B20做的溫度顯示器 [打印本頁(yè)]

作者: 2515361695    時(shí)間: 2017-10-5 11:13
標(biāo)題: STC89C52+LCD1602+DS18B20做的溫度顯示器
[qq]2515361695[/qq]

制作出來(lái)的實(shí)物圖如下:




單片機(jī)源程序如下:
  1. # include "bs18b20.h"
  2. # include "lcd1602.h"

  3. void delayds18b20(uint t)
  4. {
  5.    while(t--);
  6. }

  7. void init_ds18b20(void)
  8. {
  9.      uchar n;
  10.          DQ=1;
  11.          delayds18b20(8);
  12.          DQ=0;
  13.          delayds18b20(80);
  14.      DQ=1;
  15.          delayds18b20(10);
  16.      n=DQ;
  17.          delayds18b20(5);
  18. }

  19. void ds18b20write_byte(uchar dat)
  20. {
  21.      uchar i;
  22.          for(i=0;i<8;i++)
  23.      {
  24.          DQ=0;
  25.          DQ=dat&0x01;
  26.          delayds18b20(5);
  27.      DQ=1;
  28.                          dat>>=1;
  29.                         }       
  30.     delayds18b20(5);
  31. }       

  32. uchar ds18b20read_byte(void)
  33. {
  34.    uchar i,value;
  35.          for(i=0;i<8;i++)
  36.            {
  37.                    DQ=0;
  38.                          value>>=1;
  39.              DQ=1;
  40.                          if(DQ)
  41.                          value|=0x80;
  42.                    delayds18b20(5);
  43.                  }
  44.                  return value;
  45. }

  46. uchar readtemperture(void)
  47. {
  48.      uchar a,b;
  49.          init_ds18b20();
  50.          ds18b20write_byte(0xcc);//跳過(guò)ROM
  51.          ds18b20write_byte(0x44);//啟動(dòng)溫度測(cè)量
  52.      delayds18b20(200);
  53.      init_ds18b20();
  54.      ds18b20write_byte(0xcc);//跳過(guò)ROM
  55.          ds18b20write_byte(0xbe);//啟動(dòng)溫度測(cè)量
  56.          a=ds18b20read_byte();   //低位
  57.          b=ds18b20read_byte();   //高位
  58.          b<<=4;
  59.          b+=(a&0xf0)>>4;
  60.          return b;
  61. }

  62. void display()
  63. {
  64.     uchar temp;
  65.         temp=readtemperture();
  66.         write_com(0x80);
  67.         write_data('T');
  68.         write_data('e');
  69.         write_data('m');
  70.         write_data('p');       
  71.         write_data('e');
  72. ……………………

  73. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
LCD160顯示溫度.zip (36.1 KB, 下載次數(shù): 125)





作者: 北風(fēng)行    時(shí)間: 2018-5-7 20:58
l樓主,有償發(fā)我郵箱1498500668@qq.com
作者: 無(wú)時(shí)崩潰    時(shí)間: 2018-5-8 14:03
感謝樓主分享
作者: clthegoat1    時(shí)間: 2018-5-8 15:27
感謝分享。。。!
作者: 小貓貓愛(ài)吃魚(yú)    時(shí)間: 2018-5-8 15:33
北風(fēng)行 發(fā)表于 2018-5-7 20:58
l樓主,有償發(fā)我郵箱

WIFI遠(yuǎn)程-智能澆花自動(dòng)控制系統(tǒng)(畢設(shè)佳品)

http://www.torrancerestoration.com/bbs/dpj-112669-1.html




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1