单片机实现温度传感器

这篇具有很好参考价值的文章主要介绍了单片机实现温度传感器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

串行扩展应用

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

(1)硬件图

Proteus仿真图:
单片机实现温度传感器

(2)软件设计

#include<reg51.h>
#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)效果图

单片机实现温度传感器

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

单片机实现温度传感器

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

单片机实现温度传感器

仿真运行状态③(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://www.toymoban.com/news/detail-501802.html

到了这里,关于单片机实现温度传感器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机第二季:温度传感器DS18B20

    目录 1,DS18B20介绍 2,DS18B20数据手册  2.1,初始化时序  2.2,读写时序  3,DS18B20工作流程 4,代码   DS18B20的基本特征: (1)内置集成ADC,外部数字接口,也就是可以直接与单片机的数字接口连接,DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只

    2024年02月10日
    浏览(48)
  • STC51单片机学习9--DS18B20温度传感器

    DS18B20是Dallas半导体公司的一款数字温度传感器芯片; DS18B20是一款支持 1-wire总线接口的温度传感器; DS18B20能测量的温度范围-55℃--125℃,精度是±0.5℃; DS18B20可以将分辨率设定为9到12位; DS18B20的工作电压范围3--5.5V 单片机的P4.1引脚用来接DS18B20的数据引脚 以下是友台半导体

    2024年02月12日
    浏览(48)
  • 【蓝桥杯-单片机学习笔记(十三)】DS18B20温度传感器

    一、温度传感器-DS18B20介绍 DS18B20是单总线数字化温度传感器,测量温度范围是-55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃。支持3V~5.5V的供电电压范围。DS18B20可以程序设定9~12位的分辨率,精度为±0.5℃。 1.DS18B20内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度

    2023年04月09日
    浏览(56)
  • 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解

    温馨提示:读者若要彻底理解并会灵活使用DS18B20温度传感器,请详细阅读中文手册,并且对照代码注释充分分析代码。请不要觉得中文手册内容繁多!如能静心分析,定能深有体会,获益匪浅! 主函数操作顺序(执行序列) 功能指令 最后希望我的分享对你有所帮助!敬请关

    2024年02月12日
    浏览(50)
  • 单片机传感器类型一览

    一、单片机: c51、attiny85    arduino、stm8/stm32    esp8266、esp32、raspiberry pico 功能简单型:C51、Attiny85等 功能可以较复杂型:Arduino STM32 联网、人工智能等高级复杂型:esp8266 esp32、pico 二、基础元件(分为贴片式(SMT)和非贴片式): 晶振、电阻、电容、电感、led、开关、蜂鸣、

    2024年02月14日
    浏览(35)
  • 51单片机 DHT11温湿度传感器 MQ2传感器

    目录 前言 程序思路 DHT11 一、DHT11基础储备  二、接口说明 三、协议及数据格式 ​编辑 四、DHT11代码 MQ-2烟雾传感器 一、MQ-2烟雾传感器介绍 二、工作原理 三、时序配置 四、指令配置 ​编辑 五、代码 LCD1602 一、LCD1602介绍 二、LCD1602指令介绍 ​编辑 三、LCD1602代码  HC-05 一

    2024年02月04日
    浏览(53)
  • 基于51单片机温湿度传感器

    DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通 空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医疗;自动控制 相对湿度和温度测量 全部校准,数字输出 长期稳定性 超长的信号传输距离:20米 超低能耗:休眠 4 引脚

    2023年04月10日
    浏览(87)
  • 51单片机驱动TCS3200颜色识别传感器

    TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAOS TCS3200RGB感应芯片和4个白色LED灯,TCS3200能在一定的范围内检测和测量几乎所有的可见光。TCS3200有大量的光检测器,每个都有红绿蓝和清除4种滤光器。每种颜色滤光器均匀地按数组分布来清除颜色中偏移位置的颜色分

    2023年04月14日
    浏览(49)
  • 51单片机(DHT11温湿度传感器)

    DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通 空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医疗;自动控制 相对湿度和温度测量 全部校准,数字输出 长期稳定性 超长的信号传输距离:20米 超低能耗:休眠 4 引脚

    2024年02月02日
    浏览(68)
  • 单片机采集传感器数据(整形,浮点型)modbus上传

    浮点型数据 占两个寄存器(四个字节) short 整形 占一个寄存器 (两个字节) 注意!!!! stm32 是小端模式,而modbus解析数据是大端模式 所以先发送高字节 如int a=16777220,化为十六进制是0x01 00 00 04, 则04属于低字节,01属于高字节 例如float a=125.6     十六进制0x42 fb 33 3

    2024年02月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包