找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1988|回复: 0
收起左侧

DS18B20测温小程序

[复制链接]
ID:195479 发表于 2017-5-2 10:53 | 显示全部楼层 |阅读模式
0.png

测温不太准确,捏住18B29温度只到34.6℃,应该是没多点采样加滤波,但是因为单独写了DS18B20的头文件和.C文件,拓展编程也方便,无非就是改个p口就是了

  1. #include <reg51.h>
  2. #include <hd7279.h>
  3. #include <delay.h>
  4. #include "DS18B20.h"
  5. unsigned int Temp_Buffer = 0;
  6. main()
  7. {

  8.   Temp_Buffer = Get_temp();                                          //读取DS18B20的值
  9.   Delay_ms(1000);                                                                //等待1s等待DS18B20数据稳定。否则会出现85℃。
  10. while(1)
  11. {
  12.                 Delay_ms(10);
  13.                 send_byte (CMD_RESET);
  14.         Temp_Buffer = Get_temp();
  15.        write7279(UNDECODE+7, 0X0F);                                        //第8位led显示“t”
  16.            write7279(UNDECODE+6, 0X09);                                        //第7位led显示“=”
  17.                 if(flag_temper == 1)                                                // 根据温度标志显示正负
  18.                 {
  19.                  write7279(UNDECODE+5, 0X08);                           //若为负第6位显示“-”
  20.                 }
  21.                 if( Temp_Buffer/1000 != 0 )                                        // 如果第一位为0则不显示
  22.                 {
  23.                 write7279(DECODE0+4,Temp_Buffer/1000);           //  显示百位值
  24.                 }
  25.                 if( Temp_Buffer/1000 == 0 && Temp_Buffer%1000/100 == 0 )                        //百位十位都为0则不显示
  26.                 {

  27.                 }
  28.                 else
  29.                 {
  30.                 write7279(DECODE0+3,Temp_Buffer%1000/100);           //  显示十位值
  31.                 }
  32.                 write7279(DECODE0+2,Temp_Buffer%100/10+0x80);           //        显示个位值与小数点                                                  
  33.                 write7279(DECODE0+1,Temp_Buffer%10);                  
  34.              write7279(UNDECODE, 0X4e);                                                  
  35.                
  36.                 Delay_ms(500);                               

  37. }


  38. }

  39.                   
复制代码

0.png
下载:
DS18B20.zip (50.63 KB, 下载次数: 7)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表