技术文档

单片机温度测量系统 基于单片机的18B20的温度检测系统设计方案

小编 2024-10-12 技术文档 23 0

基于单片机的18B20的温度检测系统设计方案

设计要求:

(1)温度低于或超出设定温度范围时发出报警。

(2)温度值可在数码管上实时数字显示。

(3)报警温度可以由人工自由设定。

在单片机电路设计中,大多数都是使用传感器,所以这是非常容易想到的,所以可以采用一直温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

设计框图

根据资料设计出如图方案框图

工作原理

(1) DS18B20温度传感器的简介:

DS18B20的测温原理中,低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器,高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。

计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55度所对应的基数分别置入减法计数器和温度寄存器中,减法计数器对低温系数晶振产生的脉冲信号进行减法基数,当减法计数器的预置值减到0时温度寄存器的值将加1,减法计数器的预制将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行基数。

当斜率累加器用于补偿和修正测温过程中的非线性,,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。

(2) 主要设计过程如下:

我们设计的温度系统是由中央控制器、温度检测器及显示器组成。控制器采用单片机C51系列,温度检测部分采用DS18B20温度传感器,用LCD做显示器。温度传感器DS18B20采集温度信号送给该单片机处理,存储器通过单片机对某些时间点的数据进行存储,单片机再温度数据送LCD显示,已达到显示当前温度的目的。

温度采集模块:

单片机控制及AD转换模块

显示模块

报警模块:

电源模块

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

串行扩展应用:

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

硬件图

Proteus仿真图:

(2)软件设计

#include<reg51.h>#include"intrins.h"#define uchar unsigned char#define uint unsigned int#define out P0sbit 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);

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取: 加微信领取资料

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);}

效果图

上图,仿真运行状态①(未操作温度)。

上图,仿真运行状态②(未操作温度)。

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

上图,仿真运行状态④(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。

原文链接:https://mp.weixin.qq.com/s/A9QS6xlYd9XKk8IHtJGffA

转载自:STM32嵌入式开发

原文链接:51单片机温度测量系统Proteus仿真

本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

相关问答

单片机温度 报警器实验步骤?

温度报警器就是需要温度传感器不停地对监控的对象进行检测,例如pt100温度传感器,pt100传感器是不同温度下,阻值会不同,在同一温度下,阻值是相同的。根据这个...

基于 单片机 的多点 温度测量系统 的设计如何实现温度的采集?

DS18B20是单总线数字温度传感器,可以直接采集温度,并把采集到的数据通过单总线的方式,送入单片机,单片机处理数据,送入4路数码管显示就行了,测量的精度,可...

英语翻译基于 单片机 的数字 温度计 设计随着时代的进步和发展,...

[最佳回答]基于单片机的数字温度计设计Digitalthermometerdesignbasedonasinglechip(microcomputer).随着时代的进步和发展,单片机技术和温度传感...

英语翻译用 单片机 实现高精度宽范围的 温度测量 系统 摘要:本...

[最佳回答]Realizesthehighaccuracywidthscopetemperaturesurveysystemwiththemonolithicintegratedcircu...

单片机温度 传感器作用?

温度传感器的作用:用物质各种物理性质随温度变化的规律把温度转换为电量。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式...

怎么实现 单片机 控制 温度 ?

你可以选用DS18B20型号的温度传感器采集温度,用一总线将信号传输给单片机处理,进行反馈控制温度。你可以选用DS18B20型号的温度传感器采集温度,用一总线将信...

单片机 热敏电阻怎么检测他的 温度 的?

突然...如果是最老式的电饭锅(某宝上50元以内就能买一个),就那个开关通过杠杆连着一个磁体,你按下去的时候会吸住,开始加热,然后这种磁体在105度的时候磁性会...

单片机温度 报警器用的哪种传感器分辨率多少?

DS18B20可以测得最高12位的精度。-50~+125°范围(1)适应电压范围更宽,电压范围:3.0~5.5V,寄生电源方式下可由数据线供。(2)独特的单线接口方式,DS18B...DS.....

51 单片机 工作 温度 ?

AT89C51-24PI,中24表示他的工作频率,P为封装形式(DIP),I为工作环境(工业)。单片机工作温度:商业级:0℃-+70℃工业级:-40℃-+85℃汽车级:-40℃...AT89C...

单片机 可分为商用,工业用,汽车用以及军用产品,它们的使用 温度 范围各为多少?

按温度适应能力及可靠性分为四类:商业级(0~70摄氏度)、工业级(-40~85摄氏度)、汽车级(-40~120摄氏度)军工级(-55~150摄氏度)一般区分都是按芯片型号的后...按...

猜你喜欢