串行扩展应用

利用 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。

单片机实现温度传感器相关推荐

  1. 51单片机~DS18B20温度传感器

    51单片机~DS18B20温度传感器 (一)简介说明: (二)接线: 1. 内部结构: 正温度前五位是0. 负温度前五位是1. 由LS,MS组成的四位十六进制数,和16位二进制数.(先MS后LS) 结 ...

  2. 51单片机DS18B20温度传感器及数码管显示温度

    51单片机DS18B20温度传感器及数码管显示温度 大家好,今天给大家带来的代码及原理解释是,在51单片机在接收DS18B20温度传感器数据,并且在数码管上实时显示温度 DS18B20及数码管显示温度 ...

  3. 4.5 51单片机-DS18B20温度传感器

    4.5 DS18B20温度传感器 4.5.1 原理图介绍 图4-5-1 图4-5-2 实验板上的DS18B20模块接在单片机的P3.5 IO口上,在插入DS18B20芯片时,圆弧朝上插入,具体效果可以 ...

  4. 51单片机之温度传感器与液晶显示屏

    1.Proteus7.8仿真图: 2.程序代码如下: #include <AT89X51.H> #include <intrins.h> #include <string ...

  5. 51单片机 | DS18B20 温度传感器实验

    文章目录 一.DS18B20介绍 二.硬件设计 三.软件设计 1.数码管显示函数 2.DS18B20 初始化函数及温度读取函数 4.主函数 四.实验现象   这一节我们来学习精度较高的外部 DS18B ...

  6. 51单片机DS18B20温度传感器详解

    DS18B20是一种单总线数字温度传感器,测试温度范围-55℃-125℃,具有体积小,硬件开销低,抗干扰能力强,精度高的特点.单总线,意味着没有时钟线,只有一根通信线.单总线读写数据是靠控制起始时间和 ...

  7. 51单片机DS18B20温度传感器原理及实验

    目录 DS18B20简介 外部结构 内部结构 数据温度的读取 实验 程序实现 附 DS18B20简介 DS18B20 是由 DALLAS 半导体公司推出的一种的"一线总线(单总线)" ...

  8. 【STM32单片机+DHT11温度传感器】快速上手,适用于多种型号芯片

    提示:DHT11温度传感器是配合着stm32c8t6 文章目录 一.DHT11基本了解 1.基本信息 2.引脚了解 二.开始上手 1.接线 2.关键部分代码 DHT11.c代码 DHT11.h代码 m ...

  9. 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解

    温馨提示:读者若要彻底理解并会灵活使用DS18B20温度传感器,请详细阅读中文手册,并且对照代码注释充分分析代码.请不要觉得中文手册内容繁多!如能静心分析,定能深有体会,获益匪浅! 一.DS18B20 ...

  10. 基于C51单片机+DS18B20温度传感器+LCD1602显示器的智能水温控制系统(PID)

    基于AT89C52的温度控制系统 一.DS18B20传感器相关介绍 DS18B20特性 封装形式与引脚说明 供电方式(外部电源供电.寄生电源供电.寄生电源强上拉) DS18B20指令(ROM指令操作) ...

最新文章

  1. linux 别名管理,Linux 的 15 个命令行别名, 帮系统管理员提升工作效率!
  2. linux操作系统网络内核优化
  3. 第一次安装Intellij IDEA过程中遇到的坑
  4. What to call your Academic Event
  5. 11.SolrJ索引操作
  6. linux 禁用smb服务,Samba 4.11 发布,更好的可扩展性与默认禁用SMB1
  7. 托雷基亚vs_奥特曼:上海英雄魂展来袭,托雷基亚和泰迦等身雕塑国内首秀,泽塔CV压轴...
  8. C#算法设计排序篇之10-桶排序(附带动画演示程序)
  9. python遍历字典修改值_Python中遍历字典过程中更改元素导致异常的解决方法
  10. “工业革命4.0”时代,智能汽车应是什么样?
  11. 网上书店系统mysql设计_数据库设计--《网上书店系统》
  12. DiskTool 无损分区软件 免费易用的中文版“无损分区魔术师”(完美支持Win7/32与64位系统)...
  13. JUnit 单元测试
  14. 对称密钥交换协议——实现在不安全的信道安全地传输密钥
  15. 亚马逊云服务器账号注册,免费申请12个月aws亚马逊云详细教程
  16. 导航条UINavigtionBar,标签栏UITabBarController,抽屉MMDrawerController
  17. 南京php吧,利用php爬虫分析南京房价
  18. 国外创企Emotech获中国投资,助力个性化机器人Olly
  19. 【手把手制作三阶魔方模拟器】用MATLAB绘制一个三阶魔方
  20. 6月3日至5日 服务器信息维修,2015年6月3日维护公告

热门文章

  1. centos7升级内核重启问题:you need to load the kernel first
  2. raspberry pi_许多Raspberry Pi项目-您怎么不爱小型计算机?
  3. 测量小助手——典型用户及使用场景
  4. Word实现汉字和拼音分离
  5. Flutter自定义Widget实例 -如何创建炫酷粒子时钟效果!
  6. 韦东山 IMX6ULL和正点原子_「正点原子Linux连载」第十二章官方SDK移植试验
  7. 高新技术企业认定评分标准
  8. 中地恒达GNSS表面位移监测系统(Guard-GNSS)
  9. LED驱动器满足功率、空间和成本挑战
  10. 计算机组成原理实验脱机运算器,计算机组成原理实验二: 脱机运算器实验