基于AT89C51/52和DS18B20的温度传感器设计报告(后附代码)
1 设计的目的
通过理论设计和实物制作解决相应的实际问题,巩固和运用在《微机原理及单片机技术》中所学的理论知识和实验技能,掌握常用模拟电路的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
1、学习AT89C52单片机的使用方法;
2、研究独立按键的使用方法;
3、掌握温度传感器DS18B20的原理;
4、掌握数码管的显示原理;
5、熟悉keil4软件的使用方法。
2 设计的任务与要求
2.1 设计任务
利用52单片机开发板上面的DS18B20模块实现温度的测量与显示,并使用按键控制和数码管来显示温度。
2.2 设计要求
1、通过按键启动和停止测量。
2、通过单片机控制DS18B20获取温度值。
3、数码管实时显示当前温度。
3 设计方案与论证
3.1 方案选择与论证
方案一:使用stm32单片机。STM32的寄存器比52单片机要多很多,其配置比52复杂,而且中断逻辑,时钟配置使能控制等很多概念都是52单片机中所没有的,再加上stm32很多功能如USB,FSMC。等等功能,其功能更加强大,虽然官方提供了开发固件库和相关开发辅助工具,但很多时候,遇到bug调试难度也加大了很多。在简单实验设计场景上面不适用。
方案二:使用89C52单片机。从内部的硬件到软件52单片机有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。同时在片内RAM区间还特别开辟了一个双重功能的地址区间,使用极为灵活,这一功能无疑给使用者提供了极大的方便。乘法和除法指令,这给编程也带来了便利。但是52单片机也有很多缺点,它的AD、EEPROM等功能需要靠扩展,增加了硬件和软件负担;虽然I/O脚使用简单,但高电平时无输出能力,这也是52系列单片机的软肋;运行速度过慢,特别是双数据指针,如能改进能给编程带来很大的便利;52单片机保护能力很差,很容易烧坏芯片。但是目前在教学场合和对性能要求不高的场合大量被采用。
综合考虑,选择方案二。
3.2 原理方框图
图3.1 温度显示原理方框图
该电路包含四个组成部分(如图3.1所示),分别是89C52单片机芯片、独立按键模块、DS18B20模块和数码管显示模块。
DS18B20数字温度传感器接线方便,封装后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
图3.2 DS18B20实物图
4 电路设计
4.1 元器件选用原理
1.单片机芯片
AT89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-52指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图4.1 52单片机结构示意图
2. 模块选择
选用开发板上自带的DS18B20模块和数码管显示模块,进行温度的测量与显示。
DS18B20的核心功能是它可以直接读出数字的温度数值。温度传感器的精度为用户可编程的9,10,11或12位,分别以0.5℃,0.25℃,0.125℃和0.0625℃增量递增。在上电状态下默认的精度为12位。DS18B20启动后保持低功耗等待状态,当需要执行温度测量和AD转换时,总线控制器必须发出[44h]命令。转换完以后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。下图为DS18B20模块的原理图。
图4.2 DS18B20原理图
4.2 总体电路图
1. 电路的工作原理
(1) 64位(激)光刻只读存储器
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
(2) DS18B20温度转换规则
DS18B20的核心功能是它可以直接读出数字的温度数值。温度传感器的精度为用户可编程的9,10,11或12位,分别以0.5℃,0.25℃,0.125℃和0.0625℃增量递增。在上电状态下默认的精度为12位。
DS18B20启动后保持低功耗等待状态,当需要执行温度测量和AD转换时,总线控制器必须发出[44h]命令。转换完以后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。
这是12位转化后得到的12位数据,存储在DS18B20的两个8位的RAM中,高字节的前5位是符号位,如果测得的温度大于0,这5位为‘0’,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为‘1’,测到的数值需要先减1再取反再乘以0.0625即可得到实际温度。
图4.3 温度寄存器格式
(3) DS18B20温度传感器的存储器
DS18B20温度传感器的内部存储器包括一个高度的暂存器RAM和一个非易失性的可电擦除的EEPROM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
(4) 配置寄存器
存储器的第4位为配置寄存器,其组织见图8,用户可按表3所示设置R0和R1位来设定DS18B20的精度。上电默认设置:R0=1、R1=1(12位精度)。注意:精度和转换时间之间有直接的关系。暂存器的位7和位0-4被器件保留,禁止写入。
图4.4 配置寄存器
表4-1 温度机密精确度配置
2. 温度传感器电路
图4.5 温度传感器电路图
5 程序设计
图5.1 DS18B20流程图 图5.2 数码管流程图 图5.3 按键流程图
图5.4 主程序流程图
首先进行按键、数码管和DS18B20的初始化,然后检测按键是否按下,当按键按下时,显示温度,按键再次按下时,数码管熄灭。
6 电路制作与调试
6.1 工具的使用
本次单片机设计使用了keil4软件,keil4是Keil Software公司出品的52系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。通过编写代码。通过keil4编写程序然后通过烧录软件通过USB线烧录进单片机中,通过控制按键来进行温度的测量和显示。
6.2 仿真的调试
图6.1 仿真图
附件:基于AT89C51/52和DS18B20的温度传感器设计代码
基于AT89C51/52和DS18B20的温度传感器设计报告(后附代码)相关推荐
- 数据结构课程设计报告(附代码)
数据结构课程设计报告 一.实训目的 通过课程设计,学会运用数据结构知识,针对具体应用,自己设计合理数据结构,确定存储结构,并能设计具体操作算法,选择使用具体语言进行实现.掌握C++较复杂程序的组织和设 ...
- 孙玄辜教授:基于Linux内核的时间轮算法设计实现【附代码】
文章目录 1.时间轮算法基本思想 2.定时器的添加 3.定时器到期处理 孙玄:毕业于浙江大学,现任转转公司首席架构师,技术委员会主席,大中后台技术负责人(交易平台.基础服务.智能客服.基础架构.智能运 ...
- matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc
基于51单片机ds18b20温度检测----设计报告 课程名称: 微机原理课程设计 题 目: 温度检测课程设计 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为 ...
- 单片机万年历c语言程序设计,基于AT89C51单片机的多功能电子万年历的设计(附程序)...
基于AT89C51单片机的多功能电子万年历的设计(附程序)(12000字) AT89C51 SCM-BASED ELCTRONIC DESIGN CALENDAR 摘要 本文介绍了基于AT89C51单 ...
- 单片机彩灯c语言程序设计,(定稿)毕业论文基于AT89C51单片机的LED彩灯控制器设计(完整版)...
<[毕业论文]基于AT89C51单片机的LED彩灯控制器设计.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文基于AT89C51单片机的LED彩灯控制器设计(完整版) ...
- php校友录毕业论文,基于WEB的同学校友录的设计(PHP,MySQL)(附答辩记录)
基于WEB的同学校友录的设计(PHP,MySQL)(附答辩记录)(选题审批表,任务书,开题报告,中期报告,毕业论文7700字,文献综述,答辩记录,成绩评定册) 摘 要:通过提供便捷的校友录平台和人性化 ...
- 单片机8位抢答器实训机电报告_基于单片机89c51八路抢答器课程设计报告.doc
基于单片机89c51八路抢答器课程设计报告 中州大学工程技术学院 单片机课程设计报告书 题目:基于单片机89c51 8路抢答器 姓 名: 阮成龙 专 业:电气自动化(对口)一班 学 号: 201425 ...
- matlab车牌识别课程设计,matlab车牌识别课程设计报告模板(附源代码).doc
您所在位置:网站首页 > 海量文档  > 计算机 > matlab matlab车牌识别课程设计报告模板(附源代码). ...
- 基于粒子群算法优化的Elman神经网络数据预测-附代码
基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...
最新文章
- 微服务和 Serverless 如何强强联合?
- Hadoop学习笔记(六)启动Shell分析
- ASP.NET MVC 概述
- Windows下编译openssl库
- (组合数学笔记)递推关系小结及典型题分析
- [BZOJ4987]Tree
- python程序加密_Python简单的加密程序:如何循环Z回到A
- 担心在机场丢行李?这个日本AI能帮你到处找包
- php 7怎么安装mysql_php7如何安装mysql扩展
- Bailian2856 计算邮资【入门】
- 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(4)签到题4题
- 【算法】LeetCode算法题-Length Of Last Word
- 给用户配置hadoop权限
- vlan绑定_【实操】多VLAN间通信
- MATLAB最简单教程
- Android使用OpenCV合成双目裸眼3D图片(推荐Native方法)
- 双馈风机并网simulink模型
- 熊猫儿 | 燕赵风云,风云燕赵
- 大学生职业生涯规划——我的未来我做主
- 09盘点:梦幻诛仙蜀门剑网三的营销启示
热门文章
- 《摔跤吧,爸爸》观后感
- 【综合复健训练2021/1/18:题解】Comprehensive Training (CF 1000 ~ 1600)
- 【b站求职笔记】行路院-王贺 2020年12月笔记
- java实现看门狗_Watchdog看门狗分析
- 什么软件可以识别图片上的文字?分享三个实用的识别软件
- metaboxs.php,php – WooCommerce:将自定义Metabox添加到管理员订单页面
- 2022-2028年全球与中国射频开关产业市场前瞻与投资战略规划分析
- 02-感知机 读书笔记
- STM32F103最小系统电路 实测成功!
- 浅谈游戏《Dead Cells死亡细胞》