找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3441|回复: 1
收起左侧

ds18b20 温度模块串口显示简单代码

[复制链接]
ID:568565 发表于 2019-9-24 23:17 | 显示全部楼层 |阅读模式
今天晚上没事干编了一个极简的一个小程序,虽然简单但是还是很稳定的,连接也很简单,用最小系统板p0.0口接上ds18b20模块就可以了

#include <reg51.h>
#include <intrins.h>
#include <stdio.h>
#include "DS18B20.h"
#define OSC 11059200            //晶振频率
#define BAUDRATE 9600    //波特率

void main(void)
{

       unsigned int i;
       unsigned char tmph,tmpl;
       Temp t;
       unsigned char strTemp[8];    //显示到屏幕的温度数据
                           //开背光
       TMOD = 0x21;                  //选择方式2作为波特率发生
       SCON = 0x50;                   //串口方式1,允许中断
       PCON |= 0x80;                  //SMOD=1
       TL1 = 256 -(OSC/12/16/BAUDRATE);
       TH1 = 256 -(OSC/12/16/BAUDRATE);
       TR1 = 1;                                  //启动定时器
       TI = 1;                                   //TI有效
//检测DS18B20温度传感器是否存在并复位传感器
       if(DSReset())
           printf("\r\Temp sensor ResetOK!");
       else  printf("\r\Temp Sensor Notready!");
          
    while(1){
       
          DSReset();                             //复位传感器
          Delay(1);
          DSWriteByte(SkipROM);                  //跳读 省时
          DSWriteByte(StartConvert);             //温度转换
          for(i=0;i<40000;i++);
          DSReset();
          Delay(1);
          DSWriteByte(SkipROM);
          DSWriteByte(ReadMemory);   //读RAM程序
          tmpl = DSReadByte();
          tmph = DSReadByte();
          printf("\r\nTemperature code HI=%02bX,LO=%02bX ",tmph,tmpl);
          DSReadTemp(&t);
//准备输出到显示屏的数据
        strTemp[0]=t.z/10+0x30;     //十位
        strTemp[1]=t.z%10+0x30;     //个位
        strTemp[2]='.';             //小数点
        strTemp[3]=t.x/1000+0x30;   //十分位
        strTemp[4]=(t.x/100)%10+0x30; //百分位
                strTemp[5]=(t.x/10)%10+0x30;//千分位
                strTemp[6]=t.x%10+0x30;            //万分位
        strTemp[7]='C';
              if(t.z>=30)
              printf("\nWarning!!!Temperature= %d.%04d ",t.z,t.x) ;  //大于30度温度警告
              else
        printf("\r\nTemperature = %d.%04d",t.z,t.x);

}
}

串口助手显示选9600波特率

串口助手显示选9600波特率

实物连接,其实就一根线

实物连接,其实就一根线

温度串口显示.zip

47 KB, 下载次数: 64, 下载积分: 黑币 -5

评分

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

查看全部评分

回复

使用道具 举报

ID:571427 发表于 2019-11-14 08:41 | 显示全部楼层
支持!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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