0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用DS18B20和LED数码管实现单总线温度测量系统

我快闭嘴 来源:电路一点通 作者:电路一点通 2022-09-26 15:08 次阅读

串行扩展应用

利用 DS18B20 和 LED 数码管实现单总线温度测量系统。DS18B20的测量范围是-5℃~128℃。由于只接有两个 LED数码管,所以显示的数值只能在 00~~99 之间。

(1)硬件

Proteus仿真图:

bb1d114e-3b39-11ed-9e49-dac502259ad0.png

(2)软件设计

#include
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define out P0
sbit smg1=out^4;
sbit smg2=out^5;
sbit DQ=P3^7;
void delay5(uchar);
void init_ds18b20(void);
uchar readbyte(void);
void writebyte(uchar);
uchar retemp(void);

void main(){
uchar i,temp;
delay5(1000);
while(1){
temp=retemp();
for(i=0;i<10;i++){
out=(temp/10)&0x0f;
smg1=0;
smg2=1;
delay5(1000);
out=(temp%10)&0x0f;
smg1=1;
smg2=0;
delay5(1000);
}
}
}

void delay5(uchar n){
do{
nop();
nop();
nop();
n–;
}while(n);
}

void init_ds18b20(void){
uchar x=0;
DQ=0;
delay5(120);
DQ=1;
delay5(16);
delay5(80);
}

uchar readbyte(void){
uchar i=0;
uchar date=0;
for(i=8;i>0;i–){
DQ=0;
delay5(1);
DQ=1;
date>>=1;
if(DQ)date|=0x80;
delay5(11);
}
return(date);
}

void writebyte(uchar dat){
uchar i=0;
for(i=8;i>0;i–){
DQ=0;
DQ=dat&0x01;
delay5(12);
DQ=1;
dat>>=1;
delay5(5);
}
}

uchar retemp(void){
uchar a,b,tt;
uint t;
init_ds18b20();
writebyte(0xcc);
writebyte(0x44);
init_ds18b20();
writebyte(0xcc);
writebyte(0xbe);
a=readbyte();
b=readbyte();
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
return(tt);
}

(3)效果图

bba061ac-3b39-11ed-9e49-dac502259ad0.png

仿真运行状态①(未操作温度)

bbcce808-3b39-11ed-9e49-dac502259ad0.png

仿真运行状态②(未操作温度)

bc0198e6-3b39-11ed-9e49-dac502259ad0.png

仿真运行状态③(ds18b20按钮按下,温度增加)

bca91670-3b39-11ed-9e49-dac502259ad0.png

仿真运行状态④(ds18b20按钮按下,温度增加)

实验结论及分析

1.程序的核心思想

①DS18B20与传统的热敏电阻不同,DS18B20 可直接将被测温度转换为串行数字信号,供单片机处理。通过对 DS18B20 编程可以实现 9~12 位的温度读数,并可分别在 93.75ms 和 750ms 内完成 9 位和 12 位的数字量。其测温范围-55℃~+125℃,最大分辨率为 0.0625℃,在一10℃~+85℃范围内其测温准确度为±0.5℃。
②DS18B20也可以看作一个小的单片机系统,它将温度信息采集到自己的内存中,然后通过一定的节拍将温度信息一位一位地传入at89c51单片机中进行二位数码管的显数。

2.实验中遇到的问题

①lcd1602输入信息时要记得初始化,否则不会显数。
②注意DS18B20的温度信息一位一位地传入at89c51单片机中时严格把控节拍,节拍不正确将影响数据传输。
③at89c51单片机的时钟频率要设置成11.0592mhz。


审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5999

    文章

    43966

    浏览量

    620736
  • DS18B20
    +关注

    关注

    10

    文章

    765

    浏览量

    80084
  • 温度测量系统

    关注

    0

    文章

    25

    浏览量

    21068

原文标题:单片机控制温度传感器控制电路图

文章出处:【微信号:电路一点通,微信公众号:电路一点通】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于单总线器件DS18B20温度测量

    ,测温范围宽,完全可以取代水银温度计和热敏电阻测量利用单总线具有很强的扩展性,还可以组建多点的温度检测网络。因此,基于Mega8单片机和
    发表于 09-24 16:28

    [分享]DS18B20基本知识

    。 4. 实验任务 用一片DS18B20构成测温系统测量温度精度达到0.1度,测量温度的范
    发表于 03-10 23:54

    DS18B20数字温度计使用

    采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。4.实验任务   用一片DS18B20构成测温系统
    发表于 10-24 21:12

    求at89c51,ds18b20数码管温度控制

    求at89c51,ds18b20数码管温度控制。实现温度控制与报警
    发表于 05-09 00:42

    DS18B20温度检测系统中的应用

      摘要:该论文结合实际使用经验,完成了DS18B20数字温度传感器在基于单片机的温度检测系统中的应用。本设计有效的提高了控制系统的实时性改
    发表于 11-06 15:09

    基于单总线数字温度传感器DS18B20的测温系统方案

    ),DS18B20以16位、符号扩展的二进制补码形式发送到数据总线,低位在前,高位在后。   2 测温系统硬件设计  系统硬件主要由单片机最小系统
    发表于 11-06 15:18

    基于DS18B20数字温度传感器的设计方案

    数字温度传感器的软件设计采用C51编写程序,主要完成DS18B20测量温度值计算及温度值的显示功能。其采用模块化设计,程序设计包括
    发表于 11-12 16:30

    基于DS18B20的MOA温度远程监控系统设计

    温度, 就可以判断MOA 的当前工作状态。  论文设计的MOA温度在线监测系统, 以DS18B20温度传感器, AT89S52单片机为控制
    发表于 12-04 15:57

    51单片机DS18B20温度传感器及数码管显示温度 精选资料下载

    介绍51单片机DS18B20温度传感器及数码管显示温度DS18B20作用怎么读取DS18B20
    发表于 07-14 07:17

    怎样去设计一种基于DS18B20LED数码管显示数字温度

    LED数码管显示数字温度计有哪些功能?怎样去设计一种基于DS18B20LED数码管显示数字
    发表于 09-23 07:46

    如何利用单总线DS18B20通信

    本文是武汉市海联天下物联网有限公司技术团队内部学习笔记,将详细讲解DS18B20温度显示以及51单片机如何利用单总线DS18B20通信,
    发表于 11-19 06:09

    温度模块DS18B20的相关资料推荐

    的接口方式 与微处理器连接时 仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。 单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度
    发表于 01-10 07:09

    STM8S003F3P6使用单总线方式和DS18B20建立简单的通讯

    功能介绍:STM8S003F3P6使用单总线方式和DS18B20建立简单的通讯、DS18B20反馈温度值,数码管显示
    发表于 01-24 06:46

    51单片机DS18B20温度读取

    本文是武汉市海联天下物联网有限公司技术团队内部学习笔记,将详细讲解DS18B20温度显示以及51单片机如何利用单总线DS18B20通信,
    发表于 11-12 14:21 25次下载
    51单片机<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>读取

    51单片机温度测量系统Proteus仿真

    利用 DS18B20LED 数码管实现单总线温度
    的头像 发表于 11-07 14:11 2275次阅读