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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機基于DS18B20的溫度檢測并顯示在lcd1602上

[復制鏈接]
跳轉到指定樓層
#
我是新人,只是為了下載個程序才來發這個帖子,大家不要欺負我。
由于我現在手頭的程序都是我幫我們公司做的項目程序,不敢發上來,只有發個簡單的程序了。
仿真如下圖:
程序:(有什么問題都可以來問我)

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <stdio.h>
  3. sbit DQ =P1^3;
  4. sbit RS = P1^5;
  5. sbit RW = P1^6;
  6. sbit EN = P1^7;
  7. void delay(unsigned int i);
  8. void init_DS18B20(void);
  9. unsigned char read_DS18B20(void);
  10. void write_DS18B20(unsigned char dat);
  11. double read_temperature(void);
  12. void init_lcd(void);
  13. void lcd_write_dat(unsigned char dat);
  14. void lcd_write_cmd(unsigned char cmd);
  15. void main(void)
  16. {
  17.         double temp;
  18.         unsigned char i;
  19.         char str[16];
  20.           init_lcd();
  21.           init_DS18B20();
  22.           while(1)
  23.                 {
  24.                         temp = read_temperature();
  25.                         if(temp)
  26.                         {
  27.                                 sprintf(str,"%f",temp);
  28.                                 for(i=0;i<15;i++)
  29.                                         lcd_write_dat(str[i]);
  30.                                 delay(20000);
  31.                                 init_lcd();
  32.                         }
  33.                 }
  34. }

  35. void delay(unsigned int i)
  36. {
  37.      while(i--);   
  38. }

  39. void init_DS18B20(void)
  40. {
  41. bit flag=1;
  42. while(flag==1)
  43. {
  44.   DQ = 1;   
  45.   DQ = 0;   
  46.   delay(70);
  47.   DQ = 1;   
  48.   delay(10);
  49.   flag=DQ;  
  50.   delay(20);
  51. }
  52. }

  53. unsigned char read_DS18B20(void)
  54. {
  55. unsigned char i = 0, dat = 0;
  56. for (i=0; i<8; i++)
  57. {
  58.   DQ = 0;
  59.   dat>>=1;
  60.   DQ = 1;
  61.   if(DQ)
  62.    dat|=0x80;
  63.   delay(4);
  64. }
  65. return dat;
  66. }
  67. void write_DS18B20(unsigned char dat)
  68. {
  69. unsigned char i=0;
  70. for (i=0; i<8; i++)
  71. {
  72.   DQ = 0;
  73.   DQ = dat&0x01;
  74.   delay(3);
  75.   DQ = 1;
  76.   dat>>=1;
  77. }
  78. delay(5);
  79. }

  80. double read_temperature(void)  
  81. {
  82. unsigned int temp=0;
  83. double d;
  84. init_DS18B20();
  85. write_DS18B20(0xCC);
  86. write_DS18B20(0x44);
  87. init_DS18B20();
  88. write_DS18B20(0xCC);
  89. write_DS18B20(0xBE);
  90. temp=read_DS18B20();   
  91. temp=temp+read_DS18B20()*0x100;   
  92. if(temp<0xf000)   
  93. {
  94.   d=temp*0.0625;
  95. }
  96. else
  97. {
  98.   temp=~temp+1;         
  99.   d=-(temp*0.0625);
  100. }
  101. return  d;
  102. }
  103. void init_lcd(void)
  104. {
  105.         lcd_write_cmd(0x38);
  106.         lcd_write_cmd(0x0f);
  107.         lcd_write_cmd(0x06);
  108.         lcd_write_cmd(0x01);
  109.         delay(100);
  110. }
  111. void lcd_write_dat(unsigned char dat)
  112. {
  113.         P2 = dat;
  114.         RS = 1;
  115.         RW = 0;
  116.         EN = 1;
  117.         delay(100);
  118.         EN = 0;
  119.         delay(5000);
  120. }
  121. void lcd_write_cmd(unsigned char cmd)
  122. {
  123.         P2 = cmd;
  124.         RS = 0;
  125.         RW = 0;
  126.         EN = 1;
  127.         delay(100);
  128.         EN = 0;
  129.         delay(5000);
  130. }
復制代碼




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

使用道具 舉報

7#
ID:849904 發表于 2020-12-19 17:01 | 只看該作者
為什么會一開始顯示85?
回復

使用道具 舉報

6#
ID:648457 發表于 2019-11-28 23:16 | 只看該作者
您好,如果我想把D0到D7連接到P0到P7,程序該如何修改,請指點
回復

使用道具 舉報

5#
ID:422637 發表于 2018-11-7 21:42 來自觸屏版 | 只看該作者
我想拿來做一個實訓的參考
回復

使用道具 舉報

地板
ID:422637 發表于 2018-11-7 21:42 來自觸屏版 | 只看該作者
這個可以用嗎?
回復

使用道具 舉報

板凳
ID:419294 發表于 2018-11-7 14:26 | 只看該作者
還是特別厲害的
回復

使用道具 舉報

沙發
ID:419270 發表于 2018-11-7 12:56 | 只看該作者
還是很厲害的
回復

使用道具 舉報

樓主
ID:406547 發表于 2018-11-5 20:11 | 只看該作者
錯誤好多。。。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久中文字幕 | 蜜桃视频一区二区三区 | 日韩中文字幕 | 蜜桃色网| 天天干夜夜操 | 亚洲天堂中文字幕 | 狠狠做深爱婷婷综合一区 | 男女免费网站 | 久久国产视频网站 | 久草视频在 | 一级片免费视频 | 狠狠爱视频 | 亚洲一区二区国产 | 精品一区二区三区91 | 在线一区二区国产 | 二区久久 | 国产一在线 | 91精品久久久久 | 一区二区日韩精品 | 亚洲国产精品第一区二区 | 亚洲在线电影 | 97精品超碰一区二区三区 | 亚洲在线| 国产精品激情小视频 | 天天干狠狠 | 欧美视频免费在线 | 国产精品久久久久久久久图文区 | 91精品一区二区三区久久久久久 | 精品美女久久久 | 欧美日韩三级在线观看 | 亚洲在线一区二区 | 在线观看视频一区 | 韩日在线视频 | 国产精品亚洲精品 | 精品在线一区 | 精品一区二区在线观看 | www.887色视频免费 | 人人澡视频| av黄色在线观看 | 久久69精品久久久久久国产越南 | 亚洲精品电影网在线观看 |